X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Ftreemodel.h;h=6b1d33c819e68461d736df26a2f85f37095c982e;hp=cc602de77e3b26380e3ca178c3885292bb52ee6e;hb=ed2415135359b4f8a3f75f2634e028500c08c1fe;hpb=197cf9c0d5e227dd475124515f6e6005cf87ac8e diff --git a/src/client/treemodel.h b/src/client/treemodel.h index cc602de7..6b1d33c8 100644 --- a/src/client/treemodel.h +++ b/src/client/treemodel.h @@ -39,7 +39,7 @@ public: NoTreeItemFlag = 0x00, DeleteOnLastChildRemoved = 0x01 }; - Q_DECLARE_FLAGS(TreeItemFlags, TreeItemFlag); + Q_DECLARE_FLAGS(TreeItemFlags, TreeItemFlag) AbstractTreeItem(AbstractTreeItem *parent = 0); @@ -79,13 +79,17 @@ signals: void beginRemoveChilds(int firstRow, int lastRow); void endRemoveChilds(); - + +protected: + void customEvent(QEvent *event); + private: QList _childItems; Qt::ItemFlags _flags; TreeItemFlags _treeItemFlags; - inline void checkForDeletion() { if(treeItemFlags() & DeleteOnLastChildRemoved && childCount() == 0) parent()->removeChild(this); } + void removeChildLater(AbstractTreeItem *child); + inline void checkForDeletion() { if(treeItemFlags() & DeleteOnLastChildRemoved && childCount() == 0) parent()->removeChildLater(this); } };