ProjectExplorer: Use RunConfigCreationInfo struct for rc creation

The struct will likely gain qtcrunnanable/terminal members,
better pass all to where it is needed.

Change-Id: Ieb0dae8b56ce5c0992955dbfc0cd89cdd7bfe848
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2018-03-01 16:13:22 +01:00
parent fa9dcf67d6
commit d162085377
4 changed files with 9 additions and 8 deletions

View File

@@ -535,13 +535,14 @@ bool IRunConfigurationFactory::canCreateHelper(Target *, const QString &) const
return true;
}
RunConfiguration *IRunConfigurationFactory::create(Target *parent, Core::Id id, const QString &extra) const
RunConfiguration *IRunConfigurationFactory::create(Target *parent,
const RunConfigurationCreationInfo &info) const
{
if (!canHandle(parent))
return nullptr;
if (id != m_runConfigBaseId)
if (info.id != m_runConfigBaseId)
return nullptr;
if (!canCreateHelper(parent, extra))
if (!canCreateHelper(parent, info.extra))
return nullptr;
QTC_ASSERT(m_creator, return nullptr);
@@ -551,9 +552,9 @@ RunConfiguration *IRunConfigurationFactory::create(Target *parent, Core::Id id,
// "FIX" ids by mangling in the extra data (build system target etc)
// for compatibility for the current format used in settings.
if (!extra.isEmpty()) {
if (!info.extra.isEmpty()) {
QVariantMap data = rc->toMap();
data[ProjectConfiguration::settingsIdKey()] = id.withSuffix(extra).toString();
data[ProjectConfiguration::settingsIdKey()] = info.id.withSuffix(info.extra).toString();
rc->fromMap(data);
QVariantMap data2 = rc->toMap();
}

View File

@@ -312,7 +312,7 @@ public:
virtual bool canHandle(Target *target) const;
RunConfiguration *create(Target *parent, Core::Id id, const QString &extra) const;
RunConfiguration *create(Target *parent, const RunConfigurationCreationInfo &info) const;
static RunConfiguration *restore(Target *parent, const QVariantMap &map);
static RunConfiguration *clone(Target *parent, RunConfiguration *source);

View File

@@ -245,7 +245,7 @@ void RunSettingsWidget::aboutToShowAddMenu()
for (const RunConfigurationCreationInfo &item : items) {
auto action = new QAction(item.displayName, m_addRunMenu);
connect(action, &QAction::triggered, [item, this] {
RunConfiguration *newRC = item.factory->create(m_target, item.id, item.extra);
RunConfiguration *newRC = item.factory->create(m_target, item);
if (!newRC)
return;
QTC_CHECK(newRC->id() == item.id);

View File

@@ -594,7 +594,7 @@ void Target::updateDefaultRunConfigurations()
if (exists)
continue;
RunConfiguration *rc = item.factory->create(this, item.id, item.extra);
RunConfiguration *rc = item.factory->create(this, item);
if (!rc)
continue;
QTC_CHECK(rc->id() == item.id);