/* * GlobalWorkflowItems.h * @brief 存储工作流中的所有模块和被复制的模块 * @date: 2012-10-12 * @author: liujunxia */ #ifndef PAI_FRAME_WORKFLOWVIEW_GLOBALWORKFLOWITEMS_H_ #define PAI_FRAME_WORKFLOWVIEW_GLOBALWORKFLOWITEMS_H_ #include #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 itemList); // get copy items list QList GetCopyGraphicItems(); // clear copy items list and items list void Clear(); /** * @brief 根据粘贴列表获取需要粘贴的线的列表 * @param itemList 粘贴列表 */ QList GetConnectLineList(QList CopyItems); /** * @brief 根据粘贴列表获取需要粘贴的模块的StepID * @param itemList 粘贴列表 */ QList GetStepIdList(QList CopyItems); QList GetModuleInfoAndStyleList(QList 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 m_pCopyItems; // copy graphic items buffer static GlobalWorkflowItems *instance; }; } #endif /* GLOBALWORKFLOWITEMS_H_ */