75 lines
1.5 KiB
C++
75 lines
1.5 KiB
C++
|
|
/*
|
|||
|
|
* 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();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|