00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __ROOT_MODEL_H
00022 #define __ROOT_MODEL_H
00023
00024 #include <QAbstractItemModel>
00025 #include <QModelIndex>
00026 #include <QVariant>
00027
00028 #include "dbListManager.h"
00029 #include "RootItem.h"
00030 #include "DataClass.h"
00031
00032
00033
00034 class RootModel : public QAbstractItemModel
00035 {
00036 Q_OBJECT
00037
00038 public:
00039
00040 RootModel(QObject *parent = 0);
00041 ~RootModel(){};
00042
00043
00044 virtual QVariant data(const QModelIndex &index, int role) const;
00045 virtual bool setData (const QModelIndex & index
00046 ,const QVariant & value
00047 ,int role = Qt::EditRole);
00048 virtual Qt::ItemFlags flags(const QModelIndex &index) const;
00049 virtual QVariant headerData(int section, Qt::Orientation orientation,
00050 int role = Qt::DisplayRole) const=0;
00051 virtual QModelIndex index(int row, int column,
00052 const QModelIndex &parent = QModelIndex()) const;
00053 virtual QModelIndex parent(const QModelIndex &index) const;
00054 virtual int rowCount(const QModelIndex &parent = QModelIndex()) const;
00055 virtual int columnCount(const QModelIndex &parent = QModelIndex()) const;
00056
00057
00058 virtual inline RootItem * getRootItem(){return rootItem;}
00059 inline RootItem * getRootItem(const QModelIndex &index)const;
00060
00061 virtual bool insertItem (RootItem * inst, QModelIndex & index, int posn);
00062 void sort(CompareRI compare, DataClass * dcObj);
00063 virtual bool deleteItem (DataClass * dcObj);
00064
00065
00066 protected:
00067 RootItem *rootItem;
00068
00069 protected:
00070 friend class dbListManager;
00071 void clearData(RootItem * item);
00072 };
00073
00074 inline RootItem * RootModel::getRootItem(const QModelIndex &index)const
00075 {
00076 return static_cast<RootItem*>(index.internalPointer());
00077 }
00078
00079 #endif