logplus/Workflow/WFEngine/Component/WorkflowWidget/include/WorkflowWidget.h

159 lines
4.2 KiB
C
Raw Normal View History

2026-01-16 17:18:41 +08:00
/**
* @file WorkflowWidget.h
* @brief
* @date 2011-06-23
*/
#ifndef PAI_FRAME_WORKFLOWWIDGET_WORKFLOWWIDGET_H
#define PAI_FRAME_WORKFLOWWIDGET_WORKFLOWWIDGET_H
#include <QWidget>
#include <QMap>
#include <QUuid>
#include "Turtle.h"
class QPixmap;
class QGraphicsView;
class QGraphicsScene;
namespace pai
{
namespace objectmodel
{
class PaiWorkflowDataModel;
}
namespace graphics2d
{
class GeneralWorkflowScene;
}
}
namespace pai
{
namespace graphics2d
{
/**
* @class WorkflowWidget
* @brief
*/
class PAI_WORKFLOWWIDGET_EXPORT WorkflowWidget: public QWidget
{
Q_OBJECT
public:
/**
* @brief
* @param[in] pWorkflow
* @param[in] pParent
* @param[in] jobRelated job场景工作流
*/
WorkflowWidget(pai::objectmodel::PaiWorkflowDataModel *pWorkflow = NULL,
QWidget *pParent = NULL,
bool jobRelated = false);
/**
* @brief
*/
virtual ~WorkflowWidget();
/**
* @brief
* @return
*/
pai::graphics2d::GeneralWorkflowScene* GetScene() const;
/**
* @brief
* @param[in] pScene
*/
void SetScene(pai::graphics2d::GeneralWorkflowScene *pScene);
/**
* @brief
* @return
*/
pai::objectmodel::PaiWorkflowDataModel* GetWorkflow() const;
/**
* @brief
* @return
*/
QGraphicsView* GetGrapicsView () const;
/**
* @brief
*/
void SetJobPrgsInfo();
/**
* @brief
* @param[in] allowed
*/
void SetInteractive(bool allowed);
/**
* @brief ExtensionID
* @param[in] areaName
* @param[in] extensionID ExtensionID
*/
void SetSelectedExtension(const QString &areaName, const QString extensionID);
/**
* @brief ExtensionID对应Map
* @param[out] selectedMap ExtensionID
*/
void GetSelectedExtensions(QMap<QString, QString> &selectedMap);
/**
* @brief ExtensionID对应Map
*/
void ClearSelectedExtensions();
/**
* @brief ID
* @return ID
*/
QUuid GetID() const;
/**
* @brief item是否可以被多选
* @param[in] enable b标志
*/
void EnableMultiSelect(bool enable);
/**
* @brief dbid会改变
* @param[in] dbid dbid
*/
void UpdateWorkflowLock(long long dbid);
public slots:
/**
* @brief
* @param[in] pWorkflow
* @param[in] needReload
* @param[in] jobRelated job场景工作流
*/
// void SetWorkflow(pai::objectmodel::PaiWorkflowDataModel *pWorkflow = NULL,
// bool needReload = false,
// bool jobRelated = false);
protected:
/**
* @brief SeisView,
* @param[in] pEvent
*/
virtual void mouseReleaseEvent(QMouseEvent *pEvent);
private:
QGraphicsView *m_pGraphicsView; ///< 工作流图形编辑的视图
pai::objectmodel::PaiWorkflowDataModel *m_pWorkflow; ///< 工作流对象句柄
pai::graphics2d::GeneralWorkflowScene *m_pSceneManager; ///< 工作流图形编辑的场景
QMap<QString, QString> m_pSelectedExtension; ///< 保存每个区域选中的ExtensionID
QUuid m_ID; ///< 工具栏id
QUuid m_LockID; ///< 对m_pWorkflow进行加锁的id
bool m_JobRelated; ///< 是否为JobMananger Tab 页上的工作流
};
}
}
#endif ///< PAI_FRAME_WORKFLOWWIDGET_WORKFLOWWIDGET_H