QtSupport: Simplify use of QtVersionFactory::create()

Use two setters, one already pre-existing, to set autodetection
data instead of passing that through the create/contructor chain.

Change-Id: I8f9bdf2f82518aae765327a823bdea44210c2f96
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2019-02-14 09:21:40 +01:00
parent f0dabc7442
commit 72d962e949
30 changed files with 62 additions and 78 deletions

View File

@@ -50,8 +50,8 @@ AndroidQtVersion::AndroidQtVersion()
{
}
AndroidQtVersion::AndroidQtVersion(const Utils::FileName &path, bool isAutodetected, const QString &autodetectionSource)
: QtSupport::BaseQtVersion(path, isAutodetected, autodetectionSource)
AndroidQtVersion::AndroidQtVersion(const Utils::FileName &path)
: QtSupport::BaseQtVersion(path)
{
setUnexpandedDisplayName(defaultUnexpandedDisplayName(path, false));
}

View File

@@ -38,7 +38,7 @@ class AndroidQtVersion : public QtSupport::BaseQtVersion
public:
AndroidQtVersion();
AndroidQtVersion(const Utils::FileName &path, bool isAutodetected = false, const QString &autodetectionSource = QString());
explicit AndroidQtVersion(const Utils::FileName &path);
AndroidQtVersion *clone() const override;
QString type() const override;

View File

@@ -40,14 +40,14 @@ AndroidQtVersionFactory::AndroidQtVersionFactory()
setPriority(90);
}
QtSupport::BaseQtVersion *AndroidQtVersionFactory::create(const Utils::FileName &qmakePath, ProFileEvaluator *evaluator, bool isAutoDetected, const QString &autoDetectionSource)
QtSupport::BaseQtVersion *AndroidQtVersionFactory::create(const Utils::FileName &qmakePath, ProFileEvaluator *evaluator)
{
if (!evaluator->values(QLatin1String("CONFIG")).contains(QLatin1String("android"))
&& evaluator->value(QLatin1String("QMAKE_PLATFORM")) != QLatin1String("android"))
return nullptr;
if (evaluator->values(QLatin1String("CONFIG")).contains(QLatin1String("android-no-sdk")))
return nullptr;
return new AndroidQtVersion(qmakePath, isAutoDetected, autoDetectionSource);
return new AndroidQtVersion(qmakePath);
}
} // Internal

View File

@@ -35,8 +35,8 @@ class AndroidQtVersionFactory : public QtSupport::QtVersionFactory
public:
AndroidQtVersionFactory();
QtSupport::BaseQtVersion *create(const Utils::FileName &qmakePath, ProFileEvaluator *evaluator,
bool isAutoDetected = false, const QString &autoDetectionSource = QString()) override;
QtSupport::BaseQtVersion *create(const Utils::FileName &qmakePath,
ProFileEvaluator *evaluator) override;
};
} // namespace Internal

View File

@@ -42,9 +42,8 @@ using namespace ProjectExplorer;
IosQtVersion::IosQtVersion() = default;
IosQtVersion::IosQtVersion(const Utils::FileName &path, bool isAutodetected,
const QString &autodetectionSource)
: QtSupport::BaseQtVersion(path, isAutodetected, autodetectionSource)
IosQtVersion::IosQtVersion(const Utils::FileName &path)
: QtSupport::BaseQtVersion(path)
{
setUnexpandedDisplayName(defaultUnexpandedDisplayName(path, false));
}

View File

@@ -38,8 +38,7 @@ class IosQtVersion : public QtSupport::BaseQtVersion
public:
IosQtVersion();
IosQtVersion(const Utils::FileName &path, bool isAutodetected = false,
const QString &autodetectionSource = QString());
explicit IosQtVersion(const Utils::FileName &path);
IosQtVersion *clone() const override;
QString type() const override;

View File

@@ -40,13 +40,11 @@ IosQtVersionFactory::IosQtVersionFactory()
}
QtSupport::BaseQtVersion *IosQtVersionFactory::create(const Utils::FileName &qmakePath,
ProFileEvaluator *evaluator,
bool isAutoDetected,
const QString &autoDetectionSource)
ProFileEvaluator *evaluator)
{
if (!(evaluator->values(QLatin1String("QMAKE_PLATFORM")).contains(QLatin1String("ios"))))
return nullptr;
return new IosQtVersion(qmakePath, isAutoDetected, autoDetectionSource);
return new IosQtVersion(qmakePath);
}
} // Internal

View File

@@ -35,9 +35,8 @@ class IosQtVersionFactory : public QtSupport::QtVersionFactory
public:
IosQtVersionFactory();
QtSupport::BaseQtVersion *create(const Utils::FileName &qmakePath, ProFileEvaluator *evaluator,
bool isAutoDetected = false,
const QString &autoDetectionSource = QString()) override;
QtSupport::BaseQtVersion *create(const Utils::FileName &qmakePath,
ProFileEvaluator *evaluator) override;
};
} // namespace Internal

View File

@@ -46,9 +46,8 @@ static char SDP_PATH_KEY[] = "SDKPath";
QnxQtVersion::QnxQtVersion() = default;
QnxQtVersion::QnxQtVersion(const Utils::FileName &path, bool isAutoDetected,
const QString &autoDetectionSource) :
QtSupport::BaseQtVersion(path, isAutoDetected, autoDetectionSource)
QnxQtVersion::QnxQtVersion(const Utils::FileName &path) :
QtSupport::BaseQtVersion(path)
{
setUnexpandedDisplayName(defaultUnexpandedDisplayName(path, false));
}

View File

@@ -39,9 +39,8 @@ class QnxQtVersion : public QtSupport::BaseQtVersion
{
public:
QnxQtVersion();
QnxQtVersion(const Utils::FileName &path,
bool isAutoDetected = false,
const QString &autoDetectionSource = QString());
explicit QnxQtVersion(const Utils::FileName &path);
QnxQtVersion *clone() const override;
QString type() const override;

View File

@@ -41,12 +41,10 @@ QnxQtVersionFactory::QnxQtVersionFactory()
}
QtSupport::BaseQtVersion *QnxQtVersionFactory::create(const Utils::FileName &qmakePath,
ProFileEvaluator *evaluator,
bool isAutoDetected,
const QString &autoDetectionSource)
ProFileEvaluator *evaluator)
{
if (evaluator->contains(QLatin1String("QNX_CPUDIR"))) {
return new QnxQtVersion(qmakePath, isAutoDetected, autoDetectionSource);
return new QnxQtVersion(qmakePath);
}
return nullptr;

View File

@@ -36,9 +36,7 @@ public:
QnxQtVersionFactory();
QtSupport::BaseQtVersion *create(const Utils::FileName &qmakePath,
ProFileEvaluator *evaluator,
bool isAutoDetected = false,
const QString &autoDetectionSource = QString()) override;
ProFileEvaluator *evaluator) override;
};
} // namespace Internal

View File

@@ -193,10 +193,8 @@ bool QtVersionNumber::operator >=(const QtVersionNumber &b) const
// BaseQtVersion
///////////////
BaseQtVersion::BaseQtVersion(const FileName &qmakeCommand, bool isAutodetected, const QString &autodetectionSource)
BaseQtVersion::BaseQtVersion(const FileName &qmakeCommand)
: m_id(QtVersionManager::getUniqueId()),
m_isAutodetected(isAutodetected),
m_autodetectionSource(autodetectionSource),
m_qmakeCommand(qmakeCommand)
{ }
BaseQtVersion::BaseQtVersion(const BaseQtVersion &other) = default;
@@ -498,6 +496,11 @@ void BaseQtVersion::setId(int id)
m_id = id;
}
void BaseQtVersion::setIsAutodetected(bool isAutodetected)
{
m_isAutodetected = isAutodetected;
}
void BaseQtVersion::fromMap(const QVariantMap &map)
{
m_id = map.value(Constants::QTVERSIONID).toInt();

View File

@@ -253,10 +253,12 @@ public:
const ProjectExplorer::Target *target);
QSet<Core::Id> features() const;
void setIsAutodetected(bool isAutodetected);
protected:
virtual QSet<Core::Id> availableFeatures() const;
BaseQtVersion();
BaseQtVersion(const Utils::FileName &path, bool isAutodetected = false, const QString &autodetectionSource = QString());
explicit BaseQtVersion(const Utils::FileName &path);
BaseQtVersion(const BaseQtVersion &other);
virtual QList<ProjectExplorer::Task> reportIssuesImpl(const QString &proFile, const QString &buildDir) const;

View File

@@ -46,8 +46,8 @@ DesktopQtVersion::DesktopQtVersion()
}
DesktopQtVersion::DesktopQtVersion(const Utils::FileName &path, bool isAutodetected, const QString &autodetectionSource)
: BaseQtVersion(path, isAutodetected, autodetectionSource)
DesktopQtVersion::DesktopQtVersion(const Utils::FileName &path)
: BaseQtVersion(path)
{
setUnexpandedDisplayName(defaultUnexpandedDisplayName(path, false));
}

View File

@@ -33,7 +33,7 @@ class QTSUPPORT_EXPORT DesktopQtVersion : public BaseQtVersion
{
public:
DesktopQtVersion();
DesktopQtVersion(const Utils::FileName &path, bool isAutodetected = false, const QString &autodetectionSource = QString());
explicit DesktopQtVersion(const Utils::FileName &path);
DesktopQtVersion *clone() const override;
QString type() const override;

View File

@@ -37,9 +37,9 @@ DesktopQtVersionFactory::DesktopQtVersionFactory()
setPriority(0); // Lowest of all, we want to be the fallback
}
BaseQtVersion *DesktopQtVersionFactory::create(const Utils::FileName &qmakePath, ProFileEvaluator *evaluator, bool isAutoDetected, const QString &autoDetectionSource)
BaseQtVersion *DesktopQtVersionFactory::create(const Utils::FileName &qmakePath, ProFileEvaluator *evaluator)
{
Q_UNUSED(evaluator);
// we are the fallback :) so we don't care what kind of qt it is
return new DesktopQtVersion(qmakePath, isAutoDetected, autoDetectionSource);
return new DesktopQtVersion(qmakePath);
}

View File

@@ -35,8 +35,7 @@ class DesktopQtVersionFactory : public QtVersionFactory
public:
DesktopQtVersionFactory();
BaseQtVersion *create(const Utils::FileName &qmakePath, ProFileEvaluator *evaluator,
bool isAutoDetected = false, const QString &autoDetectionSource = QString()) override;
BaseQtVersion *create(const Utils::FileName &qmakePath, ProFileEvaluator *evaluator) override;
};
} // Internal

View File

@@ -98,8 +98,9 @@ BaseQtVersion *QtVersionFactory::createQtVersionFromQMakePath(const Utils::FileN
return nullptr;
foreach (QtVersionFactory *factory, factories) {
BaseQtVersion *ver = factory->create(qmakePath, &evaluator, isAutoDetected, autoDetectionSource);
if (ver) {
if (BaseQtVersion *ver = factory->create(qmakePath, &evaluator)) {
ver->setAutoDetectionSource(autoDetectionSource);
ver->setIsAutodetected(isAutoDetected);
ProFileCacheManager::instance()->decRefCount();
return ver;
}

View File

@@ -55,9 +55,7 @@ public:
/// the desktop factory claims to handle all paths
int priority() const { return m_priority; }
virtual BaseQtVersion *create(const Utils::FileName &qmakePath,
ProFileEvaluator *evaluator,
bool isAutoDetected = false,
const QString &autoDetectionSource = QString()) = 0;
ProFileEvaluator *evaluator) = 0;
static BaseQtVersion *createQtVersionFromQMakePath(
const Utils::FileName &qmakePath, bool isAutoDetected = false,

View File

@@ -35,9 +35,8 @@
namespace RemoteLinux {
namespace Internal {
EmbeddedLinuxQtVersion::EmbeddedLinuxQtVersion(const Utils::FileName &path, bool isAutodetected,
const QString &autodetectionSource)
: BaseQtVersion(path, isAutodetected, autodetectionSource)
EmbeddedLinuxQtVersion::EmbeddedLinuxQtVersion(const Utils::FileName &path)
: BaseQtVersion(path)
{
setUnexpandedDisplayName(defaultUnexpandedDisplayName(path, false));
}

View File

@@ -34,8 +34,8 @@ class EmbeddedLinuxQtVersion : public QtSupport::BaseQtVersion
{
public:
EmbeddedLinuxQtVersion() = default;
EmbeddedLinuxQtVersion(const Utils::FileName &path, bool isAutodetected = false,
const QString &autodetectionSource = QString());
explicit EmbeddedLinuxQtVersion(const Utils::FileName &path);
EmbeddedLinuxQtVersion *clone() const override;
QString type() const override;

View File

@@ -41,13 +41,11 @@ EmbeddedLinuxQtVersionFactory::EmbeddedLinuxQtVersionFactory()
}
QtSupport::BaseQtVersion *EmbeddedLinuxQtVersionFactory::create(const Utils::FileName &qmakePath,
ProFileEvaluator *evaluator,
bool isAutoDetected,
const QString &autoDetectionSource)
ProFileEvaluator *evaluator)
{
Q_UNUSED(evaluator);
auto version = new EmbeddedLinuxQtVersion(qmakePath, isAutoDetected, autoDetectionSource);
auto version = new EmbeddedLinuxQtVersion(qmakePath);
QList<ProjectExplorer::Abi> abis = version->qtAbis();
// Note: This fails for e.g. intel/meego cross builds on x86 linux machines.

View File

@@ -35,9 +35,8 @@ class EmbeddedLinuxQtVersionFactory : public QtSupport::QtVersionFactory
public:
EmbeddedLinuxQtVersionFactory();
QtSupport::BaseQtVersion *create(const Utils::FileName &qmakePath, ProFileEvaluator *evaluator,
bool isAutoDetected = false,
const QString &autoDetectionSource = QString()) override;
QtSupport::BaseQtVersion *create(const Utils::FileName &qmakePath,
ProFileEvaluator *evaluator) override;
};
} // Internal

View File

@@ -35,9 +35,8 @@
namespace WinRt {
namespace Internal {
WinRtPhoneQtVersion::WinRtPhoneQtVersion(const Utils::FileName &path, bool isAutodetected,
const QString &autodetectionSource)
: WinRtQtVersion(path, isAutodetected, autodetectionSource)
WinRtPhoneQtVersion::WinRtPhoneQtVersion(const Utils::FileName &path)
: WinRtQtVersion(path)
{
}

View File

@@ -35,8 +35,7 @@ class WinRtPhoneQtVersion : public WinRtQtVersion
Q_DECLARE_TR_FUNCTIONS(WinRt::Internal::WinRtQtVersion)
public:
WinRtPhoneQtVersion() = default;
WinRtPhoneQtVersion(const Utils::FileName &path, bool isAutodetected,
const QString &autodetectionSource);
explicit WinRtPhoneQtVersion(const Utils::FileName &path);
QString description() const override;
BaseQtVersion *clone() const override;

View File

@@ -33,9 +33,8 @@
namespace WinRt {
namespace Internal {
WinRtQtVersion::WinRtQtVersion(const Utils::FileName &path, bool isAutodetected,
const QString &autodetectionSource)
: BaseQtVersion(path, isAutodetected, autodetectionSource)
WinRtQtVersion::WinRtQtVersion(const Utils::FileName &path)
: BaseQtVersion(path)
{
setUnexpandedDisplayName(defaultUnexpandedDisplayName(path, false));
}

View File

@@ -35,8 +35,7 @@ class WinRtQtVersion : public QtSupport::BaseQtVersion
Q_DECLARE_TR_FUNCTIONS(WinRt::Internal::WinRtQtVersion)
public:
WinRtQtVersion() = default;
WinRtQtVersion(const Utils::FileName &path, bool isAutodetected,
const QString &autodetectionSource);
explicit WinRtQtVersion(const Utils::FileName &path);
BaseQtVersion *clone() const override;
QString type() const override;

View File

@@ -41,11 +41,11 @@ WinRtQtVersionFactory::WinRtQtVersionFactory()
}
QtSupport::BaseQtVersion *WinRtQtVersionFactory::create(const Utils::FileName &qmakePath,
ProFileEvaluator *evaluator, bool isAutoDetected, const QString &autoDetectionSource)
ProFileEvaluator *evaluator)
{
foreach (const QString &value, evaluator->values(QLatin1String("QMAKE_PLATFORM"))) {
if (value == QStringLiteral("winrt"))
return new WinRtQtVersion(qmakePath, isAutoDetected, autoDetectionSource);
return new WinRtQtVersion(qmakePath);
}
return nullptr;
@@ -61,11 +61,11 @@ WinRtPhoneQtVersionFactory::WinRtPhoneQtVersionFactory()
}
QtSupport::BaseQtVersion *WinRtPhoneQtVersionFactory::create(const Utils::FileName &qmakePath,
ProFileEvaluator *evaluator, bool isAutoDetected, const QString &autoDetectionSource)
ProFileEvaluator *evaluator)
{
foreach (const QString &value, evaluator->values(QLatin1String("QMAKE_PLATFORM"))) {
if (value == QStringLiteral("winphone"))
return new WinRtPhoneQtVersion(qmakePath, isAutoDetected, autoDetectionSource);
return new WinRtPhoneQtVersion(qmakePath);
}
return nullptr;

View File

@@ -35,8 +35,8 @@ class WinRtQtVersionFactory : public QtSupport::QtVersionFactory
public:
WinRtQtVersionFactory();
QtSupport::BaseQtVersion *create(const Utils::FileName &qmakePath, ProFileEvaluator *evaluator,
bool isAutoDetected = false, const QString &autoDetectionSource = QString());
QtSupport::BaseQtVersion *create(const Utils::FileName &qmakePath,
ProFileEvaluator *evaluator) override;
};
class WinRtPhoneQtVersionFactory : public QtSupport::QtVersionFactory
@@ -44,8 +44,8 @@ class WinRtPhoneQtVersionFactory : public QtSupport::QtVersionFactory
public:
WinRtPhoneQtVersionFactory();
QtSupport::BaseQtVersion *create(const Utils::FileName &qmakePath, ProFileEvaluator *evaluator,
bool isAutoDetected = false, const QString &autoDetectionSource = QString());
QtSupport::BaseQtVersion *create(const Utils::FileName &qmakePath,
ProFileEvaluator *evaluator) override;
};
} // Internal