ProjectExplorer: Streamline RunConfigurationFactory interface

canHandle() is only used locally in the implementation, so
make it private and de-virtualize.

canCreateHelper() did nothing except returning true anymore,
so remove it.

Change-Id: Ifac39e077e3c296b2b2dfc9fbb29c20884e056a3
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2018-03-19 13:18:27 +01:00
parent 98e26dc6fb
commit 232e8712a5
2 changed files with 7 additions and 20 deletions

View File

@@ -499,15 +499,12 @@ RunConfigurationFactory::availableCreators(Target *parent) const
} }
/*! /*!
Specifies a list of device types for which this RunConfigurationFactory Adds a list of device types for which this RunConfigurationFactory
can create RunConfiguration. can create RunConfigurations.
Not calling this function or using an empty list means no restriction. If this function is never called for a RunConfiguarionFactory,
the factory will create RunConfigurations for all device types.
*/ */
void RunConfigurationFactory::setSupportedTargetDeviceTypes(const QList<Core::Id> &ids)
{
m_supportedTargetDeviceTypes = ids;
}
void RunConfigurationFactory::addSupportedTargetDeviceType(Core::Id id) void RunConfigurationFactory::addSupportedTargetDeviceType(Core::Id id)
{ {
@@ -544,20 +541,12 @@ bool RunConfigurationFactory::canHandle(Target *target) const
return true; return true;
} }
bool RunConfigurationFactory::canCreateHelper(Target *, const QString &) const
{
return true;
}
RunConfiguration *RunConfigurationCreationInfo::create(Target *target) const RunConfiguration *RunConfigurationCreationInfo::create(Target *target) const
{ {
QTC_ASSERT(factory->canHandle(target), return nullptr); QTC_ASSERT(factory->canHandle(target), return nullptr);
QTC_ASSERT(id == factory->runConfigurationBaseId(), return nullptr); QTC_ASSERT(id == factory->runConfigurationBaseId(), return nullptr);
if (!factory->canCreateHelper(target, targetName))
return nullptr;
QTC_ASSERT(factory->m_creator, return nullptr); QTC_ASSERT(factory->m_creator, return nullptr);
RunConfiguration *rc = factory->m_creator(target); RunConfiguration *rc = factory->m_creator(target);
if (!rc) if (!rc)
return nullptr; return nullptr;

View File

@@ -320,8 +320,6 @@ public:
static const QList<RunConfigurationFactory *> allRunConfigurationFactories(); static const QList<RunConfigurationFactory *> allRunConfigurationFactories();
virtual bool canHandle(Target *target) const;
static RunConfiguration *restore(Target *parent, const QVariantMap &map); static RunConfiguration *restore(Target *parent, const QVariantMap &map);
static RunConfiguration *clone(Target *parent, RunConfiguration *source); static RunConfiguration *clone(Target *parent, RunConfiguration *source);
static const QList<RunConfigurationFactory *> allFactories(); static const QList<RunConfigurationFactory *> allFactories();
@@ -333,7 +331,6 @@ public:
protected: protected:
virtual QList<RunConfigurationCreationInfo> availableCreators(Target *parent) const; virtual QList<RunConfigurationCreationInfo> availableCreators(Target *parent) const;
virtual bool canCreateHelper(Target *parent, const QString &buildTarget) const;
using RunConfigurationCreator = std::function<RunConfiguration *(Target *)>; using RunConfigurationCreator = std::function<RunConfiguration *(Target *)>;
@@ -345,11 +342,12 @@ protected:
} }
void addSupportedProjectType(Core::Id id); void addSupportedProjectType(Core::Id id);
void setSupportedTargetDeviceTypes(const QList<Core::Id> &ids);
void addSupportedTargetDeviceType(Core::Id id); void addSupportedTargetDeviceType(Core::Id id);
void setDecorateDisplayNames(bool on); void setDecorateDisplayNames(bool on);
private: private:
bool canHandle(Target *target) const;
friend class RunConfigurationCreationInfo; friend class RunConfigurationCreationInfo;
RunConfigurationCreator m_creator; RunConfigurationCreator m_creator;
Core::Id m_runConfigBaseId; Core::Id m_runConfigBaseId;