logplus/ModuleConsole/command/src/CutModuleCmd.cpp
2026-01-16 17:18:41 +08:00

75 lines
1.5 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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