forked from qt-creator/qt-creator
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:
@@ -36,25 +36,18 @@ namespace Android {
|
|||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
AndroidDeviceFactory::AndroidDeviceFactory()
|
AndroidDeviceFactory::AndroidDeviceFactory()
|
||||||
|
: ProjectExplorer::IDeviceFactory(Constants::ANDROID_DEVICE_TYPE)
|
||||||
{
|
{
|
||||||
setObjectName(QLatin1String("AndroidDeviceFactory"));
|
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 tr("Android Device");
|
|
||||||
return QString();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
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;
|
using namespace Utils;
|
||||||
static const QIcon icon =
|
static const QIcon icon =
|
||||||
Icon::combinedIcon({Icon({{":/android/images/androiddevicesmall.png",
|
Icon::combinedIcon({Icon({{":/android/images/androiddevicesmall.png",
|
||||||
@@ -69,15 +62,14 @@ bool AndroidDeviceFactory::canCreate() const
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
ProjectExplorer::IDevice::Ptr AndroidDeviceFactory::create(Core::Id id) const
|
ProjectExplorer::IDevice::Ptr AndroidDeviceFactory::create() const
|
||||||
{
|
{
|
||||||
Q_UNUSED(id)
|
|
||||||
return ProjectExplorer::IDevice::Ptr();
|
return ProjectExplorer::IDevice::Ptr();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AndroidDeviceFactory::canRestore(const QVariantMap &map) const
|
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
|
ProjectExplorer::IDevice::Ptr AndroidDeviceFactory::restore(const QVariantMap &map) const
|
||||||
|
@@ -36,12 +36,11 @@ class AndroidDeviceFactory : public ProjectExplorer::IDeviceFactory
|
|||||||
public:
|
public:
|
||||||
AndroidDeviceFactory();
|
AndroidDeviceFactory();
|
||||||
|
|
||||||
QString displayNameForId(Core::Id type) const override;
|
QString displayName() const override;
|
||||||
QList<Core::Id> availableCreationIds() const override;
|
QIcon icon() const override;
|
||||||
QIcon iconForId(Core::Id type) const override;
|
|
||||||
|
|
||||||
bool canCreate() 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;
|
bool canRestore(const QVariantMap &map) const override;
|
||||||
ProjectExplorer::IDevice::Ptr restore(const QVariantMap &map) const override;
|
ProjectExplorer::IDevice::Ptr restore(const QVariantMap &map) const override;
|
||||||
};
|
};
|
||||||
|
@@ -40,22 +40,17 @@ namespace BareMetal {
|
|||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
BareMetalDeviceConfigurationFactory::BareMetalDeviceConfigurationFactory()
|
BareMetalDeviceConfigurationFactory::BareMetalDeviceConfigurationFactory()
|
||||||
|
: IDeviceFactory(Constants::BareMetalOsType)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
QString BareMetalDeviceConfigurationFactory::displayNameForId(Core::Id type) const
|
QString BareMetalDeviceConfigurationFactory::displayName() const
|
||||||
{
|
{
|
||||||
return type == Constants::BareMetalOsType ? tr("Bare Metal Device") : QString();
|
return tr("Bare Metal Device");
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<Core::Id> BareMetalDeviceConfigurationFactory::availableCreationIds() const
|
QIcon BareMetalDeviceConfigurationFactory::icon() const
|
||||||
{
|
{
|
||||||
return QList<Core::Id>() << Core::Id(Constants::BareMetalOsType);
|
|
||||||
}
|
|
||||||
|
|
||||||
QIcon BareMetalDeviceConfigurationFactory::iconForId(Core::Id type) const
|
|
||||||
{
|
|
||||||
Q_UNUSED(type)
|
|
||||||
using namespace Utils;
|
using namespace Utils;
|
||||||
static const QIcon icon =
|
static const QIcon icon =
|
||||||
Icon::combinedIcon({Icon({{":/baremetal/images/baremetaldevicesmall.png",
|
Icon::combinedIcon({Icon({{":/baremetal/images/baremetaldevicesmall.png",
|
||||||
@@ -65,9 +60,8 @@ QIcon BareMetalDeviceConfigurationFactory::iconForId(Core::Id type) const
|
|||||||
return icon;
|
return icon;
|
||||||
}
|
}
|
||||||
|
|
||||||
IDevice::Ptr BareMetalDeviceConfigurationFactory::create(Core::Id id) const
|
IDevice::Ptr BareMetalDeviceConfigurationFactory::create() const
|
||||||
{
|
{
|
||||||
QTC_ASSERT(id == Constants::BareMetalOsType, return IDevice::Ptr());
|
|
||||||
BareMetalDeviceConfigurationWizard wizard;
|
BareMetalDeviceConfigurationWizard wizard;
|
||||||
if (wizard.exec() != QDialog::Accepted)
|
if (wizard.exec() != QDialog::Accepted)
|
||||||
return IDevice::Ptr();
|
return IDevice::Ptr();
|
||||||
@@ -76,7 +70,7 @@ IDevice::Ptr BareMetalDeviceConfigurationFactory::create(Core::Id id) const
|
|||||||
|
|
||||||
bool BareMetalDeviceConfigurationFactory::canRestore(const QVariantMap &map) const
|
bool BareMetalDeviceConfigurationFactory::canRestore(const QVariantMap &map) const
|
||||||
{
|
{
|
||||||
return IDevice::typeFromMap(map) == Constants::BareMetalOsType;
|
return IDevice::typeFromMap(map) == deviceType();
|
||||||
}
|
}
|
||||||
|
|
||||||
IDevice::Ptr BareMetalDeviceConfigurationFactory::restore(const QVariantMap &map) const
|
IDevice::Ptr BareMetalDeviceConfigurationFactory::restore(const QVariantMap &map) const
|
||||||
|
@@ -38,11 +38,10 @@ class BareMetalDeviceConfigurationFactory
|
|||||||
public:
|
public:
|
||||||
BareMetalDeviceConfigurationFactory();
|
BareMetalDeviceConfigurationFactory();
|
||||||
|
|
||||||
QString displayNameForId(Core::Id type) const override;
|
QString displayName() const override;
|
||||||
QList<Core::Id> availableCreationIds() const override;
|
QIcon icon() const override;
|
||||||
QIcon iconForId(Core::Id type) const override;
|
|
||||||
|
|
||||||
ProjectExplorer::IDevice::Ptr create(Core::Id id) const override;
|
ProjectExplorer::IDevice::Ptr create() const override;
|
||||||
bool canRestore(const QVariantMap &map) const override;
|
bool canRestore(const QVariantMap &map) const override;
|
||||||
ProjectExplorer::IDevice::Ptr restore(const QVariantMap &map) const override;
|
ProjectExplorer::IDevice::Ptr restore(const QVariantMap &map) const override;
|
||||||
};
|
};
|
||||||
|
@@ -36,23 +36,18 @@ namespace Ios {
|
|||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
IosDeviceFactory::IosDeviceFactory()
|
IosDeviceFactory::IosDeviceFactory()
|
||||||
|
: ProjectExplorer::IDeviceFactory(Constants::IOS_DEVICE_ID)
|
||||||
{
|
{
|
||||||
setObjectName(QLatin1String("IosDeviceFactory"));
|
setObjectName(QLatin1String("IosDeviceFactory"));
|
||||||
}
|
}
|
||||||
|
|
||||||
QString IosDeviceFactory::displayNameForId(Core::Id type) const
|
QString IosDeviceFactory::displayName() const
|
||||||
{
|
{
|
||||||
return type == Constants::IOS_DEVICE_TYPE ? IosDevice::name() : QString();
|
return IosDevice::name();
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<Core::Id> IosDeviceFactory::availableCreationIds() const
|
QIcon IosDeviceFactory::icon() const
|
||||||
{
|
{
|
||||||
return QList<Core::Id>() << Core::Id(Constants::IOS_DEVICE_TYPE);
|
|
||||||
}
|
|
||||||
|
|
||||||
QIcon IosDeviceFactory::iconForId(Core::Id type) const
|
|
||||||
{
|
|
||||||
Q_UNUSED(type)
|
|
||||||
using namespace Utils;
|
using namespace Utils;
|
||||||
static const QIcon icon =
|
static const QIcon icon =
|
||||||
Icon::combinedIcon({Icon({{":/ios/images/iosdevicesmall.png",
|
Icon::combinedIcon({Icon({{":/ios/images/iosdevicesmall.png",
|
||||||
@@ -67,9 +62,8 @@ bool IosDeviceFactory::canCreate() const
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
ProjectExplorer::IDevice::Ptr IosDeviceFactory::create(Core::Id id) const
|
ProjectExplorer::IDevice::Ptr IosDeviceFactory::create() const
|
||||||
{
|
{
|
||||||
Q_UNUSED(id)
|
|
||||||
return ProjectExplorer::IDevice::Ptr();
|
return ProjectExplorer::IDevice::Ptr();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -40,12 +40,11 @@ class IosDeviceFactory : public ProjectExplorer::IDeviceFactory
|
|||||||
public:
|
public:
|
||||||
IosDeviceFactory();
|
IosDeviceFactory();
|
||||||
|
|
||||||
QString displayNameForId(Core::Id type) const override;
|
QString displayName() const override;
|
||||||
QList<Core::Id> availableCreationIds() const override;
|
QIcon icon() const override;
|
||||||
QIcon iconForId(Core::Id type) const override;
|
|
||||||
|
|
||||||
bool canCreate() 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;
|
bool canRestore(const QVariantMap &map) const override;
|
||||||
ProjectExplorer::IDevice::Ptr restore(const QVariantMap &map) const override;
|
ProjectExplorer::IDevice::Ptr restore(const QVariantMap &map) const override;
|
||||||
};
|
};
|
||||||
|
@@ -36,25 +36,18 @@ namespace Ios {
|
|||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
IosSimulatorFactory::IosSimulatorFactory()
|
IosSimulatorFactory::IosSimulatorFactory()
|
||||||
|
: ProjectExplorer::IDeviceFactory(Constants::IOS_SIMULATOR_TYPE)
|
||||||
{
|
{
|
||||||
setObjectName(QLatin1String("IosSimulatorFactory"));
|
setObjectName(QLatin1String("IosSimulatorFactory"));
|
||||||
}
|
}
|
||||||
|
|
||||||
QString IosSimulatorFactory::displayNameForId(Core::Id type) const
|
QString IosSimulatorFactory::displayName() const
|
||||||
{
|
{
|
||||||
if (type == Constants::IOS_SIMULATOR_TYPE)
|
return tr("iOS Simulator");
|
||||||
return tr("iOS Simulator");
|
|
||||||
return QString();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<Core::Id> IosSimulatorFactory::availableCreationIds() const
|
QIcon IosSimulatorFactory::icon() const
|
||||||
{
|
{
|
||||||
return QList<Core::Id>() << Core::Id(Constants::IOS_SIMULATOR_TYPE);
|
|
||||||
}
|
|
||||||
|
|
||||||
QIcon IosSimulatorFactory::iconForId(Core::Id type) const
|
|
||||||
{
|
|
||||||
Q_UNUSED(type)
|
|
||||||
using namespace Utils;
|
using namespace Utils;
|
||||||
static const QIcon icon =
|
static const QIcon icon =
|
||||||
Icon::combinedIcon({Icon({{":/ios/images/iosdevicesmall.png",
|
Icon::combinedIcon({Icon({{":/ios/images/iosdevicesmall.png",
|
||||||
@@ -69,15 +62,14 @@ bool IosSimulatorFactory::canCreate() const
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
ProjectExplorer::IDevice::Ptr IosSimulatorFactory::create(Core::Id id) const
|
ProjectExplorer::IDevice::Ptr IosSimulatorFactory::create() const
|
||||||
{
|
{
|
||||||
Q_UNUSED(id)
|
|
||||||
return ProjectExplorer::IDevice::Ptr();
|
return ProjectExplorer::IDevice::Ptr();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IosSimulatorFactory::canRestore(const QVariantMap &map) const
|
bool IosSimulatorFactory::canRestore(const QVariantMap &map) const
|
||||||
{
|
{
|
||||||
return ProjectExplorer::IDevice::typeFromMap(map) == Constants::IOS_SIMULATOR_TYPE;
|
return ProjectExplorer::IDevice::typeFromMap(map) == deviceType();
|
||||||
}
|
}
|
||||||
|
|
||||||
ProjectExplorer::IDevice::Ptr IosSimulatorFactory::restore(const QVariantMap &map) const
|
ProjectExplorer::IDevice::Ptr IosSimulatorFactory::restore(const QVariantMap &map) const
|
||||||
|
@@ -36,12 +36,11 @@ class IosSimulatorFactory : public ProjectExplorer::IDeviceFactory
|
|||||||
public:
|
public:
|
||||||
IosSimulatorFactory();
|
IosSimulatorFactory();
|
||||||
|
|
||||||
QString displayNameForId(Core::Id type) const override;
|
QString displayName() const override;
|
||||||
QList<Core::Id> availableCreationIds() const override;
|
QIcon icon() const override;
|
||||||
QIcon iconForId(Core::Id type) const override;
|
|
||||||
|
|
||||||
bool canCreate() 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;
|
bool canRestore(const QVariantMap &map) const override;
|
||||||
ProjectExplorer::IDevice::Ptr restore(const QVariantMap &map) const override;
|
ProjectExplorer::IDevice::Ptr restore(const QVariantMap &map) const override;
|
||||||
};
|
};
|
||||||
|
@@ -38,24 +38,17 @@
|
|||||||
namespace ProjectExplorer {
|
namespace ProjectExplorer {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
DesktopDeviceFactory::DesktopDeviceFactory(QObject *parent) : IDeviceFactory(parent)
|
DesktopDeviceFactory::DesktopDeviceFactory()
|
||||||
|
: IDeviceFactory(Constants::DESKTOP_DEVICE_TYPE)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
QString DesktopDeviceFactory::displayNameForId(Core::Id type) const
|
QString DesktopDeviceFactory::displayName() const
|
||||||
{
|
{
|
||||||
if (type == Constants::DESKTOP_DEVICE_TYPE)
|
return tr("Desktop");
|
||||||
return tr("Desktop");
|
|
||||||
return QString();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<Core::Id> DesktopDeviceFactory::availableCreationIds() const
|
QIcon DesktopDeviceFactory::icon() const
|
||||||
{
|
{
|
||||||
return QList<Core::Id>() << Core::Id(Constants::DESKTOP_DEVICE_TYPE);
|
|
||||||
}
|
|
||||||
|
|
||||||
QIcon DesktopDeviceFactory::iconForId(Core::Id type) const
|
|
||||||
{
|
|
||||||
Q_UNUSED(type)
|
|
||||||
static const QIcon icon =
|
static const QIcon icon =
|
||||||
Utils::creatorTheme()->flag(Utils::Theme::FlatSideBarIcons)
|
Utils::creatorTheme()->flag(Utils::Theme::FlatSideBarIcons)
|
||||||
? Utils::Icon::combinedIcon({Icons::DESKTOP_DEVICE.icon(),
|
? Utils::Icon::combinedIcon({Icons::DESKTOP_DEVICE.icon(),
|
||||||
@@ -69,15 +62,14 @@ bool DesktopDeviceFactory::canCreate() const
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
IDevice::Ptr DesktopDeviceFactory::create(Core::Id id) const
|
IDevice::Ptr DesktopDeviceFactory::create() const
|
||||||
{
|
{
|
||||||
Q_UNUSED(id);
|
|
||||||
return IDevice::Ptr();
|
return IDevice::Ptr();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DesktopDeviceFactory::canRestore(const QVariantMap &map) const
|
bool DesktopDeviceFactory::canRestore(const QVariantMap &map) const
|
||||||
{
|
{
|
||||||
return IDevice::idFromMap(map) == Constants::DESKTOP_DEVICE_ID;
|
return IDevice::idFromMap(map) == deviceType();
|
||||||
}
|
}
|
||||||
|
|
||||||
IDevice::Ptr DesktopDeviceFactory::restore(const QVariantMap &map) const
|
IDevice::Ptr DesktopDeviceFactory::restore(const QVariantMap &map) const
|
||||||
|
@@ -35,14 +35,13 @@ class DesktopDeviceFactory : public IDeviceFactory
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit DesktopDeviceFactory(QObject *parent = 0);
|
DesktopDeviceFactory();
|
||||||
|
|
||||||
QString displayNameForId(Core::Id type) const override;
|
QString displayName() const override;
|
||||||
QList<Core::Id> availableCreationIds() const override;
|
QIcon icon() const override;
|
||||||
QIcon iconForId(Core::Id type) const override;
|
|
||||||
|
|
||||||
bool canCreate() const override;
|
bool canCreate() const override;
|
||||||
IDevice::Ptr create(Core::Id id) const override;
|
IDevice::Ptr create() const override;
|
||||||
bool canRestore(const QVariantMap &map) const override;
|
bool canRestore(const QVariantMap &map) const override;
|
||||||
IDevice::Ptr restore(const QVariantMap &map) const override;
|
IDevice::Ptr restore(const QVariantMap &map) const override;
|
||||||
};
|
};
|
||||||
|
@@ -62,7 +62,7 @@ bool DeviceCheckBuildStep::init(QList<const BuildStep *> &earlierSteps)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
IDevice::Ptr newDevice = factory->create(deviceTypeId);
|
IDevice::Ptr newDevice = factory->create();
|
||||||
if (newDevice.isNull()) {
|
if (newDevice.isNull()) {
|
||||||
emit addOutput(tr("No device configured."), BuildStep::OutputFormat::ErrorMessage);
|
emit addOutput(tr("No device configured."), BuildStep::OutputFormat::ErrorMessage);
|
||||||
return false;
|
return false;
|
||||||
|
@@ -45,11 +45,9 @@ DeviceFactorySelectionDialog::DeviceFactorySelectionDialog(QWidget *parent) :
|
|||||||
for (const IDeviceFactory * const factory : IDeviceFactory::allDeviceFactories()) {
|
for (const IDeviceFactory * const factory : IDeviceFactory::allDeviceFactories()) {
|
||||||
if (!factory->canCreate())
|
if (!factory->canCreate())
|
||||||
continue;
|
continue;
|
||||||
foreach (Core::Id id, factory->availableCreationIds()) {
|
QListWidgetItem *item = new QListWidgetItem(factory->displayName());
|
||||||
QListWidgetItem *item = new QListWidgetItem(factory->displayNameForId(id));
|
item->setData(Qt::UserRole, QVariant::fromValue(factory->deviceType()));
|
||||||
item->setData(Qt::UserRole, QVariant::fromValue(id));
|
ui->listWidget->addItem(item);
|
||||||
ui->listWidget->addItem(item);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
connect(ui->listWidget, &QListWidget::itemSelectionChanged,
|
connect(ui->listWidget, &QListWidget::itemSelectionChanged,
|
||||||
|
@@ -147,7 +147,7 @@ void DeviceSettingsWidget::addDevice()
|
|||||||
IDeviceFactory *factory = IDeviceFactory::find(toCreate);
|
IDeviceFactory *factory = IDeviceFactory::find(toCreate);
|
||||||
if (!factory)
|
if (!factory)
|
||||||
return;
|
return;
|
||||||
IDevice::Ptr device = factory->create(toCreate);
|
IDevice::Ptr device = factory->create();
|
||||||
if (device.isNull())
|
if (device.isNull())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@@ -80,7 +80,7 @@ namespace ProjectExplorer {
|
|||||||
|
|
||||||
bool IDeviceFactory::canCreate() const
|
bool IDeviceFactory::canCreate() const
|
||||||
{
|
{
|
||||||
return !availableCreationIds().isEmpty();
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static QList<IDeviceFactory *> g_deviceFactories;
|
static QList<IDeviceFactory *> g_deviceFactories;
|
||||||
@@ -89,11 +89,12 @@ IDeviceFactory *IDeviceFactory::find(Core::Id type)
|
|||||||
{
|
{
|
||||||
return Utils::findOrDefault(g_deviceFactories,
|
return Utils::findOrDefault(g_deviceFactories,
|
||||||
[&type](IDeviceFactory *factory) {
|
[&type](IDeviceFactory *factory) {
|
||||||
return factory->availableCreationIds().contains(type);
|
return factory->deviceType() == type;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
IDeviceFactory::IDeviceFactory(QObject *parent) : QObject(parent)
|
IDeviceFactory::IDeviceFactory(Core::Id deviceType)
|
||||||
|
: m_deviceType(deviceType)
|
||||||
{
|
{
|
||||||
g_deviceFactories.append(this);
|
g_deviceFactories.append(this);
|
||||||
}
|
}
|
||||||
|
@@ -47,22 +47,23 @@ public:
|
|||||||
~IDeviceFactory() override;
|
~IDeviceFactory() override;
|
||||||
static const QList<IDeviceFactory *> allDeviceFactories();
|
static const QList<IDeviceFactory *> allDeviceFactories();
|
||||||
|
|
||||||
virtual QString displayNameForId(Core::Id type) const = 0;
|
virtual QString displayName() const = 0;
|
||||||
|
virtual QIcon icon() const = 0;
|
||||||
virtual QList<Core::Id> availableCreationIds() const = 0;
|
|
||||||
|
|
||||||
virtual QIcon iconForId(Core::Id type) const = 0;
|
|
||||||
|
|
||||||
virtual bool canCreate() const;
|
virtual bool canCreate() const;
|
||||||
virtual IDevice::Ptr create(Core::Id id) const = 0;
|
virtual IDevice::Ptr create() const = 0;
|
||||||
|
|
||||||
virtual bool canRestore(const QVariantMap &map) const = 0;
|
virtual bool canRestore(const QVariantMap &map) const = 0;
|
||||||
virtual IDevice::Ptr restore(const QVariantMap &map) const = 0;
|
virtual IDevice::Ptr restore(const QVariantMap &map) const = 0;
|
||||||
|
|
||||||
static IDeviceFactory *find(Core::Id type);
|
static IDeviceFactory *find(Core::Id type);
|
||||||
|
Core::Id deviceType() const { return m_deviceType; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
explicit IDeviceFactory(QObject *parent = nullptr);
|
explicit IDeviceFactory(Core::Id deviceType);
|
||||||
|
|
||||||
|
private:
|
||||||
|
const Core::Id m_deviceType;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace ProjectExplorer
|
} // namespace ProjectExplorer
|
||||||
|
@@ -356,9 +356,9 @@ static QIcon iconForDeviceType(Core::Id deviceType)
|
|||||||
{
|
{
|
||||||
const IDeviceFactory *factory = Utils::findOrDefault(IDeviceFactory::allDeviceFactories(),
|
const IDeviceFactory *factory = Utils::findOrDefault(IDeviceFactory::allDeviceFactories(),
|
||||||
[&deviceType](const IDeviceFactory *factory) {
|
[&deviceType](const IDeviceFactory *factory) {
|
||||||
return factory->availableCreationIds().contains(deviceType);
|
return factory->deviceType() == deviceType;
|
||||||
});
|
});
|
||||||
return factory ? factory->iconForId(deviceType) : QIcon();
|
return factory ? factory->icon() : QIcon();
|
||||||
}
|
}
|
||||||
|
|
||||||
QIcon Kit::icon() const
|
QIcon Kit::icon() const
|
||||||
|
@@ -586,13 +586,8 @@ KitInformation::ItemList DeviceTypeKitInformation::toUserOutput(const Kit *k) co
|
|||||||
Core::Id type = deviceTypeId(k);
|
Core::Id type = deviceTypeId(k);
|
||||||
QString typeDisplayName = tr("Unknown device type");
|
QString typeDisplayName = tr("Unknown device type");
|
||||||
if (type.isValid()) {
|
if (type.isValid()) {
|
||||||
IDeviceFactory *factory = Utils::findOrDefault(IDeviceFactory::allDeviceFactories(),
|
if (IDeviceFactory *factory = IDeviceFactory::find(type))
|
||||||
[&type](IDeviceFactory *factory) {
|
typeDisplayName = factory->displayName();
|
||||||
return factory->availableCreationIds().contains(type);
|
|
||||||
});
|
|
||||||
|
|
||||||
if (factory)
|
|
||||||
typeDisplayName = factory->displayNameForId(type);
|
|
||||||
}
|
}
|
||||||
return ItemList() << qMakePair(tr("Device type"), typeDisplayName);
|
return ItemList() << qMakePair(tr("Device type"), typeDisplayName);
|
||||||
}
|
}
|
||||||
|
@@ -262,10 +262,8 @@ int ToolChainInformationConfigWidget::indexOf(QComboBox *cb, const ToolChain *tc
|
|||||||
DeviceTypeInformationConfigWidget::DeviceTypeInformationConfigWidget(Kit *workingCopy, const KitInformation *ki) :
|
DeviceTypeInformationConfigWidget::DeviceTypeInformationConfigWidget(Kit *workingCopy, const KitInformation *ki) :
|
||||||
KitConfigWidget(workingCopy, ki), m_comboBox(new QComboBox)
|
KitConfigWidget(workingCopy, ki), m_comboBox(new QComboBox)
|
||||||
{
|
{
|
||||||
for (IDeviceFactory *factory : IDeviceFactory::allDeviceFactories()) {
|
for (IDeviceFactory *factory : IDeviceFactory::allDeviceFactories())
|
||||||
foreach (Id id, factory->availableCreationIds())
|
m_comboBox->addItem(factory->displayName(), factory->deviceType().toSetting());
|
||||||
m_comboBox->addItem(factory->displayNameForId(id), id.toSetting());
|
|
||||||
}
|
|
||||||
|
|
||||||
m_comboBox->setToolTip(toolTip());
|
m_comboBox->setToolTip(toolTip());
|
||||||
|
|
||||||
|
@@ -515,12 +515,10 @@ QSet<Id> KitFeatureProvider::availablePlatforms() const
|
|||||||
|
|
||||||
QString KitFeatureProvider::displayNameForPlatform(Id id) const
|
QString KitFeatureProvider::displayNameForPlatform(Id id) const
|
||||||
{
|
{
|
||||||
for (IDeviceFactory *f : IDeviceFactory::allDeviceFactories()) {
|
if (IDeviceFactory *f = IDeviceFactory::find(id)) {
|
||||||
if (f->availableCreationIds().contains(id)) {
|
const QString dn = f->displayName();
|
||||||
const QString dn = f->displayNameForId(id);
|
QTC_CHECK(!dn.isEmpty());
|
||||||
QTC_ASSERT(!dn.isEmpty(), continue);
|
return dn;
|
||||||
return dn;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return QString();
|
return QString();
|
||||||
}
|
}
|
||||||
|
@@ -37,25 +37,18 @@
|
|||||||
namespace Qnx {
|
namespace Qnx {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
QnxDeviceFactory::QnxDeviceFactory(QObject *parent) :
|
QnxDeviceFactory::QnxDeviceFactory()
|
||||||
ProjectExplorer::IDeviceFactory(parent)
|
: ProjectExplorer::IDeviceFactory(Constants::QNX_QNX_OS_TYPE)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
QString QnxDeviceFactory::displayNameForId(Core::Id type) const
|
QString QnxDeviceFactory::displayName() const
|
||||||
{
|
{
|
||||||
QTC_ASSERT(type == Constants::QNX_QNX_OS_TYPE, return QString());
|
|
||||||
return tr("QNX Device");
|
return tr("QNX Device");
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<Core::Id> QnxDeviceFactory::availableCreationIds() const
|
QIcon QnxDeviceFactory::icon() const
|
||||||
{
|
{
|
||||||
return {Constants::QNX_QNX_OS_TYPE};
|
|
||||||
}
|
|
||||||
|
|
||||||
QIcon QnxDeviceFactory::iconForId(Core::Id type) const
|
|
||||||
{
|
|
||||||
Q_UNUSED(type)
|
|
||||||
using namespace Utils;
|
using namespace Utils;
|
||||||
static const QIcon icon =
|
static const QIcon icon =
|
||||||
Icon::combinedIcon({Icon({{":/qnx/images/qnxdevicesmall.png",
|
Icon::combinedIcon({Icon({{":/qnx/images/qnxdevicesmall.png",
|
||||||
@@ -70,9 +63,8 @@ bool QnxDeviceFactory::canCreate() const
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
ProjectExplorer::IDevice::Ptr QnxDeviceFactory::create(Core::Id id) const
|
ProjectExplorer::IDevice::Ptr QnxDeviceFactory::create() const
|
||||||
{
|
{
|
||||||
Q_UNUSED(id);
|
|
||||||
QnxDeviceWizard wizard;
|
QnxDeviceWizard wizard;
|
||||||
if (wizard.exec() != QDialog::Accepted)
|
if (wizard.exec() != QDialog::Accepted)
|
||||||
return ProjectExplorer::IDevice::Ptr();
|
return ProjectExplorer::IDevice::Ptr();
|
||||||
@@ -81,7 +73,7 @@ ProjectExplorer::IDevice::Ptr QnxDeviceFactory::create(Core::Id id) const
|
|||||||
|
|
||||||
bool QnxDeviceFactory::canRestore(const QVariantMap &map) const
|
bool QnxDeviceFactory::canRestore(const QVariantMap &map) const
|
||||||
{
|
{
|
||||||
return ProjectExplorer::IDevice::typeFromMap(map) == Constants::QNX_QNX_OS_TYPE;
|
return ProjectExplorer::IDevice::typeFromMap(map) == deviceType();
|
||||||
}
|
}
|
||||||
|
|
||||||
ProjectExplorer::IDevice::Ptr QnxDeviceFactory::restore(const QVariantMap &map) const
|
ProjectExplorer::IDevice::Ptr QnxDeviceFactory::restore(const QVariantMap &map) const
|
||||||
|
@@ -35,14 +35,13 @@ class QnxDeviceFactory : public ProjectExplorer::IDeviceFactory
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit QnxDeviceFactory(QObject *parent = 0);
|
QnxDeviceFactory();
|
||||||
|
|
||||||
QString displayNameForId(Core::Id type) const override;
|
QString displayName() const override;
|
||||||
QList<Core::Id> availableCreationIds() const override;
|
QIcon icon() const override;
|
||||||
QIcon iconForId(Core::Id type) const override;
|
|
||||||
|
|
||||||
bool canCreate() 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;
|
bool canRestore(const QVariantMap &map) const override;
|
||||||
ProjectExplorer::IDevice::Ptr restore(const QVariantMap &map) const override;
|
ProjectExplorer::IDevice::Ptr restore(const QVariantMap &map) const override;
|
||||||
|
@@ -39,31 +39,23 @@ using namespace ProjectExplorer;
|
|||||||
|
|
||||||
namespace RemoteLinux {
|
namespace RemoteLinux {
|
||||||
|
|
||||||
GenericLinuxDeviceConfigurationFactory::GenericLinuxDeviceConfigurationFactory(QObject *parent)
|
GenericLinuxDeviceConfigurationFactory::GenericLinuxDeviceConfigurationFactory()
|
||||||
: IDeviceFactory(parent)
|
: IDeviceFactory(Constants::GenericLinuxOsType)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
QString GenericLinuxDeviceConfigurationFactory::displayNameForId(Core::Id type) const
|
QString GenericLinuxDeviceConfigurationFactory::displayName() const
|
||||||
{
|
{
|
||||||
QTC_ASSERT(type == Constants::GenericLinuxOsType, return QString());
|
|
||||||
return tr("Generic Linux Device");
|
return tr("Generic Linux Device");
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<Core::Id> GenericLinuxDeviceConfigurationFactory::availableCreationIds() const
|
QIcon GenericLinuxDeviceConfigurationFactory::icon() const
|
||||||
{
|
{
|
||||||
return QList<Core::Id>() << Core::Id(Constants::GenericLinuxOsType);
|
|
||||||
}
|
|
||||||
|
|
||||||
QIcon GenericLinuxDeviceConfigurationFactory::iconForId(Core::Id type) const
|
|
||||||
{
|
|
||||||
Q_UNUSED(type)
|
|
||||||
return QIcon();
|
return QIcon();
|
||||||
}
|
}
|
||||||
|
|
||||||
IDevice::Ptr GenericLinuxDeviceConfigurationFactory::create(Core::Id id) const
|
IDevice::Ptr GenericLinuxDeviceConfigurationFactory::create() const
|
||||||
{
|
{
|
||||||
QTC_ASSERT(id == Constants::GenericLinuxOsType, return IDevice::Ptr());
|
|
||||||
GenericLinuxDeviceConfigurationWizard wizard(Core::ICore::mainWindow());
|
GenericLinuxDeviceConfigurationWizard wizard(Core::ICore::mainWindow());
|
||||||
if (wizard.exec() != QDialog::Accepted)
|
if (wizard.exec() != QDialog::Accepted)
|
||||||
return IDevice::Ptr();
|
return IDevice::Ptr();
|
||||||
@@ -72,7 +64,7 @@ IDevice::Ptr GenericLinuxDeviceConfigurationFactory::create(Core::Id id) const
|
|||||||
|
|
||||||
bool GenericLinuxDeviceConfigurationFactory::canRestore(const QVariantMap &map) const
|
bool GenericLinuxDeviceConfigurationFactory::canRestore(const QVariantMap &map) const
|
||||||
{
|
{
|
||||||
return IDevice::typeFromMap(map) == Constants::GenericLinuxOsType;
|
return IDevice::typeFromMap(map) == deviceType();
|
||||||
}
|
}
|
||||||
|
|
||||||
IDevice::Ptr GenericLinuxDeviceConfigurationFactory::restore(const QVariantMap &map) const
|
IDevice::Ptr GenericLinuxDeviceConfigurationFactory::restore(const QVariantMap &map) const
|
||||||
|
@@ -37,13 +37,12 @@ class REMOTELINUX_EXPORT GenericLinuxDeviceConfigurationFactory
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
GenericLinuxDeviceConfigurationFactory(QObject *parent = 0);
|
GenericLinuxDeviceConfigurationFactory();
|
||||||
|
|
||||||
QString displayNameForId(Core::Id type) const override;
|
QString displayName() const override;
|
||||||
QList<Core::Id> availableCreationIds() const override;
|
QIcon icon() const override;
|
||||||
QIcon iconForId(Core::Id type) const override;
|
|
||||||
|
|
||||||
ProjectExplorer::IDevice::Ptr create(Core::Id id) const override;
|
ProjectExplorer::IDevice::Ptr create() const override;
|
||||||
bool canRestore(const QVariantMap &map) const override;
|
bool canRestore(const QVariantMap &map) const override;
|
||||||
ProjectExplorer::IDevice::Ptr restore(const QVariantMap &map) const override;
|
ProjectExplorer::IDevice::Ptr restore(const QVariantMap &map) const override;
|
||||||
};
|
};
|
||||||
|
@@ -47,9 +47,8 @@ using QtSupport::QtVersionManager;
|
|||||||
namespace WinRt {
|
namespace WinRt {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
WinRtDeviceFactory::WinRtDeviceFactory()
|
WinRtDeviceFactory::WinRtDeviceFactory(Core::Id deviceType)
|
||||||
: m_process(0)
|
: ProjectExplorer::IDeviceFactory(deviceType)
|
||||||
, m_initialized(false)
|
|
||||||
{
|
{
|
||||||
if (allPrerequisitesLoaded()) {
|
if (allPrerequisitesLoaded()) {
|
||||||
onPrerequisitesLoaded();
|
onPrerequisitesLoaded();
|
||||||
@@ -62,21 +61,13 @@ WinRtDeviceFactory::WinRtDeviceFactory()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QString WinRtDeviceFactory::displayNameForId(Core::Id type) const
|
QString WinRtDeviceFactory::displayName() const
|
||||||
{
|
{
|
||||||
return WinRtDevice::displayNameForType(type);
|
return WinRtDevice::displayNameForType(deviceType());
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<Core::Id> WinRtDeviceFactory::availableCreationIds() const
|
QIcon WinRtDeviceFactory::icon() const
|
||||||
{
|
{
|
||||||
return QList<Core::Id>() << Constants::WINRT_DEVICE_TYPE_LOCAL
|
|
||||||
<< Constants::WINRT_DEVICE_TYPE_PHONE
|
|
||||||
<< Constants::WINRT_DEVICE_TYPE_EMULATOR;
|
|
||||||
}
|
|
||||||
|
|
||||||
QIcon WinRtDeviceFactory::iconForId(Core::Id type) const
|
|
||||||
{
|
|
||||||
Q_UNUSED(type)
|
|
||||||
using namespace Utils;
|
using namespace Utils;
|
||||||
return Icon::combinedIcon({Icon({{":/winrt/images/winrtdevicesmall.png",
|
return Icon::combinedIcon({Icon({{":/winrt/images/winrtdevicesmall.png",
|
||||||
Theme::PanelTextColorDark}}, Icon::Tint),
|
Theme::PanelTextColorDark}}, Icon::Tint),
|
||||||
@@ -84,16 +75,15 @@ QIcon WinRtDeviceFactory::iconForId(Core::Id type) const
|
|||||||
Theme::IconsBaseColor}})});
|
Theme::IconsBaseColor}})});
|
||||||
}
|
}
|
||||||
|
|
||||||
IDevice::Ptr WinRtDeviceFactory::create(Core::Id id) const
|
IDevice::Ptr WinRtDeviceFactory::create() const
|
||||||
{
|
{
|
||||||
Q_UNUSED(id);
|
|
||||||
QTC_CHECK(false);
|
QTC_CHECK(false);
|
||||||
return IDevice::Ptr();
|
return IDevice::Ptr();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool WinRtDeviceFactory::canRestore(const QVariantMap &map) const
|
bool WinRtDeviceFactory::canRestore(const QVariantMap &map) const
|
||||||
{
|
{
|
||||||
return availableCreationIds().contains(IDevice::typeFromMap(map));
|
return IDevice::typeFromMap(map) == deviceType();
|
||||||
}
|
}
|
||||||
|
|
||||||
IDevice::Ptr WinRtDeviceFactory::restore(const QVariantMap &map) const
|
IDevice::Ptr WinRtDeviceFactory::restore(const QVariantMap &map) const
|
||||||
|
@@ -35,12 +35,11 @@ class WinRtDeviceFactory : public ProjectExplorer::IDeviceFactory
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
WinRtDeviceFactory();
|
explicit WinRtDeviceFactory(Core::Id deviceType);
|
||||||
QString displayNameForId(Core::Id type) const override;
|
QString displayName() const override;
|
||||||
QList<Core::Id> availableCreationIds() const override;
|
QIcon icon() const override;
|
||||||
QIcon iconForId(Core::Id type) const override;
|
|
||||||
bool canCreate() const override { return false; }
|
bool canCreate() const override { return false; }
|
||||||
ProjectExplorer::IDevice::Ptr create(Core::Id id) const override;
|
ProjectExplorer::IDevice::Ptr create() const override;
|
||||||
bool canRestore(const QVariantMap &map) const override;
|
bool canRestore(const QVariantMap &map) const override;
|
||||||
ProjectExplorer::IDevice::Ptr restore(const QVariantMap &map) const override;
|
ProjectExplorer::IDevice::Ptr restore(const QVariantMap &map) const override;
|
||||||
|
|
||||||
@@ -55,8 +54,8 @@ private:
|
|||||||
QString findRunnerFilePath() const;
|
QString findRunnerFilePath() const;
|
||||||
void parseRunnerOutput(const QByteArray &output) const;
|
void parseRunnerOutput(const QByteArray &output) const;
|
||||||
|
|
||||||
Utils::QtcProcess *m_process;
|
Utils::QtcProcess *m_process = nullptr;
|
||||||
bool m_initialized;
|
bool m_initialized = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // Internal
|
} // Internal
|
||||||
|
@@ -52,7 +52,9 @@ public:
|
|||||||
WinRtPhoneDeployConfigurationFactory phoneDeployConfigFactory;
|
WinRtPhoneDeployConfigurationFactory phoneDeployConfigFactory;
|
||||||
WinRtEmulatorDeployConfigurationFactory emulatorDeployFactory;
|
WinRtEmulatorDeployConfigurationFactory emulatorDeployFactory;
|
||||||
WinRtDeployStepFactory deployStepFactory;
|
WinRtDeployStepFactory deployStepFactory;
|
||||||
WinRtDeviceFactory deviceFactory;
|
WinRtDeviceFactory localDeviceFactory{Constants::WINRT_DEVICE_TYPE_LOCAL};
|
||||||
|
WinRtDeviceFactory phoneDeviceFactory{Constants::WINRT_DEVICE_TYPE_PHONE};
|
||||||
|
WinRtDeviceFactory emulatorDeviceFactory{Constants::WINRT_DEVICE_TYPE_EMULATOR};
|
||||||
};
|
};
|
||||||
|
|
||||||
WinRtPlugin::WinRtPlugin()
|
WinRtPlugin::WinRtPlugin()
|
||||||
|
Reference in New Issue
Block a user