/***************************************************************************
- * Copyright (C) 2005-08 by the Quassel Project *
+ * Copyright (C) 2005-09 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
NoTreeItemFlag = 0x00,
DeleteOnLastChildRemoved = 0x01
};
- Q_DECLARE_FLAGS(TreeItemFlags, TreeItemFlag);
+ Q_DECLARE_FLAGS(TreeItemFlags, TreeItemFlag)
AbstractTreeItem(AbstractTreeItem *parent = 0);
void beginRemoveChilds(int firstRow, int lastRow);
void endRemoveChilds();
-
+
+protected:
+ void customEvent(QEvent *event);
+
private:
QList<AbstractTreeItem *> _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); }
};