DiagramDesigner/diagramCavas/source/diagramEditor/diagramEditorStructContaine...

50 lines
1.2 KiB
C++
Raw Permalink Normal View History

2025-07-25 19:07:14 +08:00
#include "diagramEditor/diagramEditorStructContainer.h"
#include "diagramEditor/diagramEditorBaseBlock.h"
DiagramEditorStructContainer::DiagramEditorStructContainer(QObject *parent)
: QObject(parent)
{
}
DiagramEditorStructContainer::~DiagramEditorStructContainer()
{
2025-10-30 17:20:10 +08:00
clearData();
2025-07-25 19:07:14 +08:00
}
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);
2025-07-25 19:07:14 +08:00
_mapBlocks[nPos].append(p);
return true;
}
2025-10-24 21:11:07 +08:00
QMap<int,QList<DiagramEditorBlockInfo>> DiagramEditorStructContainer::getMapBlocksData()
{
QMap<int,QList<DiagramEditorBlockInfo>> map;
for(auto iter = _mapBlocks.begin();iter != _mapBlocks.end();++iter){
QList<DiagramEditorBlockInfo> lstInfo;
for(auto pBlock:iter.value()){
auto info = pBlock->getBlockInfo();
lstInfo.append(info);
}
map.insert(iter.key(),lstInfo);
}
return map;
}
2025-10-30 17:20:10 +08:00
void DiagramEditorStructContainer::clearData()
{
for(auto &lstCon:_mapBlocks){
qDeleteAll(lstCon);
}
_mapBlocks.clear();
}