Simplify IDeviceFactory use

With a 1:1 mapping of factory and created device types, the signatures
of the device factory methods are much simpler, and yield even in
the cases where a factory created more than one device type
(WinRt and Qdb) less code after duplication of the factory.

Change-Id: I1c6279a88e8483001e5603cfe1922029243be610
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2018-10-04 19:08:16 +02:00
parent 9fe5733ef3
commit 0c2101d816
26 changed files with 109 additions and 186 deletions

View File

@@ -36,25 +36,18 @@ namespace Android {
namespace Internal {
AndroidDeviceFactory::AndroidDeviceFactory()
: ProjectExplorer::IDeviceFactory(Constants::ANDROID_DEVICE_TYPE)
{
setObjectName(QLatin1String("AndroidDeviceFactory"));
}
QString AndroidDeviceFactory::displayNameForId(Core::Id type) const
QString AndroidDeviceFactory::displayName() const
{
if (type == Constants::ANDROID_DEVICE_TYPE)
return tr("Android Device");
return QString();
return tr("Android Device");
}
QList<Core::Id> AndroidDeviceFactory::availableCreationIds() const
QIcon AndroidDeviceFactory::icon() const
{
return QList<Core::Id>() << Core::Id(Constants::ANDROID_DEVICE_TYPE);
}
QIcon AndroidDeviceFactory::iconForId(Core::Id type) const
{
Q_UNUSED(type)
using namespace Utils;
static const QIcon icon =
Icon::combinedIcon({Icon({{":/android/images/androiddevicesmall.png",
@@ -69,15 +62,14 @@ bool AndroidDeviceFactory::canCreate() const
return false;
}
ProjectExplorer::IDevice::Ptr AndroidDeviceFactory::create(Core::Id id) const
ProjectExplorer::IDevice::Ptr AndroidDeviceFactory::create() const
{
Q_UNUSED(id)
return ProjectExplorer::IDevice::Ptr();
}
bool AndroidDeviceFactory::canRestore(const QVariantMap &map) const
{
return ProjectExplorer::IDevice::typeFromMap(map) == Constants::ANDROID_DEVICE_TYPE;
return ProjectExplorer::IDevice::typeFromMap(map) == deviceType();
}
ProjectExplorer::IDevice::Ptr AndroidDeviceFactory::restore(const QVariantMap &map) const

View File

@@ -36,12 +36,11 @@ class AndroidDeviceFactory : public ProjectExplorer::IDeviceFactory
public:
AndroidDeviceFactory();
QString displayNameForId(Core::Id type) const override;
QList<Core::Id> availableCreationIds() const override;
QIcon iconForId(Core::Id type) const override;
QString displayName() const override;
QIcon icon() const override;
bool canCreate() const override;
ProjectExplorer::IDevice::Ptr create(Core::Id id) const override;
ProjectExplorer::IDevice::Ptr create() const override;
bool canRestore(const QVariantMap &map) const override;
ProjectExplorer::IDevice::Ptr restore(const QVariantMap &map) const override;
};