aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2019-03-12 16:50:39 +0100
committerChristian Kandeler <christian.kandeler@qt.io>2019-03-15 14:47:18 +0000
commitd4565be6557fca844dcf4bf427e0ff9c0838df50 (patch)
treeea002e07fe7f0ea29113b64ebabf03233e2813d5
parente80d83cb20cfd57ce9bbb059f6f5b7cb6c86d416 (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>
-rw-r--r--src/plugins/android/androidgdbserverkitinformation.cpp4
-rw-r--r--src/plugins/android/androidgdbserverkitinformation.h2
-rw-r--r--src/plugins/cmakeprojectmanager/cmakekitinformation.cpp9
-rw-r--r--src/plugins/cmakeprojectmanager/cmakekitinformation.h9
-rw-r--r--src/plugins/debugger/debuggerkitinformation.cpp2
-rw-r--r--src/plugins/debugger/debuggerkitinformation.h1
-rw-r--r--src/plugins/projectexplorer/kit.cpp2
-rw-r--r--src/plugins/projectexplorer/kitinformation.cpp28
-rw-r--r--src/plugins/projectexplorer/kitinformation.h8
-rw-r--r--src/plugins/projectexplorer/kitmanager.cpp4
-rw-r--r--src/plugins/projectexplorer/kitmanager.h2
-rw-r--r--src/plugins/qbsprojectmanager/qbskitinformation.cpp1
-rw-r--r--src/plugins/qbsprojectmanager/qbskitinformation.h1
-rw-r--r--src/plugins/qmakeprojectmanager/qmakekitinformation.cpp6
-rw-r--r--src/plugins/qmakeprojectmanager/qmakekitinformation.h1
-rw-r--r--src/plugins/qtsupport/qtkitinformation.cpp15
-rw-r--r--src/plugins/qtsupport/qtkitinformation.h2
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;