ProjectExplorer: Replace some KitManager::onLoaded() connections

... by direct calls. More direct, and less use of QObject-ness of
the KitAspectFactories.

Change-Id: I7487875d95752b681475248ca0e5494d640e064e
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
hjk
2023-08-18 14:12:19 +02:00
parent 2f34487300
commit 60bdb55fe5
5 changed files with 30 additions and 36 deletions

View File

@@ -330,6 +330,7 @@ class ToolChainKitAspectFactory : public KitAspectFactory
public: public:
ToolChainKitAspectFactory(); ToolChainKitAspectFactory();
private:
Tasks validate(const Kit *k) const override; Tasks validate(const Kit *k) const override;
void upgrade(Kit *k) override; void upgrade(Kit *k) override;
void fix(Kit *k) override; void fix(Kit *k) override;
@@ -348,8 +349,8 @@ public:
QList<OutputLineParser *> createOutputParsers(const Kit *k) const override; QList<OutputLineParser *> createOutputParsers(const Kit *k) const override;
QSet<Id> availableFeatures(const Kit *k) const override; QSet<Id> availableFeatures(const Kit *k) const override;
private: void onKitsLoaded() override;
void kitsWereLoaded();
void toolChainUpdated(ToolChain *tc); void toolChainUpdated(ToolChain *tc);
void toolChainRemoved(ToolChain *tc); void toolChainRemoved(ToolChain *tc);
}; };
@@ -363,9 +364,6 @@ ToolChainKitAspectFactory::ToolChainKitAspectFactory()
"Make sure the compiler will produce binaries compatible " "Make sure the compiler will produce binaries compatible "
"with the target device, Qt version and other libraries used.")); "with the target device, Qt version and other libraries used."));
setPriority(30000); setPriority(30000);
connect(KitManager::instance(), &KitManager::kitsLoaded,
this, &ToolChainKitAspectFactory::kitsWereLoaded);
} }
// language id -> tool chain id // language id -> tool chain id
@@ -765,10 +763,9 @@ QString ToolChainKitAspect::msgNoToolChainInTarget()
return Tr::tr("No compiler set in kit."); return Tr::tr("No compiler set in kit.");
} }
void ToolChainKitAspectFactory::kitsWereLoaded() void ToolChainKitAspectFactory::onKitsLoaded()
{ {
const QList<Kit *> kits = KitManager::kits(); for (Kit *k : KitManager::kits())
for (Kit *k : kits)
fix(k); fix(k);
connect(ToolChainManager::instance(), &ToolChainManager::toolChainRemoved, connect(ToolChainManager::instance(), &ToolChainManager::toolChainRemoved,
@@ -788,8 +785,7 @@ void ToolChainKitAspectFactory::toolChainUpdated(ToolChain *tc)
void ToolChainKitAspectFactory::toolChainRemoved(ToolChain *tc) void ToolChainKitAspectFactory::toolChainRemoved(ToolChain *tc)
{ {
Q_UNUSED(tc) Q_UNUSED(tc)
const QList<Kit *> kits = KitManager::kits(); for (Kit *k : KitManager::kits())
for (Kit *k : kits)
fix(k); fix(k);
} }
@@ -1013,6 +1009,7 @@ class DeviceKitAspectFactory : public KitAspectFactory
public: public:
DeviceKitAspectFactory(); DeviceKitAspectFactory();
private:
Tasks validate(const Kit *k) const override; Tasks validate(const Kit *k) const override;
void fix(Kit *k) override; void fix(Kit *k) override;
void setup(Kit *k) override; void setup(Kit *k) override;
@@ -1025,10 +1022,9 @@ public:
void addToMacroExpander(Kit *kit, MacroExpander *expander) const override; void addToMacroExpander(Kit *kit, MacroExpander *expander) const override;
private:
QVariant defaultValue(const Kit *k) const; QVariant defaultValue(const Kit *k) const;
void kitsWereLoaded(); void onKitsLoaded() override;
void deviceUpdated(Id dataId); void deviceUpdated(Id dataId);
void devicesChanged(); void devicesChanged();
void kitUpdated(Kit *k); void kitUpdated(Kit *k);
@@ -1041,9 +1037,6 @@ DeviceKitAspectFactory::DeviceKitAspectFactory()
setDisplayName(Tr::tr("Run device")); setDisplayName(Tr::tr("Run device"));
setDescription(Tr::tr("The device to run the applications on.")); setDescription(Tr::tr("The device to run the applications on."));
setPriority(32000); setPriority(32000);
connect(KitManager::instance(), &KitManager::kitsLoaded,
this, &DeviceKitAspectFactory::kitsWereLoaded);
} }
QVariant DeviceKitAspectFactory::defaultValue(const Kit *k) const QVariant DeviceKitAspectFactory::defaultValue(const Kit *k) const
@@ -1179,10 +1172,9 @@ FilePath DeviceKitAspect::deviceFilePath(const Kit *k, const QString &pathOnDevi
return FilePath::fromString(pathOnDevice); return FilePath::fromString(pathOnDevice);
} }
void DeviceKitAspectFactory::kitsWereLoaded() void DeviceKitAspectFactory::onKitsLoaded()
{ {
const QList<Kit *> kits = KitManager::kits(); for (Kit *k : KitManager::kits())
for (Kit *k : kits)
fix(k); fix(k);
DeviceManager *dm = DeviceManager::instance(); DeviceManager *dm = DeviceManager::instance();
@@ -1199,8 +1191,7 @@ void DeviceKitAspectFactory::kitsWereLoaded()
void DeviceKitAspectFactory::deviceUpdated(Id id) void DeviceKitAspectFactory::deviceUpdated(Id id)
{ {
const QList<Kit *> kits = KitManager::kits(); for (Kit *k : KitManager::kits()) {
for (Kit *k : kits) {
if (DeviceKitAspect::deviceId(k) == id) if (DeviceKitAspect::deviceId(k) == id)
notifyAboutUpdate(k); notifyAboutUpdate(k);
} }
@@ -1213,8 +1204,7 @@ void DeviceKitAspectFactory::kitUpdated(Kit *k)
void DeviceKitAspectFactory::devicesChanged() void DeviceKitAspectFactory::devicesChanged()
{ {
const QList<Kit *> kits = KitManager::kits(); for (Kit *k : KitManager::kits())
for (Kit *k : kits)
setup(k); // Set default device if necessary setup(k); // Set default device if necessary
} }
@@ -1310,6 +1300,7 @@ class BuildDeviceKitAspectFactory : public KitAspectFactory
public: public:
BuildDeviceKitAspectFactory(); BuildDeviceKitAspectFactory();
private:
void setup(Kit *k) override; void setup(Kit *k) override;
Tasks validate(const Kit *k) const override; Tasks validate(const Kit *k) const override;
@@ -1321,8 +1312,7 @@ public:
void addToMacroExpander(Kit *kit, MacroExpander *expander) const override; void addToMacroExpander(Kit *kit, MacroExpander *expander) const override;
private: void onKitsLoaded() override;
void kitsWereLoaded();
void deviceUpdated(Id dataId); void deviceUpdated(Id dataId);
void devicesChanged(); void devicesChanged();
void kitUpdated(Kit *k); void kitUpdated(Kit *k);
@@ -1335,9 +1325,6 @@ BuildDeviceKitAspectFactory::BuildDeviceKitAspectFactory()
setDisplayName(Tr::tr("Build device")); setDisplayName(Tr::tr("Build device"));
setDescription(Tr::tr("The device used to build applications on.")); setDescription(Tr::tr("The device used to build applications on."));
setPriority(31900); setPriority(31900);
connect(KitManager::instance(), &KitManager::kitsLoaded,
this, &BuildDeviceKitAspectFactory::kitsWereLoaded);
} }
static IDeviceConstPtr defaultDevice() static IDeviceConstPtr defaultDevice()
@@ -1444,10 +1431,9 @@ void BuildDeviceKitAspect::setDeviceId(Kit *k, Id id)
k->setValue(BuildDeviceKitAspect::id(), id.toSetting()); k->setValue(BuildDeviceKitAspect::id(), id.toSetting());
} }
void BuildDeviceKitAspectFactory::kitsWereLoaded() void BuildDeviceKitAspectFactory::onKitsLoaded()
{ {
const QList<Kit *> kits = KitManager::kits(); for (Kit *k : KitManager::kits())
for (Kit *k : kits)
fix(k); fix(k);
DeviceManager *dm = DeviceManager::instance(); DeviceManager *dm = DeviceManager::instance();

View File

@@ -69,6 +69,12 @@ static FilePath settingsFileName()
class KitAspectFactories class KitAspectFactories
{ {
public: public:
void onKitsLoaded() const
{
for (KitAspectFactory *factory : m_aspectList)
factory->onKitsLoaded();
}
void addKitAspect(KitAspectFactory *factory) void addKitAspect(KitAspectFactory *factory)
{ {
QTC_ASSERT(!m_aspectList.contains(factory), return); QTC_ASSERT(!m_aspectList.contains(factory), return);
@@ -416,6 +422,9 @@ void KitManager::restoreKits()
d->m_writer = std::make_unique<PersistentSettingsWriter>(settingsFileName(), "QtCreatorProfiles"); d->m_writer = std::make_unique<PersistentSettingsWriter>(settingsFileName(), "QtCreatorProfiles");
d->m_initialized = true; d->m_initialized = true;
kitAspectFactoriesStorage().onKitsLoaded();
emit instance()->kitsLoaded(); emit instance()->kitsLoaded();
emit instance()->kitsChanged(); emit instance()->kitsChanged();
} }

View File

@@ -81,6 +81,8 @@ public:
virtual bool isApplicableToKit(const Kit *) const { return true; } virtual bool isApplicableToKit(const Kit *) const { return true; }
virtual void onKitsLoaded() {}
protected: protected:
KitAspectFactory(); KitAspectFactory();
~KitAspectFactory(); ~KitAspectFactory();

View File

@@ -139,9 +139,6 @@ QtKitAspectFactory::QtKitAspectFactory()
"A Qt version is required for qmake-based projects " "A Qt version is required for qmake-based projects "
"and optional when using other build systems.")); "and optional when using other build systems."));
setPriority(26000); setPriority(26000);
connect(KitManager::instance(), &KitManager::kitsLoaded,
this, &QtKitAspectFactory::kitsWereLoaded);
} }
void QtKitAspectFactory::setup(Kit *k) void QtKitAspectFactory::setup(Kit *k)
@@ -399,7 +396,7 @@ void QtKitAspectFactory::qtVersionsChanged(const QList<int> &addedIds,
} }
} }
void QtKitAspectFactory::kitsWereLoaded() void QtKitAspectFactory::onKitsLoaded()
{ {
for (Kit *k : KitManager::kits()) for (Kit *k : KitManager::kits())
fix(k); fix(k);

View File

@@ -36,6 +36,7 @@ class QTSUPPORT_EXPORT QtKitAspectFactory : public ProjectExplorer::KitAspectFac
public: public:
QtKitAspectFactory(); QtKitAspectFactory();
private:
void setup(ProjectExplorer::Kit *k) override; void setup(ProjectExplorer::Kit *k) override;
ProjectExplorer::Tasks validate(const ProjectExplorer::Kit *k) const override; ProjectExplorer::Tasks validate(const ProjectExplorer::Kit *k) const override;
@@ -54,13 +55,12 @@ public:
QSet<Utils::Id> supportedPlatforms(const ProjectExplorer::Kit *k) const override; QSet<Utils::Id> supportedPlatforms(const ProjectExplorer::Kit *k) const override;
QSet<Utils::Id> availableFeatures(const ProjectExplorer::Kit *k) const override; QSet<Utils::Id> availableFeatures(const ProjectExplorer::Kit *k) const override;
private:
int weight(const ProjectExplorer::Kit *k) const override; int weight(const ProjectExplorer::Kit *k) const override;
void qtVersionsChanged(const QList<int> &addedIds, void qtVersionsChanged(const QList<int> &addedIds,
const QList<int> &removedIds, const QList<int> &removedIds,
const QList<int> &changedIds); const QList<int> &changedIds);
void kitsWereLoaded(); void onKitsLoaded() override;
}; };
class QTSUPPORT_EXPORT SuppliesQtQuickImportPath class QTSUPPORT_EXPORT SuppliesQtQuickImportPath