165 lines
4.7 KiB
C++
165 lines
4.7 KiB
C++
/**
|
||
* @file PaiInfoEditor.h
|
||
* @brief 该类代表了工作流参数面板上每个参数的编辑器,除了编辑器本身外还包含了错误提示和Loading动画
|
||
* @date 2011-10-25
|
||
* @Author dev
|
||
*/
|
||
|
||
#ifndef PAI_FRAME_WORKFLOWVIEW_PAIINFOEDITOR_H
|
||
#define PAI_FRAME_WORKFLOWVIEW_PAIINFOEDITOR_H
|
||
|
||
#include <QFrame>
|
||
|
||
#include "ParameterProperty.h"
|
||
#include "PaiToolButton.h"
|
||
class QPushButton;
|
||
class QLabel;
|
||
class QMovie;
|
||
class QModelIndex;
|
||
|
||
namespace pai {
|
||
namespace gui {
|
||
class PaiLabel;
|
||
}
|
||
namespace graphics2d {
|
||
|
||
class ParameterProperty;
|
||
/**
|
||
* @class CPaiInfoEditor
|
||
* @brief 该类代表了工作流参数面板上每个参数的编辑器,除了编辑器本身外还包含了错误提示和Loading动画
|
||
*/
|
||
class CPaiInfoEditor : public QFrame
|
||
{
|
||
Q_OBJECT
|
||
public:
|
||
/**
|
||
*@brief 将ToolTip的内容截短换行
|
||
*/
|
||
static QString GetToolTipDescription(QString description);
|
||
/**
|
||
* @brief 构造函数
|
||
* @param pParameterProperty 与该编辑器相关联的参数面板树节点
|
||
* @param parent 父控件句柄
|
||
*/
|
||
CPaiInfoEditor(ParameterProperty* pParameterProperty,QWidget *parent=0,const QString& strDisplayName="");
|
||
/**
|
||
* @brief 析构函数
|
||
*/
|
||
virtual ~CPaiInfoEditor();
|
||
|
||
|
||
/**
|
||
* @brief 得到内部的编辑器句柄,不同参数类型对应不同的编辑器
|
||
*/
|
||
QWidget* GetInternalEditor() const;
|
||
/**
|
||
* @brief 是否有删除按钮
|
||
*/
|
||
bool HasDeleteButton() const;
|
||
/*
|
||
* @brief 实现sizeHint用来获得设计的高度
|
||
*/
|
||
virtual QSize sizeHint() const;
|
||
public slots:
|
||
/**
|
||
* @brief 相应模块树数据改变
|
||
* @param dataIndex 树模型节点
|
||
* @param strPropertyName 改变的属性名
|
||
* @param varPropertyValue 改变的属性值
|
||
*/
|
||
void slotDataPropertyChanged(const QModelIndex& dataIndex,const QString& strPropertyName,const QVariant& varPropertyValue);
|
||
|
||
void slotUpdateHideShowItemsIcon(bool hide);
|
||
|
||
protected:
|
||
/**
|
||
* @brief 实现该函数以捕获focusin focuseOut事件
|
||
*/
|
||
bool eventFilter(QObject *obj, QEvent *event);
|
||
|
||
private:
|
||
/**
|
||
* @brief 通过当前节点得到对应参数项的父亲参数项(注意父亲参数项必须是个数组元素项)的参数项ID
|
||
* @param pParameterProperty 当前节点
|
||
*/
|
||
QString _GetDeleteItemID(ParameterProperty* pParameterProperty) const;
|
||
/**
|
||
* @brief 根据参数控件类型创建相应的控件
|
||
* @return 类型枚举对应的控件
|
||
*/
|
||
QWidget* CreateInternalEditor();
|
||
|
||
private slots:
|
||
/**
|
||
* @brief 显示Loading动画
|
||
*/
|
||
void slotShowLoadingAnimate();
|
||
/**
|
||
* @brief 停止Loading动画
|
||
*/
|
||
void slotStopAnimate();
|
||
/**
|
||
* @brief 设置错误信息并显示
|
||
* @param errorMessage 错误信息内容
|
||
*/
|
||
void slotSetErrorMessage(const QString& errorMessage);
|
||
/**
|
||
* @brief 响应删除按钮的点击事件并发送信号
|
||
*/
|
||
void slotOnDeleteButtonClick();
|
||
/**
|
||
* @brief 响应显示隐藏按钮的点击事件并发送信号
|
||
*/
|
||
void slotOnHideShowButtonClick();
|
||
|
||
/**
|
||
* @brief 响应显示隐藏非重要参数按钮的点击事件并发送信号
|
||
*/
|
||
void slotOnHideShowOptionalButtonClick();
|
||
/**
|
||
* @brief 显示或隐藏删除按钮
|
||
* @param bShow true:显示删除按钮 false:隐藏删除按钮
|
||
*/
|
||
void slotShowDeleteButton(bool bShow);
|
||
|
||
private:
|
||
ParameterProperty* m_pParameterProperty;//相应的参数面板节点
|
||
pai::gui::PaiLabel *m_label;//错误信息提示区
|
||
QWidget* m_pInternalEditor;//内部的编辑器句柄
|
||
QPushButton *m_pMovieLabel;//Loading动画显示区
|
||
QMovie *m_pMovie;//Loading动画
|
||
bool HideBrothers;
|
||
//pai::gui::PaiToolButton* pHideShowButton ;
|
||
bool HideOptionals;
|
||
pai::gui::PaiToolButton* pHideShowOptionalButton ;
|
||
signals:
|
||
/**
|
||
* @brief 当编辑器附带一个删除按钮时,一旦用户点击了删除按钮,则触发此信号
|
||
* @param strDeleteItemID 待删除的参数项ID
|
||
*/
|
||
void signalDeleteItem(const QString& strDeleteItemID);
|
||
|
||
/**
|
||
* @brief 当编辑器附带一个隐藏显示按钮时,一旦用户点击了该按钮,则触发此信号
|
||
* @param strDeleteItemID 待隐藏的参数项ID
|
||
*/
|
||
void signalHideShowItems(const QString& strDeleteItemID,bool hideBrothers);
|
||
/**
|
||
* @brief 当编辑器附带一个隐藏显示按钮时,一旦用户点击了该按钮,则触发此信号
|
||
* @param strDeleteItemID 待隐藏的参数项ID
|
||
*/
|
||
void signalHideShowOptionalItems(const QString& strDeleteItemID,bool hide);
|
||
/**
|
||
* @brief 内部的失去焦点信号
|
||
*/
|
||
void _signalInternalEditorLostFocus(const QString &str);
|
||
/**
|
||
*@brief QLineEditor 输入 + - 号失去焦点时发送该信号
|
||
*/
|
||
void editFocuseOut();
|
||
};
|
||
|
||
}
|
||
}
|
||
#endif
|