diff options
author | hjk <hjk@qt.io> | 2019-01-22 13:14:22 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2019-01-24 13:09:13 +0000 |
commit | 7f3de881e3d8196649e69e025c80d872fbea2e24 (patch) | |
tree | 7e3e3af98c653783bb5e039c0175fd45befc1483 | |
parent | 197f2b5f2a8d5335040e0b8012797bf47a29f397 (diff) | |
download | qt-creator-7f3de881e3d8196649e69e025c80d872fbea2e24.tar.gz |
ProjectExplorer: Remove some Id use from DeployConfig interface
There's a 1:1 relation between the involved types, having either
the factory or the id implies having the other. So shorten interfaces
that used both so far. Also canCreate() == canHandle() && id matches,
so use that directly.
Also drop/QTC_ASSERT former canHandle() checks that are implicit
in preceding ::find() calls.
Change-Id: I686ea5774c5a01b05b3b4882b3d59080a812a677
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r-- | src/plugins/projectexplorer/deployconfiguration.cpp | 14 | ||||
-rw-r--r-- | src/plugins/projectexplorer/deployconfiguration.h | 3 | ||||
-rw-r--r-- | src/plugins/projectexplorer/runsettingspropertiespage.cpp | 19 | ||||
-rw-r--r-- | src/plugins/projectexplorer/target.cpp | 4 |
4 files changed, 7 insertions, 33 deletions
diff --git a/src/plugins/projectexplorer/deployconfiguration.cpp b/src/plugins/projectexplorer/deployconfiguration.cpp index 88470828f3..90f8b103d1 100644 --- a/src/plugins/projectexplorer/deployconfiguration.cpp +++ b/src/plugins/projectexplorer/deployconfiguration.cpp @@ -190,19 +190,9 @@ void DeployConfigurationFactory::setConfigBaseId(Core::Id deployConfigBaseId) m_deployConfigBaseId = deployConfigBaseId; } -bool DeployConfigurationFactory::canCreate(Target *parent, Core::Id id) const +DeployConfiguration *DeployConfigurationFactory::create(Target *parent) { - if (!canHandle(parent)) - return false; - if (!id.name().startsWith(m_deployConfigBaseId.name())) - return false; - return true; -} - -DeployConfiguration *DeployConfigurationFactory::create(Target *parent, Core::Id id) -{ - if (!canCreate(parent, id)) - return nullptr; + QTC_ASSERT(canHandle(parent), return nullptr); QTC_ASSERT(m_creator, return nullptr); DeployConfiguration *dc = m_creator(parent); if (!dc) diff --git a/src/plugins/projectexplorer/deployconfiguration.h b/src/plugins/projectexplorer/deployconfiguration.h index f4a9bca255..fd60277ffe 100644 --- a/src/plugins/projectexplorer/deployconfiguration.h +++ b/src/plugins/projectexplorer/deployconfiguration.h @@ -79,8 +79,7 @@ public: // the name to display to the user QString defaultDisplayName() const; - bool canCreate(Target *parent, Core::Id id) const; - virtual DeployConfiguration *create(Target *parent, Core::Id id); + DeployConfiguration *create(Target *parent); static const QList<DeployConfigurationFactory *> find(Target *parent); static DeployConfiguration *restore(Target *parent, const QVariantMap &map); diff --git a/src/plugins/projectexplorer/runsettingspropertiespage.cpp b/src/plugins/projectexplorer/runsettingspropertiespage.cpp index abd2ed5af9..3b30bf63ad 100644 --- a/src/plugins/projectexplorer/runsettingspropertiespage.cpp +++ b/src/plugins/projectexplorer/runsettingspropertiespage.cpp @@ -61,19 +61,10 @@ struct FactoryAndId Core::Id id; }; -class DeployFactoryAndId -{ -public: - DeployConfigurationFactory *factory; - Core::Id id; -}; - - } // namespace Internal } // namespace ProjectExplorer Q_DECLARE_METATYPE(ProjectExplorer::Internal::FactoryAndId) -Q_DECLARE_METATYPE(ProjectExplorer::Internal::DeployFactoryAndId) using namespace ProjectExplorer; using namespace ProjectExplorer::Internal; @@ -367,16 +358,10 @@ void RunSettingsWidget::aboutToShowDeployMenu() for (DeployConfigurationFactory *factory : DeployConfigurationFactory::find(m_target)) { 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); + connect(action, &QAction::triggered, [factory, this]() { + DeployConfiguration *newDc = factory->create(m_target); 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 05cc11de34..b42ed99d0a 100644 --- a/src/plugins/projectexplorer/target.cpp +++ b/src/plugins/projectexplorer/target.cpp @@ -527,8 +527,8 @@ void Target::updateDefaultDeployConfigurations() foreach (Core::Id id, toCreate) { foreach (DeployConfigurationFactory *dcFactory, dcFactories) { - if (dcFactory->canCreate(this, id)) { - DeployConfiguration *dc = dcFactory->create(this, id); + if (dcFactory->creationId() == id) { + DeployConfiguration *dc = dcFactory->create(this); if (dc) { QTC_CHECK(dc->id() == id); addDeployConfiguration(dc); |