ProjectNodes: Make FolderNode::replaceSubtree safer

Make it safe for an existing note to replace itself.

Change-Id: I8ce04ea45cb851c814b9efbc7d8490c5fb44150e
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Tobias Hunger
2017-05-15 13:02:36 +02:00
parent 03ca6a9172
commit 6dc6eb9ad0

View File

@@ -45,6 +45,7 @@
#include <QDir> #include <QDir>
#include <QIcon> #include <QIcon>
#include <QStyle> #include <QStyle>
#include <QTimer>
#include <memory> #include <memory>
@@ -610,7 +611,7 @@ bool FolderNode::replaceSubtree(Node *oldNode, Node *newNode)
} else { } else {
removeNode(oldNode); // Happens e.g. when project is shutting down removeNode(oldNode); // Happens e.g. when project is shutting down
} }
delete oldNode; QTimer::singleShot(0, [oldNode]() { delete oldNode; });
} }
ProjectTree::emitSubtreeChanged(this); ProjectTree::emitSubtreeChanged(this);
return true; return true;