X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Ftreemodel.cpp;h=4fd26873fc95ba894ad6cc6de0991ef175ae2974;hp=5c23063dd3c7470d9600a827d93c70d32b94c7c0;hb=197cf9c0d5e227dd475124515f6e6005cf87ac8e;hpb=8e6d858eda59a0ab4d8925b2337fb317f2639ab7 diff --git a/src/client/treemodel.cpp b/src/client/treemodel.cpp index 5c23063d..4fd26873 100644 --- a/src/client/treemodel.cpp +++ b/src/client/treemodel.cpp @@ -29,13 +29,11 @@ *****************************************/ 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);