summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2019-01-22 13:14:22 +0100
committerhjk <hjk@qt.io>2019-01-24 13:09:13 +0000
commit7f3de881e3d8196649e69e025c80d872fbea2e24 (patch)
tree7e3e3af98c653783bb5e039c0175fd45befc1483
parent197f2b5f2a8d5335040e0b8012797bf47a29f397 (diff)
downloadqt-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.cpp14
-rw-r--r--src/plugins/projectexplorer/deployconfiguration.h3
-rw-r--r--src/plugins/projectexplorer/runsettingspropertiespage.cpp19
-rw-r--r--src/plugins/projectexplorer/target.cpp4
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);