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