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; 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)) if (!canHandle(parent))
return nullptr; return nullptr;
if (id != m_runConfigBaseId) if (info.id != m_runConfigBaseId)
return nullptr; return nullptr;
if (!canCreateHelper(parent, extra)) if (!canCreateHelper(parent, info.extra))
return nullptr; return nullptr;
QTC_ASSERT(m_creator, 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) // "FIX" ids by mangling in the extra data (build system target etc)
// for compatibility for the current format used in settings. // for compatibility for the current format used in settings.
if (!extra.isEmpty()) { if (!info.extra.isEmpty()) {
QVariantMap data = rc->toMap(); QVariantMap data = rc->toMap();
data[ProjectConfiguration::settingsIdKey()] = id.withSuffix(extra).toString(); data[ProjectConfiguration::settingsIdKey()] = info.id.withSuffix(info.extra).toString();
rc->fromMap(data); rc->fromMap(data);
QVariantMap data2 = rc->toMap(); QVariantMap data2 = rc->toMap();
} }

View File

@@ -312,7 +312,7 @@ public:
virtual bool canHandle(Target *target) const; 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 *restore(Target *parent, const QVariantMap &map);
static RunConfiguration *clone(Target *parent, RunConfiguration *source); static RunConfiguration *clone(Target *parent, RunConfiguration *source);

View File

@@ -245,7 +245,7 @@ void RunSettingsWidget::aboutToShowAddMenu()
for (const RunConfigurationCreationInfo &item : items) { for (const RunConfigurationCreationInfo &item : items) {
auto action = new QAction(item.displayName, m_addRunMenu); auto action = new QAction(item.displayName, m_addRunMenu);
connect(action, &QAction::triggered, [item, this] { 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) if (!newRC)
return; return;
QTC_CHECK(newRC->id() == item.id); QTC_CHECK(newRC->id() == item.id);

View File

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