X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Ftreemodel.h;h=6dd6ed8b6a99445239fe3e4e95110a54a146ba03;hp=5ff823ac41bcb3d88ddd8acdd3b6ece0a1e46774;hb=e8a5c49548759045b49c208c250c6f61c7fdfcd5;hpb=9d4fbba1e7390f7cbc60aed962bf9d36ac111263 diff --git a/src/client/treemodel.h b/src/client/treemodel.h index 5ff823ac..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,24 +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; }; @@ -125,6 +118,7 @@ public: virtual QVariant data(int column, int role) const; virtual bool setData(int column, const QVariant &value, int role); + virtual QString toolTip(int column) const { Q_UNUSED(column) return QString(); } virtual int columnCount() const; void appendProperty(const QString &property); @@ -141,6 +135,11 @@ class TreeModel : public QAbstractItemModel { Q_OBJECT public: + enum myRoles { + SortRole = Qt::UserRole, + UserRole + }; + TreeModel(const QList &, QObject *parent = 0); virtual ~TreeModel(); @@ -152,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; @@ -164,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: @@ -185,8 +184,13 @@ private: }; ChildStatus _childStatus; int _aboutToRemoveOrInsert; - // QLinkedList _childStatus; +private slots: + void debug_rowsAboutToBeInserted(const QModelIndex &parent, int start, int end); + 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