X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Ftreemodel.h;h=6439233ffdd2e4c648da749c52ad3e5b2183bb7f;hp=52ab5c5921397449971f6f1547c71e49dc4e6d1b;hb=72d25daa2c6cc00c17e79f756ad70bc00b41f9a8;hpb=8699dd758516d0ded076811e8ea656adc95e69d0 diff --git a/src/client/treemodel.h b/src/client/treemodel.h index 52ab5c59..6439233f 100644 --- a/src/client/treemodel.h +++ b/src/client/treemodel.h @@ -32,7 +32,7 @@ *****************************************/ class AbstractTreeItem : public QObject { Q_OBJECT - Q_PROPERTY(uint id READ id) + Q_PROPERTY(quint64 id READ id) public: AbstractTreeItem(AbstractTreeItem *parent = 0); @@ -44,13 +44,18 @@ public: void removeChild(int column, int row); void removeChild(int row); + void removeChildById(int column, const quint64 &id); + void removeChildById(const quint64 &id); + + void removeAllChilds(); + virtual quint64 id() const; AbstractTreeItem *child(int column, int row) const; AbstractTreeItem *child(int row) const; - AbstractTreeItem *childById(int column, const uint &id) const; - AbstractTreeItem *childById(const uint &id) const; + AbstractTreeItem *childById(int column, const quint64 &id) const; + AbstractTreeItem *childById(const quint64 &id) const; int childCount(int column) const; int childCount() const; @@ -64,20 +69,21 @@ public: int column() const; int row() const; - AbstractTreeItem *parent(); + AbstractTreeItem *parent() const; signals: - void dataChanged(int column); + void dataChanged(int column = -1); void newChild(AbstractTreeItem *); - void childDestroyed(int row); + + void beginRemoveChilds(int firstRow, int lastRow); + void endRemoveChilds(); private slots: void childDestroyed(); private: QHash > _childItems; - QHash > _childHash; // uint to be compatible to qHash functions - AbstractTreeItem *_parentItem; + QHash > _childHash; // uint to be compatible to qHash functions FIXME test this Qt::ItemFlags _flags; int defaultColumn() const; @@ -137,7 +143,7 @@ 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(uint id, 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; @@ -148,10 +154,12 @@ public: virtual void clear(); private slots: - void itemDataChanged(int column); + void itemDataChanged(int column = -1); void newChild(AbstractTreeItem *child); - void childDestroyed(int row); + void beginRemoveChilds(int firstRow, int lastRow); + void endRemoveChilds(); + protected: void appendChild(AbstractTreeItem *parent, AbstractTreeItem *child);