PropertyModel.h
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 #ifndef PROPERTYMODEL_H
00025 #define PROPERTYMODEL_H
00026
00027 #include <QAbstractItemModel>
00028 #include <QStringList>
00029 #include <vector>
00030 #include <map>
00031
00032 namespace App {
00033 class Property;
00034 }
00035 namespace Gui {
00036 namespace PropertyEditor {
00037
00038 class PropertyItem;
00039 class PropertyModel : public QAbstractItemModel
00040 {
00041 Q_OBJECT
00042
00043 public:
00044 PropertyModel(QObject* parent);
00045 virtual ~PropertyModel();
00046
00047 QModelIndex buddy (const QModelIndex & index) const;
00048 int columnCount (const QModelIndex & parent = QModelIndex()) const;
00049 QVariant data (const QModelIndex & index, int role = Qt::DisplayRole) const;
00050 bool setData (const QModelIndex & idx, const QVariant & value, int role);
00051 Qt::ItemFlags flags(const QModelIndex &index) const;
00052 QModelIndex index (int row, int column, const QModelIndex & parent = QModelIndex()) const;
00053 QModelIndex parent (const QModelIndex & index) const;
00054 int rowCount (const QModelIndex & parent = QModelIndex()) const;
00055 QVariant headerData (int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
00056 bool setHeaderData (int section, Qt::Orientation orientation, const QVariant & value, int role = Qt::EditRole);
00057 void buildUp(const std::map<std::string, std::vector<App::Property*> >& props);
00058 QStringList propertyPathFromIndex(const QModelIndex&) const;
00059 QModelIndex propertyIndexFromPath(const QStringList&) const;
00060
00061 private:
00062 PropertyItem *rootItem;
00063 };
00064
00065 }
00066 }
00067
00068
00069 #endif //PROPERTYMODEL_H