From 4dc56046ee881bd84023d12d7bd22dcaa86ac77f Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Tue, 7 May 2024 10:54:43 +0200 Subject: [PATCH 01/16] Designer: Do not default to Qt4 module names in include statements Fixes: QTCREATORBUG-30751 Change-Id: Ieca6779aa40b55536f0ce07b1803ff7a1a31004c Reviewed-by: Christian Stenger Reviewed-by: --- src/plugins/designer/qtdesignerformclasscodegenerator.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/designer/qtdesignerformclasscodegenerator.cpp b/src/plugins/designer/qtdesignerformclasscodegenerator.cpp index d935079cf43..677494658b4 100644 --- a/src/plugins/designer/qtdesignerformclasscodegenerator.cpp +++ b/src/plugins/designer/qtdesignerformclasscodegenerator.cpp @@ -103,7 +103,7 @@ bool QtDesignerFormClassCodeGenerator::generateCpp(const FormClassWizardParamete Utils::writeIncludeFileDirective("QtGui/" + formBaseClass, true, headerStr); headerStr << "#endif\n"; } else { - Utils::writeIncludeFileDirective("QtGui/" + formBaseClass, true, headerStr); + Utils::writeIncludeFileDirective("QtWidgets/" + formBaseClass, true, headerStr); } } else { Utils::writeIncludeFileDirective(formBaseClass, true, headerStr); From 38153e34f309d84ded1d81d3558c5d93a1818606 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Fri, 10 May 2024 14:04:13 +0200 Subject: [PATCH 02/16] RemoteLinux: Fix rsync command-line construction Fixes: QTCREATORBUG-30795 Change-Id: I1311e9a9cfe9c3f6c5a4c3166a504eb27f652f9f Reviewed-by: hjk --- src/plugins/remotelinux/linuxdevice.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/plugins/remotelinux/linuxdevice.cpp b/src/plugins/remotelinux/linuxdevice.cpp index 17044403d91..479efd48bef 100644 --- a/src/plugins/remotelinux/linuxdevice.cpp +++ b/src/plugins/remotelinux/linuxdevice.cpp @@ -1512,7 +1512,8 @@ private: const QString sshCmdLine = ProcessArgs::joinArgs( QStringList{SshSettings::sshFilePath().toUserOutput()} << fullConnectionOptions(), OsTypeLinux); - QStringList options{"-e", sshCmdLine, m_setup.m_rsyncFlags}; + QStringList options{"-e", sshCmdLine}; + options << ProcessArgs::splitArgs(m_setup.m_rsyncFlags, HostOsInfo::hostOs()); if (!m_batches.isEmpty()) { // NormalRun const auto batchIt = m_batches.begin(); From 67e233fefca4f182f3f7d5d986aa6cd98b3c3984 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Fri, 10 May 2024 13:39:49 +0200 Subject: [PATCH 03/16] Update qbs submodule to HEAD of 2.3 branch Change-Id: Icdbfaf63f9c8e37c00a735c22f6487ec9dd8975b Reviewed-by: Christian Stenger --- src/shared/qbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shared/qbs b/src/shared/qbs index 488fbe40e86..fc4dec2f6a8 160000 --- a/src/shared/qbs +++ b/src/shared/qbs @@ -1 +1 @@ -Subproject commit 488fbe40e86602d06e568a1749277387fd4a565e +Subproject commit fc4dec2f6a82c11ff7fe1aac2408d83dbbd1a9c5 From 6075904af52e52f955e3ed404ec0d46c064a1717 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Mon, 13 May 2024 10:12:58 +0200 Subject: [PATCH 04/16] CMake: Fix library build path for MinGW The code that handled the MinGW case of libFoo.a -> libFoo.dll broke the case of libFoo.dll.a -> libFoo.dll that is handled by the code before that. Amends 0d8a542b4f7d8a7b4d27f42ff16d309fba6cbf22 Amends 8713919f31f2aecc7e7c15f1fc9ce7906b8fefa0 Fixes: QTCREATORBUG-30556 Change-Id: I76f60c5e646bce97169b205860babf6a0d3b08b6 Reviewed-by: Cristian Adam --- .../cmakeprojectmanager/fileapidataextractor.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp b/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp index f4212a1a486..f1d3cee4ee3 100644 --- a/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp +++ b/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp @@ -308,7 +308,8 @@ static CMakeBuildTarget toBuildTarget(const TargetDetails &t, std::optional dllName; if (buildDir.osType() == OsTypeWindows && (f.role == "libraries")) { - part = FilePath::fromUserInput(part).fileName(); + const auto partAsFilePath = FilePath::fromUserInput(part); + part = partAsFilePath.fileName(); // Skip object libraries on Windows. This case can happen with static qml plugins if (part.endsWith(".obj") || part.endsWith(".o")) @@ -322,12 +323,15 @@ static CMakeBuildTarget toBuildTarget(const TargetDetails &t, } // MinGW has libQt6Core.a -> Qt6Core.dll + // but libFoo.dll.a was already handled above const QString mingwPrefix("lib"); - const QString mingwSuffix(".a"); - if (part.startsWith(mingwPrefix) && part.endsWith(mingwSuffix)) - dllName = part.chopped(mingwSuffix.length()) + const QString mingwSuffix("a"); + const QString completeSuffix = partAsFilePath.completeSuffix(); + if (part.startsWith(mingwPrefix) && completeSuffix == mingwSuffix) { + dllName = part.chopped(mingwSuffix.length() + 1/*the '.'*/) .sliced(mingwPrefix.length()) .append(".dll"); + } } if (!tmp.isEmpty() && tmp.isDir()) { From 717a6ce8a06959d8c9637ee42264e43c0bbcf864 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Tue, 14 May 2024 08:54:35 +0200 Subject: [PATCH 05/16] Bump version to 13.0.2 Change-Id: I69a59c32fbfe699c788c15e64557a9a02b4c186c Reviewed-by: Eike Ziller --- cmake/QtCreatorIDEBranding.cmake | 4 ++-- qbs/modules/qtc/qtc.qbs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cmake/QtCreatorIDEBranding.cmake b/cmake/QtCreatorIDEBranding.cmake index 1310d12dfb2..c93f91b8269 100644 --- a/cmake/QtCreatorIDEBranding.cmake +++ b/cmake/QtCreatorIDEBranding.cmake @@ -1,6 +1,6 @@ -set(IDE_VERSION "13.0.1") # The IDE version. +set(IDE_VERSION "13.0.2") # The IDE version. set(IDE_VERSION_COMPAT "13.0.0") # The IDE Compatibility version. -set(IDE_VERSION_DISPLAY "13.0.1") # The IDE display version. +set(IDE_VERSION_DISPLAY "13.0.2") # The IDE display version. set(IDE_COPYRIGHT_YEAR "2024") # The IDE current copyright year. set(IDE_SETTINGSVARIANT "QtProject") # The IDE settings variation. diff --git a/qbs/modules/qtc/qtc.qbs b/qbs/modules/qtc/qtc.qbs index d51678e415b..83ef2f88dfc 100644 --- a/qbs/modules/qtc/qtc.qbs +++ b/qbs/modules/qtc/qtc.qbs @@ -4,10 +4,10 @@ import qbs.FileInfo import qbs.Utilities Module { - property string qtcreator_display_version: '13.0.1' + property string qtcreator_display_version: '13.0.2' property string ide_version_major: '13' property string ide_version_minor: '0' - property string ide_version_release: '1' + property string ide_version_release: '2' property string qtcreator_version: ide_version_major + '.' + ide_version_minor + '.' + ide_version_release From 2c41ce2f0a99a1eff03eda9634878b74b9252419 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Mon, 13 May 2024 12:10:10 +0200 Subject: [PATCH 06/16] Doc: Describe configuring projects in build/run example tutorial Update the screenshot also in the "Open a project" topic. Fixes: QTCREATORBUG-30799 Change-Id: I1967907843f792671a665d15b343669f353d4a9f Reviewed-by: Eike Ziller Reviewed-by: --- .../images/qtcreator-configure-project.webp | Bin 0 -> 5298 bytes .../images/qtcreator-open-project-kits.png | Bin 11379 -> 0 bytes .../creator-projects-build-run-tutorial.qdoc | 19 ++++++++++++------ .../creator-projects-opening.qdoc | 8 ++++---- 4 files changed, 17 insertions(+), 10 deletions(-) create mode 100644 doc/qtcreator/images/qtcreator-configure-project.webp delete mode 100644 doc/qtcreator/images/qtcreator-open-project-kits.png diff --git a/doc/qtcreator/images/qtcreator-configure-project.webp b/doc/qtcreator/images/qtcreator-configure-project.webp new file mode 100644 index 0000000000000000000000000000000000000000..6f77d3a2a95a216b972e802bc550878cdbf21486 GIT binary patch literal 5298 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 F004W25V!yU literal 0 HcmV?d00001 diff --git a/doc/qtcreator/images/qtcreator-open-project-kits.png b/doc/qtcreator/images/qtcreator-open-project-kits.png deleted file mode 100644 index 8434389fa11b85c2cbeb20d642eb46cac7d5c569..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11379 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 J);T3K0RZCtcK`qY diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-build-run-tutorial.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-build-run-tutorial.qdoc index 4b13cbd630f..c6ce34ca69f 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-projects-build-run-tutorial.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-projects-build-run-tutorial.qdoc @@ -1,4 +1,4 @@ -// Copyright (C) 2021 The Qt Company Ltd. +// Copyright (C) 2024 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only // ********************************************************************** @@ -50,10 +50,17 @@ the \uicontrol Boot2Qt tag (commercial only) in the search field (4) to list examples that you can run on Boot2Qt devices. + \li In \uicontrol {Configure Project}, select + \l{glossary-buildandrun-kit}{kits} for building the example for the + target platforms. + + \image qtcreator-configure-project.webp {Configure Project view} + + \li Select \uicontrol {Configure Project}. + \li To check that you can compile and link the application code for a - device, click the \uicontrol {Kit Selector} and select a - \l{glossary-buildandrun-kit}{kit} for the - device. + device, click the \uicontrol {Kit Selector} and select the kit for + the device. \image qtcreator-examples-kit-selector.webp {Selecting a kit to build with} @@ -61,7 +68,7 @@ automatically detected the installed kit. If you cannot see any kits, see \l{Add kits}. - \li Click \inlineimage icons/run_small.png + \li Select \inlineimage icons/run_small.png (\uicontrol Run) to build and run the application. \li To see the compilation progress, press \key{Alt+4} to open @@ -78,7 +85,7 @@ \endlist - \sa {Add compilers}, {Add kits}, {Add Qt versions}, + \sa {Manage Kits}{How To: Manage Kits}, {Open projects}, {Connecting Android Devices}, {Connecting iOS Devices}, {Compile Output}, {Boot2Qt: Documentation}, {Qt Design Studio Manual} */ diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-opening.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-opening.qdoc index f631e673890..66b69a573fe 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-projects-opening.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-projects-opening.qdoc @@ -63,15 +63,15 @@ To re-configure projects: \list 1 - \li In the \uicontrol {Configure Project} tab, select + \li In \uicontrol {Configure Project}, select \l{glossary-buildandrun-kit}{kits} for building and running your project. - \image qtcreator-open-project-kits.png {Configure Project tab} + \image qtcreator-configure-project.webp {Configure Project view} \li Select \uicontrol {Configure Project}. \endlist - The \uicontrol {Configure Project} tab displays a list of kits that you - install on the development PC and configure in \preferences > \uicontrol Kits. + \uicontrol {Configure Project} shows a list of kits that you + install on the computer and configure in \preferences > \uicontrol Kits. Even if you do not intend to build the project, the C++ and QML code models need a Qt version and compiler to offer code completion. To specify them, From 15446c9e3f069c883c5348a520254f04b707dd4a Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Wed, 15 May 2024 20:20:35 +0200 Subject: [PATCH 07/16] Android: Don't crash when dis- and reconnecting phone via USB When ADB signals a change about the list of connected devices, the whole build/run steps tree gets deleted and recreated. The AndroidBuildApkStep is a part of that tree and starts one or more "keytool" processes on creation/init. They were started with their own event loop. Those synthetic event loops caused a change in order of deletion which led to crashes with obscure backtraces. This change removes the event loop creation from "keytool" calls. The crash is avoided. The calls take ~0.5 seconds. The short UI freeze should be an acceptable hotfix trade-off for a crash in QtC13. If 0.5 seconds freeze seem too much, a better fix could be done in QtC 14. Fixes: QTCREATORBUG-30645 Fixes: QTCREATORBUG-30770 Change-Id: I8842dc87023142ae75572bf255c7f1ec808d9bab Reviewed-by: Jarek Kobus --- src/plugins/android/androidbuildapkstep.cpp | 2 +- src/plugins/android/androidcreatekeystorecertificate.cpp | 2 +- src/plugins/android/androidmanager.cpp | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/plugins/android/androidbuildapkstep.cpp b/src/plugins/android/androidbuildapkstep.cpp index c57d008705d..c73cc916f70 100644 --- a/src/plugins/android/androidbuildapkstep.cpp +++ b/src/plugins/android/androidbuildapkstep.cpp @@ -1002,7 +1002,7 @@ QAbstractItemModel *AndroidBuildApkStep::keystoreCertificates() Process keytoolProc; keytoolProc.setCommand({androidConfig().keytoolPath(), params}); using namespace std::chrono_literals; - keytoolProc.runBlocking(30s, EventLoopMode::On); + keytoolProc.runBlocking(30s); if (keytoolProc.result() > ProcessResult::FinishedWithError) QMessageBox::critical(nullptr, Tr::tr("Error"), Tr::tr("Failed to run keytool.")); else diff --git a/src/plugins/android/androidcreatekeystorecertificate.cpp b/src/plugins/android/androidcreatekeystorecertificate.cpp index 7a6fd7cf593..f0b5f7c00ce 100644 --- a/src/plugins/android/androidcreatekeystorecertificate.cpp +++ b/src/plugins/android/androidcreatekeystorecertificate.cpp @@ -275,7 +275,7 @@ void AndroidCreateKeystoreCertificate::buttonBoxAccepted() Process genKeyCertProc; genKeyCertProc.setCommand(command); using namespace std::chrono_literals; - genKeyCertProc.runBlocking(15s, EventLoopMode::On); + genKeyCertProc.runBlocking(15s); if (genKeyCertProc.result() != ProcessResult::FinishedWithSuccess) { QMessageBox::critical(this, Tr::tr("Error"), diff --git a/src/plugins/android/androidmanager.cpp b/src/plugins/android/androidmanager.cpp index bd230c76af7..d2d4d1c7894 100644 --- a/src/plugins/android/androidmanager.cpp +++ b/src/plugins/android/androidmanager.cpp @@ -614,7 +614,7 @@ bool checkKeystorePassword(const FilePath &keystorePath, const QString &keystore "--storepass", keystorePasswd}); Process proc; proc.setCommand(cmd); - proc.runBlocking(10s, EventLoopMode::On); + proc.runBlocking(10s); return proc.result() == ProcessResult::FinishedWithSuccess; } @@ -631,7 +631,7 @@ bool checkCertificatePassword(const FilePath &keystorePath, const QString &keyst Process proc; proc.setCommand({androidConfig().keytoolPath(), arguments}); - proc.runBlocking(10s, EventLoopMode::On); + proc.runBlocking(10s); return proc.result() == ProcessResult::FinishedWithSuccess; } @@ -644,7 +644,7 @@ bool checkCertificateExists(const FilePath &keystorePath, const QString &keystor Process proc; proc.setCommand({androidConfig().keytoolPath(), arguments}); - proc.runBlocking(10s, EventLoopMode::On); + proc.runBlocking(10s); return proc.result() == ProcessResult::FinishedWithSuccess; } From 394e9a9fb39c7699e85a28b6e6447b19d43cf325 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20L=C3=B6hning?= Date: Tue, 23 Apr 2024 13:01:07 +0200 Subject: [PATCH 08/16] SquishTests: Don't proceed in hopeless situation When the GenericProposalWidget is not being shown, there's no point in trying to use it. Change-Id: Ibe6f3ed9230fdc41271f5ff8538bd863da3d0ab3 Reviewed-by: Christian Stenger Reviewed-by: --- .../suite_tools/tst_designer_autocomplete/test.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/tests/system/suite_tools/tst_designer_autocomplete/test.py b/tests/system/suite_tools/tst_designer_autocomplete/test.py index b378407f812..c77d4b5f180 100644 --- a/tests/system/suite_tools/tst_designer_autocomplete/test.py +++ b/tests/system/suite_tools/tst_designer_autocomplete/test.py @@ -48,12 +48,15 @@ def main(): snooze(1) type(editor, ">") snooze(1) + proposalExists = lambda: object.exists(':popupFrame_TextEditor::GenericProposalWidget') nativeType("%s" % buttonName[0]) - test.verify(waitFor("object.exists(':popupFrame_TextEditor::GenericProposalWidget')", 1500), - "Verify that GenericProposalWidget is being shown.") - nativeType("") - test.verify(waitFor('str(lineUnderCursor(editor)).strip() == "ui->%s" % buttonName', 1000), - 'Comparing line "%s" to expected "%s"' % (lineUnderCursor(editor), "ui->%s" % buttonName)) + if test.verify(waitFor(proposalExists, 4000), + "Verify that GenericProposalWidget is being shown."): + nativeType("") + lineCorrect = lambda: str(lineUnderCursor(editor)).strip() == "ui->%s" % buttonName + test.verify(waitFor(lineCorrect, 1000), + ('Comparing line "%s" to expected "%s"' + % (lineUnderCursor(editor), "ui->%s" % buttonName))) type(editor, "") # Delete line selectFromLocator("mainwindow.ui") saveAndExit() From 60a66ce3fac42bc3bc0809985333c4a10b8397d5 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Thu, 16 May 2024 13:54:25 +0200 Subject: [PATCH 09/16] Utils: Remove duplicate call Change-Id: Ic21ea5a911de01f63fa5c736233cef544a00c210 Reviewed-by: Alessandro Portale --- src/libs/utils/externalterminalprocessimpl.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/libs/utils/externalterminalprocessimpl.cpp b/src/libs/utils/externalterminalprocessimpl.cpp index ca178d7bf9c..6a01cc4ef2e 100644 --- a/src/libs/utils/externalterminalprocessimpl.cpp +++ b/src/libs/utils/externalterminalprocessimpl.cpp @@ -190,8 +190,6 @@ expected_str ProcessStubCreator::startStubProcess(const ProcessSetupData process->setEnvironment( setupData.m_environment.appliedToEnvironment(Environment::systemEnvironment())); - process->setEnvironment(setupData.m_environment); - process->start(); process->waitForStarted(); if (process->error() != QProcess::UnknownError) { From 450611ddccb4ad83eb9eb42c475a4476307b1e92 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Thu, 16 May 2024 12:55:26 +0200 Subject: [PATCH 10/16] Utils: Fix FilePathAspect::expandedValue It should use the macro expander if there is one. Change-Id: I8fb7760f23305f4b243e784d38d44d9bef4c0065 Reviewed-by: Alessandro Portale --- src/libs/utils/aspects.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/libs/utils/aspects.cpp b/src/libs/utils/aspects.cpp index b72fc2060e3..c35085ce4d1 100644 --- a/src/libs/utils/aspects.cpp +++ b/src/libs/utils/aspects.cpp @@ -1416,7 +1416,10 @@ FilePath FilePathAspect::operator()() const FilePath FilePathAspect::expandedValue() const { - return FilePath::fromUserInput(TypedAspect::value()); + const auto value = TypedAspect::value(); + if (!value.isEmpty() && d->m_expanderProvider) + return FilePath::fromUserInput(d->m_expanderProvider()->expand(value)); + return FilePath::fromUserInput(value); } QString FilePathAspect::value() const From 58abfc52e52ca7d3f833cc18ce38e209e86b1094 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Thu, 16 May 2024 15:22:49 +0200 Subject: [PATCH 11/16] Doc: Fix QDoc warnings for the API reference Change-Id: I3507009756822f3ac795057a37c5f34a6e2bcd10 Reviewed-by: Reviewed-by: Eike Ziller --- src/libs/extensionsystem/pluginview.cpp | 5 +++-- src/plugins/coreplugin/find/ifindfilter.cpp | 8 ++++---- src/plugins/coreplugin/find/searchresultwindow.cpp | 11 +++++++---- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/libs/extensionsystem/pluginview.cpp b/src/libs/extensionsystem/pluginview.cpp index 40738be487f..b29e5c21f6d 100644 --- a/src/libs/extensionsystem/pluginview.cpp +++ b/src/libs/extensionsystem/pluginview.cpp @@ -50,8 +50,9 @@ */ /*! - \fn void ExtensionSystem::PluginView::pluginSettingsChanged(ExtensionSystem::PluginSpec *spec) - The settings for the plugin list entry corresponding to \a spec changed. + \fn void ExtensionSystem::PluginView::pluginsChanged(const QSet &spec, bool enabled) + The value of \a enabled for the plugin list entry corresponding to \a spec + changed. */ using namespace Utils; diff --git a/src/plugins/coreplugin/find/ifindfilter.cpp b/src/plugins/coreplugin/find/ifindfilter.cpp index 704f827bf83..49a891e659f 100644 --- a/src/plugins/coreplugin/find/ifindfilter.cpp +++ b/src/plugins/coreplugin/find/ifindfilter.cpp @@ -30,7 +30,7 @@ using namespace Utils; and \uicontrol {Files in File System} where the user provides a directory and file patterns to search. - \image qtcreator-search-filesystem.png + \image qtcreator-search-reg-exp.webp {Search Results view with search criteria} To make your find scope available to the user, you need to implement this class, and register an instance of your subclass in the plugin manager. @@ -38,7 +38,7 @@ using namespace Utils; A common way to present the search results to the user, is to use the shared \uicontrol{Search Results} pane. - \image qtcreator-search-results.webp {Search Results view} + \image qtcreator-search-results-reg-exp.webp {Search Results view with search results} If you want to implement a find filter that is doing a file based text search, you should use \l Core::BaseTextFind, which already implements all @@ -178,13 +178,13 @@ using namespace Utils; */ /*! - \fn void Core::IFindFilter::writeSettings(QSettings *settings) + \fn void Core::IFindFilter::writeSettings(Utils::QtcSettings *settings) Called at shutdown to write the state of the additional options for this find filter to the \a settings. */ /*! - \fn void Core::IFindFilter::readSettings(QSettings *settings) + \fn void Core::IFindFilter::readSettings(Utils::QtcSettings *settings) Called at startup to read the state of the additional options for this find filter from the \a settings. */ diff --git a/src/plugins/coreplugin/find/searchresultwindow.cpp b/src/plugins/coreplugin/find/searchresultwindow.cpp index 8412a57d707..eea0c43d4e6 100644 --- a/src/plugins/coreplugin/find/searchresultwindow.cpp +++ b/src/plugins/coreplugin/find/searchresultwindow.cpp @@ -288,10 +288,13 @@ using namespace Core::Internal; This enum type specifies whether the search results should be sorted or ordered: - \value AddSorted - The search results are sorted. + \value AddSortedByContent + The search results are sorted alphabetically. + \value AddSortedByPosition + The search results are sorted by the search results' reported line + numbers. \value AddOrdered - The search results are ordered. + The search results are ordered as they are reported. */ /*! @@ -331,7 +334,7 @@ using namespace Core::Internal; \brief The SearchResultWindow class is the implementation of a commonly shared \uicontrol{Search Results} output pane. - \image qtcreator-search-results.webp {Search Results view} + \image qtcreator-search-results-reg-exp.webp {Search Results view with search results} Whenever you want to show the user a list of search results, or want to present UI for a global search and replace, use the single instance From 2b23a359d4de4a7572a3af089c928b56b67a35d0 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Thu, 16 May 2024 16:58:25 +0200 Subject: [PATCH 12/16] Doc: Describe using Perforce config files on Linux Fixes: QTCREATORBUG-30816 Change-Id: I52adaa3a5f216a503c7e22c8e4905146ee778f3b Reviewed-by: Eike Ziller Reviewed-by: Friedemann Kleint Reviewed-by: --- .../creator-only/creator-vcs-perforce.qdoc | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/doc/qtcreator/src/vcs/creator-only/creator-vcs-perforce.qdoc b/doc/qtcreator/src/vcs/creator-only/creator-vcs-perforce.qdoc index 443aa40be45..3af3c6769b4 100644 --- a/doc/qtcreator/src/vcs/creator-only/creator-vcs-perforce.qdoc +++ b/doc/qtcreator/src/vcs/creator-only/creator-vcs-perforce.qdoc @@ -35,11 +35,29 @@ Set workspace details in \uicontrol {P4 user}, \uicontrol {P4 client}, and \uicontrol {P4 port}. + \section1 Using Configuration Files + To specify the details individually for several projects, use configuration - files instead. Create a \c {p4config.txt} configuration file for each - project in the top level project directory, and run - \c{p4 set P4CONFIG=p4config.txt} once. You must deselect the - \uicontrol {Environment Variables} check box. + files: + + \list 1 + \li Create a \c {p4config.txt} configuration file for each project in the + top level project directory. + \li Go to \preferences > \uicontrol {Version Control} > + \uicontrol Perforce. + \li Clear \uicontrol {Environment Variables}. + \li Run the following command from the command line once: + \list + \li On Windows: + \badcode + p4 set P4CONFIG=p4config.txt + \endcode + \li On Linux + \badcode + export P4CONFIG= + \endcode + \endlist + \endlist \section1 Editing Files From c7803fe6ae8234f9e23ec1bc00481e7d76e8ac38 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Fri, 17 May 2024 09:42:24 +0200 Subject: [PATCH 13/16] Doc: Mention QML Language Server in "Adding Language Servers" - Add a link to "Turn on QML Language Server". - Add the \QMLLS macro and use it everywhere. Fixes: QTCREATORBUG-30823 Change-Id: I75ff67967ad6bf592dceeae46486713012aafd50 Reviewed-by: David Schulz Reviewed-by: Sami Shalayel Reviewed-by: Fabian Kosmale --- doc/config/macros.qdocconf | 1 + .../creator-only/creator-language-server.qdoc | 35 +++++++++++-------- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/doc/config/macros.qdocconf b/doc/config/macros.qdocconf index f881062d136..5117f9f3e4b 100644 --- a/doc/config/macros.qdocconf +++ b/doc/config/macros.qdocconf @@ -32,6 +32,7 @@ macro.QDV = "Qt Design Viewer" macro.QL = "Qt Linguist" macro.QMCU = "Qt for MCUs" macro.QMLD = "Qt Quick Designer" +macro.QMLLS = "QML Language Server" macro.QQV = "Qt QML Viewer" macro.QSDK = "Qt" macro.QUL = "Qt Quick Ultralite" diff --git a/doc/qtcreator/src/editors/creator-only/creator-language-server.qdoc b/doc/qtcreator/src/editors/creator-only/creator-language-server.qdoc index 8c01b9cfefe..aff9f9f357f 100644 --- a/doc/qtcreator/src/editors/creator-only/creator-language-server.qdoc +++ b/doc/qtcreator/src/editors/creator-only/creator-language-server.qdoc @@ -62,7 +62,8 @@ \section1 Adding Language Servers - \QC adds a Python language server by default. + \QC adds a \l{Configure Python language servers}{Python language server} by + default. Also, it offers to install language servers for JSON and YAML files when you open them in the editor if it can find the @@ -71,18 +72,22 @@ \image qtcreator-language-server-json.webp {Prompt to install JSON language server} - Add a Java language server for \l{Connecting Android Devices} - {Android development}. For other languages, add generic stdIO language - servers. + \l{Add a Java language server} for \l{Connecting Android Devices} + {Android development}. For other languages, + \l{Add generic language servers}{add generic stdIO language servers}. To add language servers, go to \preferences > \uicontrol {Language Client} and select \uicontrol Add. \image qtcreator-language-client-options-java.png {Java language server preferences} - To enable a language server, select the check box next to the language + To enable a language server, select the checkbox next to the language server name and set server preferences. + To turn on \l{Turn on \QMLLS}{\QMLLS}, go to + \preferences > \uicontrol {Qt Quick} > \uicontrol {QML/JS Editing} and + select \uicontrol {Enable \QMLLS}. + To remove language servers from the list, select \uicontrol Delete. \section1 Supported Locator Filters @@ -218,23 +223,23 @@ \ingroup creator-how-to-lsp - \title Turn on QML Language Server + \title Turn on \QMLLS - Since Qt 6.4, the QML language server offers code completion and + Since Qt 6.4, \QMLLS offers code completion and issues warnings for QML. To use it, go to \preferences > \uicontrol {Qt Quick} > \uicontrol {QML/JS Editing} and select - \uicontrol {Enable QML Language Server}. + \uicontrol {Enable \QMLLS}. - By default, enabling the QML language server will only enable warning messages + By default, enabling \QMLLS will only enable warning messages and code completion, while advanced features such as renaming and finding usages will be handled by the embedded code model. - To disable the embedded code model and use the QML language server for everything, - select \uicontrol {Use QML Language Server advanced features}. + To disable the embedded code model and use \QMLLS for everything, + select \uicontrol {Use \QMLLS advanced features}. - Also, \QC tries to use the QML language server shipped with - the Qt version in your current kit. To override that behavior and always use the - QML language server of the highest registered Qt version, select - \uicontrol {Use QML Language Server from latest Qt version}. + Also, \QC tries to use \QMLLS shipped with + the Qt version in your current kit. To override that behavior and always use + \QMLLS of the highest registered Qt version, select + \uicontrol {Use \QMLLS from latest Qt version}. \image qtcreator-qml-js-editing.webp {QML/JS Editing preferences} From ced23f3f89318d1e798aaa2f2e32d40c5f83c8c8 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Fri, 17 May 2024 10:23:49 +0200 Subject: [PATCH 14/16] Doc: Use "p4 set P4CONFIG" on all platforms Fixes: QTCREATORBUG-30816 Change-Id: Id95062f24bcd2b225581f3158c779caac6780a14 Reviewed-by: Friedemann Kleint Reviewed-by: Orgad Shaneh --- .../external-resources.qdoc | 4 ++++ .../creator-only/creator-vcs-perforce.qdoc | 23 ++++++++----------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/doc/qtcreator/src/external-resources/external-resources.qdoc b/doc/qtcreator/src/external-resources/external-resources.qdoc index 6c385180192..0fa7ca60dff 100644 --- a/doc/qtcreator/src/external-resources/external-resources.qdoc +++ b/doc/qtcreator/src/external-resources/external-resources.qdoc @@ -1,6 +1,10 @@ // Copyright (C) 2022 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only +/*! + \externalpage https://www.perforce.com/manuals/cmdref/Content/CmdRef/P4CONFIG.html + \title Perforce: P4CONFIG +*/ /*! \externalpage https://doc.qt.io/Boot2Qt/index.html \title Boot2Qt: Documentation diff --git a/doc/qtcreator/src/vcs/creator-only/creator-vcs-perforce.qdoc b/doc/qtcreator/src/vcs/creator-only/creator-vcs-perforce.qdoc index 3af3c6769b4..6c9c93ff51d 100644 --- a/doc/qtcreator/src/vcs/creator-only/creator-vcs-perforce.qdoc +++ b/doc/qtcreator/src/vcs/creator-only/creator-vcs-perforce.qdoc @@ -37,8 +37,8 @@ \section1 Using Configuration Files - To specify the details individually for several projects, use configuration - files: + To specify workspace details individually for several projects, use + configuration files: \list 1 \li Create a \c {p4config.txt} configuration file for each project in the @@ -46,19 +46,16 @@ \li Go to \preferences > \uicontrol {Version Control} > \uicontrol Perforce. \li Clear \uicontrol {Environment Variables}. - \li Run the following command from the command line once: - \list - \li On Windows: - \badcode - p4 set P4CONFIG=p4config.txt - \endcode - \li On Linux - \badcode - export P4CONFIG= - \endcode - \endlist + \li To set \c P4CONFIG to use the file that you created, run the + following command from the command line once: + \badcode + p4 set P4CONFIG=p4config.txt + \endcode \endlist + For more information about using the \c P4CONFIG variable, see + \l{Perforce: P4CONFIG}. + \section1 Editing Files In addition to the standard version control system functions described in From 946bbb477ebc2cd29a1a624ff2ac29603837dbaa Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Fri, 17 May 2024 14:14:53 +0200 Subject: [PATCH 15/16] Doc: Fix QDoc warnings in BaseAspects docs Change-Id: Iee6e29040dfffaa4fa7da99cb0b854ef22b45042 Reviewed-by: Marcus Tillmanns --- src/libs/utils/aspects.cpp | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/src/libs/utils/aspects.cpp b/src/libs/utils/aspects.cpp index c35085ce4d1..5cc028bcdb8 100644 --- a/src/libs/utils/aspects.cpp +++ b/src/libs/utils/aspects.cpp @@ -115,6 +115,17 @@ public: their data, or use an ID, neither of these is mandatory. */ +/*! + \enum Utils::BaseAspect::Announcement + + Whether to emit a signal when a value changes. + + \value DoEmit + Emit a signal. + \value BeQuiet + Don't emit a signal. +*/ + /*! Constructs a base aspect. @@ -159,7 +170,9 @@ QVariant BaseAspect::variantValue() const /*! Sets \a value. - Prefer the typed setValue() of derived classes. + If \a howToAnnounce is set to \c DoEmit, emits the \c valueChanged signal. + + Prefer the typed \c setValue() of the derived classes. */ void BaseAspect::setVariantValue(const QVariant &value, Announcement howToAnnounce) { @@ -939,9 +952,6 @@ public: Based on QTextEdit, used for user-editable strings that often do not fit on a line. - \value PathChooserDisplay - Based on Utils::PathChooser. - \value PasswordLineEditDisplay Based on QLineEdit, used for password strings @@ -1428,7 +1438,9 @@ QString FilePathAspect::value() const } /*! - Sets the value of this file path aspect to \a value. + Sets the value of this file path aspect to \a filePath. + + If \a howToAnnounce is set to \c DoEmit, emits the \c valueChanged signal. \note This does not use any check that the value is actually a file path. @@ -2784,8 +2796,8 @@ void IntegersAspect::addToLayout(Layouting::LayoutItem &parent) */ /*! - Constructs a text display showing the \a message with an icon representing - type \a type. + Constructs a text display with the parent \a container. The display shows + \a message and an icon representing the type \a type. */ TextDisplay::TextDisplay(AspectContainer *container, const QString &message, InfoLabel::InfoType type) : BaseAspect(container), d(new Internal::TextDisplayPrivate) From e48a40bd8dd029cbea797a4dc4a1ccae379218d7 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Fri, 17 May 2024 13:44:30 +0200 Subject: [PATCH 16/16] Update qbs submodule to HEAD of 2.3 branch Change-Id: I9afd32c952cb4d57ed0daf8ff9860a35f3d78be0 Reviewed-by: Christian Stenger --- src/shared/qbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shared/qbs b/src/shared/qbs index fc4dec2f6a8..1ee1e51fa98 160000 --- a/src/shared/qbs +++ b/src/shared/qbs @@ -1 +1 @@ -Subproject commit fc4dec2f6a82c11ff7fe1aac2408d83dbbd1a9c5 +Subproject commit 1ee1e51fa98f89ae4ee977f6074d070f5788c633