X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fclient%2Ftreemodel.h;h=8a5e3ac9be272ac9f5c57743a2284beaae942636;hb=ef97dad874c30d7e0586b3dcb98eed15d8987382;hp=3a1c144e08462b1601f74c658564c5083a1d3424;hpb=56607f81246f04db3a0e71c9a8757d7f75d6cfcf;p=quassel.git diff --git a/src/client/treemodel.h b/src/client/treemodel.h index 3a1c144e..8a5e3ac9 100644 --- a/src/client/treemodel.h +++ b/src/client/treemodel.h @@ -18,13 +18,12 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#ifndef _TREEMODEL_H_ -#define _TREEMODEL_H_ +#ifndef TREEMODEL_H +#define TREEMODEL_H #include #include #include -#include #include #include // needed for debug @@ -34,7 +33,6 @@ *****************************************/ class AbstractTreeItem : public QObject { Q_OBJECT - Q_PROPERTY(quint64 id READ id) public: AbstractTreeItem(AbstractTreeItem *parent = 0); @@ -44,26 +42,25 @@ public: bool newChilds(const QList &items); bool removeChild(int row); - bool removeChildById(const quint64 &id); + inline bool removeChild(AbstractTreeItem *child) { return removeChild(child->row()); } void removeAllChilds(); - virtual quint64 id() const; - + bool reParent(AbstractTreeItem *newParent); + AbstractTreeItem *child(int row) const; - AbstractTreeItem *childById(const quint64 &id) const; - int childCount() const; + int childCount(int column = 0) const; virtual int columnCount() const = 0; virtual QVariant data(int column, int role) const = 0; virtual bool setData(int column, const QVariant &value, int role) = 0; - virtual Qt::ItemFlags flags() const; - virtual void setFlags(Qt::ItemFlags); + virtual inline Qt::ItemFlags flags() const { return _flags; } + virtual inline void setFlags(Qt::ItemFlags flags) { _flags = flags; } int row() const; - AbstractTreeItem *parent() const; + inline AbstractTreeItem *parent() const { return qobject_cast(QObject::parent()); } void dumpChildList(); @@ -133,6 +130,11 @@ class TreeModel : public QAbstractItemModel { Q_OBJECT public: + enum myRoles { + SortRole = Qt::UserRole, + UserRole + }; + TreeModel(const QList &, QObject *parent = 0); virtual ~TreeModel(); @@ -143,7 +145,6 @@ public: QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const; - QModelIndex indexById(quint64 id, const QModelIndex &parent = QModelIndex()) const; QModelIndex indexByItem(AbstractTreeItem *item) const; QModelIndex parent(const QModelIndex &index) const; @@ -183,6 +184,7 @@ private slots: void debug_rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end); void debug_rowsInserted(const QModelIndex &parent, int start, int end); void debug_rowsRemoved(const QModelIndex &parent, int start, int end); + void debug_dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight); }; #endif