diff options
author | hjk <hjk@qt.io> | 2019-01-15 15:48:01 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2019-01-16 10:26:47 +0000 |
commit | a2d5ebccd2d28d339eda18d0d5c0ebbe698e381c (patch) | |
tree | aeabda480aef5a494417ea1e9e6e6107c5039cf5 /src/plugins | |
parent | 32ced725112403ba3af0acbc8f0db8f7fbad1eeb (diff) |
ProjectExplorer: Simplify availableCreationIds(Target *parent) use
Similarly to before, it's either an empty list, or a single id.
So use a function with bool return saying whether an id is returned
and a plain accessor the the id.
Change-Id: Ied2900f23bdb4c264d9fb1944c60bed734d1d8bb
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/projectexplorer/deployconfiguration.cpp | 13 | ||||
-rw-r--r-- | src/plugins/projectexplorer/deployconfiguration.h | 5 | ||||
-rw-r--r-- | src/plugins/projectexplorer/runsettingspropertiespage.cpp | 32 | ||||
-rw-r--r-- | src/plugins/projectexplorer/target.cpp | 2 |
4 files changed, 27 insertions, 25 deletions
diff --git a/src/plugins/projectexplorer/deployconfiguration.cpp b/src/plugins/projectexplorer/deployconfiguration.cpp index f0c4e94b66..ff4853a820 100644 --- a/src/plugins/projectexplorer/deployconfiguration.cpp +++ b/src/plugins/projectexplorer/deployconfiguration.cpp @@ -151,11 +151,14 @@ DeployConfigurationFactory::~DeployConfigurationFactory() g_deployConfigurationFactories.removeOne(this); } -QList<Core::Id> DeployConfigurationFactory::availableCreationIds(Target *parent) const +bool DeployConfigurationFactory::canOffer(Target *parent) const { - if (canHandle(parent) && hasAvailableBuildTargets(parent)) - return {m_deployConfigBaseId}; - return {}; + return canHandle(parent) && hasAvailableBuildTargets(parent); +} + +Core::Id DeployConfigurationFactory::creationId() const +{ + return m_deployConfigBaseId; } bool DeployConfigurationFactory::hasAvailableBuildTargets(Target *) const @@ -239,7 +242,7 @@ QList<DeployConfigurationFactory *> DeployConfigurationFactory::find(Target *par { return Utils::filtered(g_deployConfigurationFactories, [&parent](DeployConfigurationFactory *factory) { - return !factory->availableCreationIds(parent).isEmpty(); + return factory->canOffer(parent); }); } diff --git a/src/plugins/projectexplorer/deployconfiguration.h b/src/plugins/projectexplorer/deployconfiguration.h index 3874d7c068..bfad9d8f12 100644 --- a/src/plugins/projectexplorer/deployconfiguration.h +++ b/src/plugins/projectexplorer/deployconfiguration.h @@ -80,11 +80,12 @@ public: DeployConfigurationFactory operator=(const DeployConfigurationFactory &) = delete; virtual ~DeployConfigurationFactory(); - // used to show the list of possible additons to a target, returns a list of types - QList<Core::Id> availableCreationIds(Target *parent) const; + // return possible addition to a target, invalid if there is none + Core::Id creationId() const; // the name to display to the user QString defaultDisplayName() const; + bool canOffer(Target *parent) const; bool canCreate(Target *parent, Core::Id id) const; virtual DeployConfiguration *create(Target *parent, Core::Id id); diff --git a/src/plugins/projectexplorer/runsettingspropertiespage.cpp b/src/plugins/projectexplorer/runsettingspropertiespage.cpp index 29c8ed3c7d..9065d1edb5 100644 --- a/src/plugins/projectexplorer/runsettingspropertiespage.cpp +++ b/src/plugins/projectexplorer/runsettingspropertiespage.cpp @@ -367,23 +367,21 @@ void RunSettingsWidget::aboutToShowDeployMenu() return; foreach (DeployConfigurationFactory *factory, factories) { - QList<Core::Id> ids = factory->availableCreationIds(m_target); - foreach (Core::Id id, ids) { - QAction *action = m_addDeployMenu->addAction(factory->defaultDisplayName()); - DeployFactoryAndId data = {factory, id}; - action->setData(QVariant::fromValue(data)); - connect(action, &QAction::triggered, [factory, id, this]() { - if (!factory->canCreate(m_target, id)) - return; - DeployConfiguration *newDc = factory->create(m_target, id); - if (!newDc) - return; - QTC_CHECK(!newDc || newDc->id() == id); - m_target->addDeployConfiguration(newDc); - SessionManager::setActiveDeployConfiguration(m_target, newDc, SetActive::Cascade); - m_removeDeployToolButton->setEnabled(m_target->deployConfigurations().size() > 1); - }); - } + QAction *action = m_addDeployMenu->addAction(factory->defaultDisplayName()); + const Core::Id id = factory->creationId(); + DeployFactoryAndId data = {factory, id}; + action->setData(QVariant::fromValue(data)); + connect(action, &QAction::triggered, [factory, id, this]() { + if (!factory->canCreate(m_target, id)) + return; + DeployConfiguration *newDc = factory->create(m_target, id); + if (!newDc) + return; + QTC_CHECK(!newDc || newDc->id() == id); + m_target->addDeployConfiguration(newDc); + SessionManager::setActiveDeployConfiguration(m_target, newDc, SetActive::Cascade); + m_removeDeployToolButton->setEnabled(m_target->deployConfigurations().size() > 1); + }); } } diff --git a/src/plugins/projectexplorer/target.cpp b/src/plugins/projectexplorer/target.cpp index 8b87bf525c..05cc11de34 100644 --- a/src/plugins/projectexplorer/target.cpp +++ b/src/plugins/projectexplorer/target.cpp @@ -513,7 +513,7 @@ void Target::updateDefaultDeployConfigurations() QList<Core::Id> dcIds; foreach (DeployConfigurationFactory *dcFactory, dcFactories) - dcIds.append(dcFactory->availableCreationIds(this)); + dcIds.append(dcFactory->creationId()); QList<DeployConfiguration *> dcList = deployConfigurations(); QList<Core::Id> toCreate = dcIds; |