logplus/ModuleConsole/command/src/CutModuleCmd.cpp

75 lines
1.5 KiB
C++
Raw Normal View History

2026-01-16 17:18:41 +08:00
/*
* CutModuleCmd.cpp
*
* Created on: 2012-10-9
* Author: liujunxia
*/
#include <QGraphicsItem>
#include <QtDebug>
#include "CutModuleCmd.h"
#include "CopyModuleCmd.h"
#include "DeleteModuleCmd.h"
#include "WorkflowSceneManager.h"
#include "PaiWorkflowDataModel.h"
#include "GlobalWorkflowItems.h"
using namespace pai::workflow;
using namespace pai::graphics2d;
namespace pai
{
namespace graphics2d
{
CutModuleCmd::CutModuleCmd(pai::graphics2d::WorkflowSceneManager *pSceneManager,
pai::objectmodel::PaiWorkflowDataModel *pWorkflow, QList<QGraphicsItem*> list, QUndoCommand *parent)
:QUndoCommand(parent)
{
m_pSceneManager = pSceneManager;
m_pWorkflow = pWorkflow;
m_list = list;
m_pDeleteModuleCmd = NULL;
GlobalWorkflowItems::GetInstance()->Clear();
}
CutModuleCmd::~CutModuleCmd()
{
if (m_pDeleteModuleCmd != NULL)
{
delete m_pDeleteModuleCmd;
m_pDeleteModuleCmd = NULL;
}
}
void CutModuleCmd::undo()
{
if (m_pDeleteModuleCmd)
{
m_pDeleteModuleCmd->undo();
}
}
void CutModuleCmd::redo()
{
//第一次redo时备份中的复制item为空再次redo时执行此操作
if(!(GlobalWorkflowItems::GetInstance()->GetCopyGraphicItems().isEmpty()))
{
m_pDeleteModuleCmd->redo();
}
if (m_list.count() > 0)
{
CopyModuleCmd copyModuleCmd(m_pWorkflow, m_list);
copyModuleCmd.redo();
m_pDeleteModuleCmd = new DeleteModuleCmd(m_pSceneManager, m_pWorkflow, m_list);
m_pDeleteModuleCmd->redo();
m_list.clear();
}
}
}
}