insilmaril@725: #ifndef TREEMODEL_H insilmaril@725: #define TREEMODEL_H insilmaril@725: insilmaril@725: #include insilmaril@725: #include insilmaril@725: #include insilmaril@725: insilmaril@726: insilmaril@750: class BranchItem; insilmaril@725: class TreeItem; insilmaril@726: class LinkableMapObj; insilmaril@725: insilmaril@725: class TreeModel : public QAbstractItemModel insilmaril@725: { insilmaril@725: Q_OBJECT insilmaril@725: insilmaril@725: public: insilmaril@725: TreeModel(QObject *parent = 0); insilmaril@725: ~TreeModel(); insilmaril@725: insilmaril@725: QVariant data(const QModelIndex &index, int role) const; insilmaril@725: Qt::ItemFlags flags(const QModelIndex &index) const; insilmaril@725: QVariant headerData(int section, Qt::Orientation orientation, insilmaril@725: int role = Qt::DisplayRole) const; insilmaril@788: QModelIndex index (TreeItem* ti); insilmaril@725: QModelIndex index(int row, int column, insilmaril@725: const QModelIndex &parent = QModelIndex()) const; insilmaril@725: QModelIndex parent(const QModelIndex &index) const; insilmaril@725: int rowCount(const QModelIndex &parent = QModelIndex()) const; insilmaril@725: int columnCount(const QModelIndex &parent = QModelIndex()) const; insilmaril@725: insilmaril@804: BranchItem* nextBranch (BranchItem* ¤t, BranchItem* &previous, bool deepLevelsFirst=true, BranchItem* start=NULL); insilmaril@726: insilmaril@727: bool removeRows ( int row, int count, insilmaril@727: const QModelIndex & parent = QModelIndex() ); insilmaril@727: insilmaril@745: TreeItem* getItem (const QModelIndex &index) const; insilmaril@793: BranchItem* getRootItem(); insilmaril@725: insilmaril@754: insilmaril@729: protected: insilmaril@793: BranchItem *rootItem; insilmaril@725: }; insilmaril@725: insilmaril@725: #endif