Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef PCL_MODELER_PARAMETER_DIALOG_H_
00037 #define PCL_MODELER_PARAMETER_DIALOG_H_
00038
00039 #include <pcl/apps/modeler/qt.h>
00040
00041 namespace pcl
00042 {
00043 namespace modeler
00044 {
00045 class Parameter;
00046
00047 class ParameterModel: public QStandardItemModel
00048 {
00049 public:
00050 ParameterModel(QObject * parent = 0) : QStandardItemModel(parent){}
00051 ParameterModel(int rows, int columns, QObject * parent = 0) : QStandardItemModel(rows, columns, parent){}
00052 ~ParameterModel() {}
00053
00054 Qt::ItemFlags
00055 flags ( const QModelIndex & index ) const
00056 {
00057 return (index.column() == 0)?(Qt::ItemIsEnabled | Qt::ItemIsSelectable):QStandardItemModel::flags(index);
00058 }
00059 };
00060
00061 class ParameterDialog : public QDialog
00062 {
00063 Q_OBJECT
00064 public:
00065 ParameterDialog(const std::string& title, QWidget* parent=0);
00066 ~ParameterDialog(void){}
00067
00068 void
00069 addParameter(Parameter* parameter);
00070
00071 virtual int
00072 exec();
00073
00074 protected:
00075 std::map<std::string, Parameter*> name_parameter_map_;
00076 ParameterModel* parameter_model_;
00077
00078 protected slots:
00079 void
00080 reset();
00081 };
00082
00083 class ParameterDelegate : public QStyledItemDelegate
00084 {
00085 Q_OBJECT
00086 public:
00087 ParameterDelegate(std::map<std::string, Parameter*>& parameterMap, QObject *parent = 0);
00088
00089 QWidget *
00090 createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const;
00091
00092 void
00093 setEditorData(QWidget *editor, const QModelIndex &index) const;
00094
00095 void
00096 setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const;
00097
00098 void
00099 updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const;
00100
00101 protected:
00102 void
00103 initStyleOption(QStyleOptionViewItem *option, const QModelIndex &index) const;
00104
00105 private:
00106 Parameter*
00107 getCurrentParameter(const QModelIndex &index) const;
00108
00109 std::map<std::string, Parameter*>& parameter_map_;
00110 };
00111
00112 }
00113 }
00114
00115 #endif // PCL_MODELER_PARAMETER_DIALOG_H_