forked from qt-creator/qt-creator
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:
@@ -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<ExtraCompilerFactory *> *factoryList = factories();
|
||||
factoryList->append(factory);
|
||||
connect(factory, &QObject::destroyed, [factoryList, factory]() {
|
||||
factoryList->removeAll(factory);
|
||||
});
|
||||
factories->removeAll(this);
|
||||
}
|
||||
|
||||
QList<ExtraCompilerFactory *> ExtraCompilerFactory::extraCompilerFactories()
|
||||
|
||||
@@ -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<ExtraCompilerFactory *> extraCompilerFactories();
|
||||
};
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user