QtSupport: Replace BaseQtVersion::clone()

... by a mechanism that doesn't require re-implementation in each
derived class.

A QtVersion's type() is uniquely defined by the supported type of
the factory creating it, so that factory can be found and used
for cloning. Non-base data is copied by a fromMap(toMap()) dance
as done in the project configurations.

As a side-effect, the *QtVersion copy constructors are not used
and not needed anymore.

Change-Id: I3aa5a0fd90a27dd115769e0573647cb5669641a0
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2019-02-18 13:02:36 +01:00
parent 2562d540f9
commit 139f700162
19 changed files with 51 additions and 105 deletions

View File

@@ -42,16 +42,6 @@ using namespace ProjectExplorer;
IosQtVersion::IosQtVersion() = default;
IosQtVersion *IosQtVersion::clone() const
{
return new IosQtVersion(*this);
}
QString IosQtVersion::type() const
{
return QLatin1String(Constants::IOSQT);
}
bool IosQtVersion::isValid() const
{
if (!BaseQtVersion::isValid())