177 lines
3.9 KiB
C++
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_ */
|