forked from qt-creator/qt-creator
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>
This commit is contained in:
@@ -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
|
||||
|
@@ -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;
|
||||
|
@@ -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,7 +269,6 @@ void CMakeKitAspect::setup(Kit *k)
|
||||
|
||||
void CMakeKitAspect::fix(Kit *k)
|
||||
{
|
||||
if (!CMakeKitAspect::cmakeTool(k))
|
||||
setup(k);
|
||||
}
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -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);
|
||||
|
@@ -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); }
|
||||
|
||||
|
@@ -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) :
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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();
|
||||
|
||||
if (!result) {
|
||||
// Use *any* desktop Qt:
|
||||
result = QtVersionManager::version(equal(&BaseQtVersion::type,
|
||||
QString::fromLatin1(QtSupport::Constants::DESKTOPQT)));
|
||||
return result ? result->uniqueId() : -1;
|
||||
}
|
||||
k->setValue(id(), result ? result->uniqueId() : -1);
|
||||
}
|
||||
|
||||
QList<ProjectExplorer::Task> QtKitAspect::validate(const ProjectExplorer::Kit *k) const
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user