aboutsummaryrefslogtreecommitdiffstats
path: root/src/tools
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2020-07-10 14:40:38 +0200
committerEike Ziller <eike.ziller@qt.io>2020-07-13 12:00:25 +0000
commitf4af71a3dd66afe90464692cadeb02fbd14a3d96 (patch)
treefbe637d6a75d5965064b9046f5f1ad6f1657a6f9 /src/tools
parent72bf4cd15fa9bf6842cfd1ea08dad142b3690f92 (diff)
iOS Device: Show some more information in device options
Show iOS device name, identifier, OS version and cpu architecture. Task-number: QTCREATORBUG-23016 Change-Id: I5fff2986a173800dabc585f17830cc242e436457 Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Diffstat (limited to 'src/tools')
-rw-r--r--src/tools/iostool/iosdevicemanager.cpp104
1 files changed, 39 insertions, 65 deletions
diff --git a/src/tools/iostool/iosdevicemanager.cpp b/src/tools/iostool/iosdevicemanager.cpp
index ce3ff88c4dc..890dec82c9d 100644
--- a/src/tools/iostool/iosdevicemanager.cpp
+++ b/src/tools/iostool/iosdevicemanager.cpp
@@ -452,6 +452,10 @@ public:
void deviceCallbackReturned();
QString commandName();
+ QString getStringValue(AMDevice *device,
+ CFStringRef domain,
+ CFStringRef key,
+ const QString &fallback = QString());
};
class AppOpSession: public CommandSession {
@@ -1584,82 +1588,52 @@ QString DevInfoSession::commandName()
return QString::fromLatin1("DevInfoSession(%1, %2)").arg(deviceId);
}
+QString DevInfoSession::getStringValue(AMDevice *device,
+ CFStringRef domain,
+ CFStringRef key,
+ const QString &fallback)
+{
+ QString value = fallback;
+ CFPropertyListRef cfValue = lib()->deviceCopyValue(device, domain, key);
+ if (cfValue) {
+ if (CFGetTypeID(cfValue) == CFStringGetTypeID())
+ value = QString::fromCFString(reinterpret_cast<CFStringRef>(cfValue));
+ CFRelease(cfValue);
+ }
+ return value;
+}
+
void DevInfoSession::deviceCallbackReturned()
{
if (debugAll)
qDebug() << "device available";
QMap<QString,QString> res;
- QString deviceNameKey = QLatin1String("deviceName");
- QString developerStatusKey = QLatin1String("developerStatus");
- QString deviceConnectedKey = QLatin1String("deviceConnected");
- QString osVersionKey = QLatin1String("osVersion");
- QString cpuArchitectureKey = "cpuArchitecture";
+ const QString deviceNameKey = "deviceName";
+ const QString developerStatusKey = "developerStatus";
+ const QString deviceConnectedKey = "deviceConnected";
+ const QString osVersionKey = "osVersion";
+ const QString cpuArchitectureKey = "cpuArchitecture";
+ const QString uniqueDeviceId = "uniqueDeviceId";
bool failure = !device;
if (!failure) {
failure = !connectDevice();
if (!failure) {
res[deviceConnectedKey] = QLatin1String("YES");
- CFPropertyListRef cfDeviceName = lib()->deviceCopyValue(device, 0,
- CFSTR("DeviceName"));
- // CFShow(cfDeviceName);
- if (cfDeviceName) {
- if (CFGetTypeID(cfDeviceName) == CFStringGetTypeID())
- res[deviceNameKey] = QString::fromCFString(reinterpret_cast<CFStringRef>(cfDeviceName));
- CFRelease(cfDeviceName);
- }
- if (!res.contains(deviceNameKey))
- res[deviceNameKey] = QString();
- }
- if (!failure) {
- CFPropertyListRef cfDevStatus = lib()->deviceCopyValue(device,
- CFSTR("com.apple.xcode.developerdomain"),
- CFSTR("DeveloperStatus"));
- // CFShow(cfDevStatus);
- if (cfDevStatus) {
- if (CFGetTypeID(cfDevStatus) == CFStringGetTypeID())
- res[developerStatusKey] = QString::fromCFString(reinterpret_cast<CFStringRef>(cfDevStatus));
- CFRelease(cfDevStatus);
- }
- if (!res.contains(developerStatusKey))
- res[developerStatusKey] = QLatin1String("*off*");
- }
- if (!failure) {
- CFPropertyListRef cfProductVersion = lib()->deviceCopyValue(device,
- 0,
- CFSTR("ProductVersion"));
- //CFShow(cfProductVersion);
- CFPropertyListRef cfBuildVersion = lib()->deviceCopyValue(device,
- 0,
- CFSTR("BuildVersion"));
- //CFShow(cfBuildVersion);
- CFPropertyListRef cfCpuArchitecture = lib()->deviceCopyValue(device,
- 0,
- CFSTR("CPUArchitecture"));
- //CFShow(cfCpuArchitecture);
- if (cfCpuArchitecture) {
- if (CFGetTypeID(cfCpuArchitecture) == CFStringGetTypeID()) {
- res[cpuArchitectureKey] = QString::fromCFString(
- reinterpret_cast<CFStringRef>(cfCpuArchitecture));
- }
- CFRelease(cfCpuArchitecture);
- }
- //CFShow(cfBuildVersion);
- QString versionString;
- if (cfProductVersion) {
- if (CFGetTypeID(cfProductVersion) == CFStringGetTypeID())
- versionString = QString::fromCFString(reinterpret_cast<CFStringRef>(cfProductVersion));
- CFRelease(cfProductVersion);
- }
- if (cfBuildVersion) {
- if (!versionString.isEmpty() && CFGetTypeID(cfBuildVersion) == CFStringGetTypeID())
- versionString += QString::fromLatin1(" (%1)").arg(
- QString::fromCFString(reinterpret_cast<CFStringRef>(cfBuildVersion)));
- CFRelease(cfBuildVersion);
- }
- if (!versionString.isEmpty())
- res[osVersionKey] = versionString;
+ res[deviceNameKey] = getStringValue(device, nullptr, CFSTR("DeviceName"));
+ res[developerStatusKey] = getStringValue(device,
+ CFSTR("com.apple.xcode.developerdomain"),
+ CFSTR("DeveloperStatus"),
+ "*off*");
+ res[cpuArchitectureKey] = getStringValue(device, nullptr, CFSTR("CPUArchitecture"));
+ res[uniqueDeviceId] = getStringValue(device, nullptr, CFSTR("UniqueDeviceID"));
+ const QString productVersion = getStringValue(device, nullptr, CFSTR("ProductVersion"));
+ const QString buildVersion = getStringValue(device, nullptr, CFSTR("BuildVersion"));
+ if (!productVersion.isEmpty() && !buildVersion.isEmpty())
+ res[osVersionKey] = QString("%1 (%2)").arg(productVersion, buildVersion);
+ else if (!productVersion.isEmpty())
+ res[osVersionKey] = productVersion;
else
- res[osVersionKey] = QLatin1String("*unknown*");
+ res[osVersionKey] = "*unknown*";
}
disconnectDevice();
}