X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fclient%2Ftreemodel.cpp;h=6ab70e62cf79c93474b7882a5a9b100b86d35b02;hb=615c5621f63360ef11c9cc3519c0462d8b5ec85b;hp=000eaaa2fc0fe9553551d72baeaedb98734ab5d5;hpb=42406861fbe570ed1fb45e9da39ff9a0de73c284;p=quassel.git diff --git a/src/client/treemodel.cpp b/src/client/treemodel.cpp index 000eaaa2..6ab70e62 100644 --- a/src/client/treemodel.cpp +++ b/src/client/treemodel.cpp @@ -127,6 +127,10 @@ void AbstractTreeItem::customEvent(QEvent *event) { if(childRow == -1) return; + // since we are called asynchronously we have to recheck if the item in question still has no childs + if(removeEvent->child()->childCount()) + return; + removeChild(childRow); } @@ -459,7 +463,7 @@ void TreeModel::connectItem(AbstractTreeItem *item) { void TreeModel::beginAppendChilds(int firstRow, int lastRow) { AbstractTreeItem *parentItem = qobject_cast(sender()); if(!parentItem) { - qWarning() << "TreeModel::beginAppendChilds(): cannot append Childs to unknown parent"; + qWarning() << "TreeModel::beginAppendChilds(): cannot append Children to unknown parent"; return; } @@ -474,7 +478,7 @@ void TreeModel::beginAppendChilds(int firstRow, int lastRow) { void TreeModel::endAppendChilds() { AbstractTreeItem *parentItem = qobject_cast(sender()); if(!parentItem) { - qWarning() << "TreeModel::endAppendChilds(): cannot append Childs to unknown parent"; + qWarning() << "TreeModel::endAppendChilds(): cannot append Children to unknown parent"; return; } Q_ASSERT(_aboutToRemoveOrInsert); @@ -493,7 +497,7 @@ void TreeModel::endAppendChilds() { void TreeModel::beginRemoveChilds(int firstRow, int lastRow) { AbstractTreeItem *parentItem = qobject_cast(sender()); if(!parentItem) { - qWarning() << "TreeModel::beginRemoveChilds(): cannot append Childs to unknown parent"; + qWarning() << "TreeModel::beginRemoveChilds(): cannot append Children to unknown parent"; return; } @@ -515,7 +519,7 @@ void TreeModel::beginRemoveChilds(int firstRow, int lastRow) { void TreeModel::endRemoveChilds() { AbstractTreeItem *parentItem = qobject_cast(sender()); if(!parentItem) { - qWarning() << "TreeModel::endRemoveChilds(): cannot remove Childs from unknown parent"; + qWarning() << "TreeModel::endRemoveChilds(): cannot remove Children from unknown parent"; return; }