/** * @file PaiJobSummaryItem.h * @brief 作业参数信息 * @date 2013-04-20 */ #ifndef PAI_FRAME_WORKFLOWWIDGET_PAIJOBSUMMARYITEM_H #define PAI_FRAME_WORKFLOWWIDGET_PAIJOBSUMMARYITEM_H #include #include class QWidget; namespace pai { namespace gui { class PaiJobSummaryWidget; } namespace objectmodel { class PaiJob; } } namespace pai { namespace gui { /** * @class PaiJobSummaryItem * @brief 作业参数信息展示Item */ class PaiJobSummaryItem : public QGraphicsItem { public: /** * @brief item类型 */ enum { Type = UserType + 1456 ///< item类型 }; /** * @brief 构造函数 * @param[in] pJob 作业 * @param[in] pParent 父亲 */ PaiJobSummaryItem(pai::objectmodel::PaiJob *pJob,QGraphicsItem *pParent = NULL); /** * @brief 析构函数 */ virtual ~PaiJobSummaryItem(); /** * @brief 获取item类型 * @return item类型 */ virtual int type() const; /** * @brief 实现该虚函数,返回模块图元的包围矩形 * @reurn item外围矩形 */ virtual QRectF boundingRect() const; /** * @brief 更新位置 */ void UpdatePosition(); /** * @brief 获取代理Widget * @return 代理Widget */ pai::gui::PaiJobSummaryWidget* GetSummaryWidget() const; private: /** * @brief 实现该虚函数,绘制当前item * @param[in] pPainter 画笔 * @param[in] pOption 模块风格参数 * @param[in] pWidget 画布 */ virtual void paint(QPainter *pPainter, const QStyleOptionGraphicsItem *pOption, QWidget *pWidget = NULL); private: qreal m_width; ///< 宽度 qreal m_height; ///< 高度 pai::gui::PaiJobSummaryWidget *m_pSummDlg; ///< 代理Widget }; } } #endif ///< PAI_FRAME_WORKFLOWWIDGET_PAIJOBSUMMARYITEM_H