From 7eb09ff0b7195665b8de193d200b0ca2ea21b7bf Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Tue, 7 May 2024 13:50:56 +0200 Subject: [PATCH 01/13] Editors: Update navigation history when closing with the tool button The code path for the global actions (File menu, shortcut) were adding the closed document to the history, but the editor view local action did not. Move the call one level deeper, so it is done for both. That fixes Window > Go Back under some circumstances in which it didn't open closed files again. Change-Id: I74bdb02209b8ac7bb7714d9a827e3a0c30a4c9e9 Reviewed-by: Marcus Tillmanns --- src/plugins/coreplugin/editormanager/editormanager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp index 6ec37a6cb8c..bd9b2620670 100644 --- a/src/plugins/coreplugin/editormanager/editormanager.cpp +++ b/src/plugins/coreplugin/editormanager/editormanager.cpp @@ -1473,6 +1473,7 @@ bool EditorManagerPrivate::activateEditorForEntry(EditorView *view, DocumentMode void EditorManagerPrivate::closeEditorOrDocument(IEditor *editor) { QTC_ASSERT(editor, return); + EditorManager::addCurrentPositionToNavigationHistory(); QList visible = EditorManager::visibleEditors(); if (Utils::contains(visible, [&editor](IEditor *other) { @@ -2690,7 +2691,6 @@ void EditorManager::slotCloseCurrentEditorOrDocument() { if (!d->m_currentEditor) return; - addCurrentPositionToNavigationHistory(); d->closeEditorOrDocument(d->m_currentEditor); } From 4dc56046ee881bd84023d12d7bd22dcaa86ac77f Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Tue, 7 May 2024 10:54:43 +0200 Subject: [PATCH 02/13] 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 03/13] 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 04/13] 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 05/13] 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 06/13] 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 07/13] 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 08/13] 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 09/13] 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 10/13] 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 11/13] 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 12/13] 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 13/13] 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