diff options
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/android/androiddeployqtstep.cpp | 14 | ||||
-rw-r--r-- | src/plugins/ios/iosdevice.cpp | 43 | ||||
-rw-r--r-- | src/plugins/projectexplorer/devicesupport/sshdeviceprocess.cpp | 2 | ||||
-rw-r--r-- | src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp | 6 | ||||
-rw-r--r-- | src/plugins/qtsupport/qtcreator_tutorials.xml | 8 |
5 files changed, 48 insertions, 25 deletions
diff --git a/src/plugins/android/androiddeployqtstep.cpp b/src/plugins/android/androiddeployqtstep.cpp index 4d6a84e72c..55d23b095a 100644 --- a/src/plugins/android/androiddeployqtstep.cpp +++ b/src/plugins/android/androiddeployqtstep.cpp @@ -141,7 +141,8 @@ AndroidDeployQtStep::AndroidDeployQtStep(BuildStepList *parent, Core::Id id) : BuildStep(parent, id) { setImmutable(true); - m_uninstallPreviousPackage = QtSupport::QtKitAspect::qtVersion(target()->kit())->qtVersion() < QtSupport::QtVersionNumber(5, 4, 0); + const QtSupport::BaseQtVersion * const qt = QtSupport::QtKitAspect::qtVersion(target()->kit()); + m_uninstallPreviousPackage = qt && qt->qtVersion() < QtSupport::QtVersionNumber(5, 4, 0); //: AndroidDeployQtStep default display name setDefaultDisplayName(tr("Deploy to Android device")); @@ -161,6 +162,10 @@ Core::Id AndroidDeployQtStep::stepId() bool AndroidDeployQtStep::init() { + QtSupport::BaseQtVersion *version = QtSupport::QtKitAspect::qtVersion(target()->kit()); + if (!version) // TODO: Add error message + return false; + m_androiddeployqtArgs = CommandLine(); m_androidABIs = AndroidManager::applicationAbis(target()); @@ -210,10 +215,6 @@ bool AndroidDeployQtStep::init() emit addOutput(tr("Deploying to %1").arg(m_serialNumber), OutputFormat::Stdout); - QtSupport::BaseQtVersion *version = QtSupport::QtKitAspect::qtVersion(target()->kit()); - if (!version) - return false; - m_uninstallPreviousPackageRun = m_uninstallPreviousPackage; if (m_uninstallPreviousPackageRun) m_manifestName = AndroidManager::manifestPath(target()); @@ -585,7 +586,8 @@ void AndroidDeployQtStep::setUninstallPreviousPackage(bool uninstall) AndroidDeployQtStep::UninstallType AndroidDeployQtStep::uninstallPreviousPackage() { - if (QtSupport::QtKitAspect::qtVersion(target()->kit())->qtVersion() < QtSupport::QtVersionNumber(5, 4, 0)) + const QtSupport::BaseQtVersion * const qt = QtSupport::QtKitAspect::qtVersion(target()->kit()); + if (qt && qt->qtVersion() < QtSupport::QtVersionNumber(5, 4, 0)) return ForceUnintall; return m_uninstallPreviousPackage ? Uninstall : Keep; } diff --git a/src/plugins/ios/iosdevice.cpp b/src/plugins/ios/iosdevice.cpp index 38d48e25ed..a9c9e32162 100644 --- a/src/plugins/ios/iosdevice.cpp +++ b/src/plugins/ios/iosdevice.cpp @@ -42,6 +42,16 @@ #include <IOKit/IOKitLib.h> #include <IOKit/usb/IOUSBLib.h> #include <CoreFoundation/CoreFoundation.h> + +// Work around issue with not being able to retrieve USB serial number. +// See QTCREATORBUG-23460. +// For an unclear reason USBSpec.h in macOS SDK 10.15 uses a different value if +// MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_14, which just does not work. +#if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_14 +#undef kUSBSerialNumberString +#define kUSBSerialNumberString "USB Serial Number" +#endif + #endif #include <exception> @@ -356,9 +366,14 @@ void deviceConnectedCallback(void *refCon, io_iterator_t iterator) usbDevice, CFSTR(kUSBSerialNumberString), kCFAllocatorDefault, 0)); - QString uid = CFStringRef2QString(cfUid); - CFRelease(cfUid); - IosDeviceManager::instance()->deviceConnected(uid, name); + if (cfUid) { + QString uid = CFStringRef2QString(cfUid); + CFRelease(cfUid); + qCDebug(detectLog) << "device UID is" << uid; + IosDeviceManager::instance()->deviceConnected(uid, name); + } else { + qCDebug(detectLog) << "failed to retrieve device's UID"; + } // Done with this USB device; release the reference added by IOIteratorNext kr = IOObjectRelease(usbDevice); @@ -385,18 +400,22 @@ void deviceDisconnectedCallback(void *refCon, io_iterator_t iterator) // Get the USB device's name. kr = IORegistryEntryGetName(usbDevice, deviceName); - if (KERN_SUCCESS != kr) - deviceName[0] = '\0'; - qCDebug(detectLog) << "ios device " << deviceName << " in deviceDisconnectedCallback"; - - { - CFStringRef cfUid = static_cast<CFStringRef>(IORegistryEntryCreateCFProperty( - usbDevice, - CFSTR(kUSBSerialNumberString), - kCFAllocatorDefault, 0)); + QString name; + if (KERN_SUCCESS == kr) + name = QString::fromLocal8Bit(deviceName); + qCDebug(detectLog) << "ios device " << name << " in deviceDisconnectedCallback"; + + CFStringRef cfUid = static_cast<CFStringRef>( + IORegistryEntryCreateCFProperty(usbDevice, + CFSTR(kUSBSerialNumberString), + kCFAllocatorDefault, + 0)); + if (cfUid) { QString uid = CFStringRef2QString(cfUid); CFRelease(cfUid); IosDeviceManager::instance()->deviceDisconnected(uid); + } else { + qCDebug(detectLog) << "failed to retrieve device's UID"; } // Done with this USB device; release the reference added by IOIteratorNext diff --git a/src/plugins/projectexplorer/devicesupport/sshdeviceprocess.cpp b/src/plugins/projectexplorer/devicesupport/sshdeviceprocess.cpp index 56fd1b9503..786b0cf019 100644 --- a/src/plugins/projectexplorer/devicesupport/sshdeviceprocess.cpp +++ b/src/plugins/projectexplorer/devicesupport/sshdeviceprocess.cpp @@ -28,6 +28,7 @@ #include "idevice.h" #include "../runcontrol.h" +#include <coreplugin/icore.h> #include <ssh/sshconnection.h> #include <ssh/sshconnectionmanager.h> #include <ssh/sshremoteprocess.h> @@ -201,6 +202,7 @@ void SshDeviceProcess::handleConnected() connect(&d->consoleProcess, &ConsoleProcess::stubStopped, this, [this] { handleProcessFinished(d->consoleProcess.errorString()); }); d->consoleProcess.setAbortOnMetaChars(false); + d->consoleProcess.setSettings(Core::ICore::settings()); d->consoleProcess.setCommand(d->process->fullLocalCommandLine()); d->consoleProcess.start(); } else { diff --git a/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp b/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp index ba43dc0543..f930d1d7af 100644 --- a/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp +++ b/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp @@ -293,13 +293,13 @@ QVariantMap DefaultPropertyProvider::autoGeneratedProperties(const ProjectExplor data.insert("Android.ndk.ndkDir", ndkDir); } } - data.remove(QBS_ARCHITECTURES); - data.remove(QBS_ARCHITECTURE); QtSupport::BaseQtVersion *qtVersion = QtSupport::QtKitAspect::qtVersion(k); if (qtVersion) { + data.remove(QBS_ARCHITECTURES); + data.remove(QBS_ARCHITECTURE); QStringList abis; for (const auto &abi : qtVersion->qtAbis()) - abis << abi.param(); + abis << architecture(abi); if (abis.size() == 1) data.insert(QLatin1String(QBS_ARCHITECTURE), abis.first()); else diff --git a/src/plugins/qtsupport/qtcreator_tutorials.xml b/src/plugins/qtsupport/qtcreator_tutorials.xml index 4a54c4c274..a694d4cd6f 100644 --- a/src/plugins/qtsupport/qtcreator_tutorials.xml +++ b/src/plugins/qtsupport/qtcreator_tutorials.xml @@ -9,7 +9,7 @@ <description><![CDATA[Using Qt Creator to create a small Qt application, Text Finder.]]></description> <tags>qt creator,qt designer,widgets,c++,text,help</tags> </tutorial> - <tutorial imageUrl=":qtsupport/images/icons/tutorialicon.png" difficulty="" docUrl="qthelp://org.qt-project.qtdoc/qtdoc/qtwidgets-tutorials-notepad-example.html" projectPath="" name="Help: Getting Started Programming with Qt Widgets"> + <tutorial imageUrl=":qtsupport/images/icons/tutorialicon.png" difficulty="" docUrl="qthelp://org.qt-project.qtdoc/qtwidgets/qtwidgets-tutorials-notepad-example.html" projectPath="" name="Help: Getting Started Programming with Qt Widgets"> <description><![CDATA[Developing Qt applications using C++ and the Qt Widgets module.]]></description> <tags>qt,qt creator,qt designer,widgets,c++,help</tags> </tutorial> @@ -21,9 +21,9 @@ <description><![CDATA[Developing Qt Quick applications for Android and iOS devices using Qt Quick Controls.]]></description> <tags>qt creator,qt quick designer,qml,android,ios,controls,help</tags> </tutorial> - <tutorial imageUrl=":qtsupport/images/icons/tutorialicon.png" difficulty="" docUrl="qthelp://org.qt-project.qtdoc/qtdoc/gettingstartedqml.html" projectPath="" name="Help: Getting Started Programming with Qt Quick"> - <description><![CDATA[Developing Qt Quick applications using QML and C++.]]></description> - <tags>qt quick,qml,c++,help</tags> + <tutorial imageUrl=":qtsupport/images/icons/tutorialicon.png" difficulty="" docUrl="qthelp://org.qt-project.qtdoc/qtdoc/qtdoc-tutorials-alarms-example.html" projectPath="" name="Help: Getting Started Programming with Qt Quick"> + <description><![CDATA[Developing Qt Quick applications using Qt Quick and Qt Quick Controls.]]></description> + <tags>qt quick,controls,tumbler,help</tags> </tutorial> <tutorial imageUrl=":qtsupport/images/icons/videotutorialicon.png" difficulty="" projectPath="" name="Online: Digital Instrument Cluster with Qt Quick Designer and Qt Safe Renderer" isVideo="true" videoUrl="https://www.youtube.com/watch?v=9RxxsOCeZHk" videoLength="4:06"> |