diff --git a/src/plugins/projectexplorer/projecttree.cpp b/src/plugins/projectexplorer/projecttree.cpp index 43710c1a361..3e89539aac1 100644 --- a/src/plugins/projectexplorer/projecttree.cpp +++ b/src/plugins/projectexplorer/projecttree.cpp @@ -32,6 +32,7 @@ #include "nodesvisitor.h" #include +#include #include #include #include @@ -78,11 +79,19 @@ ProjectTree::ProjectTree(QObject *parent) : QObject(parent) this, &ProjectTree::sessionChanged); } +ProjectTree::~ProjectTree() +{ + QTC_ASSERT(s_instance == this, return); + s_instance = nullptr; +} + void ProjectTree::aboutToShutDown() { disconnect(qApp, &QApplication::focusChanged, s_instance, &ProjectTree::focusChanged); s_instance->update(0, 0); + qDeleteAll(s_instance->m_projectTreeWidgets); + QTC_CHECK(s_instance->m_projectTreeWidgets.isEmpty()); } ProjectTree *ProjectTree::instance() diff --git a/src/plugins/projectexplorer/projecttree.h b/src/plugins/projectexplorer/projecttree.h index 2a489958933..cd1ec25ef85 100644 --- a/src/plugins/projectexplorer/projecttree.h +++ b/src/plugins/projectexplorer/projecttree.h @@ -44,6 +44,7 @@ class PROJECTEXPLORER_EXPORT ProjectTree : public QObject Q_OBJECT public: explicit ProjectTree(QObject *parent = nullptr); + ~ProjectTree(); static ProjectTree *instance();