From f239c10bb1244db44bb755abb9b700f347c866b9 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Mon, 26 Aug 2024 10:24:49 +0200 Subject: [PATCH 01/10] Fix example categorization when only installing B2Qt In that case the Qt examples are not registered through an actual Qt version, but just via an additional "example set". For these we do not have information about the actual Qt version number, but we check if the Qt version is greater equal 6.5.1, otherwise we default to the uncategorized view. Exclude invalid Qt version numbers from that check to fix it. Change-Id: I2e65856a3a3147a43c9d44c8821b85aa79b9a949 Reviewed-by: Christian Stenger --- src/plugins/qtsupport/exampleslistmodel.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/plugins/qtsupport/exampleslistmodel.cpp b/src/plugins/qtsupport/exampleslistmodel.cpp index bd73137b00d..c9163c62fc6 100644 --- a/src/plugins/qtsupport/exampleslistmodel.cpp +++ b/src/plugins/qtsupport/exampleslistmodel.cpp @@ -440,7 +440,8 @@ void ExamplesViewController::updateExamples() } } - const bool sortIntoCategories = !m_isExamples || qtVersion >= *minQtVersionForCategories; + const bool sortIntoCategories = !m_isExamples || qtVersion.isNull() + || qtVersion >= *minQtVersionForCategories; const QStringList order = categoryOrder.isEmpty() && m_isExamples ? *defaultOrder : categoryOrder; const QList>> sections From 5b79042a00e242c6cd16f1cabeede3611a42fe1b Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Mon, 26 Aug 2024 13:48:23 +0200 Subject: [PATCH 02/10] Fix link to freedesktop MIME specification Fixes: QTCREATORBUG-31475 Change-Id: I6420f8dba59d7688350c8c90b13f2e42d89a6a85 Reviewed-by: Jarek Kobus --- src/plugins/coreplugin/mimetypemagicdialog.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/plugins/coreplugin/mimetypemagicdialog.cpp b/src/plugins/coreplugin/mimetypemagicdialog.cpp index 2a55539bf76..b49b639f773 100644 --- a/src/plugins/coreplugin/mimetypemagicdialog.cpp +++ b/src/plugins/coreplugin/mimetypemagicdialog.cpp @@ -31,10 +31,11 @@ MimeTypeMagicDialog::MimeTypeMagicDialog(QWidget *parent) : setWindowTitle(Tr::tr("Add Magic Header")); auto informationLabel = new QLabel; - informationLabel->setText(Tr::tr("

MIME magic data is interpreted as defined " - "by the Shared MIME-info Database specification from " - "" - "freedesktop.org.


")); // FIXME: Simplify for translators + informationLabel->setText( + Tr::tr("

MIME magic data is interpreted as defined " + "by the Shared MIME-info Database specification from " + "" + "freedesktop.org.


")); // FIXME: Simplify for translators informationLabel->setWordWrap(true); m_valueLineEdit = new QLineEdit; From 209160165b134d52939dd95257216aea5347c60b Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Tue, 27 Aug 2024 17:06:34 +0200 Subject: [PATCH 03/10] Doc: Describe how to open a compilation database Change-Id: I69dbaa277c8dc253ba59bb364192d2a8a4e299f3 Reviewed-by: hjk --- .../editors/creator-only/creator-compilation-database.qdoc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/doc/qtcreator/src/editors/creator-only/creator-compilation-database.qdoc b/doc/qtcreator/src/editors/creator-only/creator-compilation-database.qdoc index 4bc641fb091..a3388374f49 100644 --- a/doc/qtcreator/src/editors/creator-only/creator-compilation-database.qdoc +++ b/doc/qtcreator/src/editors/creator-only/creator-compilation-database.qdoc @@ -18,6 +18,10 @@ code model with the necessary information for correctly parsing the code when you open a file for editing. + To open a compilation database as a \l {Managing Projects}{project}, go to + \uicontrol File > \uicontrol {Open File or Project} and select a compilation + database JSON file. + To generate a compilation database from the information that the code model has, select \uicontrol Build > \uicontrol {Generate Compilation Database}. @@ -37,5 +41,5 @@ database projects in the \uicontrol Projects mode. \sa {Enable and disable plugins}, {Add custom build steps}, - {Configure projects for running}, {Code Model} + {Configure projects for running}, {Code Model}, {Configuring Projects} */ From 25fcbb336150045d7067d656908c569cc15f7d54 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Wed, 28 Aug 2024 11:39:57 +0200 Subject: [PATCH 04/10] Build: Fix condition when looking for yaml-cpp Amends 18386c7117e8c0dc7ed40fac2f7b06545f0ebb86 Fixes: QTCREATORBUG-31497 Change-Id: I70337332f9547fd252e63a5cf551fb3153cf4cf2 Reviewed-by: Cristian Adam --- cmake/Findyaml-cpp.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/Findyaml-cpp.cmake b/cmake/Findyaml-cpp.cmake index b79056f67fe..06d518cf5db 100644 --- a/cmake/Findyaml-cpp.cmake +++ b/cmake/Findyaml-cpp.cmake @@ -10,7 +10,7 @@ find_package(yaml-cpp 0.5 QUIET NO_MODULE) if (yaml-cpp_FOUND) # target doesn't set include directory for some reason get_filename_component(yaml_cpp_include_dir "${YAML_CPP_INCLUDE_DIR}" ABSOLUTE) - if (NOT EXISTS yaml_cpp_include_dir) + if (NOT EXISTS ${yaml_cpp_include_dir}) unset(yaml_cpp_include_dir) unset(yaml_cpp_include_dir CACHE) find_path(yaml_cpp_include_dir yaml-cpp/yaml.h) From 243a489060b1c5d4cce843282311feeb826a1665 Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Wed, 28 Aug 2024 10:01:02 +0200 Subject: [PATCH 05/10] qtcreatorcdbext: Forward PythonTargetArchDll in multi-config In setups where no internet is available (Coin CI) we need to specify the path to the python target arch dll. This was done in single configuration mode via the CMake parameter PythonTargetArchDll. But in order to build all architectures we have now: * PythonTargetarm64Dll * PythonTargetwin32Dll * PythonTargetx64Dll And Python3_ROOT_DIR is also forwarded, in order to fix one specific host Python version. Fixes: QTCREATORBUG-31496 Change-Id: I754720f90a4b1fc7d7434ee285c7e300dd77734e Reviewed-by: Eike Ziller --- src/libs/qtcreatorcdbext/CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/libs/qtcreatorcdbext/CMakeLists.txt b/src/libs/qtcreatorcdbext/CMakeLists.txt index b1d77c6c218..9f5e3f4ef49 100644 --- a/src/libs/qtcreatorcdbext/CMakeLists.txt +++ b/src/libs/qtcreatorcdbext/CMakeLists.txt @@ -30,6 +30,8 @@ if (NOT QT_CREATOR_API_DEFINED) CMAKE_GENERATOR_PLATFORM "${arch}" CMAKE_ARGS -D${PROJECT_NAME}-MultiBuild=ON + -DPythonTargetArchDll=${PythonTarget${arch}Dll} + -DPython3_ROOT_DIR=${Python3_ROOT_DIR} BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE} INSTALL_COMMAND From 52aa67d24d9ab0dcd5ff62180bc657ec2ef97818 Mon Sep 17 00:00:00 2001 From: Oliver Wolff Date: Thu, 29 Aug 2024 08:50:10 +0200 Subject: [PATCH 06/10] cdb: Match x64 target for arm64 cdb On a Windows arm64 machine "Debugging tools for Windows" only installs and arm64 and an x86 cdb. By default no x64 cdb is present there. Though it is possibble to use the arm64 cdb to debug an x64 target on these machines. Reflect that fact in our debugger matching logic. Task-number: QTCREATORBUG-30533 Change-Id: I6f3ecb7ce393c4860e2eeac286683e2b60fea7b6 Reviewed-by: David Schulz --- src/plugins/debugger/debuggeritem.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/plugins/debugger/debuggeritem.cpp b/src/plugins/debugger/debuggeritem.cpp index 455b4e39862..dfa45da6d9b 100644 --- a/src/plugins/debugger/debuggeritem.cpp +++ b/src/plugins/debugger/debuggeritem.cpp @@ -415,6 +415,12 @@ static DebuggerItem::MatchLevel matchSingle(const Abi &debuggerAbi, const Abi &t targetAbi.osFlavor() <= Abi::WindowsLastMsvcFlavor; if (!isMsvcTarget && (engineType == GdbEngineType || engineType == LldbEngineType)) matchOnMultiarch = DebuggerItem::MatchesSomewhat; + // arm64 cdb can debug x64 targets + if (isMsvcTarget && engineType == CdbEngineType + && debuggerAbi.architecture() == Abi::ArmArchitecture + && targetAbi.architecture() == Abi::X86Architecture + && debuggerAbi.wordWidth() == 64 && targetAbi.wordWidth() == 64) + return DebuggerItem::MatchesSomewhat; if (debuggerAbi.architecture() != Abi::UnknownArchitecture && debuggerAbi.architecture() != targetAbi.architecture()) return matchOnMultiarch; From 187468002931e8296ea2cf51ade28582dca91622 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Tue, 16 Jul 2024 17:32:58 +0200 Subject: [PATCH 07/10] Doc: Update Performance Analyzer docs - Update Timeline screenshot with new numbers Task-number: QTCREATORBUG-30604 Change-Id: I35a4455de391a7bdaa1381dc09959ffb120431b3 Reviewed-by: hjk --- .../qtcreator-performance-analyzer-timeline.png | Bin 19600 -> 0 bytes ...qtcreator-performance-analyzer-timeline.webp | Bin 0 -> 12904 bytes .../src/analyze/cpu-usage-analyzer.qdoc | 10 +++++++--- 3 files changed, 7 insertions(+), 3 deletions(-) delete mode 100644 doc/qtcreator/images/qtcreator-performance-analyzer-timeline.png create mode 100644 doc/qtcreator/images/qtcreator-performance-analyzer-timeline.webp diff --git a/doc/qtcreator/images/qtcreator-performance-analyzer-timeline.png b/doc/qtcreator/images/qtcreator-performance-analyzer-timeline.png deleted file mode 100644 index f47d79787ba274b4ee4ea3fc17423706908f4f2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19600 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 F2>|#`;jaJy diff --git a/doc/qtcreator/images/qtcreator-performance-analyzer-timeline.webp b/doc/qtcreator/images/qtcreator-performance-analyzer-timeline.webp new file mode 100644 index 0000000000000000000000000000000000000000..a8cecfd5626eb60efd7f6b6536a60142b0e7b464 GIT binary patch literal 12904 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 literal 0 HcmV?d00001 diff --git a/doc/qtcreator/src/analyze/cpu-usage-analyzer.qdoc b/doc/qtcreator/src/analyze/cpu-usage-analyzer.qdoc index d267eaf8f60..d34997b1ee0 100644 --- a/doc/qtcreator/src/analyze/cpu-usage-analyzer.qdoc +++ b/doc/qtcreator/src/analyze/cpu-usage-analyzer.qdoc @@ -257,7 +257,7 @@ The \uicontrol Timeline view displays a graphical representation of CPU usage per thread and a condensed view of all recorded events. - \image qtcreator-performance-analyzer-timeline.png {Performance Analyzer} + \image qtcreator-performance-analyzer-timeline.webp {Performance Analyzer Timeline view} Each category in the timeline describes a thread in the application. Move the cursor on an event (5) on a row to see how long it takes and which @@ -452,12 +452,16 @@ \section1 Loading and Saving Trace Files You can save and load trace data in a format specific to the - Performance Analyzer with the respective entries in \uicontrol Analyze > - \uicontrol {Performance Analyzer Options}. This format is self-contained, and + Performance Analyzer (.ptq). This format is self-contained, and therefore loading it does not require you to specify the recording environment. You can transfer such trace files to a different computer without any toolchain or debug symbols and analyze them there. + To load trace data, go to \uicontrol Analyze > + \uicontrol {Performance Analyzer Options} > \uicontrol {Load Trace File}. + + To save trace data, select \uicontrol {Save Trace File}. + \section1 Troubleshooting Performance Analyzer might fail to record data for the following reasons: From e5dcb965482b4753d0c363af7da4cbf6d5a5e9ae Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Wed, 28 Aug 2024 17:33:59 +0200 Subject: [PATCH 08/10] CMakePM: Fix always showing "Build > Clear CMake Configuration" By always I mean for all build systems. I've noticed this with QMake and it makes no sense. Change-Id: Ib59b10722fa07a7009f3a2033b113f7038c19dd0 Reviewed-by: Marcus Tillmanns --- src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp index b81b03bee6d..996840eb9fd 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp @@ -75,6 +75,7 @@ private: QAction *m_runCMakeAction; QAction *m_clearCMakeCacheAction; QAction *m_runCMakeActionContextMenu; + QAction *m_clearCMakeCacheActionContextMenu; QAction *m_rescanProjectAction; QAction *m_buildFileContextMenu; QAction *m_reloadCMakePresetsAction; @@ -141,7 +142,7 @@ CMakeManager::CMakeManager() ActionBuilder(this, Constants::CLEAR_CMAKE_CACHE_CONTEXT_MENU) .setText(Tr::tr("Clear CMake Configuration")) .setContext(projectContext) - .bindContextAction(&m_clearCMakeCacheAction) + .bindContextAction(&m_clearCMakeCacheActionContextMenu) .setCommandAttribute(Command::CA_Hide) .addToContainer(PEC::M_PROJECTCONTEXT, PEC::G_PROJECT_REBUILD) .addOnTriggered(this, [this] { clearCMakeCache(ProjectManager::startupBuildSystem()); }); @@ -237,6 +238,7 @@ void CMakeManager::updateCmakeActions(Node *node) const bool visible = project && !BuildManager::isBuilding(project); m_runCMakeAction->setVisible(visible); m_runCMakeActionContextMenu->setEnabled(visible); + m_clearCMakeCacheActionContextMenu->setVisible(visible); m_clearCMakeCacheAction->setVisible(visible); m_rescanProjectAction->setVisible(visible); m_cmakeProfilerAction->setEnabled(visible); From 1b57e95c14d78119bbf8358bb52dfc1be0cde140 Mon Sep 17 00:00:00 2001 From: Sami Shalayel Date: Tue, 20 Aug 2024 12:45:05 +0200 Subject: [PATCH 09/10] Use qmllint for QML/JS > Run Checks when possible Move the code from cmakelocatorfilter.cpp that builds a custom cmake target to a non-internal header, and use it to trigger builds of the "all_qmllint" target when doing QML/JS > Run Checks. Also clean the warnings from qmllint when running embedded code model checks and vice-versa. Task-number: QTCREATORBUG-31410 Change-Id: If22941fc63590caad148804a53edc62f9eb76e34 Reviewed-by: Jarek Kobus Reviewed-by: hjk Reviewed-by: Ulf Hermann --- .../cmakeprojectmanager/CMakeLists.txt | 1 + .../cmakelocatorfilter.cpp | 34 +------------ .../cmakeprojectmanager/targethelper.cpp | 48 +++++++++++++++++++ .../cmakeprojectmanager/targethelper.h | 14 ++++++ src/plugins/qmljseditor/CMakeLists.txt | 2 +- .../qmljseditor/qmljseditorconstants.h | 2 + src/plugins/qmljseditor/qmltaskmanager.cpp | 24 ++++++++++ 7 files changed, 92 insertions(+), 33 deletions(-) create mode 100644 src/plugins/cmakeprojectmanager/targethelper.cpp create mode 100644 src/plugins/cmakeprojectmanager/targethelper.h diff --git a/src/plugins/cmakeprojectmanager/CMakeLists.txt b/src/plugins/cmakeprojectmanager/CMakeLists.txt index 2c58b4f08b3..7b282e79c85 100644 --- a/src/plugins/cmakeprojectmanager/CMakeLists.txt +++ b/src/plugins/cmakeprojectmanager/CMakeLists.txt @@ -43,6 +43,7 @@ add_qtc_plugin(CMakeProjectManager presetsparser.cpp presetsparser.h presetsmacros.cpp presetsmacros.h projecttreehelper.cpp projecttreehelper.h + targethelper.cpp targethelper.h 3rdparty/cmake/cmListFileCache.cxx 3rdparty/cmake/cmListFileLexer.cxx 3rdparty/cmake/cmListFileCache.h diff --git a/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp b/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp index 2445cf58b60..01ed02bdb0c 100644 --- a/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp +++ b/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp @@ -3,10 +3,10 @@ #include "cmakelocatorfilter.h" -#include "cmakebuildstep.h" #include "cmakebuildsystem.h" #include "cmakeproject.h" #include "cmakeprojectmanagertr.h" +#include "targethelper.h" #include @@ -108,36 +108,6 @@ static void setupFilter(ILocatorFilter *filter) filter, projectListUpdated); } -static void buildAcceptor(const FilePath &projectPath, const QString &displayName) -{ - // Get the project containing the target selected - const auto cmakeProject = qobject_cast( - Utils::findOrDefault(ProjectManager::projects(), [projectPath](Project *p) { - return p->projectFilePath() == projectPath; - })); - if (!cmakeProject || !cmakeProject->activeTarget() - || !cmakeProject->activeTarget()->activeBuildConfiguration()) - return; - - if (BuildManager::isBuilding(cmakeProject)) - BuildManager::cancel(); - - // Find the make step - const BuildStepList *buildStepList = - cmakeProject->activeTarget()->activeBuildConfiguration()->buildSteps(); - const auto buildStep = buildStepList->firstOfType(); - if (!buildStep) - return; - - // Change the make step to build only the given target - const QStringList oldTargets = buildStep->buildTargets(); - buildStep->setBuildTargets({displayName}); - - // Build - BuildManager::buildProjectWithDependencies(cmakeProject); - buildStep->setBuildTargets(oldTargets); -} - class CMakeBuildTargetFilter final : ILocatorFilter { public: @@ -152,7 +122,7 @@ public: } private: - LocatorMatcherTasks matchers() final { return cmakeMatchers(&buildAcceptor); } + LocatorMatcherTasks matchers() final { return cmakeMatchers(&buildTarget); } }; // OpenCMakeTargetLocatorFilter diff --git a/src/plugins/cmakeprojectmanager/targethelper.cpp b/src/plugins/cmakeprojectmanager/targethelper.cpp new file mode 100644 index 00000000000..3d18deaa84a --- /dev/null +++ b/src/plugins/cmakeprojectmanager/targethelper.cpp @@ -0,0 +1,48 @@ +// Copyright (C) 2024 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "targethelper.h" + +#include +#include +#include +#include +#include + +#include "cmakebuildstep.h" +#include "cmakebuildsystem.h" +#include "cmakeproject.h" + +namespace CMakeProjectManager { + +void buildTarget(const Utils::FilePath &projectPath, const QString &targetName) +{ + // Get the project containing the target selected + const auto cmakeProject = qobject_cast(Utils::findOrDefault( + ProjectExplorer::ProjectManager::projects(), [projectPath](ProjectExplorer::Project *p) { + return p->projectFilePath() == projectPath; + })); + if (!cmakeProject || !cmakeProject->activeTarget() + || !cmakeProject->activeTarget()->activeBuildConfiguration()) + return; + + if (ProjectExplorer::BuildManager::isBuilding(cmakeProject)) + ProjectExplorer::BuildManager::cancel(); + + // Find the make step + const ProjectExplorer::BuildStepList *buildStepList + = cmakeProject->activeTarget()->activeBuildConfiguration()->buildSteps(); + const auto buildStep = buildStepList->firstOfType(); + if (!buildStep) + return; + + // Change the make step to build only the given target + const QStringList oldTargets = buildStep->buildTargets(); + buildStep->setBuildTargets({targetName}); + + // Build + ProjectExplorer::BuildManager::buildProjectWithDependencies(cmakeProject); + buildStep->setBuildTargets(oldTargets); +} + +} // namespace CMakeProjectManager diff --git a/src/plugins/cmakeprojectmanager/targethelper.h b/src/plugins/cmakeprojectmanager/targethelper.h new file mode 100644 index 00000000000..1053d2b6d1b --- /dev/null +++ b/src/plugins/cmakeprojectmanager/targethelper.h @@ -0,0 +1,14 @@ +// Copyright (C) 2024 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#pragma once + +#include "cmake_global.h" + +#include + +namespace CMakeProjectManager { + +CMAKE_EXPORT void buildTarget(const Utils::FilePath &projectPath, const QString &targetName); + +} // namespace CMakeProjectManager diff --git a/src/plugins/qmljseditor/CMakeLists.txt b/src/plugins/qmljseditor/CMakeLists.txt index 122bb39aed1..6f42b6794e5 100644 --- a/src/plugins/qmljseditor/CMakeLists.txt +++ b/src/plugins/qmljseditor/CMakeLists.txt @@ -1,5 +1,5 @@ add_qtc_plugin(QmlJSEditor - DEPENDS LanguageUtils QmlJS QmlEditorWidgets + DEPENDS LanguageUtils QmlJS QmlEditorWidgets CMakeProjectManager PLUGIN_DEPENDS Core ProjectExplorer QmlJSTools TextEditor LanguageClient SOURCES qmlexpressionundercursor.cpp qmlexpressionundercursor.h diff --git a/src/plugins/qmljseditor/qmljseditorconstants.h b/src/plugins/qmljseditor/qmljseditorconstants.h index 25cc711bf0c..5ffbbc98c3b 100644 --- a/src/plugins/qmljseditor/qmljseditorconstants.h +++ b/src/plugins/qmljseditor/qmljseditorconstants.h @@ -23,5 +23,7 @@ const char TASK_CATEGORY_QML_ANALYSIS[] = "Task.Category.QmlAnalysis"; const char QML_SNIPPETS_GROUP_ID[] = "QML"; +const char QMLLINT_BUILD_TARGET[] = "all_qmllint"; + } // namespace Constants } // namespace QmlJSEditor diff --git a/src/plugins/qmljseditor/qmltaskmanager.cpp b/src/plugins/qmljseditor/qmltaskmanager.cpp index ca985f4022e..46cabe60992 100644 --- a/src/plugins/qmljseditor/qmltaskmanager.cpp +++ b/src/plugins/qmljseditor/qmltaskmanager.cpp @@ -3,11 +3,16 @@ #include "qmltaskmanager.h" #include "qmljseditorconstants.h" +#include "qmllssettings.h" +#include #include #include +#include #include +#include #include +#include #include #include #include @@ -113,8 +118,27 @@ void QmlTaskManager::updateSemanticMessagesNow() updateMessagesNow(true); } +static void triggerQmllintCMakeTarget() +{ + CMakeProjectManager::buildTarget( + ProjectManager::startupProject()->projectFilePath(), Constants::QMLLINT_BUILD_TARGET); +} + + void QmlTaskManager::updateMessagesNow(bool updateSemantic) { + // heuristic: qmllint will output meaningful warnings if qmlls is enabled + if (QmllsSettingsManager::instance()->lastSettings().useQmlls) { + // abort any update that's going on already, and remove old codemodel warnings + m_messageCollector.cancel(); + removeAllTasks(true); + triggerQmllintCMakeTarget(); + return; + } + + // clear out the qmllint warnings when qmlls was disabled after being enabled + TaskHub::clearTasks(ProjectExplorer::Constants::TASK_CATEGORY_COMPILE); + // don't restart a small update if a big one is running if (!updateSemantic && m_updatingSemantic) return; From 2210d30980945929fc04e60b48f89c5889522f4a Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Thu, 29 Aug 2024 15:45:06 +0200 Subject: [PATCH 10/10] CMakePM: Add files to qbs build Amends 1b57e95c14d78119bbf8358bb52dfc1be0cde140. Change-Id: I1f80f71aafeaa3e0f2c412c79b73b12aeb03e009 Reviewed-by: Christian Kandeler --- src/plugins/cmakeprojectmanager/cmakeprojectmanager.qbs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.qbs b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.qbs index 98849a71f57..d51d24982e8 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.qbs +++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.qbs @@ -86,7 +86,9 @@ QtcPlugin { "presetsmacros.cpp", "presetsmacros.h", "projecttreehelper.cpp", - "projecttreehelper.h" + "projecttreehelper.h", + "targethelper.cpp", + "targethelper.h", ] Group {