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
|