ProjectExplorer: Use more concise code to register extra compilers

Saves some line noise and a function.

(void) new Foo(this); is not really a new pattern in Creator code,
but a bit of a new pattern for "registering things".

Change-Id: Ie1bb409ed77bc20833fc07ca14715b9ecbc9bd5d
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
hjk
2017-01-31 17:37:13 +01:00
parent 79e73ea4ee
commit 5b50854e57
3 changed files with 6 additions and 11 deletions

View File

@@ -353,15 +353,12 @@ void ExtraCompiler::setContent(const Utils::FileName &file, const QByteArray &co
ExtraCompilerFactory::ExtraCompilerFactory(QObject *parent) : QObject(parent) ExtraCompilerFactory::ExtraCompilerFactory(QObject *parent) : QObject(parent)
{ {
factories->append(this);
} }
void ExtraCompilerFactory::registerExtraCompilerFactory(ExtraCompilerFactory *factory) ExtraCompilerFactory::~ExtraCompilerFactory()
{ {
QList<ExtraCompilerFactory *> *factoryList = factories(); factories->removeAll(this);
factoryList->append(factory);
connect(factory, &QObject::destroyed, [factoryList, factory]() {
factoryList->removeAll(factory);
});
} }
QList<ExtraCompilerFactory *> ExtraCompilerFactory::extraCompilerFactories() QList<ExtraCompilerFactory *> ExtraCompilerFactory::extraCompilerFactories()

View File

@@ -143,6 +143,7 @@ class PROJECTEXPLORER_EXPORT ExtraCompilerFactory : public QObject
Q_OBJECT Q_OBJECT
public: public:
explicit ExtraCompilerFactory(QObject *parent = nullptr); explicit ExtraCompilerFactory(QObject *parent = nullptr);
~ExtraCompilerFactory();
virtual FileType sourceType() const = 0; virtual FileType sourceType() const = 0;
virtual QString sourceTag() const = 0; virtual QString sourceTag() const = 0;
@@ -150,7 +151,6 @@ public:
virtual ExtraCompiler *create(const Project *project, const Utils::FileName &source, virtual ExtraCompiler *create(const Project *project, const Utils::FileName &source,
const Utils::FileNameList &targets) = 0; const Utils::FileNameList &targets) = 0;
static void registerExtraCompilerFactory(ExtraCompilerFactory *factory);
static QList<ExtraCompilerFactory *> extraCompilerFactories(); static QList<ExtraCompilerFactory *> extraCompilerFactories();
}; };

View File

@@ -81,10 +81,8 @@ bool QtSupportPlugin::initialize(const QStringList &arguments, QString *errorMes
ProjectExplorer::KitManager::registerKitInformation(new QtKitInformation); ProjectExplorer::KitManager::registerKitInformation(new QtKitInformation);
ProjectExplorer::ExtraCompilerFactory::registerExtraCompilerFactory( (void) new UicGeneratorFactory(this);
new UicGeneratorFactory(this)); (void) new QScxmlcGeneratorFactory(this);
ProjectExplorer::ExtraCompilerFactory::registerExtraCompilerFactory(
new QScxmlcGeneratorFactory(this));
QtVersionManager::initialized(); QtVersionManager::initialized();