diff options
author | Ulf Hermann <ulf.hermann@theqtcompany.com> | 2016-03-14 10:58:55 +0100 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@theqtcompany.com> | 2016-03-14 10:55:34 +0000 |
commit | b6c1e58f58658a97dfd11ec150e2fddcec366944 (patch) | |
tree | ec93f0dc7b2022d7a88876c08f6028a7ca09d33f /src/plugins/qtsupport | |
parent | ee729091fdee19261dacb7d037c367eded585788 (diff) | |
download | qt-creator-b6c1e58f58658a97dfd11ec150e2fddcec366944.tar.gz |
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 <orgads@gmail.com>
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
Diffstat (limited to 'src/plugins/qtsupport')
-rw-r--r-- | src/plugins/qtsupport/qscxmlcgenerator.h | 2 | ||||
-rw-r--r-- | src/plugins/qtsupport/qtsupportplugin.cpp | 4 | ||||
-rw-r--r-- | src/plugins/qtsupport/uicgenerator.h | 2 |
3 files changed, 6 insertions, 2 deletions
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; |