00001 00023 #ifndef PROPERTY_MODEL_H 00024 #define PROPERTY_MODEL_H 00025 00026 #include <QStandardItemModel> 00027 #include "property_data.h" 00028 #include "module_interface.h" 00029 00031 00036 class PropertyModel : public QAbstractItemModel 00037 { 00038 Q_OBJECT 00039 00040 public slots: 00041 bool createPropertySheet(ModuleInterface*); 00042 00043 public: 00044 PropertyModel(); 00045 ~PropertyModel(); 00046 IProperty* rootProperty() const; 00047 void clear(); 00048 00049 bool setData(const QModelIndex&, const QVariant&, int role = Qt::EditRole); 00050 00051 QVariant data ( const QModelIndex&, int role = Qt::DisplayRole ) const; 00052 QModelIndex index ( int, int, const QModelIndex& parent = QModelIndex() ) const; 00053 QModelIndex parent ( const QModelIndex& index ) const; 00054 int rowCount ( const QModelIndex& parent = QModelIndex() ) const; 00055 int columnCount ( const QModelIndex& parent = QModelIndex() ) const; 00056 00057 QVariant headerData(int, Qt::Orientation, int role = Qt::DisplayRole) const; 00058 Qt::ItemFlags flags(const QModelIndex&) const; 00059 00060 private: 00061 IProperty* m_rootItem; 00062 ModuleInterface* m_module; 00063 }; 00064 #endif