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>
This commit is contained in:
hjk
2019-01-15 15:48:01 +01:00
parent 32ced72511
commit a2d5ebccd2
4 changed files with 27 additions and 25 deletions

View File

@@ -151,11 +151,14 @@ DeployConfigurationFactory::~DeployConfigurationFactory()
g_deployConfigurationFactories.removeOne(this); g_deployConfigurationFactories.removeOne(this);
} }
QList<Core::Id> DeployConfigurationFactory::availableCreationIds(Target *parent) const bool DeployConfigurationFactory::canOffer(Target *parent) const
{ {
if (canHandle(parent) && hasAvailableBuildTargets(parent)) return canHandle(parent) && hasAvailableBuildTargets(parent);
return {m_deployConfigBaseId}; }
return {};
Core::Id DeployConfigurationFactory::creationId() const
{
return m_deployConfigBaseId;
} }
bool DeployConfigurationFactory::hasAvailableBuildTargets(Target *) const bool DeployConfigurationFactory::hasAvailableBuildTargets(Target *) const
@@ -239,7 +242,7 @@ QList<DeployConfigurationFactory *> DeployConfigurationFactory::find(Target *par
{ {
return Utils::filtered(g_deployConfigurationFactories, return Utils::filtered(g_deployConfigurationFactories,
[&parent](DeployConfigurationFactory *factory) { [&parent](DeployConfigurationFactory *factory) {
return !factory->availableCreationIds(parent).isEmpty(); return factory->canOffer(parent);
}); });
} }

View File

@@ -80,11 +80,12 @@ public:
DeployConfigurationFactory operator=(const DeployConfigurationFactory &) = delete; DeployConfigurationFactory operator=(const DeployConfigurationFactory &) = delete;
virtual ~DeployConfigurationFactory(); virtual ~DeployConfigurationFactory();
// used to show the list of possible additons to a target, returns a list of types // return possible addition to a target, invalid if there is none
QList<Core::Id> availableCreationIds(Target *parent) const; Core::Id creationId() const;
// the name to display to the user // the name to display to the user
QString defaultDisplayName() const; QString defaultDisplayName() const;
bool canOffer(Target *parent) const;
bool canCreate(Target *parent, Core::Id id) const; bool canCreate(Target *parent, Core::Id id) const;
virtual DeployConfiguration *create(Target *parent, Core::Id id); virtual DeployConfiguration *create(Target *parent, Core::Id id);

View File

@@ -367,9 +367,8 @@ void RunSettingsWidget::aboutToShowDeployMenu()
return; return;
foreach (DeployConfigurationFactory *factory, factories) { foreach (DeployConfigurationFactory *factory, factories) {
QList<Core::Id> ids = factory->availableCreationIds(m_target);
foreach (Core::Id id, ids) {
QAction *action = m_addDeployMenu->addAction(factory->defaultDisplayName()); QAction *action = m_addDeployMenu->addAction(factory->defaultDisplayName());
const Core::Id id = factory->creationId();
DeployFactoryAndId data = {factory, id}; DeployFactoryAndId data = {factory, id};
action->setData(QVariant::fromValue(data)); action->setData(QVariant::fromValue(data));
connect(action, &QAction::triggered, [factory, id, this]() { connect(action, &QAction::triggered, [factory, id, this]() {
@@ -384,7 +383,6 @@ void RunSettingsWidget::aboutToShowDeployMenu()
m_removeDeployToolButton->setEnabled(m_target->deployConfigurations().size() > 1); m_removeDeployToolButton->setEnabled(m_target->deployConfigurations().size() > 1);
}); });
} }
}
} }
void RunSettingsWidget::removeDeployConfiguration() void RunSettingsWidget::removeDeployConfiguration()

View File

@@ -513,7 +513,7 @@ void Target::updateDefaultDeployConfigurations()
QList<Core::Id> dcIds; QList<Core::Id> dcIds;
foreach (DeployConfigurationFactory *dcFactory, dcFactories) foreach (DeployConfigurationFactory *dcFactory, dcFactories)
dcIds.append(dcFactory->availableCreationIds(this)); dcIds.append(dcFactory->creationId());
QList<DeployConfiguration *> dcList = deployConfigurations(); QList<DeployConfiguration *> dcList = deployConfigurations();
QList<Core::Id> toCreate = dcIds; QList<Core::Id> toCreate = dcIds;