internal stuff only: AbstractTreeItems can now commit suicide if they are childless
[quassel.git] / src / client / treemodel.cpp
index 5c23063..4fd2687 100644 (file)
  *****************************************/
 AbstractTreeItem::AbstractTreeItem(AbstractTreeItem *parent)
   : QObject(parent),
-    _flags(Qt::ItemIsSelectable | Qt::ItemIsEnabled)
+    _flags(Qt::ItemIsSelectable | Qt::ItemIsEnabled),
+    _treeItemFlags(0)
 {
 }
 
-AbstractTreeItem::~AbstractTreeItem() {
-}
-
 bool AbstractTreeItem::newChild(AbstractTreeItem *item) {
   int newRow = childCount();
   emit beginAppendChilds(newRow, newRow);
@@ -68,6 +66,8 @@ bool AbstractTreeItem::removeChild(int row) {
   treeitem->deleteLater();
   emit endRemoveChilds();
 
+  checkForDeletion();
+  
   return true;
 }
 
@@ -96,6 +96,8 @@ void AbstractTreeItem::removeAllChilds() {
     child->deleteLater();
   }
   emit endRemoveChilds();
+
+  checkForDeletion();
 }
 
 bool AbstractTreeItem::reParent(AbstractTreeItem *newParent) {
@@ -114,6 +116,8 @@ bool AbstractTreeItem::reParent(AbstractTreeItem *newParent) {
   parent()->_childItems.removeAt(oldRow);
   emit parent()->endRemoveChilds();
 
+  parent()->checkForDeletion();
+
   setParent(newParent);
 
   bool success = newParent->newChild(this);