diff --git a/src/plugins/projectexplorer/extracompiler.cpp b/src/plugins/projectexplorer/extracompiler.cpp index 05c6535ec69..59fd6b96759 100644 --- a/src/plugins/projectexplorer/extracompiler.cpp +++ b/src/plugins/projectexplorer/extracompiler.cpp @@ -353,15 +353,12 @@ void ExtraCompiler::setContent(const Utils::FileName &file, const QByteArray &co ExtraCompilerFactory::ExtraCompilerFactory(QObject *parent) : QObject(parent) { + factories->append(this); } -void ExtraCompilerFactory::registerExtraCompilerFactory(ExtraCompilerFactory *factory) +ExtraCompilerFactory::~ExtraCompilerFactory() { - QList *factoryList = factories(); - factoryList->append(factory); - connect(factory, &QObject::destroyed, [factoryList, factory]() { - factoryList->removeAll(factory); - }); + factories->removeAll(this); } QList ExtraCompilerFactory::extraCompilerFactories() diff --git a/src/plugins/projectexplorer/extracompiler.h b/src/plugins/projectexplorer/extracompiler.h index 21efd6b29f4..67cccc60f4d 100644 --- a/src/plugins/projectexplorer/extracompiler.h +++ b/src/plugins/projectexplorer/extracompiler.h @@ -143,6 +143,7 @@ class PROJECTEXPLORER_EXPORT ExtraCompilerFactory : public QObject Q_OBJECT public: explicit ExtraCompilerFactory(QObject *parent = nullptr); + ~ExtraCompilerFactory(); virtual FileType sourceType() const = 0; virtual QString sourceTag() const = 0; @@ -150,7 +151,6 @@ public: virtual ExtraCompiler *create(const Project *project, const Utils::FileName &source, const Utils::FileNameList &targets) = 0; - static void registerExtraCompilerFactory(ExtraCompilerFactory *factory); static QList extraCompilerFactories(); }; diff --git a/src/plugins/qtsupport/qtsupportplugin.cpp b/src/plugins/qtsupport/qtsupportplugin.cpp index 4d2453bbd4a..92e19f1bede 100644 --- a/src/plugins/qtsupport/qtsupportplugin.cpp +++ b/src/plugins/qtsupport/qtsupportplugin.cpp @@ -81,10 +81,8 @@ bool QtSupportPlugin::initialize(const QStringList &arguments, QString *errorMes ProjectExplorer::KitManager::registerKitInformation(new QtKitInformation); - ProjectExplorer::ExtraCompilerFactory::registerExtraCompilerFactory( - new UicGeneratorFactory(this)); - ProjectExplorer::ExtraCompilerFactory::registerExtraCompilerFactory( - new QScxmlcGeneratorFactory(this)); + (void) new UicGeneratorFactory(this); + (void) new QScxmlcGeneratorFactory(this); QtVersionManager::initialized();