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);
}
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;
}
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);
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;
}
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;
}
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();
}
}
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();
}
}