From e7b4ccf608ee81b424bb687eb756725da83d082a Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 14 Dec 2022 17:01:10 +0100 Subject: [PATCH] QmlProjectManager: Fix starting .qmlproject on Boot2Qt The "qmlscene" is called "qml" nowadays. Also give device settings more priority to cover cases where there is no Qt build setup at all. For this case, also demote the missing Qt build version from "Error" to "Warning". Task-number: QTCREATORBUG-28074 Change-Id: Ic44d2bee1965493925d21317d12d5c1f66ace88b Reviewed-by: Tim Jenssen --- src/plugins/qmlprojectmanager/qmlproject.cpp | 2 +- .../qmlprojectmanager/qmlprojectrunconfiguration.cpp | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/plugins/qmlprojectmanager/qmlproject.cpp b/src/plugins/qmlprojectmanager/qmlproject.cpp index 208d2482fc0..2f7cc3699d0 100644 --- a/src/plugins/qmlprojectmanager/qmlproject.cpp +++ b/src/plugins/qmlprojectmanager/qmlproject.cpp @@ -533,7 +533,7 @@ Tasks QmlProject::projectIssues(const Kit *k) const const QtSupport::QtVersion *version = QtSupport::QtKitAspect::qtVersion(k); if (!version) - result.append(createProjectTask(Task::TaskType::Error, tr("No Qt version set in kit."))); + result.append(createProjectTask(Task::TaskType::Warning, tr("No Qt version set in kit."))); IDevice::ConstPtr dev = DeviceKitAspect::device(k); if (dev.isNull()) diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp index ee5327cac0c..791a3c6a565 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp +++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp @@ -163,6 +163,14 @@ FilePath QmlProjectRunConfiguration::qmlRuntimeFilePath() const return qmlViewer; Kit *kit = target()->kit(); + IDevice::ConstPtr dev = DeviceKitAspect::device(kit); + if (!dev.isNull()) { + const FilePath qmlRuntime = dev->qmlRunCommand(); + if (!qmlRuntime.isEmpty()) + return qmlRuntime; + } + + // If not given explicitly by device, try to pick it from $PATH. QtVersion *version = QtKitAspect::qtVersion(kit); if (!version) // No Qt version in Kit. Don't try to run QML runtime. return {}; @@ -174,13 +182,12 @@ FilePath QmlProjectRunConfiguration::qmlRuntimeFilePath() const return isDesktop ? version->qmlRuntimeFilePath() : "qmlscene"; } - IDevice::ConstPtr dev = DeviceKitAspect::device(kit); if (dev.isNull()) // No device set. We don't know where a QML utility is. return {}; const FilePath qmlRuntime = dev->qmlRunCommand(); // If not given explicitly by device, try to pick it from $PATH. - return qmlRuntime.isEmpty() ? "qmlscene" : qmlRuntime; + return qmlRuntime.isEmpty() ? "qml" : qmlRuntime; } QString QmlProjectRunConfiguration::commandLineArguments() const