+void AbstractTreeItem::removeAllChilds() {
+ emit beginRemoveChilds(0, childCount() - 1);
+
+ AbstractTreeItem *child;
+ foreach(int key, _childItems.keys()) {
+ QList<AbstractTreeItem *>::iterator iter = _childItems[key].begin();
+ while(iter != _childItems[key].end()) {
+ child = *iter;
+ iter = _childItems[key].erase(iter);
+ disconnect(child, 0, this, 0);
+ child->removeAllChilds();
+ child->deleteLater();
+ }
+ }
+ emit endRemoveChilds();
+}
+