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 TREEMODEL_H
00025 #define TREEMODEL_H
00026
00027 #include <map>
00028 #include <string>
00029
00030 #include <QAbstractItemModel>
00031 #include <QModelIndex>
00032 #include <QVariant>
00033
00034 using namespace std;
00035
00036 class TreeItem;
00037
00038
00039 class TreeModel : public QAbstractItemModel
00040 {
00041 Q_OBJECT
00042
00043 public:
00044 TreeModel(const char* id, QObject *parent = 0);
00045 ~TreeModel();
00046
00047 QVariant data(const QModelIndex &index, int role) const;
00048 Qt::ItemFlags flags(const QModelIndex &index) const;
00049 QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
00050 QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const;
00051 QModelIndex parent(const QModelIndex &index) const;
00052 int rowCount(const QModelIndex &parent = QModelIndex()) const;
00053 int columnCount(const QModelIndex &parent = QModelIndex()) const;
00054 void setupModelData( multimap<string, map<int, string> > );
00055 int getID(const QModelIndex &parent = QModelIndex()) const;
00056 bool removeRows(int position, int rows, const QModelIndex &parent);
00057 QModelIndex indexOfLatestItem(int id, const QModelIndex &parent=QModelIndex());
00058 private:
00059
00060 TreeItem *rootItem;
00061 };
00062
00063 #endif