X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Ftreemodel.h;h=6dd6ed8b6a99445239fe3e4e95110a54a146ba03;hp=6f2575c08f86e637fb626fb1977f29784eb2f868;hb=e8a5c49548759045b49c208c250c6f61c7fdfcd5;hpb=e2e5327ccade6baf433598b1b25dfe99cb360028 diff --git a/src/client/treemodel.h b/src/client/treemodel.h index 6f2575c0..6dd6ed8b 100644 --- a/src/client/treemodel.h +++ b/src/client/treemodel.h @@ -40,27 +40,21 @@ public: AbstractTreeItem(AbstractTreeItem *parent = 0); virtual ~AbstractTreeItem(); - bool newChild(int column, AbstractTreeItem *child); bool newChild(AbstractTreeItem *child); - - bool removeChild(int column, int row); - bool removeChild(int row); + bool newChilds(const QList &items); - bool removeChildById(int column, const quint64 &id); + bool removeChild(int row); bool removeChildById(const quint64 &id); - void removeAllChilds(); virtual quint64 id() const; - AbstractTreeItem *child(int column, int row) const; + bool reParent(AbstractTreeItem *newParent); + AbstractTreeItem *child(int row) const; - - AbstractTreeItem *childById(int column, const quint64 &id) const; AbstractTreeItem *childById(const quint64 &id) const; - int childCount(int column) const; - int childCount() const; + int childCount(int column = 0) const; virtual int columnCount() const = 0; @@ -70,26 +64,23 @@ public: virtual Qt::ItemFlags flags() const; virtual void setFlags(Qt::ItemFlags); - int column() const; int row() const; AbstractTreeItem *parent() const; void dumpChildList(); - + signals: void dataChanged(int column = -1); - void beginAppendChilds(int column, int firstRow, int lastRow); + void beginAppendChilds(int firstRow, int lastRow); void endAppendChilds(); - void beginRemoveChilds(int column, int firstRow, int lastRow); + void beginRemoveChilds(int firstRow, int lastRow); void endRemoveChilds(); private: - QHash > _childItems; + QList _childItems; Qt::ItemFlags _flags; - - int defaultColumn() const; }; @@ -144,6 +135,11 @@ class TreeModel : public QAbstractItemModel { Q_OBJECT public: + enum myRoles { + SortRole = Qt::UserRole, + UserRole + }; + TreeModel(const QList &, QObject *parent = 0); virtual ~TreeModel(); @@ -155,7 +151,7 @@ public: QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const; QModelIndex indexById(quint64 id, const QModelIndex &parent = QModelIndex()) const; - QModelIndex indexByItem(AbstractTreeItem *item, int column = 0) const; + QModelIndex indexByItem(AbstractTreeItem *item) const; QModelIndex parent(const QModelIndex &index) const; @@ -167,10 +163,10 @@ public: private slots: void itemDataChanged(int column = -1); - void beginAppendChilds(int column, int firstRow, int lastRow); + void beginAppendChilds(int firstRow, int lastRow); void endAppendChilds(); - void beginRemoveChilds(int column, int firstRow, int lastRow); + void beginRemoveChilds(int firstRow, int lastRow); void endRemoveChilds(); protected: @@ -194,6 +190,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