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();
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
|