diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp index ccef670588f..60c619f5c54 100644 --- a/src/plugins/projectexplorer/runconfiguration.cpp +++ b/src/plugins/projectexplorer/runconfiguration.cpp @@ -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(); } diff --git a/src/plugins/projectexplorer/runconfiguration.h b/src/plugins/projectexplorer/runconfiguration.h index 0bfcdd218ba..70cd6d4d4ab 100644 --- a/src/plugins/projectexplorer/runconfiguration.h +++ b/src/plugins/projectexplorer/runconfiguration.h @@ -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); diff --git a/src/plugins/projectexplorer/runsettingspropertiespage.cpp b/src/plugins/projectexplorer/runsettingspropertiespage.cpp index 7d0c4a6d3ff..1ea1daeeeb2 100644 --- a/src/plugins/projectexplorer/runsettingspropertiespage.cpp +++ b/src/plugins/projectexplorer/runsettingspropertiespage.cpp @@ -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); diff --git a/src/plugins/projectexplorer/target.cpp b/src/plugins/projectexplorer/target.cpp index f21191dc1db..5b533b91ee9 100644 --- a/src/plugins/projectexplorer/target.cpp +++ b/src/plugins/projectexplorer/target.cpp @@ -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);