/* * CutModuleCmd.cpp * * Created on: 2012-10-9 * Author: liujunxia */ #include #include #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 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(); } } } }