aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/ios/iosdevice.cpp
diff options
context:
space:
mode:
authorFawzi Mohamed <fawzi.mohamed@digia.com>2014-02-14 01:08:09 +0100
committerFawzi Mohamed <fawzi.mohamed@digia.com>2014-02-19 19:11:43 +0100
commit6daa558fb3adf3ee30332cee93a20955c8af6f5b (patch)
treeff847aca709a371de9374748dbceaf364b647a38 /src/plugins/ios/iosdevice.cpp
parent7f7b8f0ef723f6695389442a261666ba76fcc566 (diff)
ios: detect switch usermode -> dev mode
this does polling, but only with devices in user mode connected... Change-Id: I828715a2b4a35f8f9b3bdbcf0da9a74990f3047f Reviewed-by: Daniel Teske <daniel.teske@digia.com> Reviewed-by: Kai Koehne <kai.koehne@digia.com> Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
Diffstat (limited to 'src/plugins/ios/iosdevice.cpp')
-rw-r--r--src/plugins/ios/iosdevice.cpp65
1 files changed, 40 insertions, 25 deletions
diff --git a/src/plugins/ios/iosdevice.cpp b/src/plugins/ios/iosdevice.cpp
index ba4631be82..9dda6e05d2 100644
--- a/src/plugins/ios/iosdevice.cpp
+++ b/src/plugins/ios/iosdevice.cpp
@@ -312,34 +312,39 @@ void IosDeviceManager::deviceInfo(IosToolHandler *, const QString &uid,
QLatin1String devStatusKey = QLatin1String("developerStatus");
if (info.contains(devStatusKey)) {
QString devStatus = info.value(devStatusKey);
- if (devStatus == QLatin1String("*off*")) {
- devManager->setDeviceState(newDev->id(), IDevice::DeviceConnected);
- if (!newDev->m_ignoreDevice && !IosConfigurations::ignoreAllDevices()) {
- QMessageBox mBox;
- mBox.setText(tr("An iOS device in user mode has been detected."));
- mBox.setInformativeText(tr("Do you want to see how to set it up for development?"));
- mBox.setStandardButtons(QMessageBox::NoAll | QMessageBox::No | QMessageBox::Yes);
- mBox.setDefaultButton(QMessageBox::Yes);
- int ret = mBox.exec();
- switch (ret) {
- case QMessageBox::Yes:
- Core::HelpManager::handleHelpRequest(
- QLatin1String("qthelp://org.qt-project.qtcreator/doc/creator-developing-ios.html"));
- break;
- case QMessageBox::No:
- newDev->m_ignoreDevice = true;
- break;
- case QMessageBox::NoAll:
- IosConfigurations::setIgnoreAllDevices(true);
- break;
- default:
- break;
- }
- }
- } else if (devStatus == QLatin1String("Development")) {
+ if (devStatus == QLatin1String("Development")) {
devManager->setDeviceState(newDev->id(), IDevice::DeviceReadyToUse);
+ m_userModeDeviceIds.removeOne(uid);
} else {
devManager->setDeviceState(newDev->id(), IDevice::DeviceConnected);
+ bool shouldIgnore = newDev->m_ignoreDevice;
+ newDev->m_ignoreDevice = true;
+ if (devStatus == QLatin1String("*off*")) {
+ if (!shouldIgnore && !IosConfigurations::ignoreAllDevices()) {
+ QMessageBox mBox;
+ mBox.setText(tr("An iOS device in user mode has been detected."));
+ mBox.setInformativeText(tr("Do you want to see how to set it up for development?"));
+ mBox.setStandardButtons(QMessageBox::NoAll | QMessageBox::No | QMessageBox::Yes);
+ mBox.setDefaultButton(QMessageBox::Yes);
+ int ret = mBox.exec();
+ switch (ret) {
+ case QMessageBox::Yes:
+ Core::HelpManager::handleHelpRequest(
+ QLatin1String("qthelp://org.qt-project.qtcreator/doc/creator-developing-ios.html"));
+ break;
+ case QMessageBox::No:
+ break;
+ case QMessageBox::NoAll:
+ IosConfigurations::setIgnoreAllDevices(true);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+ if (!m_userModeDeviceIds.contains(uid))
+ m_userModeDeviceIds.append(uid);
+ m_userModeDevicesTimer.start();
}
}
}
@@ -497,6 +502,16 @@ void IosDeviceManager::monitorAvailableDevices()
IosDeviceManager::IosDeviceManager(QObject *parent) :
QObject(parent)
{
+ m_userModeDevicesTimer.setSingleShot(true);
+ m_userModeDevicesTimer.setInterval(8000);
+ connect(&m_userModeDevicesTimer, SIGNAL(timeout()),
+ SLOT(updateUserModeDevices()));
+}
+
+void IosDeviceManager::updateUserModeDevices()
+{
+ foreach (const QString &uid, m_userModeDeviceIds)
+ updateInfo(uid);
}
IosDeviceManager *IosDeviceManager::instance()