logplus/ModuleConsole/command/include/GlobalWorkflowItems.h
2026-01-16 17:18:41 +08:00

76 lines
2.1 KiB
C++

/*
* GlobalWorkflowItems.h
* @brief 存储工作流中的所有模块和被复制的模块
* @date: 2012-10-12
* @author: liujunxia
*/
#ifndef PAI_FRAME_WORKFLOWVIEW_GLOBALWORKFLOWITEMS_H_
#define PAI_FRAME_WORKFLOWVIEW_GLOBALWORKFLOWITEMS_H_
#include <QGraphicsItem>
#include "ModuleInformation.h"
#include "ModuleConnection.h"
using namespace pai::workflow;
namespace pai
{
namespace graphics2d
{
class ModuleGraphicsItem;
class ModuleConnectGraphicsItem;
class CModuleInfoAndStyle;
class WorkflowSceneManager;
}
class GlobalWorkflowItems {
private:
GlobalWorkflowItems();
virtual ~GlobalWorkflowItems();
public:
static GlobalWorkflowItems* GetInstance();
// set copy items list
void SetCopyGraphicItems(QList<QGraphicsItem*> itemList);
// get copy items list
QList<QGraphicsItem*> GetCopyGraphicItems();
// clear copy items list and items list
void Clear();
/**
* @brief 根据粘贴列表获取需要粘贴的线的列表
* @param itemList 粘贴列表
*/
QList<CModuleConnection *> GetConnectLineList(QList<QGraphicsItem*> CopyItems);
/**
* @brief 根据粘贴列表获取需要粘贴的模块的StepID
* @param itemList 粘贴列表
*/
QList<int> GetStepIdList(QList<QGraphicsItem*> CopyItems);
QList<pai::graphics2d::CModuleInfoAndStyle *> GetModuleInfoAndStyleList(QList<QGraphicsItem*> CopyItems);
/**
* @brief 根据指定ID找到对应的模块图元
* @param pSceneManager WorkflowSceneManager
* @param iStepID 模块ID
*/
pai::graphics2d::ModuleGraphicsItem* FindModule(pai::graphics2d::WorkflowSceneManager *pSceneManager, int iStepID);
/**
* @brief 根据指定connection找到对应的模块图元
* @param pSceneManager WorkflowSceneManager
* @param pConnection 图元连线信息
*/
pai::graphics2d::ModuleConnectGraphicsItem* FindConnectionItem(pai::graphics2d::WorkflowSceneManager *pSceneManager, workflow::CModuleConnection* pConnection);
private:
QList<QGraphicsItem*> m_pCopyItems; // copy graphic items buffer
static GlobalWorkflowItems *instance;
};
}
#endif /* GLOBALWORKFLOWITEMS_H_ */