From defcb6a55a6561fd80ee9377c06984f3cd450c07 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Wed, 27 Sep 2017 16:10:13 +0200 Subject: [PATCH] QtSupport: Add a method to retrieve the QML path We check that qmake property in many different places. Change-Id: Ifd5efe4ad2831385493bd3afe8538929578e8fb4 Reviewed-by: hjk Reviewed-by: Tobias Hunger --- src/plugins/android/androiddebugsupport.cpp | 2 +- src/plugins/qbsprojectmanager/qbsprojectmanager.cpp | 2 +- src/plugins/qmljstools/qmljsbundleprovider.cpp | 2 +- src/plugins/qmljstools/qmljsmodelmanager.cpp | 2 +- src/plugins/qmlprofiler/qmlprofilerdetailsrewriter.cpp | 2 +- src/plugins/qnx/qnxdeployqtlibrariesdialog.cpp | 2 +- src/plugins/qtsupport/baseqtversion.cpp | 9 +++++++++ src/plugins/qtsupport/baseqtversion.h | 1 + 8 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/plugins/android/androiddebugsupport.cpp b/src/plugins/android/androiddebugsupport.cpp index e7ada2d28b1..dd6ab07ddb8 100644 --- a/src/plugins/android/androiddebugsupport.cpp +++ b/src/plugins/android/androiddebugsupport.cpp @@ -138,7 +138,7 @@ void AndroidDebugSupport::start() setQmlServer(m_runner->qmlServer()); //TODO: Not sure if these are the right paths. if (qtVersion) - addSearchDirectory(qtVersion->qmakeProperty("QT_INSTALL_QML")); + addSearchDirectory(qtVersion->qmlPath().toString()); } // FIXME: Move signal to base class and generalize handling. diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanager.cpp b/src/plugins/qbsprojectmanager/qbsprojectmanager.cpp index 2fed0160d76..ba4775f2c27 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectmanager.cpp +++ b/src/plugins/qbsprojectmanager/qbsprojectmanager.cpp @@ -180,7 +180,7 @@ void QbsManager::addQtProfileFromKit(const QString &profileName, const ProjectEx if (qtEnv.qtConfigItems.contains(buildVariant)) qtEnv.buildVariant << buildVariant; } - qtEnv.qmlPath = qt->qmakeProperty("QT_INSTALL_QML"); + qtEnv.qmlPath = qt->qmlPath().toString(); qtEnv.qmlImportPath = qt->qmakeProperty("QT_INSTALL_IMPORTS"); const qbs::ErrorInfo errorInfo = qbs::setupQtProfile(profileName, settings(), qtEnv); if (errorInfo.hasError()) { diff --git a/src/plugins/qmljstools/qmljsbundleprovider.cpp b/src/plugins/qmljstools/qmljsbundleprovider.cpp index 497f3b1da66..10f81a9db31 100644 --- a/src/plugins/qmljstools/qmljsbundleprovider.cpp +++ b/src/plugins/qmljstools/qmljsbundleprovider.cpp @@ -123,7 +123,7 @@ void BasicBundleProvider::mergeBundlesForKit(ProjectExplorer::Kit *kit return; } QString qtImportsPath = qtVersion->qmakeProperty("QT_INSTALL_IMPORTS"); - QString qtQmlPath = qtVersion->qmakeProperty("QT_INSTALL_QML"); + QString qtQmlPath = qtVersion->qmlPath().toString(); QSet features = qtVersion->availableFeatures(); if (features.contains(QtSupport::Constants::FEATURE_QT_QUICK_PREFIX)) { diff --git a/src/plugins/qmljstools/qmljsmodelmanager.cpp b/src/plugins/qmljstools/qmljsmodelmanager.cpp index 9f05506ee07..bdf64615ec5 100644 --- a/src/plugins/qmljstools/qmljsmodelmanager.cpp +++ b/src/plugins/qmljstools/qmljsmodelmanager.cpp @@ -116,7 +116,7 @@ ModelManagerInterface::ProjectInfo ModelManager::defaultProjectInfoForProject( preferDebugDump = (qtVersion->defaultBuildConfig() & QtSupport::BaseQtVersion::DebugBuild); if (qtVersion && qtVersion->isValid()) { projectInfo.tryQmlDump = project && qtVersion->type() == QLatin1String(QtSupport::Constants::DESKTOPQT); - projectInfo.qtQmlPath = QFileInfo(qtVersion->qmakeProperty("QT_INSTALL_QML")).canonicalFilePath(); + projectInfo.qtQmlPath = qtVersion->qmlPath().toFileInfo().canonicalFilePath(); projectInfo.qtImportsPath = QFileInfo(qtVersion->qmakeProperty("QT_INSTALL_IMPORTS")).canonicalFilePath(); projectInfo.qtVersionString = qtVersion->qtVersionString(); } else { diff --git a/src/plugins/qmlprofiler/qmlprofilerdetailsrewriter.cpp b/src/plugins/qmlprofiler/qmlprofilerdetailsrewriter.cpp index 3bc12296b49..b2289095986 100644 --- a/src/plugins/qmlprofiler/qmlprofilerdetailsrewriter.cpp +++ b/src/plugins/qmlprofiler/qmlprofilerdetailsrewriter.cpp @@ -249,7 +249,7 @@ void QmlProfilerDetailsRewriter::populateFileFinder(const ProjectExplorer::Targe if (ProjectExplorer::SysRootKitInformation::hasSysRoot(kit)) activeSysroot = ProjectExplorer::SysRootKitInformation::sysRoot(kit).toString(); if (QtSupport::BaseQtVersion *qtVersion = QtSupport::QtKitInformation::qtVersion(kit)) - additionalSearchDirectories.append(qtVersion->qmakeProperty("QT_INSTALL_QML")); + additionalSearchDirectories.append(qtVersion->qmlPath().toString()); } } diff --git a/src/plugins/qnx/qnxdeployqtlibrariesdialog.cpp b/src/plugins/qnx/qnxdeployqtlibrariesdialog.cpp index 65dbfc6a9dd..cc457fc887b 100644 --- a/src/plugins/qnx/qnxdeployqtlibrariesdialog.cpp +++ b/src/plugins/qnx/qnxdeployqtlibrariesdialog.cpp @@ -244,7 +244,7 @@ QList QnxDeployQtLibrariesDialog::gatherFiles() result.append(gatherFiles(qtVersion->qmakeProperty("QT_INSTALL_PLUGINS"))); result.append(gatherFiles(qtVersion->qmakeProperty("QT_INSTALL_IMPORTS"))); - result.append(gatherFiles(qtVersion->qmakeProperty("QT_INSTALL_QML"))); + result.append(gatherFiles(qtVersion->qmlPath().toString())); return result; } diff --git a/src/plugins/qtsupport/baseqtversion.cpp b/src/plugins/qtsupport/baseqtversion.cpp index 49185ee5a35..03ef46e5b55 100644 --- a/src/plugins/qtsupport/baseqtversion.cpp +++ b/src/plugins/qtsupport/baseqtversion.cpp @@ -321,6 +321,10 @@ void BaseQtVersion::setupExpander() QtKitInformation::tr("The installation location of the current Qt version's plugins."), [this] { return qmakeProperty(m_versionInfo, "QT_INSTALL_PLUGINS"); }); + m_expander.registerVariable("Qt:QT_INSTALL_QML", + QtKitInformation::tr("The installation location of the current Qt version's QML files."), + [this] { return qmakeProperty(m_versionInfo, "QT_INSTALL_QML"); }); + m_expander.registerVariable("Qt:QT_INSTALL_IMPORTS", QtKitInformation::tr("The installation location of the current Qt version's imports."), [this] { return qmakeProperty(m_versionInfo, "QT_INSTALL_IMPORTS"); }); @@ -560,6 +564,11 @@ FileName BaseQtVersion::pluginPath() const return FileName::fromUserInput(qmakeProperty("QT_INSTALL_PLUGINS")); } +FileName BaseQtVersion::qmlPath() const +{ + return FileName::fromUserInput(qmakeProperty("QT_INSTALL_QML")); +} + FileName BaseQtVersion::binPath() const { return FileName::fromUserInput(qmakeProperty("QT_HOST_BINS")); diff --git a/src/plugins/qtsupport/baseqtversion.h b/src/plugins/qtsupport/baseqtversion.h index 2a7f156b9f5..0970f31b0dd 100644 --- a/src/plugins/qtsupport/baseqtversion.h +++ b/src/plugins/qtsupport/baseqtversion.h @@ -209,6 +209,7 @@ public: Utils::FileName docsPath() const; Utils::FileName libraryPath() const; Utils::FileName pluginPath() const; + Utils::FileName qmlPath() const; Utils::FileName binPath() const; Utils::FileName mkspecsPath() const;