Merge DeployConfigurationFactory::{canHandle,canOffer}

Previous uses of canOffer are effectively unchanged in behavior,
other plain uses of canHandle now also check the additional
requirements on the Qt version on Android (the only platform
that had a custom hasBuildTarget() implementation). This is
assumed to make no difference in practice.

Change-Id: If12895d1421d5565ff91a18bf4d7df96c8191160
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2019-01-16 11:07:04 +01:00
parent 8ec2eb87a4
commit bc239e240e
4 changed files with 7 additions and 16 deletions

View File

@@ -60,8 +60,11 @@ AndroidDeployConfigurationFactory::AndroidDeployConfigurationFactory()
setDefaultDisplayName(AndroidDeployConfiguration::tr("Deploy to Android device")); setDefaultDisplayName(AndroidDeployConfiguration::tr("Deploy to Android device"));
} }
bool AndroidDeployConfigurationFactory::hasAvailableBuildTargets(Target *parent) const bool AndroidDeployConfigurationFactory::canHandle(Target *parent) const
{ {
if (!DeployConfigurationFactory::canHandle(parent))
return false;
if (!parent->project()->id().name().startsWith("QmlProjectManager.QmlProject")) { if (!parent->project()->id().name().startsWith("QmlProjectManager.QmlProject")) {
// Avoid tool chain check for QML Project // Avoid tool chain check for QML Project
Core::Id cxxLangId(ProjectExplorer::Constants::CXX_LANGUAGE_ID); Core::Id cxxLangId(ProjectExplorer::Constants::CXX_LANGUAGE_ID);

View File

@@ -44,7 +44,7 @@ class AndroidDeployConfigurationFactory : public ProjectExplorer::DeployConfigur
public: public:
AndroidDeployConfigurationFactory(); AndroidDeployConfigurationFactory();
bool hasAvailableBuildTargets(ProjectExplorer::Target *parent) const override; bool canHandle(ProjectExplorer::Target *parent) const override;
}; };
} // namespace Internal } // namespace Internal

View File

@@ -151,21 +151,11 @@ DeployConfigurationFactory::~DeployConfigurationFactory()
g_deployConfigurationFactories.removeOne(this); g_deployConfigurationFactories.removeOne(this);
} }
bool DeployConfigurationFactory::canOffer(Target *parent) const
{
return canHandle(parent) && hasAvailableBuildTargets(parent);
}
Core::Id DeployConfigurationFactory::creationId() const Core::Id DeployConfigurationFactory::creationId() const
{ {
return m_deployConfigBaseId; return m_deployConfigBaseId;
} }
bool DeployConfigurationFactory::hasAvailableBuildTargets(Target *) const
{
return true;
}
QString DeployConfigurationFactory::defaultDisplayName() const QString DeployConfigurationFactory::defaultDisplayName() const
{ {
return m_defaultDisplayName; return m_defaultDisplayName;
@@ -242,7 +232,7 @@ const QList<DeployConfigurationFactory *> DeployConfigurationFactory::find(Targe
{ {
return Utils::filtered(g_deployConfigurationFactories, return Utils::filtered(g_deployConfigurationFactories,
[&parent](DeployConfigurationFactory *factory) { [&parent](DeployConfigurationFactory *factory) {
return factory->canOffer(parent); return factory->canHandle(parent);
}); });
} }

View File

@@ -85,7 +85,6 @@ public:
// 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);
@@ -97,10 +96,9 @@ public:
void setDefaultDisplayName(const QString &defaultDisplayName); void setDefaultDisplayName(const QString &defaultDisplayName);
void setSupportedProjectType(Core::Id id); void setSupportedProjectType(Core::Id id);
protected:
virtual bool canHandle(ProjectExplorer::Target *target) const; virtual bool canHandle(ProjectExplorer::Target *target) const;
virtual bool hasAvailableBuildTargets(Target *parent) const;
protected:
using DeployConfigurationCreator = std::function<DeployConfiguration *(Target *)>; using DeployConfigurationCreator = std::function<DeployConfiguration *(Target *)>;
template <class DeployConfig> template <class DeployConfig>