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

177 lines
3.9 KiB
C++

/*
* @file CPaiWorkflowTemplateTree.h
* @brief 工作流模板树
* @author: liujunxia
* @date: 2012-12-06
*/
#ifndef PAI_FRAME_WORKFLOWVIEW_PAIWORKFLOWTEMPLATETREE_H_
#define PAI_FRAME_WORKFLOWVIEW_PAIWORKFLOWTEMPLATETREE_H_
#include <QWidget>
#include <QTreeWidget>
#include <QPoint>
// #include "WorkflowPlugin.h"
const QString LAST_IMPORT_TEMPLATES_PATH = "Import templates path";
const QString LAST_EXPORT_TEMPLATES_PATH = "Export templates path";
namespace pai
{
namespace objectmodel
{
class PaiObject;
}
/**
* @class CPaiWorkflowTemplateTree
* @brief 工作流模板页签
*/
class CPaiWorkflowTemplateTree : public QTreeWidget
{
Q_OBJECT
public:
CPaiWorkflowTemplateTree(QUuid id,QWidget *parent = 0);
virtual ~CPaiWorkflowTemplateTree();
void MonkeyClickedModule(QString CompositeModuleID);
public:
/**
* @brief获取CPaiWorkflowTemplateTree的对象指针
*/
static CPaiWorkflowTemplateTree* GetInstance();
/**
* @brief drag a template to apply it to workflow.
*/
virtual void startDrag(Qt::DropActions /*supportedActions*/);
/**
* @brief鼠标双击事件
*/
virtual void mouseDoubleClickEvent(QMouseEvent *event);
/**
* @brief Add a child object in general way.
* @param pChild the child object handle
*/
bool AddChild(pai::objectmodel::PaiObject* pChild);
/**
* @brief Remove a child object in general way.
* @param pChild the child object handle
*/
bool RemoveChild(pai::objectmodel::PaiObject* pChild);
/**
* @brief Get all of the children.
*/
QList< pai::objectmodel::PaiObject* > GetChildren();
/**
* @brief Get child.
* @param strChildName child name.
*/
pai::objectmodel::PaiObject* GetChildByName(QString strChildName);
/**
* @brief Get the new added child's appear rect.
*/
QRect GetNewAddedItemRect();
/**
* @brief Get item rect.
* @param strItemName item name.
*/
QRect GetItemRect(QString strItemName);
/**
*@brief 设置激活属性
*@param[in] bActive活动标志
*/
void SetActive(bool bActive);
/**
*@brief判断是否激活状态
*/
bool isActive();
/**
* @brief make item selected
* @param item name
*/
void ActiveItem(const QString name);
/**
* @brief get selected template objects
*/
QList< pai::objectmodel::PaiObject* > GetSelectedChildren();
signals:
/**
* @brief 双击节点时发送
*/
void itemDoubleClicked(pai::objectmodel::PaiObject*);
/**
* @brief 点击右键菜单编辑节点事发送
*/
void itemEdit(QList< pai::objectmodel::PaiObject* > );
/**
* @brief 点击右键菜单删除节点事发送
*/
void itemDelete(QList< pai::objectmodel::PaiObject* > );
/**
* @brief 导入模板时发送的信号
*/
// void importTemplates(ImportType);
/**
* @brief 导出模板时发送的信号
*/
// void exportTemplates(ImportType);
private slots:
/**
* @brief 右击节点时接收槽
* @param[in] point 右击的坐标
*/
void RightMenuRequest(const QPoint &point);
/**
* @brief 删除工作流模板
*/
void slotDeleteItem();
/**
* @brief 编辑工作流模板
*/
void slotEditItem();
/**
* @brief 导出工作流模板
*/
void slotExportTemplates();
/**
* @brief 导入工作流模板
*/
void slotImportTemplates();
/**
* @brief 关闭气泡
*/
void slotHideBalloon();
private:
QList< pai::objectmodel::PaiObject* > m_lstChildren;//the children of the object.
static CPaiWorkflowTemplateTree *instance;
QTreeWidgetItem* m_pNewAddedItem; //最新添加的模板节点
QTreeWidgetItem* m_pCommonTemplateItem; //模板树根节点
bool m_bActive; //TemplateTree Widget active or not.
};
}
#endif /* CPAIWORKFLOWTEMPLATETREE_H_ */