X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Ftreemodel.h;h=f7159fd420189239122d55959dc944f21e5e8987;hp=da1f5fd823291d0f660616c7def3d29962931a9b;hb=c5cbe5eb77fce2ab954a98399a1450803108217b;hpb=e733408e4759473bf38831f498f48a0f2f5e6dc7 diff --git a/src/client/treemodel.h b/src/client/treemodel.h index da1f5fd8..f7159fd4 100644 --- a/src/client/treemodel.h +++ b/src/client/treemodel.h @@ -44,6 +44,11 @@ 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; @@ -58,6 +63,7 @@ public: 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); @@ -69,7 +75,9 @@ public: signals: void dataChanged(int column = -1); void newChild(AbstractTreeItem *); - void childDestroyed(int row); + + void beginRemoveChilds(int firstRow, int lastRow); + void endRemoveChilds(); private slots: void childDestroyed(); @@ -77,7 +85,6 @@ private slots: private: QHash > _childItems; QHash > _childHash; // uint to be compatible to qHash functions FIXME test this - AbstractTreeItem *_parentItem; Qt::ItemFlags _flags; int defaultColumn() const; @@ -93,7 +100,10 @@ class SimpleTreeItem : public AbstractTreeItem { public: SimpleTreeItem(const QList &data, AbstractTreeItem *parent = 0); virtual ~SimpleTreeItem(); + virtual QVariant data(int column, int role) const; + virtual bool setData(int column, const QVariant &value, int role); + virtual int columnCount() const; private: @@ -113,6 +123,8 @@ public: virtual ~PropertyMapItem(); virtual QVariant data(int column, int role) const; + virtual bool setData(int column, const QVariant &value, int role); + virtual int columnCount() const; void appendProperty(const QString &property); @@ -132,7 +144,9 @@ public: TreeModel(const QList &, QObject *parent = 0); virtual ~TreeModel(); - QVariant data(const QModelIndex &index, int role) const; + virtual QVariant data(const QModelIndex &index, int role) const; + virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole); + virtual Qt::ItemFlags flags(const QModelIndex &index) const; QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; @@ -150,8 +164,10 @@ public: private slots: 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);