#include "diagramEditor/diagramEditorStructContainer.h" #include "diagramEditor/diagramEditorBaseBlock.h" DiagramEditorStructContainer::DiagramEditorStructContainer(QObject *parent) : QObject(parent) { } DiagramEditorStructContainer::~DiagramEditorStructContainer() { clearData(); } bool DiagramEditorStructContainer::insertBlock(int nPos,DiagramEditorBaseBlock* p) { for(auto& pBlock:_mapBlocks[nPos]){ if(pBlock == p) return false; } p->setCurContainer(this); //目标block所属container p->setContainerLevel(nPos); _mapBlocks[nPos].append(p); return true; } QMap> DiagramEditorStructContainer::getMapBlocksData() { QMap> map; for(auto iter = _mapBlocks.begin();iter != _mapBlocks.end();++iter){ QList lstInfo; for(auto pBlock:iter.value()){ auto info = pBlock->getBlockInfo(); lstInfo.append(info); } map.insert(iter.key(),lstInfo); } return map; } void DiagramEditorStructContainer::clearData() { for(auto &lstCon:_mapBlocks){ qDeleteAll(lstCon); } _mapBlocks.clear(); }