Merge remote-tracking branch 'origin/4.10'

Conflicts:
	src/plugins/python/CMakeLists.txt

Change-Id: I18808710dd99b97d4e1e7c3d223b7f814083de31
This commit is contained in:
Eike Ziller
2019-08-12 17:04:12 +02:00
29 changed files with 99 additions and 40 deletions

View File

@@ -61,6 +61,7 @@ const char deviceTypeTag[] = "devicetypes";
const char devicesTag[] = "devices";
const char availabilityTag[] = "availability";
const char unavailabilityToken[] = "unavailable";
const char availabilityTagNew[] = "isAvailable"; // at least since Xcode 10
const char identifierTag[] = "identifier";
const char runtimesTag[] = "runtimes";
const char nameTag[] = "name";
@@ -117,6 +118,13 @@ static bool launchSimulator(const QString &simUdid) {
return QProcess::startDetached(simulatorAppPath, {"--args", "-CurrentDeviceUDID", simUdid});
}
static bool isAvailable(const QJsonObject &object)
{
return object.contains(availabilityTagNew)
? object.value(availabilityTagNew).toBool()
: !object.value(availabilityTag).toString().contains(unavailabilityToken);
}
static QList<DeviceTypeInfo> getAvailableDeviceTypes()
{
QList<DeviceTypeInfo> deviceTypes;
@@ -127,7 +135,7 @@ static QList<DeviceTypeInfo> getAvailableDeviceTypes()
const QJsonArray runtimesArray = doc.object().value(deviceTypeTag).toArray();
foreach (const QJsonValue deviceTypeValue, runtimesArray) {
QJsonObject deviceTypeObject = deviceTypeValue.toObject();
if (!deviceTypeObject.value(availabilityTag).toString().contains(unavailabilityToken)) {
if (isAvailable(deviceTypeObject)) {
DeviceTypeInfo deviceType;
deviceType.name = deviceTypeObject.value(nameTag).toString("unknown");
deviceType.identifier = deviceTypeObject.value(identifierTag).toString("unknown");
@@ -151,7 +159,7 @@ static QList<RuntimeInfo> getAvailableRuntimes()
const QJsonArray runtimesArray = doc.object().value(runtimesTag).toArray();
foreach (const QJsonValue runtimeValue, runtimesArray) {
QJsonObject runtimeObject = runtimeValue.toObject();
if (!runtimeObject.value(availabilityTag).toString().contains(unavailabilityToken)) {
if (isAvailable(runtimeObject)) {
RuntimeInfo runtime;
runtime.name = runtimeObject.value(nameTag).toString("unknown");
runtime.build = runtimeObject.value(buildVersionTag).toString("unknown");
@@ -233,8 +241,7 @@ static QList<SimulatorInfo> getAllSimulatorDevices()
device.identifier = deviceObject.value(udidTag).toString();
device.name = deviceObject.value(nameTag).toString();
device.runtimeName = runtime;
const QString availableStr = deviceObject.value(availabilityTag).toString();
device.available = !availableStr.contains(unavailabilityToken);
device.available = isAvailable(deviceObject);
device.state = deviceObject.value(stateTag).toString();
simulatorDevices.append(device);
}