summaryrefslogtreecommitdiff
path: root/src/plugins/qtsupport
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@theqtcompany.com>2016-03-14 10:58:55 +0100
committerUlf Hermann <ulf.hermann@theqtcompany.com>2016-03-14 10:55:34 +0000
commitb6c1e58f58658a97dfd11ec150e2fddcec366944 (patch)
treeec93f0dc7b2022d7a88876c08f6028a7ca09d33f /src/plugins/qtsupport
parentee729091fdee19261dacb7d037c367eded585788 (diff)
downloadqt-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.h2
-rw-r--r--src/plugins/qtsupport/qtsupportplugin.cpp4
-rw-r--r--src/plugins/qtsupport/uicgenerator.h2
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;