forked from qt-creator/qt-creator
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:
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user