diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2019-03-12 16:50:39 +0100 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2019-03-15 14:47:18 +0000 |
commit | d4565be6557fca844dcf4bf427e0ff9c0838df50 (patch) | |
tree | ea002e07fe7f0ea29113b64ebabf03233e2813d5 /src/plugins | |
parent | e80d83cb20cfd57ce9bbb059f6f5b7cb6c86d416 (diff) |
ProjectExplorer: Drop KitAspect::defaultValue()
The functionality of this function overlapped with KitAspect::setup(),
leading to unclear responsibilities and resulting in bugs such as the
one fixed by 776d54e435.
Therefore, we drop the defaultValue() function, merging its
implementation with setup() where applicable.
Change-Id: Iefa9c3df8b76e97ddf9ad388516621f7ea6558d4
Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/plugins')
17 files changed, 29 insertions, 68 deletions
diff --git a/src/plugins/android/androidgdbserverkitinformation.cpp b/src/plugins/android/androidgdbserverkitinformation.cpp index a3040343ba..eb8636cc78 100644 --- a/src/plugins/android/androidgdbserverkitinformation.cpp +++ b/src/plugins/android/androidgdbserverkitinformation.cpp @@ -80,9 +80,9 @@ AndroidGdbServerKitAspect::AndroidGdbServerKitAspect() setPriority(27999); // Just one less than Debugger! } -QVariant AndroidGdbServerKitAspect::defaultValue(const Kit *kit) const +void AndroidGdbServerKitAspect::setup(Kit *kit) { - return autoDetect(kit).toString(); + kit->setValue(id(), autoDetect(kit).toString()); } QList<Task> AndroidGdbServerKitAspect::validate(const Kit *) const diff --git a/src/plugins/android/androidgdbserverkitinformation.h b/src/plugins/android/androidgdbserverkitinformation.h index 6b9bc676d6..04cd757d11 100644 --- a/src/plugins/android/androidgdbserverkitinformation.h +++ b/src/plugins/android/androidgdbserverkitinformation.h @@ -36,7 +36,7 @@ class AndroidGdbServerKitAspect : public ProjectExplorer::KitAspect public: AndroidGdbServerKitAspect(); - QVariant defaultValue(const ProjectExplorer::Kit *) const override; + void setup(ProjectExplorer::Kit *) override; QList<ProjectExplorer::Task> validate(const ProjectExplorer::Kit *) const override; bool isApplicableToKit(const ProjectExplorer::Kit *k) const override; ItemList toUserOutput(const ProjectExplorer::Kit *) const override; diff --git a/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp b/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp index e56cf7c4bf..1b45f062dd 100644 --- a/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp +++ b/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp @@ -245,12 +245,6 @@ void CMakeKitAspect::setCMakeTool(Kit *k, const Core::Id id) k->setValue(TOOL_ID, toSet.toSetting()); } -QVariant CMakeKitAspect::defaultValue(const Kit *k) const -{ - const Core::Id id = k ? defaultCMakeToolId() : Core::Id(); - return id.toSetting(); -} - QList<Task> CMakeKitAspect::validate(const Kit *k) const { QList<Task> result; @@ -275,8 +269,7 @@ void CMakeKitAspect::setup(Kit *k) void CMakeKitAspect::fix(Kit *k) { - if (!CMakeKitAspect::cmakeTool(k)) - setup(k); + setup(k); } KitAspect::ItemList CMakeKitAspect::toUserOutput(const Kit *k) const diff --git a/src/plugins/cmakeprojectmanager/cmakekitinformation.h b/src/plugins/cmakeprojectmanager/cmakekitinformation.h index b7e6f4c5bf..57710e2bb3 100644 --- a/src/plugins/cmakeprojectmanager/cmakekitinformation.h +++ b/src/plugins/cmakeprojectmanager/cmakekitinformation.h @@ -47,7 +47,6 @@ public: static void setCMakeTool(ProjectExplorer::Kit *k, const Core::Id id); // KitAspect interface - QVariant defaultValue(const ProjectExplorer::Kit *k) const final; QList<ProjectExplorer::Task> validate(const ProjectExplorer::Kit *k) const final; void setup(ProjectExplorer::Kit *k) final; void fix(ProjectExplorer::Kit *k) final; @@ -78,13 +77,15 @@ public: static QStringList generatorArguments(const ProjectExplorer::Kit *k); // KitAspect interface - QVariant defaultValue(const ProjectExplorer::Kit *k) const final; QList<ProjectExplorer::Task> validate(const ProjectExplorer::Kit *k) const final; void setup(ProjectExplorer::Kit *k) final; void fix(ProjectExplorer::Kit *k) final; void upgrade(ProjectExplorer::Kit *k) final; ItemList toUserOutput(const ProjectExplorer::Kit *k) const final; ProjectExplorer::KitAspectWidget *createConfigWidget(ProjectExplorer::Kit *k) const final; + +private: + QVariant defaultValue(const ProjectExplorer::Kit *k) const; }; class CMakeConfigurationKitAspect : public ProjectExplorer::KitAspect @@ -102,12 +103,14 @@ public: static CMakeConfig defaultConfiguration(const ProjectExplorer::Kit *k); // KitAspect interface - QVariant defaultValue(const ProjectExplorer::Kit *k) const final; QList<ProjectExplorer::Task> validate(const ProjectExplorer::Kit *k) const final; void setup(ProjectExplorer::Kit *k) final; void fix(ProjectExplorer::Kit *k) final; ItemList toUserOutput(const ProjectExplorer::Kit *k) const final; ProjectExplorer::KitAspectWidget *createConfigWidget(ProjectExplorer::Kit *k) const final; + +private: + QVariant defaultValue(const ProjectExplorer::Kit *k) const; }; } // namespace Internal diff --git a/src/plugins/debugger/debuggerkitinformation.cpp b/src/plugins/debugger/debuggerkitinformation.cpp index 9783184346..48072a328b 100644 --- a/src/plugins/debugger/debuggerkitinformation.cpp +++ b/src/plugins/debugger/debuggerkitinformation.cpp @@ -152,8 +152,6 @@ DebuggerKitAspect::DebuggerKitAspect() setPriority(28000); } -QVariant DebuggerKitAspect::defaultValue(const Kit *) const { return QVariant(); } - void DebuggerKitAspect::setup(Kit *k) { QTC_ASSERT(k, return); diff --git a/src/plugins/debugger/debuggerkitinformation.h b/src/plugins/debugger/debuggerkitinformation.h index 9d12917660..c07e4e0b50 100644 --- a/src/plugins/debugger/debuggerkitinformation.h +++ b/src/plugins/debugger/debuggerkitinformation.h @@ -41,7 +41,6 @@ class DEBUGGER_EXPORT DebuggerKitAspect : public ProjectExplorer::KitAspect public: DebuggerKitAspect(); - QVariant defaultValue(const ProjectExplorer::Kit *k) const override; QList<ProjectExplorer::Task> validate(const ProjectExplorer::Kit *k) const override { return DebuggerKitAspect::validateDebugger(k); } diff --git a/src/plugins/projectexplorer/kit.cpp b/src/plugins/projectexplorer/kit.cpp index cc0ca3a39f..ddc4d00c7c 100644 --- a/src/plugins/projectexplorer/kit.cpp +++ b/src/plugins/projectexplorer/kit.cpp @@ -137,8 +137,6 @@ public: Kit::Kit(Id id) : d(std::make_unique<Internal::KitPrivate>(id, this)) { - for (KitAspect *aspect : KitManager::kitAspects()) - d->m_data.insert(aspect->id(), aspect->defaultValue(this)); } Kit::Kit(const QVariantMap &data) : diff --git a/src/plugins/projectexplorer/kitinformation.cpp b/src/plugins/projectexplorer/kitinformation.cpp index 7879b034b8..1453a77390 100644 --- a/src/plugins/projectexplorer/kitinformation.cpp +++ b/src/plugins/projectexplorer/kitinformation.cpp @@ -122,12 +122,6 @@ SysRootKitAspect::SysRootKitAspect() setPriority(31000); } -QVariant SysRootKitAspect::defaultValue(const Kit *k) const -{ - Q_UNUSED(k) - return QString(); -} - QList<Task> SysRootKitAspect::validate(const Kit *k) const { QList<Task> result; @@ -375,12 +369,6 @@ static QVariant defaultToolChainValue() return result; } -QVariant ToolChainKitAspect::defaultValue(const Kit *k) const -{ - Q_UNUSED(k); - return defaultToolChainValue(); -} - QList<Task> ToolChainKitAspect::validate(const Kit *k) const { QList<Task> result; @@ -494,7 +482,9 @@ void ToolChainKitAspect::setup(Kit *k) QTC_ASSERT(ToolChainManager::isLoaded(), return); QTC_ASSERT(k, return); - const QVariantMap value = k->value(ToolChainKitAspect::id()).toMap(); + QVariantMap value = k->value(id()).toMap(); + if (value.empty()) + value = defaultToolChainValue().toMap(); for (auto i = value.constBegin(); i != value.constEnd(); ++i) { Core::Id l = findLanguage(i.key()); @@ -813,10 +803,10 @@ DeviceTypeKitAspect::DeviceTypeKitAspect() makeEssential(); } -QVariant DeviceTypeKitAspect::defaultValue(const Kit *k) const +void DeviceTypeKitAspect::setup(Kit *k) { - Q_UNUSED(k); - return QByteArray(Constants::DESKTOP_DEVICE_TYPE); + if (k) + k->setValue(id(), QByteArray(Constants::DESKTOP_DEVICE_TYPE)); } QList<Task> DeviceTypeKitAspect::validate(const Kit *k) const @@ -1244,12 +1234,6 @@ EnvironmentKitAspect::EnvironmentKitAspect() setPriority(29000); } -QVariant EnvironmentKitAspect::defaultValue(const Kit *k) const -{ - Q_UNUSED(k) - return QStringList(); -} - QList<Task> EnvironmentKitAspect::validate(const Kit *k) const { QList<Task> result; diff --git a/src/plugins/projectexplorer/kitinformation.h b/src/plugins/projectexplorer/kitinformation.h index d335581231..111052fabe 100644 --- a/src/plugins/projectexplorer/kitinformation.h +++ b/src/plugins/projectexplorer/kitinformation.h @@ -50,7 +50,6 @@ class PROJECTEXPLORER_EXPORT SysRootKitAspect : public KitAspect public: SysRootKitAspect(); - QVariant defaultValue(const Kit *k) const override; QList<Task> validate(const Kit *k) const override; KitAspectWidget *createConfigWidget(Kit *k) const override; ItemList toUserOutput(const Kit *k) const override; @@ -72,7 +71,6 @@ class PROJECTEXPLORER_EXPORT ToolChainKitAspect : public KitAspect public: ToolChainKitAspect(); - QVariant defaultValue(const Kit *k) const override; QList<Task> validate(const Kit *k) const override; void upgrade(Kit *k) override; void fix(Kit *k) override; @@ -117,7 +115,7 @@ class PROJECTEXPLORER_EXPORT DeviceTypeKitAspect : public KitAspect public: DeviceTypeKitAspect(); - QVariant defaultValue(const Kit *k) const override; + void setup(Kit *k); QList<Task> validate(const Kit *k) const override; KitAspectWidget *createConfigWidget(Kit *k) const override; ItemList toUserOutput(const Kit *k) const override; @@ -141,7 +139,6 @@ class PROJECTEXPLORER_EXPORT DeviceKitAspect : public KitAspect public: DeviceKitAspect(); - QVariant defaultValue(const Kit *k) const override; QList<Task> validate(const Kit *k) const override; void fix(Kit *k) override; void setup(Kit *k) override; @@ -161,6 +158,8 @@ public: static void setDeviceId(Kit *k, Core::Id dataId); private: + QVariant defaultValue(const Kit *k) const; + void kitsWereLoaded(); void deviceUpdated(Core::Id dataId); void devicesChanged(); @@ -178,7 +177,6 @@ class PROJECTEXPLORER_EXPORT EnvironmentKitAspect : public KitAspect public: EnvironmentKitAspect(); - QVariant defaultValue(const Kit *k) const override; QList<Task> validate(const Kit *k) const override; void fix(Kit *k) override; diff --git a/src/plugins/projectexplorer/kitmanager.cpp b/src/plugins/projectexplorer/kitmanager.cpp index 07aa313fcc..388635172e 100644 --- a/src/plugins/projectexplorer/kitmanager.cpp +++ b/src/plugins/projectexplorer/kitmanager.cpp @@ -250,7 +250,7 @@ void KitManager::registerKitAspect(std::unique_ptr<KitAspect> &&ki) foreach (Kit *k, kits()) { if (!k->hasValue(ki->id())) - k->setValue(ki->id(), ki->defaultValue(k)); + ki->setup(k); else ki->fix(k); } @@ -452,7 +452,7 @@ void KitManager::completeKit(Kit *k) for (const std::unique_ptr<KitAspect> &ki : d->m_informationList) { ki->upgrade(k); if (!k->hasValue(ki->id())) - k->setValue(ki->id(), ki->defaultValue(k)); + ki->setup(k); else ki->fix(k); } diff --git a/src/plugins/projectexplorer/kitmanager.h b/src/plugins/projectexplorer/kitmanager.h index 2e5af3ac5e..c771980048 100644 --- a/src/plugins/projectexplorer/kitmanager.h +++ b/src/plugins/projectexplorer/kitmanager.h @@ -79,8 +79,6 @@ public: QString description() const { return m_description; } bool isEssential() const { return m_essential; } - virtual QVariant defaultValue(const Kit *) const = 0; - // called to find issues with the kit virtual QList<Task> validate(const Kit *) const = 0; // called after restoring a kit, so upgrading of kit information settings can be done diff --git a/src/plugins/qbsprojectmanager/qbskitinformation.cpp b/src/plugins/qbsprojectmanager/qbskitinformation.cpp index b317fd88e8..a6784b9a50 100644 --- a/src/plugins/qbsprojectmanager/qbskitinformation.cpp +++ b/src/plugins/qbsprojectmanager/qbskitinformation.cpp @@ -107,7 +107,6 @@ Core::Id QbsKitAspect::id() return "Qbs.KitInformation"; } -QVariant QbsKitAspect::defaultValue(const Kit *) const { return QString(); } QList<Task> QbsKitAspect::validate(const Kit *) const { return QList<Task>(); } KitAspect::ItemList QbsKitAspect::toUserOutput(const Kit *k) const diff --git a/src/plugins/qbsprojectmanager/qbskitinformation.h b/src/plugins/qbsprojectmanager/qbskitinformation.h index b6bd1b1984..2967999496 100644 --- a/src/plugins/qbsprojectmanager/qbskitinformation.h +++ b/src/plugins/qbsprojectmanager/qbskitinformation.h @@ -44,7 +44,6 @@ public: private: static Core::Id id(); - QVariant defaultValue(const ProjectExplorer::Kit *) const override; QList<ProjectExplorer::Task> validate(const ProjectExplorer::Kit *) const override; ItemList toUserOutput(const ProjectExplorer::Kit *) const override; ProjectExplorer::KitAspectWidget *createConfigWidget(ProjectExplorer::Kit *) const override; diff --git a/src/plugins/qmakeprojectmanager/qmakekitinformation.cpp b/src/plugins/qmakeprojectmanager/qmakekitinformation.cpp index 00b2bccb64..8821ad0dec 100644 --- a/src/plugins/qmakeprojectmanager/qmakekitinformation.cpp +++ b/src/plugins/qmakeprojectmanager/qmakekitinformation.cpp @@ -91,12 +91,6 @@ QmakeKitAspect::QmakeKitAspect() setPriority(24000); } -QVariant QmakeKitAspect::defaultValue(const Kit *k) const -{ - Q_UNUSED(k); - return QString(); -} - QList<Task> QmakeKitAspect::validate(const Kit *k) const { QList<Task> result; diff --git a/src/plugins/qmakeprojectmanager/qmakekitinformation.h b/src/plugins/qmakeprojectmanager/qmakekitinformation.h index 6cb2318a21..24c9bc2800 100644 --- a/src/plugins/qmakeprojectmanager/qmakekitinformation.h +++ b/src/plugins/qmakeprojectmanager/qmakekitinformation.h @@ -37,7 +37,6 @@ class QmakeKitAspect : public ProjectExplorer::KitAspect public: QmakeKitAspect(); - QVariant defaultValue(const ProjectExplorer::Kit *k) const override; QList<ProjectExplorer::Task> validate(const ProjectExplorer::Kit *k) const override; void setup(ProjectExplorer::Kit *k) override; diff --git a/src/plugins/qtsupport/qtkitinformation.cpp b/src/plugins/qtsupport/qtkitinformation.cpp index 26057bad76..1181e5b359 100644 --- a/src/plugins/qtsupport/qtkitinformation.cpp +++ b/src/plugins/qtsupport/qtkitinformation.cpp @@ -161,20 +161,19 @@ QtKitAspect::QtKitAspect() this, &QtKitAspect::kitsWereLoaded); } -QVariant QtKitAspect::defaultValue(const Kit *k) const +void QtKitAspect::setup(ProjectExplorer::Kit *k) { Q_UNUSED(k); // find "Qt in PATH": BaseQtVersion *result = QtVersionManager::version(equal(&BaseQtVersion::autodetectionSource, QString::fromLatin1("PATH"))); - if (result) - return result->uniqueId(); - - // Use *any* desktop Qt: - result = QtVersionManager::version(equal(&BaseQtVersion::type, - QString::fromLatin1(QtSupport::Constants::DESKTOPQT))); - return result ? result->uniqueId() : -1; + if (!result) { + // Use *any* desktop Qt: + result = QtVersionManager::version(equal(&BaseQtVersion::type, + QString::fromLatin1(QtSupport::Constants::DESKTOPQT))); + } + k->setValue(id(), result ? result->uniqueId() : -1); } QList<ProjectExplorer::Task> QtKitAspect::validate(const ProjectExplorer::Kit *k) const diff --git a/src/plugins/qtsupport/qtkitinformation.h b/src/plugins/qtsupport/qtkitinformation.h index 56f79cee03..5a9be93802 100644 --- a/src/plugins/qtsupport/qtkitinformation.h +++ b/src/plugins/qtsupport/qtkitinformation.h @@ -42,7 +42,7 @@ class QTSUPPORT_EXPORT QtKitAspect : public ProjectExplorer::KitAspect public: QtKitAspect(); - QVariant defaultValue(const ProjectExplorer::Kit *k) const override; + void setup(ProjectExplorer::Kit *k) override; QList<ProjectExplorer::Task> validate(const ProjectExplorer::Kit *k) const override; void fix(ProjectExplorer::Kit *) override; |