From b6c1e58f58658a97dfd11ec150e2fddcec366944 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Mon, 14 Mar 2016 10:58:55 +0100 Subject: ExtraCompiler: Parent extra compilers to plugins Previously the extra compilers were never destructed. As any plugin that registers an extra compiler factory has to depend on ProjectExplorer, it will delete its factory before ProjectExplorer is unloaded. So, removing the extra compiler from the list on destroyed() is safe. Change-Id: I22fbe662a5704c0294512b8774acb85745c1cbe5 Reviewed-by: Orgad Shaneh Reviewed-by: Tobias Hunger --- src/plugins/qtsupport/qscxmlcgenerator.h | 2 ++ src/plugins/qtsupport/qtsupportplugin.cpp | 4 ++-- src/plugins/qtsupport/uicgenerator.h | 2 ++ 3 files changed, 6 insertions(+), 2 deletions(-) (limited to 'src/plugins/qtsupport') diff --git a/src/plugins/qtsupport/qscxmlcgenerator.h b/src/plugins/qtsupport/qscxmlcgenerator.h index cb375999c6..1c52f0410d 100644 --- a/src/plugins/qtsupport/qscxmlcgenerator.h +++ b/src/plugins/qtsupport/qscxmlcgenerator.h @@ -58,6 +58,8 @@ class QScxmlcGeneratorFactory : public ProjectExplorer::ExtraCompilerFactory { Q_OBJECT public: + QScxmlcGeneratorFactory(QObject *parent = 0) : ExtraCompilerFactory(parent) {} + ProjectExplorer::FileType sourceType() const override; QString sourceTag() const override; diff --git a/src/plugins/qtsupport/qtsupportplugin.cpp b/src/plugins/qtsupport/qtsupportplugin.cpp index cc2b1ae3cc..279776fdf1 100644 --- a/src/plugins/qtsupport/qtsupportplugin.cpp +++ b/src/plugins/qtsupport/qtsupportplugin.cpp @@ -89,9 +89,9 @@ bool QtSupportPlugin::initialize(const QStringList &arguments, QString *errorMes ProjectExplorer::KitManager::registerKitInformation(new QtKitInformation); ProjectExplorer::ExtraCompilerFactory::registerExtraCompilerFactory( - new UicGeneratorFactory); + new UicGeneratorFactory(this)); ProjectExplorer::ExtraCompilerFactory::registerExtraCompilerFactory( - new QScxmlcGeneratorFactory); + new QScxmlcGeneratorFactory(this)); QtVersionManager::initialized(); diff --git a/src/plugins/qtsupport/uicgenerator.h b/src/plugins/qtsupport/uicgenerator.h index e51281606e..21fd09e12b 100644 --- a/src/plugins/qtsupport/uicgenerator.h +++ b/src/plugins/qtsupport/uicgenerator.h @@ -50,6 +50,8 @@ class UicGeneratorFactory : public ProjectExplorer::ExtraCompilerFactory { Q_OBJECT public: + UicGeneratorFactory(QObject *parent = 0) : ExtraCompilerFactory(parent) {} + ProjectExplorer::FileType sourceType() const override; QString sourceTag() const override; -- cgit v1.2.1