diff options
author | Fawzi Mohamed <[email protected]> | 2014-02-14 01:08:09 +0100 |
---|---|---|
committer | Fawzi Mohamed <[email protected]> | 2014-02-19 19:11:43 +0100 |
commit | 6daa558fb3adf3ee30332cee93a20955c8af6f5b (patch) | |
tree | ff847aca709a371de9374748dbceaf364b647a38 /src/plugins/ios/iosdevice.cpp | |
parent | 7f7b8f0ef723f6695389442a261666ba76fcc566 (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 <[email protected]>
Reviewed-by: Kai Koehne <[email protected]>
Reviewed-by: Fawzi Mohamed <[email protected]>
Diffstat (limited to 'src/plugins/ios/iosdevice.cpp')
-rw-r--r-- | src/plugins/ios/iosdevice.cpp | 65 |
1 files changed, 40 insertions, 25 deletions
diff --git a/src/plugins/ios/iosdevice.cpp b/src/plugins/ios/iosdevice.cpp index ba4631be823..9dda6e05d2c 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() |