properly rewind oidentd config file
[quassel.git] / src / client / treemodel.cpp
index 000eaaa..b3f2613 100644 (file)
@@ -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<AbstractTreeItem *>(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<AbstractTreeItem *>(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<AbstractTreeItem *>(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<AbstractTreeItem *>(sender());
   if(!parentItem) {
-    qWarning() << "TreeModel::endRemoveChilds(): cannot remove Childs from unknown parent";
+    qWarning() << "TreeModel::endRemoveChilds(): cannot remove Children from unknown parent";
     return;
   }
 
@@ -546,11 +550,9 @@ void TreeModel::debug_rowsAboutToBeRemoved(const QModelIndex &parent, int start,
   qDebug() << "debug_rowsAboutToBeRemoved" << parent << parentItem << parent.data().toString() << rowCount(parent) << start << end;
 
   QModelIndex child;
-  AbstractTreeItem *childItem;
   for(int i = end; i >= start; i--) {
     child = parent.child(i, 0);
-    childItem = parentItem->child(i);
-    Q_ASSERT(childItem);
+    Q_ASSERT(parentItem->child(i));
     qDebug() << ">>>" << i << child << child.data().toString();
   }
 }
@@ -563,11 +565,9 @@ void TreeModel::debug_rowsInserted(const QModelIndex &parent, int start, int end
   qDebug() << "debug_rowsInserted:" << parent << parentItem << parent.data().toString() << rowCount(parent) << start << end;
 
   QModelIndex child;
-  AbstractTreeItem *childItem;
   for(int i = start; i <= end; i++) {
     child = parent.child(i, 0);
-    childItem = parentItem->child(i);
-    Q_ASSERT(childItem);
+    Q_ASSERT(parentItem->child(i));
     qDebug() << "<<<" << i << child << child.data().toString();
   }
 }