From a86eda329e7b47b75222434884e40e925b599b82 Mon Sep 17 00:00:00 2001 From: hjk Date: Mon, 14 May 2018 15:30:35 +0200 Subject: Qnx: Fix persisting of deploy steps While the deploy steps re-used from RemoteLinux were created ok when creating a new QnxDeployConfiguration, they did not survive a restart (or rather a toMap/fromMap cycle, as the restoring insisted on having a RemoteLinuxDeployConfiguration). Since sharing DeployConfiguration*Factory*s is not yet possible, this patch here creates additional DeployConfigurationFactories creating the same steps, but insisting on a QnxDeployConfiguration parent. Task-number: QTCREATORBUG-20248 Change-Id: I70666f79993a1332cd1959ab5e3665797d2401ca Reviewed-by: Christian Kandeler Reviewed-by: Alessandro Portale Reviewed-by: Eike Ziller --- .../devicesupport/devicecheckbuildstep.cpp | 4 ++-- .../devicesupport/devicecheckbuildstep.h | 2 +- src/plugins/qnx/qnxplugin.cpp | 24 ++++++++++++++++++++++ 3 files changed, 27 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.cpp b/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.cpp index 2d6164c9ae..f90f9843c2 100644 --- a/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.cpp +++ b/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.cpp @@ -38,7 +38,7 @@ using namespace ProjectExplorer; DeviceCheckBuildStep::DeviceCheckBuildStep(BuildStepList *bsl) : BuildStep(bsl, stepId()) { - setDefaultDisplayName(stepDisplayName()); + setDefaultDisplayName(displayName()); } bool DeviceCheckBuildStep::init(QList &earlierSteps) @@ -92,7 +92,7 @@ Core::Id DeviceCheckBuildStep::stepId() return "ProjectExplorer.DeviceCheckBuildStep"; } -QString DeviceCheckBuildStep::stepDisplayName() +QString DeviceCheckBuildStep::displayName() { return tr("Check for a configured device"); } diff --git a/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.h b/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.h index 7886a9e8ab..8a114e1e6c 100644 --- a/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.h +++ b/src/plugins/projectexplorer/devicesupport/devicecheckbuildstep.h @@ -45,7 +45,7 @@ public: BuildStepConfigWidget *createConfigWidget() override; static Core::Id stepId(); - static QString stepDisplayName(); + static QString displayName(); }; } // namespace ProjectExplorer diff --git a/src/plugins/qnx/qnxplugin.cpp b/src/plugins/qnx/qnxplugin.cpp index c5fb91e2bd..408f96b338 100644 --- a/src/plugins/qnx/qnxplugin.cpp +++ b/src/plugins/qnx/qnxplugin.cpp @@ -46,6 +46,7 @@ #include #include +#include #include #include #include @@ -57,6 +58,9 @@ #include #include +#include +#include + #include #include @@ -67,6 +71,19 @@ using namespace ProjectExplorer; namespace Qnx { namespace Internal { +template +class GenericQnxDeployStepFactory : public BuildStepFactory +{ +public: + GenericQnxDeployStepFactory() + { + registerStep(Step::stepId()); + setDisplayName(Step::displayName()); + setSupportedConfiguration(Constants::QNX_QNX_DEPLOYCONFIGURATION_ID); + setSupportedStepList(ProjectExplorer::Constants::BUILDSTEPS_DEPLOY); + } +}; + bool QnxPlugin::initialize(const QStringList &arguments, QString *errorString) { Q_UNUSED(arguments) @@ -80,6 +97,13 @@ bool QnxPlugin::initialize(const QStringList &arguments, QString *errorString) addAutoReleasedObject(new QnxRunConfigurationFactory); addAutoReleasedObject(new QnxSettingsPage); + addAutoReleasedObject(new GenericQnxDeployStepFactory + ); + addAutoReleasedObject(new GenericQnxDeployStepFactory + ); + addAutoReleasedObject(new GenericQnxDeployStepFactory + ); + auto constraint = [](RunConfiguration *runConfig) { if (!runConfig->isEnabled() || !runConfig->id().name().startsWith(Constants::QNX_QNX_RUNCONFIGURATION_PREFIX)) { -- cgit v1.2.1 From f7895e272b4555ce1963790b9db1eea91bf359fb Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Fri, 11 May 2018 14:09:41 +0200 Subject: QML Debugger: Don't hang if there are no scopes to be retrieved Qt 5.11.0 contains an optimization that does away with call contexts for simple inline bindings. Also, it doesn't report QML contexts as scopes in the "frame" and "backtrace" commands. Therefore, in those cases "this" is the only thing to be retrieved. Check if we are done when "this" has been retrieved and no scopes have been found. Change-Id: I9e0f545777bc38333938b65a934d42701ec4f807 Task-number: QTBUG-68218 Reviewed-by: Eike Ziller Reviewed-by: hjk --- src/plugins/debugger/qml/qmlengine.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src') diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp index 96007d1bcb..214313773f 100644 --- a/src/plugins/debugger/qml/qmlengine.cpp +++ b/src/plugins/debugger/qml/qmlengine.cpp @@ -2167,6 +2167,10 @@ void QmlEnginePrivate::handleFrame(const QVariantMap &response) watchHandler->insertItem(item); evaluate(exp, -1, [this, iname, exp](const QVariantMap &response) { handleEvaluateExpression(response, iname, exp); + + // If there are no scopes, "this" may be the only thing to look up. + if (currentFrameScopes.isEmpty()) + checkForFinishedUpdate(); }); } -- cgit v1.2.1 From 23ac1d18e1be8d898adf44dde745ba7c259beb3c Mon Sep 17 00:00:00 2001 From: Vikas Pachdha Date: Tue, 15 May 2018 12:39:41 +0200 Subject: Android: Fix the android include path Task-number: QTCREATORBUG-20340 Change-Id: Ie1d7c15bf8b38b5141868149684e026ba9666630 Reviewed-by: Alex Blasche Reviewed-by: Ivan Donchevskii --- src/plugins/android/androidtoolchain.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/plugins/android/androidtoolchain.cpp b/src/plugins/android/androidtoolchain.cpp index 9d3b8db27b..da75a80dee 100644 --- a/src/plugins/android/androidtoolchain.cpp +++ b/src/plugins/android/androidtoolchain.cpp @@ -116,7 +116,9 @@ static void addSystemHeaderPaths(QList &paths, const Utils::FileName ndkPath = AndroidConfigurations::currentConfig().ndkLocation(); // Get short version (for example 4.9) - const QString clangVersion = version.left(version.lastIndexOf('.')); + auto versionNumber = QVersionNumber::fromString(version); + const QString clangVersion = QString("%1.%2") + .arg(versionNumber.majorVersion()).arg(versionNumber.minorVersion()); Utils::FileName stdcppPath = ndkPath; stdcppPath.appendPath("sources/cxx-stl/gnu-libstdc++/" + clangVersion); Utils::FileName includePath = stdcppPath; -- cgit v1.2.1