From 6cd196511db5a3ac65d0852177ae612084239e4f Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Mon, 6 Nov 2023 13:48:12 +0100 Subject: [PATCH 01/37] Utils: Fix Terminal.app script for macOS 14 The "where its tab 1 = newTab" fails on macOS 14.0. I've also added some logging to make investigating future potential problems quicker. I've filed feedback to apple here: https://feedbackassistant.apple.com/feedback/13341074 Fixes: QTCREATORBUG-29246 Change-Id: I79c6f75daa34a3c346934ee2c21a5dfc9daf3cff Reviewed-by: Eike Ziller Reviewed-by: --- .../utils/externalterminalprocessimpl.cpp | 36 ++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/src/libs/utils/externalterminalprocessimpl.cpp b/src/libs/utils/externalterminalprocessimpl.cpp index 5cff874eb76..380dd633f54 100644 --- a/src/libs/utils/externalterminalprocessimpl.cpp +++ b/src/libs/utils/externalterminalprocessimpl.cpp @@ -8,7 +8,11 @@ #include "terminalcommand.h" #include "utilstr.h" +#include #include +#include + +Q_LOGGING_CATEGORY(log, "terminal.externalprocess", QtWarningMsg) namespace Utils { @@ -33,6 +37,16 @@ static const QLatin1String TerminalAppScriptAttached{R"( end tell )"}; +static const QLatin1String TerminalAppScriptAttachedWithoutWindowClose{R"( + tell application "Terminal" + activate + set newTab to do script "%1 && exit" + repeat until ((count of processes of newTab) = 0) + delay 0.1 + end repeat + end tell +)"}; + static const QLatin1String TerminalAppScriptDetached{R"( tell application "Terminal" activate @@ -52,8 +66,17 @@ expected_str ProcessStubCreator::startStubProcess(const ProcessSetupData bool detached = setupData.m_terminalMode == TerminalMode::Detached; if (HostOsInfo::isMacHost()) { + // There is a bug in macOS 14.0 where the script fails if it tries to find + // the window id. We will have to check in future versions of macOS if they fixed + // the issue. + static const QVersionNumber osVersionNumber = QVersionNumber::fromString( + QSysInfo::productVersion()); + static const QMap terminalMap = { - {"Terminal.app", {TerminalAppScriptAttached, TerminalAppScriptDetached}}, + {"Terminal.app", + {osVersionNumber.majorVersion() >= 14 ? TerminalAppScriptAttachedWithoutWindowClose + : TerminalAppScriptAttached, + TerminalAppScriptDetached}}, }; if (terminalMap.contains(terminal.command.toString())) { @@ -101,6 +124,17 @@ expected_str ProcessStubCreator::startStubProcess(const ProcessSetupData Tr::tr("Failed to start terminal process: \"%1\".").arg(process->errorString())); } + QObject::connect(process, &Process::readyReadStandardOutput, process, [process] { + const QString output = process->readAllStandardOutput(); + if (!output.isEmpty()) + qCWarning(log).noquote() << output; + }); + QObject::connect(process, &Process::readyReadStandardError, process, [process] { + const QString output = process->readAllStandardError(); + if (!output.isEmpty()) + qCCritical(log).noquote() << output; + }); + QObject::connect(process, &Process::done, m_interface, &TerminalInterface::onStubExited); return 0; From c617d97c29b8eb783db8f5c4914cb710fe629359 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Mon, 6 Nov 2023 11:50:36 +0100 Subject: [PATCH 02/37] TaskTree: Preserve the right order of the 0 TimeoutTask Like it's done for all other TimeoutTasks. Before it was flaky on mac. Change-Id: I2999b1264d313dda5d614d9dbd7ae03b2bf00fb0 Reviewed-by: Marcus Tillmanns --- src/libs/solutions/tasking/tasktree.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/libs/solutions/tasking/tasktree.cpp b/src/libs/solutions/tasking/tasktree.cpp index 5dc743f1324..f3fc0ccd9bc 100644 --- a/src/libs/solutions/tasking/tasktree.cpp +++ b/src/libs/solutions/tasking/tasktree.cpp @@ -2728,10 +2728,7 @@ TimeoutTaskAdapter::~TimeoutTaskAdapter() void TimeoutTaskAdapter::start() { - if (*task() == milliseconds::zero()) - QTimer::singleShot(0, this, [this] { emit done(true); }); - else - m_timerId = scheduleTimeout(*task(), this, [this] { m_timerId = {}; emit done(true); }); + m_timerId = scheduleTimeout(*task(), this, [this] { m_timerId = {}; emit done(true); }); } } // namespace Tasking From 05ce5ea14df56c0394ba78679a581b9a40bec5cf Mon Sep 17 00:00:00 2001 From: David Schulz Date: Mon, 6 Nov 2023 14:13:11 +0100 Subject: [PATCH 03/37] CppEditor: Fix crash when calling CppModelManager::projectPart find and end of QMap potentially detach the container, so we have to use constFind and constEnd Fixes: QTCREATORBUG-29716 Change-Id: I2fef46580ff5b58a70201841423e5ca0a7b4d107 Reviewed-by: Cristian Adam Reviewed-by: --- src/plugins/cppeditor/cppmodelmanager.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/cppeditor/cppmodelmanager.cpp b/src/plugins/cppeditor/cppmodelmanager.cpp index e72c630cbf7..52f0ea89845 100644 --- a/src/plugins/cppeditor/cppmodelmanager.cpp +++ b/src/plugins/cppeditor/cppmodelmanager.cpp @@ -1647,8 +1647,8 @@ QList CppModelManager::projectPart(const FilePath &fileNa { { QReadLocker locker(&d->m_projectLock); - auto it = d->m_fileToProjectParts.find(fileName); - if (it != d->m_fileToProjectParts.end()) + auto it = d->m_fileToProjectParts.constFind(fileName); + if (it != d->m_fileToProjectParts.constEnd()) return it.value(); } const FilePath canonicalPath = fileName.canonicalPath(); From dce08c5b9e304c44d040190a4d8f9bfa17287c44 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Mon, 6 Nov 2023 13:49:21 +0100 Subject: [PATCH 04/37] Utils: Fix crash if stub fails to start If the inferior did not start the TerminalInterface did not send an error up the chain, which meant that the runcontrol does not exit. This would lead to a crash. Change-Id: Icf9f8f913d84a9ed6414e15ce3a3587b1580425e Reviewed-by: Christian Stenger --- src/libs/utils/terminalinterface.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/libs/utils/terminalinterface.cpp b/src/libs/utils/terminalinterface.cpp index 9fb226ece54..3cd1e5bb21d 100644 --- a/src/libs/utils/terminalinterface.cpp +++ b/src/libs/utils/terminalinterface.cpp @@ -92,6 +92,7 @@ public: StubCreator *stubCreator{nullptr}; const bool waitOnExit; + bool didInferiorRun{false}; }; TerminalInterface::TerminalInterface(bool waitOnExit) @@ -156,6 +157,11 @@ void TerminalInterface::onStubExited() if (d->inferiorProcessId) emitFinished(-1, QProcess::CrashExit); + else if (!d->didInferiorRun) { + emitError(QProcess::FailedToStart, + Tr::tr("Failed to start terminal process. The stub exited before the inferior " + "was started.")); + } } void TerminalInterface::onStubReadyRead() @@ -176,6 +182,7 @@ void TerminalInterface::onStubReadyRead() d->envListFile = nullptr; } else if (out.startsWith("pid ")) { d->inferiorProcessId = out.mid(4).toInt(); + d->didInferiorRun = true; emit started(d->inferiorProcessId, d->inferiorThreadId); } else if (out.startsWith("thread ")) { // Windows only d->inferiorThreadId = out.mid(7).toLongLong(); From 824fee183c5653a4077775c072759601fa8086f8 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Fri, 3 Nov 2023 15:44:38 +0100 Subject: [PATCH 05/37] Fix setEnabler / readSettings order BaseAspect::setEnabler requires the settings to be read already. This is because readSettings() does not emit "valueChanged", and so the connections from the enabler to the target are not triggered. Change-Id: I0c95e2b516cd03c1dbad653288b44510ec7ea800 Reviewed-by: Christian Stenger --- src/plugins/autotest/autotestplugin.cpp | 1 - src/plugins/autotest/boost/boosttestframework.cpp | 5 ++++- src/plugins/autotest/catch/catchtestframework.cpp | 13 ++++++++----- src/plugins/autotest/ctest/ctesttool.cpp | 3 +++ src/plugins/autotest/gtest/gtestframework.cpp | 7 +++++-- src/plugins/autotest/qtest/qttestframework.cpp | 5 ++++- src/plugins/autotest/quick/quicktestframework.cpp | 2 ++ src/plugins/autotest/testframeworkmanager.cpp | 10 ---------- src/plugins/autotest/testframeworkmanager.h | 1 - src/plugins/autotest/testsettings.cpp | 7 +++++-- src/plugins/coreplugin/systemsettings.cpp | 8 +++++--- src/plugins/fakevim/fakevimactions.cpp | 4 ++-- src/plugins/qmlprofiler/qmlprofilersettings.cpp | 3 ++- .../screenrecorder/screenrecordersettings.cpp | 5 +++-- 14 files changed, 43 insertions(+), 31 deletions(-) diff --git a/src/plugins/autotest/autotestplugin.cpp b/src/plugins/autotest/autotestplugin.cpp index 0f93fb7dc75..67b264dcd00 100644 --- a/src/plugins/autotest/autotestplugin.cpp +++ b/src/plugins/autotest/autotestplugin.cpp @@ -136,7 +136,6 @@ AutotestPluginPrivate::AutotestPluginPrivate() TestFrameworkManager::registerTestFramework(&theCatchFramework()); TestFrameworkManager::registerTestTool(&theCTestTool()); - TestFrameworkManager::synchronizeSettings(); m_resultsPane = TestResultsPane::instance(); diff --git a/src/plugins/autotest/boost/boosttestframework.cpp b/src/plugins/autotest/boost/boosttestframework.cpp index 38f800357b4..9addde077b0 100644 --- a/src/plugins/autotest/boost/boosttestframework.cpp +++ b/src/plugins/autotest/boost/boosttestframework.cpp @@ -74,7 +74,6 @@ BoostTestFramework::BoostTestFramework() seed.setLabelText(Tr::tr("Seed:")); seed.setToolTip(Tr::tr("A seed of 0 means no randomization. A value of 1 uses the current " "time, any other value is used as random seed generator.")); - seed.setEnabler(&randomize); randomize.setSettingsKey("Randomize"); randomize.setLabelPlacement(BoolAspect::LabelPlacement::Compact); @@ -96,6 +95,10 @@ BoostTestFramework::BoostTestFramework() memLeaks.setDefaultValue(true); memLeaks.setLabelText(Tr::tr("Detect memory leaks")); memLeaks.setToolTip(Tr::tr("Enable memory leak detection.")); + + readSettings(); + + seed.setEnabler(&randomize); } QString BoostTestFramework::logLevelToOption(const LogLevel logLevel) diff --git a/src/plugins/autotest/catch/catchtestframework.cpp b/src/plugins/autotest/catch/catchtestframework.cpp index 8c312f65d15..a8ac1e9faab 100644 --- a/src/plugins/autotest/catch/catchtestframework.cpp +++ b/src/plugins/autotest/catch/catchtestframework.cpp @@ -49,29 +49,24 @@ CatchFramework::CatchFramework() abortAfter.setSettingsKey("AbortAfter"); abortAfter.setRange(1, 9999); - abortAfter.setEnabler(&abortAfterChecked); benchmarkSamples.setSettingsKey("BenchSamples"); benchmarkSamples.setRange(1, 999999); benchmarkSamples.setDefaultValue(100); - benchmarkSamples.setEnabler(&samplesChecked); benchmarkResamples.setSettingsKey("BenchResamples"); benchmarkResamples.setRange(1, 9999999); benchmarkResamples.setDefaultValue(100000); benchmarkResamples.setToolTip(Tr::tr("Number of resamples for bootstrapping.")); - benchmarkResamples.setEnabler(&resamplesChecked); confidenceInterval.setSettingsKey("BenchConfInt"); confidenceInterval.setRange(0., 1.); confidenceInterval.setSingleStep(0.05); confidenceInterval.setDefaultValue(0.95); - confidenceInterval.setEnabler(&confidenceIntervalChecked); benchmarkWarmupTime.setSettingsKey("BenchWarmup"); benchmarkWarmupTime.setSuffix(Tr::tr(" ms")); benchmarkWarmupTime.setRange(0, 10000); - benchmarkWarmupTime.setEnabler(&warmupChecked); abortAfterChecked.setSettingsKey("AbortChecked"); abortAfterChecked.setLabelText(Tr::tr("Abort after")); @@ -117,6 +112,14 @@ CatchFramework::CatchFramework() warnOnEmpty.setSettingsKey("WarnEmpty"); warnOnEmpty.setLabelText(Tr::tr("Warn on empty tests")); warnOnEmpty.setToolTip(Tr::tr("Warns if a test section does not check any assertion.")); + + readSettings(); + + benchmarkWarmupTime.setEnabler(&warmupChecked); + confidenceInterval.setEnabler(&confidenceIntervalChecked); + benchmarkResamples.setEnabler(&resamplesChecked); + benchmarkSamples.setEnabler(&samplesChecked); + abortAfter.setEnabler(&abortAfterChecked); } ITestParser *CatchFramework::createTestParser() diff --git a/src/plugins/autotest/ctest/ctesttool.cpp b/src/plugins/autotest/ctest/ctesttool.cpp index 2dee957194f..8b82953e2c4 100644 --- a/src/plugins/autotest/ctest/ctesttool.cpp +++ b/src/plugins/autotest/ctest/ctesttool.cpp @@ -108,6 +108,9 @@ CTestTool::CTestTool() threshold.setLabelText(Tr::tr("Threshold")); threshold.setDefaultValue(1); threshold.setRange(1, 128); + + readSettings(); + threshold.setEnabler(&testLoad); } diff --git a/src/plugins/autotest/gtest/gtestframework.cpp b/src/plugins/autotest/gtest/gtestframework.cpp index 191ffc82c29..f07de8ed52a 100644 --- a/src/plugins/autotest/gtest/gtestframework.cpp +++ b/src/plugins/autotest/gtest/gtestframework.cpp @@ -52,7 +52,6 @@ GTestFramework::GTestFramework() iterations.setDefaultValue(1); iterations.setEnabled(false); iterations.setLabelText(Tr::tr("Iterations:")); - iterations.setEnabler(&repeat); seed.setSettingsKey("Seed"); seed.setSpecialValueText({}); @@ -60,7 +59,6 @@ GTestFramework::GTestFramework() seed.setEnabled(false); seed.setLabelText(Tr::tr("Seed:")); seed.setToolTip(Tr::tr("A seed of 0 generates a seed based on the current timestamp.")); - seed.setEnabler(&shuffle); runDisabled.setSettingsKey("RunDisabled"); runDisabled.setLabelText(Tr::tr("Run disabled tests")); @@ -132,6 +130,11 @@ GTestFramework::GTestFramework() connect(this, &AspectContainer::applied, this, [] { TestTreeModel::instance()->rebuild({GTest::Constants::FRAMEWORK_ID}); }); + + readSettings(); + + seed.setEnabler(&shuffle); + iterations.setEnabler(&repeat); } ITestParser *GTestFramework::createTestParser() diff --git a/src/plugins/autotest/qtest/qttestframework.cpp b/src/plugins/autotest/qtest/qttestframework.cpp index a406506a675..0f854ab6f59 100644 --- a/src/plugins/autotest/qtest/qttestframework.cpp +++ b/src/plugins/autotest/qtest/qttestframework.cpp @@ -92,7 +92,6 @@ QtTestFramework::QtTestFramework() maxWarnings.setRange(0, 10000); maxWarnings.setDefaultValue(2000); maxWarnings.setSpecialValueText(Tr::tr("Unlimited")); - maxWarnings.setEnabler(&limitWarnings); quickCheckForDerivedTests.setSettingsKey("QuickCheckForDerivedTests"); quickCheckForDerivedTests.setDefaultValue(false); @@ -100,6 +99,10 @@ QtTestFramework::QtTestFramework() quickCheckForDerivedTests.setToolTip( Tr::tr("Search for Qt Quick tests that are derived from TestCase.\nWarning: Enabling this " "feature significantly increases scan time.")); + + readSettings(); + + maxWarnings.setEnabler(&limitWarnings); } QString QtTestFramework::metricsTypeToOption(const MetricsType type) diff --git a/src/plugins/autotest/quick/quicktestframework.cpp b/src/plugins/autotest/quick/quicktestframework.cpp index 875520a5e70..724e6690d01 100644 --- a/src/plugins/autotest/quick/quicktestframework.cpp +++ b/src/plugins/autotest/quick/quicktestframework.cpp @@ -21,6 +21,8 @@ QuickTestFramework::QuickTestFramework() setId(QuickTest::Constants::FRAMEWORK_ID); setDisplayName(Tr::tr("Quick Test")); setPriority(5); + + readSettings(); } ITestParser *QuickTestFramework::createTestParser() diff --git a/src/plugins/autotest/testframeworkmanager.cpp b/src/plugins/autotest/testframeworkmanager.cpp index d44dc3d1e7c..7d19e746c8b 100644 --- a/src/plugins/autotest/testframeworkmanager.cpp +++ b/src/plugins/autotest/testframeworkmanager.cpp @@ -86,14 +86,4 @@ ITestTool *testToolForBuildSystemId(Id buildSystemId) }); } -void synchronizeSettings() -{ - Internal::testSettings().fromSettings(); - for (ITestFramework *framework : std::as_const(testFrameworks())) - framework->readSettings(); - - for (ITestTool *testTool : std::as_const(testTools())) - testTool->readSettings(); -} - } // Autotest::TestframeworkManager diff --git a/src/plugins/autotest/testframeworkmanager.h b/src/plugins/autotest/testframeworkmanager.h index 9ced25d8fb9..48f521c863d 100644 --- a/src/plugins/autotest/testframeworkmanager.h +++ b/src/plugins/autotest/testframeworkmanager.h @@ -9,7 +9,6 @@ namespace Autotest::TestFrameworkManager { void registerTestFramework(ITestFramework *framework); void registerTestTool(ITestTool *testTool); -void synchronizeSettings(); ITestFramework *frameworkForId(Utils::Id frameworkId); ITestTool *testToolForId(Utils::Id testToolId); diff --git a/src/plugins/autotest/testsettings.cpp b/src/plugins/autotest/testsettings.cpp index 1d5230d711d..174773b757c 100644 --- a/src/plugins/autotest/testsettings.cpp +++ b/src/plugins/autotest/testsettings.cpp @@ -64,7 +64,6 @@ TestSettings::TestSettings() resultDescriptionMaxSize.setSettingsKey("ResultDescriptionMaxSize"); resultDescriptionMaxSize.setDefaultValue(10); resultDescriptionMaxSize.setRange(1, 100000); - resultDescriptionMaxSize.setEnabler(&limitResultDescription); autoScroll.setSettingsKey("AutoScrollResults"); autoScroll.setDefaultValue(true); @@ -95,7 +94,6 @@ TestSettings::TestSettings() popupOnFail.setSettingsKey("PopupOnFail"); popupOnFail.setLabelText(Tr::tr("Only for unsuccessful test runs")); - popupOnFail.setEnabler(&popupOnFinish); popupOnFail.setToolTip(Tr::tr("Displays test results only if the test run contains " "failed, fatal or unexpectedly passed tests.")); @@ -105,6 +103,11 @@ TestSettings::TestSettings() runAfterBuild.addOption(Tr::tr("None")); runAfterBuild.addOption(Tr::tr("All")); runAfterBuild.addOption(Tr::tr("Selected")); + + fromSettings(); + + resultDescriptionMaxSize.setEnabler(&limitResultDescription); + popupOnFail.setEnabler(&popupOnFinish); } void TestSettings::toSettings() const diff --git a/src/plugins/coreplugin/systemsettings.cpp b/src/plugins/coreplugin/systemsettings.cpp index 1477fcf747d..af4aef29113 100644 --- a/src/plugins/coreplugin/systemsettings.cpp +++ b/src/plugins/coreplugin/systemsettings.cpp @@ -85,7 +85,6 @@ SystemSettings::SystemSettings() autoSaveInterval.setSuffix(Tr::tr("min")); autoSaveInterval.setRange(1, 1000000); autoSaveInterval.setDefaultValue(5); - autoSaveInterval.setEnabler(&autoSaveModifiedFiles); autoSaveInterval.setLabelText(Tr::tr("Interval:")); autoSaveAfterRefactoring.setSettingsKey("EditorManager/AutoSaveAfterRefactoring"); @@ -107,7 +106,6 @@ SystemSettings::SystemSettings() autoSuspendMinDocumentCount.setSettingsKey("EditorManager/AutoSuspendMinDocuments"); autoSuspendMinDocumentCount.setRange(1, 500); autoSuspendMinDocumentCount.setDefaultValue(30); - autoSuspendMinDocumentCount.setEnabler(&autoSuspendEnabled); autoSuspendMinDocumentCount.setLabelText(Tr::tr("Files to keep open:")); autoSuspendMinDocumentCount.setToolTip( Tr::tr("Minimum number of open documents that should be kept in memory. Increasing this " @@ -122,7 +120,6 @@ SystemSettings::SystemSettings() bigFileSizeLimitInMB.setSuffix(Tr::tr("MB")); bigFileSizeLimitInMB.setRange(1, 500); bigFileSizeLimitInMB.setDefaultValue(5); - bigFileSizeLimitInMB.setEnabler(&warnBeforeOpeningBigFiles); maxRecentFiles.setSettingsKey("EditorManager/MaxRecentFiles"); maxRecentFiles.setRange(1, 99); @@ -151,6 +148,11 @@ SystemSettings::SystemSettings() showCrashButton.setSettingsKey("ShowCrashButton"); #endif readSettings(); + + autoSaveInterval.setEnabler(&autoSaveModifiedFiles); + autoSuspendMinDocumentCount.setEnabler(&autoSuspendEnabled); + bigFileSizeLimitInMB.setEnabler(&warnBeforeOpeningBigFiles); + connect(&autoSaveModifiedFiles, &BaseAspect::changed, this, &EditorManagerPrivate::updateAutoSave); connect(&autoSaveInterval, &BaseAspect::changed, this, &EditorManagerPrivate::updateAutoSave); diff --git a/src/plugins/fakevim/fakevimactions.cpp b/src/plugins/fakevim/fakevimactions.cpp index b4d568c7f07..a7c0eee43a2 100644 --- a/src/plugins/fakevim/fakevimactions.cpp +++ b/src/plugins/fakevim/fakevimactions.cpp @@ -156,8 +156,6 @@ FakeVimSettings::FakeVimSettings() Row ints { shiftWidth, tabStop, scrollOff, st }; - vimRcPath.setEnabler(&readVimRc); - Column strings { backspace, isKeyword, @@ -239,6 +237,8 @@ FakeVimSettings::FakeVimSettings() readSettings(); + vimRcPath.setEnabler(&readVimRc); + #endif } diff --git a/src/plugins/qmlprofiler/qmlprofilersettings.cpp b/src/plugins/qmlprofiler/qmlprofilersettings.cpp index 9bbac157414..32063ec947b 100644 --- a/src/plugins/qmlprofiler/qmlprofilersettings.cpp +++ b/src/plugins/qmlprofiler/qmlprofilersettings.cpp @@ -40,7 +40,6 @@ QmlProfilerSettings::QmlProfilerSettings() flushInterval.setRange(1, 10000000); flushInterval.setDefaultValue(1000); flushInterval.setLabelText(Tr::tr("Flush interval (ms):")); - flushInterval.setEnabler(&flushEnabled); lastTraceFile.setSettingsKey("Analyzer.QmlProfiler.LastTraceFile"); @@ -63,6 +62,8 @@ QmlProfilerSettings::QmlProfilerSettings() }); readSettings(); + + flushInterval.setEnabler(&flushEnabled); } // QmlProfilerSettingsPage diff --git a/src/plugins/screenrecorder/screenrecordersettings.cpp b/src/plugins/screenrecorder/screenrecordersettings.cpp index cc00f6da065..0a94638f855 100644 --- a/src/plugins/screenrecorder/screenrecordersettings.cpp +++ b/src/plugins/screenrecorder/screenrecordersettings.cpp @@ -113,7 +113,6 @@ ScreenRecorderSettings::ScreenRecorderSettings() fileSizeLimit.setDefaultValue(1024); fileSizeLimit.setRange(100, 1024 * 1024 * 2); // Up to 2GB fileSizeLimit.setSuffix("MB"); - fileSizeLimit.setEnabler(&enableFileSizeLimit); enableRtBuffer.setSettingsKey("EnableRealTimeBuffer"); enableRtBuffer.setDefaultValue(true); @@ -124,7 +123,6 @@ ScreenRecorderSettings::ScreenRecorderSettings() rtBufferSize.setDefaultValue(1024); rtBufferSize.setRange(100, 1024 * 1024 * 2); // Up to 2GB rtBufferSize.setSuffix("MB"); - rtBufferSize.setEnabler(&enableRtBuffer); logFfmpegCommandline.setSettingsKey("LogFFMpegCommandLine"); logFfmpegCommandline.setDefaultValue(false); @@ -206,6 +204,9 @@ ScreenRecorderSettings::ScreenRecorderSettings() readSettings(); + rtBufferSize.setEnabler(&enableRtBuffer); + fileSizeLimit.setEnabler(&enableFileSizeLimit); + setCaptureMouseClicksVisible(); connect(&screenCaptureType, &SelectionAspect::volatileValueChanged, this, setCaptureMouseClicksVisible); From d62309bbb22f86d6ad30e0103cc235e93ffc78b0 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Mon, 6 Nov 2023 16:46:26 +0100 Subject: [PATCH 06/37] Fix various mis-uses of Environment::forEachEntry() Most of them introduced with 08bacd3f19b817a7ffbd606a92eff5000eaaca2c. Fixes: QTCREATORBUG-29857 Change-Id: Ia897958865f00cb5f8f141659a652aee05aa1355 Reviewed-by: hjk --- src/libs/utils/terminalinterface.cpp | 5 +++-- src/plugins/cmakeprojectmanager/presetsmacros.cpp | 14 ++++++++++---- src/plugins/docker/dockerdevice.cpp | 8 +++++--- src/plugins/qmakeprojectmanager/qmakeproject.cpp | 5 +++-- src/plugins/remotelinux/linuxdevice.cpp | 5 +++-- 5 files changed, 24 insertions(+), 13 deletions(-) diff --git a/src/libs/utils/terminalinterface.cpp b/src/libs/utils/terminalinterface.cpp index 3cd1e5bb21d..de3f57145cc 100644 --- a/src/libs/utils/terminalinterface.cpp +++ b/src/libs/utils/terminalinterface.cpp @@ -356,8 +356,9 @@ void TerminalInterface::start() return; } QTextStream stream(d->envListFile.get()); - finalEnv.forEachEntry([&stream](const QString &key, const QString &value, bool) { - stream << key << '=' << value << '\0'; + finalEnv.forEachEntry([&stream](const QString &key, const QString &value, bool enabled) { + if (enabled) + stream << key << '=' << value << '\0'; }); if (d->envListFile->error() != QFile::NoError) { diff --git a/src/plugins/cmakeprojectmanager/presetsmacros.cpp b/src/plugins/cmakeprojectmanager/presetsmacros.cpp index 220d6d6575d..7681d2f7e13 100644 --- a/src/plugins/cmakeprojectmanager/presetsmacros.cpp +++ b/src/plugins/cmakeprojectmanager/presetsmacros.cpp @@ -116,8 +116,10 @@ static Environment getEnvCombined(const std::optional &optPresetEnv Environment result = env; if (optPresetEnv) { - optPresetEnv->forEachEntry([&result](const QString &key, const QString &value, bool) { - result.set(key, value); + optPresetEnv->forEachEntry([&result](const QString &key, const QString &value, + bool enabled) { + if (enabled) + result.set(key, value); }); } @@ -128,7 +130,9 @@ template void expand(const PresetType &preset, Environment &env, const FilePath &sourceDirectory) { const Environment presetEnv = getEnvCombined(preset.environment, env); - presetEnv.forEachEntry([&](const QString &key, const QString &value_, bool) { + presetEnv.forEachEntry([&](const QString &key, const QString &value_, bool enabled) { + if (!enabled) + return; QString value = value_; expandAllButEnv(preset, sourceDirectory, value); value = expandMacroEnv("env", value, [presetEnv](const QString ¯oName) { @@ -163,7 +167,9 @@ template void expand(const PresetType &preset, EnvironmentItems &envItems, const FilePath &sourceDirectory) { const Environment presetEnv = preset.environment ? *preset.environment : Environment(); - presetEnv.forEachEntry([&](const QString &key, const QString &value_, bool) { + presetEnv.forEachEntry([&](const QString &key, const QString &value_, bool enabled) { + if (!enabled) + return; QString value = value_; expandAllButEnv(preset, sourceDirectory, value); value = expandMacroEnv("env", value, [presetEnv](const QString ¯oName) { diff --git a/src/plugins/docker/dockerdevice.cpp b/src/plugins/docker/dockerdevice.cpp index 7dc014eadaf..03e6c0f00e8 100644 --- a/src/plugins/docker/dockerdevice.cpp +++ b/src/plugins/docker/dockerdevice.cpp @@ -662,9 +662,11 @@ CommandLine DockerDevicePrivate::withDockerExecCmd(const CommandLine &cmd, dockerCmd.addArg("-t"); if (env) { - env->forEachEntry([&](const QString &key, const QString &value, bool) { - dockerCmd.addArg("-e"); - dockerCmd.addArg(key + "=" + env->expandVariables(value)); + env->forEachEntry([&](const QString &key, const QString &value, bool enabled) { + if (enabled) { + dockerCmd.addArg("-e"); + dockerCmd.addArg(key + "=" + env->expandVariables(value)); + } }); } diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.cpp b/src/plugins/qmakeprojectmanager/qmakeproject.cpp index 53639778950..027aa5d2101 100644 --- a/src/plugins/qmakeprojectmanager/qmakeproject.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeproject.cpp @@ -867,8 +867,9 @@ QtSupport::ProFileReader *QmakeBuildSystem::createProFileReader(const QmakeProFi rootProFileName, deviceRoot()); - env.forEachEntry([&](const QString &key, const QString &value, bool) { - m_qmakeGlobals->environment.insert(key, env.expandVariables(value)); + env.forEachEntry([&](const QString &key, const QString &value, bool enabled) { + if (enabled) + m_qmakeGlobals->environment.insert(key, env.expandVariables(value)); }); m_qmakeGlobals->setCommandLineArguments(rootProFileName, qmakeArgs); diff --git a/src/plugins/remotelinux/linuxdevice.cpp b/src/plugins/remotelinux/linuxdevice.cpp index 565b0675503..3f875f1ef4b 100644 --- a/src/plugins/remotelinux/linuxdevice.cpp +++ b/src/plugins/remotelinux/linuxdevice.cpp @@ -768,8 +768,9 @@ CommandLine SshProcessInterfacePrivate::fullLocalCommandLine() const inner.addArgs(QString("echo ") + s_pidMarker + "$$" + s_pidMarker + " && ", CommandLine::Raw); const Environment &env = q->m_setup.m_environment; - env.forEachEntry([&](const QString &key, const QString &value, bool) { - inner.addArgs(key + "='" + env.expandVariables(value) + '\'', CommandLine::Raw); + env.forEachEntry([&](const QString &key, const QString &value, bool enabled) { + if (enabled) + inner.addArgs(key + "='" + env.expandVariables(value) + '\'', CommandLine::Raw); }); if (!useTerminal && !commandLine.isEmpty()) From 43f99cb53b0943926753f8d7c7f695a07a1fb8a6 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Thu, 2 Nov 2023 14:54:22 +0100 Subject: [PATCH 07/37] DAP: Fix auto copy Coverity-Id: 1568078 Change-Id: I915f947dee43b78248dcb29fe375954b43344920 Reviewed-by: Artem Sokolovskii --- src/plugins/debugger/dap/dapengine.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/debugger/dap/dapengine.cpp b/src/plugins/debugger/dap/dapengine.cpp index b39e664f211..62ce2bef359 100644 --- a/src/plugins/debugger/dap/dapengine.cpp +++ b/src/plugins/debugger/dap/dapengine.cpp @@ -812,7 +812,7 @@ void DapEngine::refreshLocals(const QJsonArray &variables) if (currentItem && currentItem->iname.startsWith("watch")) currentItem->removeChildren(); - for (auto variable : variables) { + for (const QJsonValueConstRef &variable : variables) { WatchItem *item = new WatchItem; const QString name = variable.toObject().value("name").toString(); From a04cb938cb67e2a2d20de8b4124d145fcc15bb51 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Tue, 7 Nov 2023 11:03:55 +0100 Subject: [PATCH 08/37] CMakePM: Fix crash if no run device is set Change-Id: I8b13afcc466f92b93a8ad09ffa1ccc1ced2fcae7 Reviewed-by: Cristian Adam --- src/plugins/cmakeprojectmanager/cmakebuildstep.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp index 370799fe260..be64e7d6656 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp @@ -777,6 +777,9 @@ void CMakeBuildStep::updateDeploymentData() IDeviceConstPtr runDevice = DeviceKitAspect::device(buildSystem()->kit()); + if (!runDevice) + return; + const auto appFileNames = transform>(buildSystem()->applicationTargets(), [](const BuildTargetInfo &appTarget) { return appTarget.targetFilePath.fileName(); }); From 1998ef19b311b3ab0d8c5e5febfd3be119e4696b Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Tue, 7 Nov 2023 08:49:49 +0100 Subject: [PATCH 09/37] Terminal: Add fallback code to close terminal.app Fixes: QTCREATORBUG-29246 Change-Id: I67b43a25bcb4ea75d0cfa9a5c88860564af1467a Reviewed-by: Eike Ziller --- .../utils/externalterminalprocessimpl.cpp | 78 +++++++++++++------ src/libs/utils/externalterminalprocessimpl.h | 2 + 2 files changed, 55 insertions(+), 25 deletions(-) diff --git a/src/libs/utils/externalterminalprocessimpl.cpp b/src/libs/utils/externalterminalprocessimpl.cpp index 380dd633f54..5182c2c4373 100644 --- a/src/libs/utils/externalterminalprocessimpl.cpp +++ b/src/libs/utils/externalterminalprocessimpl.cpp @@ -21,32 +21,62 @@ ExternalTerminalProcessImpl::ExternalTerminalProcessImpl() setStubCreator(new ProcessStubCreator(this)); } +QString ExternalTerminalProcessImpl::openTerminalScriptAttached() +{ + static const QLatin1String script{R"( +tell application "Terminal" + activate + set windowId to 0 + set newTab to do script "%1 && exit" + + -- Try to get window id + try + -- We have seen this work on macOS 13, and 12.5.1, but not on 14.0 or 14.1 + set windowId to (the id of window 1 where its tab 1 = newTab) as text + on error eMsg number eNum + -- If we get an error we try to generate a known error that will contain the window id in its message + try + set windowId to window of newTab + on error eMsg number eNum + if eNum = -1728 then + try + -- Search for "window id " in the error message, examples of error messages are: + -- „Terminal“ hat einen Fehler erhalten: „window of tab 1 of window id 4018“ kann nicht gelesen werden. + -- Terminal got an error: Can't get window of tab 1 of window id 4707. + set windowIdPrefix to "window id " + set theOffset to (offset of windowIdPrefix in eMsg) + if theOffset = 0 then + log "Failed to parse window id from error message: " & eMsg + else + set windowIdPosition to theOffset + (length of windowIdPrefix) + set windowId to (first word of (text windowIdPosition thru -1 of eMsg)) as integer + end if + on error eMsg2 number eNum2 + log "Failed to parse window id from error message: " & eMsg2 & " (" & eMsg & ") " & theOffset + end try + end if + end try + end try + + repeat until ((count of processes of newTab) = 0) + delay 0.1 + end repeat + + if windowId is not equal to 0 then + close window id windowId + else + log "Cannot close window, sorry." + end if +end tell + )"}; + + return script; +} + ProcessStubCreator::ProcessStubCreator(TerminalInterface *interface) : m_interface(interface) {} -static const QLatin1String TerminalAppScriptAttached{R"( - tell application "Terminal" - activate - set newTab to do script "%1 && exit" - set win to (the id of window 1 where its tab 1 = newTab) as text - repeat until ((count of processes of newTab) = 0) - delay 0.1 - end repeat - close window id win - end tell -)"}; - -static const QLatin1String TerminalAppScriptAttachedWithoutWindowClose{R"( - tell application "Terminal" - activate - set newTab to do script "%1 && exit" - repeat until ((count of processes of newTab) = 0) - delay 0.1 - end repeat - end tell -)"}; - static const QLatin1String TerminalAppScriptDetached{R"( tell application "Terminal" activate @@ -74,9 +104,7 @@ expected_str ProcessStubCreator::startStubProcess(const ProcessSetupData static const QMap terminalMap = { {"Terminal.app", - {osVersionNumber.majorVersion() >= 14 ? TerminalAppScriptAttachedWithoutWindowClose - : TerminalAppScriptAttached, - TerminalAppScriptDetached}}, + {ExternalTerminalProcessImpl::openTerminalScriptAttached(), TerminalAppScriptDetached}}, }; if (terminalMap.contains(terminal.command.toString())) { diff --git a/src/libs/utils/externalterminalprocessimpl.h b/src/libs/utils/externalterminalprocessimpl.h index cbb3370071b..66d337f963d 100644 --- a/src/libs/utils/externalterminalprocessimpl.h +++ b/src/libs/utils/externalterminalprocessimpl.h @@ -13,6 +13,8 @@ class QTCREATOR_UTILS_EXPORT ExternalTerminalProcessImpl final : public Terminal { public: ExternalTerminalProcessImpl(); + + static QString openTerminalScriptAttached(); }; class QTCREATOR_UTILS_EXPORT ProcessStubCreator : public StubCreator From e108726314855411816b3378c272de442a9768b9 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Tue, 7 Nov 2023 08:50:16 +0100 Subject: [PATCH 10/37] Terminal: Add auto test Auto test macOS terminal script. Change-Id: Iaab9c31fa94cf16afc02e4e34978d5d10edf5c2d Reviewed-by: Cristian Adam --- tests/manual/CMakeLists.txt | 1 + tests/manual/manual.qbs | 1 + tests/manual/terminal/CMakeLists.txt | 4 ++ tests/manual/terminal/terminal.qbs | 7 ++++ tests/manual/terminal/tst_terminal.cpp | 54 ++++++++++++++++++++++++++ 5 files changed, 67 insertions(+) create mode 100644 tests/manual/terminal/CMakeLists.txt create mode 100644 tests/manual/terminal/terminal.qbs create mode 100644 tests/manual/terminal/tst_terminal.cpp diff --git a/tests/manual/CMakeLists.txt b/tests/manual/CMakeLists.txt index de324714a2b..1d145e1e8bb 100644 --- a/tests/manual/CMakeLists.txt +++ b/tests/manual/CMakeLists.txt @@ -12,6 +12,7 @@ add_subdirectory(fakevim) # add_subdirectory(genericproject) add_subdirectory(pluginview) add_subdirectory(proparser) +add_subdirectory(terminal) # add_subdirectory(qml) # add_subdirectory(qt4projectmanager) # add_subdirectory(search) diff --git a/tests/manual/manual.qbs b/tests/manual/manual.qbs index ba774823c12..25ed3b9e183 100644 --- a/tests/manual/manual.qbs +++ b/tests/manual/manual.qbs @@ -15,6 +15,7 @@ Project { "subdirfilecontainer/subdirfilecontainer.qbs", "tasking/demo/demo.qbs", "tasking/imagescaling/imagescaling.qbs", + "terminal/terminal.qbs", "widgets/widgets.qbs", ] } diff --git a/tests/manual/terminal/CMakeLists.txt b/tests/manual/terminal/CMakeLists.txt new file mode 100644 index 00000000000..f4fff9d2c43 --- /dev/null +++ b/tests/manual/terminal/CMakeLists.txt @@ -0,0 +1,4 @@ +add_qtc_test(tst_terminal + DEPENDS Utils + SOURCES tst_terminal.cpp +) diff --git a/tests/manual/terminal/terminal.qbs b/tests/manual/terminal/terminal.qbs new file mode 100644 index 00000000000..4b7a408a1e4 --- /dev/null +++ b/tests/manual/terminal/terminal.qbs @@ -0,0 +1,7 @@ +import qbs + +QtcAutotest { + name: "Terminal autotest" + Depends { name: "Utils" } + files: "tst_terminal.cpp" +} diff --git a/tests/manual/terminal/tst_terminal.cpp b/tests/manual/terminal/tst_terminal.cpp new file mode 100644 index 00000000000..921fdbc577a --- /dev/null +++ b/tests/manual/terminal/tst_terminal.cpp @@ -0,0 +1,54 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include + +#include +#include + +//TESTED_COMPONENT=src/utils/changeset + +class tst_Terminal : public QObject +{ + Q_OBJECT + +private slots: + void terminalApp() + { + if (!Utils::HostOsInfo::isMacHost()) + QSKIP("This test is only for macOS"); + + int rnd = QRandomGenerator::global()->generate(); + QString testCode = R"( +set theFile to POSIX file "/tmp/testoutput.txt" +set theFile to theFile as string +set theOpenedFile to open for access file theFile with write permission +set eof of theOpenedFile to 0 +write "%1" to theOpenedFile starting at eof +close access theOpenedFile + )"; + QString terminalScript = Utils::ExternalTerminalProcessImpl::openTerminalScriptAttached(); + terminalScript = terminalScript.arg("sleep 1") + "\n" + testCode.arg(rnd); + + QProcess process; + process.setProcessChannelMode(QProcess::ProcessChannelMode::MergedChannels); + process.setProgram("osascript"); + process.setArguments({"-e", terminalScript}); + + process.start(); + + QTRY_VERIFY(process.state() == QProcess::NotRunning); + const auto output = process.readAll(); + if (!output.isEmpty()) + qDebug() << "Output:" << output; + QVERIFY(process.exitCode() == 0); + + QFile testOutputFile("/tmp/testoutput.txt"); + QVERIFY(testOutputFile.open(QIODevice::ReadOnly)); + QVERIFY(testOutputFile.readAll() == QByteArray::number(rnd)); + } +}; + +QTEST_GUILESS_MAIN(tst_Terminal) + +#include "tst_terminal.moc" From 845676f8148c923023c66573c097efe1da9c3d64 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Tue, 31 Oct 2023 12:44:15 +0100 Subject: [PATCH 11/37] Utils: Fix incorrect checks There is no reason to force m_buffer = m_internal afaik. Change-Id: I6cab375c9d416d4fbe167c4cfb884e7cc6025381 Reviewed-by: Reviewed-by: hjk --- src/libs/utils/aspects.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/libs/utils/aspects.cpp b/src/libs/utils/aspects.cpp index b14a429ed92..8d34c3df87b 100644 --- a/src/libs/utils/aspects.cpp +++ b/src/libs/utils/aspects.cpp @@ -1794,8 +1794,6 @@ LayoutItem BoolAspect::adoptButton(QAbstractButton *button) */ void BoolAspect::addToLayout(Layouting::LayoutItem &parent) { - QTC_ASSERT(m_buffer == m_internal, m_buffer = m_internal); - QCheckBox *checkBox = createSubWidget(); addToLayoutHelper(parent, checkBox); bufferToGui(); @@ -1903,7 +1901,6 @@ void SelectionAspect::addToLayout(Layouting::LayoutItem &parent) QTC_CHECK(d->m_buttonGroup == nullptr); QTC_CHECK(!d->m_comboBox); QTC_ASSERT(d->m_buttons.isEmpty(), d->m_buttons.clear()); - QTC_ASSERT(m_buffer == m_internal, m_buffer = m_internal); switch (d->m_displayStyle) { case DisplayStyle::RadioButtons: From 437797d1c488d65c950219fe4b85aca9685c2d0a Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Tue, 7 Nov 2023 12:25:29 +0100 Subject: [PATCH 12/37] Utils: Fix endless loop when ls iterating subdirs findUsingLs did try to enter "." and "..", with especially "." leading to an endless loop. findUsingLs also did not correctly concatenate the parent folder for sub directories. Change-Id: Ieafad4d4ef38d2fb550ddef1d2edf8183ce8032e Reviewed-by: hjk --- src/libs/utils/devicefileaccess.cpp | 12 +++++---- src/libs/utils/devicefileaccess.h | 15 +++++------ .../tst_unixdevicefileaccess.cpp | 26 +++++++++++++++++++ 3 files changed, 40 insertions(+), 13 deletions(-) diff --git a/src/libs/utils/devicefileaccess.cpp b/src/libs/utils/devicefileaccess.cpp index a38a3617a7e..82e6a24a71d 100644 --- a/src/libs/utils/devicefileaccess.cpp +++ b/src/libs/utils/devicefileaccess.cpp @@ -1256,7 +1256,8 @@ bool UnixDeviceFileAccess::iterateWithFind(const FilePath &filePath, void UnixDeviceFileAccess::findUsingLs(const QString ¤t, const FileFilter &filter, - QStringList *found) const + QStringList *found, + const QString &start) const { const RunResult result = runInShell( {"ls", {"-1", "-a", "-p", "--", current}, OsType::OsTypeLinux}); @@ -1265,10 +1266,11 @@ void UnixDeviceFileAccess::findUsingLs(const QString ¤t, const QChar last = entry.back(); if (last == '/') { entry.chop(1); - if (filter.iteratorFlags.testFlag(QDirIterator::Subdirectories)) - findUsingLs(current + '/' + entry, filter, found); + if (filter.iteratorFlags.testFlag(QDirIterator::Subdirectories) && entry != "." + && entry != "..") + findUsingLs(current + '/' + entry, filter, found, start + entry + "/"); } - found->append(entry); + found->append(start + entry); } } @@ -1327,7 +1329,7 @@ void UnixDeviceFileAccess::iterateDirectory(const FilePath &filePath, // if we do not have find - use ls as fallback QStringList entries; - findUsingLs(filePath.path(), filter, &entries); + findUsingLs(filePath.path(), filter, &entries, {}); iterateLsOutput(filePath, entries, filter, callBack); } diff --git a/src/libs/utils/devicefileaccess.h b/src/libs/utils/devicefileaccess.h index 6dddbc70045..5b7c766a8a7 100644 --- a/src/libs/utils/devicefileaccess.h +++ b/src/libs/utils/devicefileaccess.h @@ -183,16 +183,15 @@ protected: expected_str createTempFile(const FilePath &filePath) override; + void findUsingLs(const QString ¤t, + const FileFilter &filter, + QStringList *found, + const QString &start) const; private: - bool iterateWithFind( - const FilePath &filePath, - const FileFilter &filter, - const FilePath::IterateDirCallback &callBack) const; - void findUsingLs( - const QString ¤t, - const FileFilter &filter, - QStringList *found) const; + bool iterateWithFind(const FilePath &filePath, + const FileFilter &filter, + const FilePath::IterateDirCallback &callBack) const; QStringList statArgs(const FilePath &filePath, const QString &linuxFormat, diff --git a/tests/auto/utils/unixdevicefileaccess/tst_unixdevicefileaccess.cpp b/tests/auto/utils/unixdevicefileaccess/tst_unixdevicefileaccess.cpp index 5eba8122241..a55577ef05e 100644 --- a/tests/auto/utils/unixdevicefileaccess/tst_unixdevicefileaccess.cpp +++ b/tests/auto/utils/unixdevicefileaccess/tst_unixdevicefileaccess.cpp @@ -48,6 +48,11 @@ public: p.waitForFinished(); return {p.exitCode(), p.readAllStandardOutput(), p.readAllStandardError()}; } + + void findUsingLs(const QString ¤t, const FileFilter &filter, QStringList *found) + { + UnixDeviceFileAccess::findUsingLs(current, filter, found, {}); + } }; class tst_unixdevicefileaccess : public QObject @@ -69,6 +74,27 @@ private slots: QCOMPARE(size, 1024); } + void findUsingLs() + { + QStringList result; + m_dfa.findUsingLs(m_tempDir.path(), + {{}, QDir::NoFilter, QDirIterator::Subdirectories}, + &result); + + QCOMPARE(result, QStringList({".", "..", "size-test"})); + + QDir tDir(m_tempDir.path()); + tDir.mkdir("lsfindsubdir"); + + result.clear(); + m_dfa.findUsingLs(m_tempDir.path(), + {{}, QDir::NoFilter, QDirIterator::Subdirectories}, + &result); + QCOMPARE(result, + QStringList( + {".", "..", "lsfindsubdir/.", "lsfindsubdir/..", "lsfindsubdir", "size-test"})); + } + private: TestDFA m_dfa; DeviceFileAccess *m_dfaPtr = &m_dfa; From c6d1c962ee778263c8f17f9aa5b521dbef1fdbc9 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Tue, 7 Nov 2023 14:21:47 +0100 Subject: [PATCH 13/37] CMakePM: Make internal codemodel aware of Qt In case we have no Qt inside the current kit configured the code model stumbles upon Qt constructs even if CMAKE_PREFIX_PATH has been used correctly to allow cmake to pick up a Qt. Explicitly look into the found packages to see whether Qt has been found and use this if possible for the codemodel. This fixes some inline diagnostics as well as finding all test information inside Qt Test related projects instead of just the test cases when using a kit without a Qt. Change-Id: Id3b5d2e818967cd3121948b818c75c4cf463546f Reviewed-by: Cristian Adam --- .../cmakeprojectmanager/cmakebuildsystem.cpp | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp index b05fbbe9174..238cf87b712 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp @@ -1004,6 +1004,30 @@ void CMakeBuildSystem::updateProjectData() QtSupport::CppKitInfo kitInfo(kit()); QTC_ASSERT(kitInfo.isValid(), return ); + struct QtMajorToPkgNames + { + QtMajorVersion major = QtMajorVersion::None; + QStringList pkgNames; + }; + + auto qtVersionFromCMake = [this](const QList &mapping) { + for (const QtMajorToPkgNames &m : mapping) { + for (const QString &pkgName : m.pkgNames) { + auto qt = m_findPackagesFilesHash.value(pkgName); + if (qt.hasValidTarget()) + return m.major; + } + } + return QtMajorVersion::None; + }; + + QtMajorVersion qtVersion = kitInfo.projectPartQtVersion; + if (qtVersion == QtMajorVersion::None) + qtVersion = qtVersionFromCMake({{QtMajorVersion::Qt6, {"Qt6", "Qt6Core"}}, + {QtMajorVersion::Qt5, {"Qt5", "Qt5Core"}}, + {QtMajorVersion::Qt4, {"Qt4", "Qt4Core"}} + }); + QString errorMessage; RawProjectParts rpps = m_reader.createRawProjectParts(errorMessage); if (!errorMessage.isEmpty()) @@ -1011,8 +1035,7 @@ void CMakeBuildSystem::updateProjectData() qCDebug(cmakeBuildSystemLog) << "Raw project parts created." << errorMessage; for (RawProjectPart &rpp : rpps) { - rpp.setQtVersion( - kitInfo.projectPartQtVersion); // TODO: Check if project actually uses Qt. + rpp.setQtVersion(qtVersion); // TODO: Check if project actually uses Qt. const FilePath includeFileBaseDir = buildConfiguration()->buildDirectory(); QStringList cxxFlags = rpp.flagsForCxx.commandLineFlags; QStringList cFlags = rpp.flagsForC.commandLineFlags; From 49b773bd25c38d5f2015a8c3d7c4ab171c9865bc Mon Sep 17 00:00:00 2001 From: Artem Sokolovskii Date: Fri, 29 Sep 2023 15:46:20 +0200 Subject: [PATCH 14/37] DAP: Fix launch of an application without run parameters Now dap gdb debugger takes into account "Command line arguments:". Change-Id: I5e7630a56a0851e7a0b8356129eb250bb29d5893 Reviewed-by: hjk Reviewed-by: --- src/plugins/debugger/dap/dapclient.cpp | 7 +++++-- src/plugins/debugger/dap/dapclient.h | 2 +- src/plugins/debugger/dap/dapengine.cpp | 2 +- src/plugins/debugger/dap/gdbdapengine.cpp | 2 ++ 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/plugins/debugger/dap/dapclient.cpp b/src/plugins/debugger/dap/dapclient.cpp index f63d45b2bb9..b5c95c675bd 100644 --- a/src/plugins/debugger/dap/dapclient.cpp +++ b/src/plugins/debugger/dap/dapclient.cpp @@ -58,10 +58,13 @@ void DapClient::sendInitialize() postRequest("initialize", QJsonObject{{"clientID", "QtCreator"}, {"clientName", "QtCreator"}}); } -void DapClient::sendLaunch(const Utils::FilePath &executable) +void DapClient::sendLaunch(const Utils::CommandLine &command) { postRequest("launch", - QJsonObject{{"noDebug", false}, {"program", executable.path()}, {"__restart", ""}}); + QJsonObject{{"noDebug", false}, + {"program", command.executable().path()}, + {"args", command.arguments()}, + {"__restart", ""}}); } void DapClient::sendAttach() diff --git a/src/plugins/debugger/dap/dapclient.h b/src/plugins/debugger/dap/dapclient.h index d2a6f52bb22..8f0603693c2 100644 --- a/src/plugins/debugger/dap/dapclient.h +++ b/src/plugins/debugger/dap/dapclient.h @@ -80,7 +80,7 @@ public: virtual void sendInitialize(); - void sendLaunch(const Utils::FilePath &executable); + void sendLaunch(const Utils::CommandLine &command); void sendAttach(); void sendConfigurationDone(); diff --git a/src/plugins/debugger/dap/dapengine.cpp b/src/plugins/debugger/dap/dapengine.cpp index 62ce2bef359..dbb0c177a94 100644 --- a/src/plugins/debugger/dap/dapengine.cpp +++ b/src/plugins/debugger/dap/dapengine.cpp @@ -195,7 +195,7 @@ void DapEngine::handleDapInitialize() { QTC_ASSERT(state() == EngineRunRequested, qCDebug(logCategory()) << state()); - m_dapClient->sendLaunch(runParameters().inferior.command.executable()); + m_dapClient->sendLaunch(runParameters().inferior.command); qCDebug(logCategory()) << "handleDapLaunch"; } diff --git a/src/plugins/debugger/dap/gdbdapengine.cpp b/src/plugins/debugger/dap/gdbdapengine.cpp index 3934aebe9d8..d927de6bad4 100644 --- a/src/plugins/debugger/dap/gdbdapengine.cpp +++ b/src/plugins/debugger/dap/gdbdapengine.cpp @@ -55,6 +55,8 @@ public: void start() override { m_proc.setProcessMode(ProcessMode::Writer); + if (m_runParameters.debugger.workingDirectory.isDir()) + m_proc.setWorkingDirectory(m_runParameters.debugger.workingDirectory); m_proc.setEnvironment(m_runParameters.debugger.environment); m_proc.setCommand(m_cmd); m_proc.start(); From d3f5e44ba4a452715ac58d8225f88b27ab081292 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Tue, 7 Nov 2023 15:15:42 +0100 Subject: [PATCH 15/37] Autotest: Remove unnecessary readSettings() call Change-Id: Ifa80b240d722c9852a57a08cb5ddc18568db5b47 Reviewed-by: Christian Stenger --- src/plugins/autotest/quick/quicktestframework.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/plugins/autotest/quick/quicktestframework.cpp b/src/plugins/autotest/quick/quicktestframework.cpp index 724e6690d01..875520a5e70 100644 --- a/src/plugins/autotest/quick/quicktestframework.cpp +++ b/src/plugins/autotest/quick/quicktestframework.cpp @@ -21,8 +21,6 @@ QuickTestFramework::QuickTestFramework() setId(QuickTest::Constants::FRAMEWORK_ID); setDisplayName(Tr::tr("Quick Test")); setPriority(5); - - readSettings(); } ITestParser *QuickTestFramework::createTestParser() From 55227ba8299050dd8c12773244164774a37c1086 Mon Sep 17 00:00:00 2001 From: Artem Sokolovskii Date: Thu, 12 Oct 2023 11:37:21 +0200 Subject: [PATCH 16/37] DAP: Make dap engine less noisy Change-Id: I97d804511b07640e87045f2007575fb6543bb5be Reviewed-by: Reviewed-by: hjk --- src/plugins/debugger/dap/dapengine.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/plugins/debugger/dap/dapengine.cpp b/src/plugins/debugger/dap/dapengine.cpp index dbb0c177a94..33cc0d9ae37 100644 --- a/src/plugins/debugger/dap/dapengine.cpp +++ b/src/plugins/debugger/dap/dapengine.cpp @@ -523,6 +523,9 @@ QString DapEngine::errorMessage(QProcess::ProcessError error) const void DapEngine::handleDapDone() { + if (state() == DebuggerFinished) + return; + if (m_dapClient->dataProvider()->result() == ProcessResult::StartFailed) { notifyEngineSetupFailed(); showMessage("ADAPTER START FAILED"); From 772546453a8a70667018fe14ef036684fadc802f Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Tue, 7 Nov 2023 15:15:03 +0100 Subject: [PATCH 17/37] Utils: Warn if enabler is set before readSettings Change-Id: If3dd3fc5adbcd73a87f8e57482c7497c3cd11da2 Reviewed-by: hjk --- src/libs/utils/aspects.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/libs/utils/aspects.cpp b/src/libs/utils/aspects.cpp index 8d34c3df87b..73d37a2eace 100644 --- a/src/libs/utils/aspects.cpp +++ b/src/libs/utils/aspects.cpp @@ -83,6 +83,7 @@ public: bool m_enabled = true; bool m_readOnly = false; bool m_autoApply = true; + bool m_hasEnabler = false; int m_spanX = 1; int m_spanY = 1; BaseAspect::ConfigWidgetCreator m_configWidgetCreator; @@ -347,6 +348,8 @@ void BaseAspect::setEnabler(BoolAspect *checker) { QTC_ASSERT(checker, return); + d->m_hasEnabler = true; + auto update = [this, checker] { BaseAspect::setEnabled(checker->isEnabled() && checker->volatileValue()); }; @@ -646,6 +649,10 @@ void BaseAspect::readSettings() if (settingsKey().isEmpty()) return; QTC_ASSERT(theSettings, return); + // The enabler needs to be set up after reading the settings, otherwise + // changes from reading the settings will not update the enabled state + // because the updates are "quiet". + QTC_CHECK(!d->m_hasEnabler); const QVariant val = theSettings->value(settingsKey()); setVariantValue(val.isValid() ? fromSettingsValue(val) : defaultVariantValue(), BeQuiet); } From 4a081cb386e31ec23667faf83750c97dd9362c64 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Mon, 9 Oct 2023 14:16:30 +0200 Subject: [PATCH 18/37] TextEditor: remove texteditor_p.h There is no need to have an extra file for one struct that is only used inside texteditor.cpp Change-Id: Iee8f7ce5e0d19da7b444660d81c350eb10b501ef Reviewed-by: hjk --- src/plugins/texteditor/CMakeLists.txt | 1 - src/plugins/texteditor/texteditor.cpp | 14 ++++++++++- src/plugins/texteditor/texteditor.qbs | 1 - src/plugins/texteditor/texteditor_p.h | 36 --------------------------- 4 files changed, 13 insertions(+), 39 deletions(-) delete mode 100644 src/plugins/texteditor/texteditor_p.h diff --git a/src/plugins/texteditor/CMakeLists.txt b/src/plugins/texteditor/CMakeLists.txt index 03efc189224..7d4577413bc 100644 --- a/src/plugins/texteditor/CMakeLists.txt +++ b/src/plugins/texteditor/CMakeLists.txt @@ -103,7 +103,6 @@ add_qtc_plugin(TextEditor texteditor.qrc texteditor_global.h texteditortr.h - texteditor_p.h texteditoractionhandler.cpp texteditoractionhandler.h texteditorconstants.cpp texteditorconstants.h texteditoroverlay.cpp texteditoroverlay.h diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp index 4905d745f9a..66efbcfda02 100644 --- a/src/plugins/texteditor/texteditor.cpp +++ b/src/plugins/texteditor/texteditor.cpp @@ -27,7 +27,6 @@ #include "tabsettings.h" #include "textdocument.h" #include "textdocumentlayout.h" -#include "texteditor_p.h" #include "texteditoractionhandler.h" #include "texteditorconstants.h" #include "texteditoroverlay.h" @@ -563,6 +562,19 @@ struct PaintEventBlockData struct ExtraAreaPaintEventData; +struct TextEditorPrivateHighlightBlocks +{ + QList open; + QList close; + QList visualIndent; + inline int count() const { return visualIndent.size(); } + inline bool isEmpty() const { return open.isEmpty() || close.isEmpty() || visualIndent.isEmpty(); } + inline bool operator==(const TextEditorPrivateHighlightBlocks &o) const { + return (open == o.open && close == o.close && visualIndent == o.visualIndent); + } + inline bool operator!=(const TextEditorPrivateHighlightBlocks &o) const { return !(*this == o); } +}; + class TextEditorWidgetPrivate : public QObject { public: diff --git a/src/plugins/texteditor/texteditor.qbs b/src/plugins/texteditor/texteditor.qbs index a041fbcaa66..0c25f5bf5c6 100644 --- a/src/plugins/texteditor/texteditor.qbs +++ b/src/plugins/texteditor/texteditor.qbs @@ -134,7 +134,6 @@ QtcPlugin { "texteditor.h", "texteditor.qrc", "texteditor_global.h", "texteditortr.h", - "texteditor_p.h", "texteditoractionhandler.cpp", "texteditoractionhandler.h", "texteditorconstants.cpp", diff --git a/src/plugins/texteditor/texteditor_p.h b/src/plugins/texteditor/texteditor_p.h deleted file mode 100644 index fa8232a0fb0..00000000000 --- a/src/plugins/texteditor/texteditor_p.h +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#pragma once - - -#include "texteditor_global.h" - -#include -#include - -namespace TextEditor { - -class TextDocument; - -namespace Internal { - -// -// TextEditorPrivate -// - -struct TextEditorPrivateHighlightBlocks -{ - QList open; - QList close; - QList visualIndent; - inline int count() const { return visualIndent.size(); } - inline bool isEmpty() const { return open.isEmpty() || close.isEmpty() || visualIndent.isEmpty(); } - inline bool operator==(const TextEditorPrivateHighlightBlocks &o) const { - return (open == o.open && close == o.close && visualIndent == o.visualIndent); - } - inline bool operator!=(const TextEditorPrivateHighlightBlocks &o) const { return !(*this == o); } -}; - -} // namespace Internal -} // namespace TextEditor From fe8b8fc3b2b3858675b0b4cb35dd2ed819566593 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Wed, 1 Nov 2023 16:51:10 +0100 Subject: [PATCH 19/37] Doc: Update Beautifier docs The "Enable auto format on file save" check box was removed and the group name turned into a check box. Task-number: QTCREATORBUG-29392 Change-Id: Ic9b01191e523e234431f18ffceb42b9c332bcf5c Reviewed-by: hjk --- .../qt-creator-beautifier-options-general.png | Bin 4636 -> 0 bytes ...qtcreator-preferences-beautifier-general.webp | Bin 0 -> 3668 bytes .../editors/creator-only/creator-beautifier.qdoc | 6 +++--- 3 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 doc/qtcreator/images/qt-creator-beautifier-options-general.png create mode 100644 doc/qtcreator/images/qtcreator-preferences-beautifier-general.webp diff --git a/doc/qtcreator/images/qt-creator-beautifier-options-general.png b/doc/qtcreator/images/qt-creator-beautifier-options-general.png deleted file mode 100644 index 5a33d6c7abc2a32c519f48c71aee6a1d6cd48e0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4636 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 X_NxC6)Za_)ogVvjuXxY*h9XG-WDo&~ literal 0 HcmV?d00001 diff --git a/doc/qtcreator/src/editors/creator-only/creator-beautifier.qdoc b/doc/qtcreator/src/editors/creator-only/creator-beautifier.qdoc index 84eef9dcc0f..0f0a2d8e67f 100644 --- a/doc/qtcreator/src/editors/creator-only/creator-beautifier.qdoc +++ b/doc/qtcreator/src/editors/creator-only/creator-beautifier.qdoc @@ -1,4 +1,4 @@ -// Copyright (C) 2021 The Qt Company Ltd. +// Copyright (C) 2023 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only // ********************************************************************** @@ -57,11 +57,11 @@ \li Select \preferences > \uicontrol Beautifier to specify settings for beautifying files. - \li Select the \uicontrol {Enable auto format on file save} check box to + \li Select the \uicontrol {Automatic formatting on file save} check box to automatically beautify files when you save them using the tool you select in the \uicontrol Tool field. - \image qt-creator-beautifier-options-general.png "General Beautifier preferences" + \image qtcreator-preferences-beautifier-general.webp {General Beautifier preferences} \li In the \uicontrol {Restrict to MIME types} field, define the MIME types of the files to beautify, separated by semicolons. Leave the From 40fae907ba1342d463b8e9c01759a326cd12dcb9 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Thu, 2 Nov 2023 15:02:40 +0100 Subject: [PATCH 20/37] Doc: Update Bare Metal docs - Describe "Peripheral description file" option - Update screenshots Task-number: QTCREATORBUG-29392 Change-Id: I2d2881a13447dd2f14ac13f3b61cb3306b0e7f30 Reviewed-by: hjk Reviewed-by: --- .../images/qtcreator-baremetal-eblink.png | Bin 15875 -> 0 bytes .../images/qtcreator-baremetal-eblink.webp | Bin 0 -> 10590 bytes .../images/qtcreator-baremetal-jlink.png | Bin 17107 -> 0 bytes .../images/qtcreator-baremetal-jlink.webp | Bin 0 -> 10888 bytes .../images/qtcreator-baremetal-openocd.png | Bin 15820 -> 0 bytes .../images/qtcreator-baremetal-openocd.webp | Bin 0 -> 9416 bytes .../images/qtcreator-baremetal-stlink.png | Bin 14299 -> 0 bytes .../images/qtcreator-baremetal-stlink.webp | Bin 0 -> 9290 bytes .../src/baremetal/creator-baremetal-dev.qdoc | 19 +++++++++--------- .../creator-baremetal-settings.qdocinc | 4 +++- 10 files changed, 13 insertions(+), 10 deletions(-) delete mode 100644 doc/qtcreator/images/qtcreator-baremetal-eblink.png create mode 100644 doc/qtcreator/images/qtcreator-baremetal-eblink.webp delete mode 100644 doc/qtcreator/images/qtcreator-baremetal-jlink.png create mode 100644 doc/qtcreator/images/qtcreator-baremetal-jlink.webp delete mode 100644 doc/qtcreator/images/qtcreator-baremetal-openocd.png create mode 100644 doc/qtcreator/images/qtcreator-baremetal-openocd.webp delete mode 100644 doc/qtcreator/images/qtcreator-baremetal-stlink.png create mode 100644 doc/qtcreator/images/qtcreator-baremetal-stlink.webp diff --git a/doc/qtcreator/images/qtcreator-baremetal-eblink.png b/doc/qtcreator/images/qtcreator-baremetal-eblink.png deleted file mode 100644 index c372292b524f41a021420d41dd88f55d2dfa4c38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15875 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 diff --git a/doc/qtcreator/images/qtcreator-baremetal-eblink.webp b/doc/qtcreator/images/qtcreator-baremetal-eblink.webp new file mode 100644 index 0000000000000000000000000000000000000000..bdd75bd04f61fac2334bba49f79f148de13dc3fd GIT binary patch literal 10590 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 KXD*o}$^Zaa^@^ha literal 0 HcmV?d00001 diff --git a/doc/qtcreator/images/qtcreator-baremetal-jlink.png b/doc/qtcreator/images/qtcreator-baremetal-jlink.png deleted file mode 100644 index 1e221766dde93c65fb994e122b4c8496c05eddd8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17107 zcmeAS@N?(olHy`uVBq!ia0y~yU@m50VAADaVqjp9xv@o#fx&5(r;B4q1>>7*jcErA zL|Py2bT=kICn8n zk)=GIk>P;+ugGcd^3ooAYlI$5xt`*4c}kGg`QrS(zDt=_AL^bjuajhG@SDDLce_AR zkLB~%_k))NiQ1euzPbOLMBBnCo6NnIzdUfOd|gG{F;#{I_fs>|439mw*fu?2Rny6J zCwEMLn!fm5YUTdV!Ta|xF~M1$*GKcCrqlBNbWJbFFSkb^4!f^BBhdh49&b}FFpI|>7RdfbsNC~yN{&J ztgzd+S9bpN(6@JWTp!mo0lB>_$xo5a_tV*S>k00(`ruDoRFFrKJBdj?4^ds zB$79ud3Gdw*O`Ccbu52!=q0?bp0+1``2^Jj%S{4&QI9TlGsI87nYQz4*!J7CXT0T$ z&TZYgZuZ`))x6&ipFNk6(YYmc$Ii5q>c?MeSZ+F_(`$H4V)jy#%$axY?=(yO&olFi zvVf|nSHhymqD`%*8on9sI{8G_>Dhw$dvi{GdhS1a@>J6T)fueI5B@pytm|@tq3bTS zqF2{ik9hr76Dl~{F)d>)pZRT_#Wiw}a9MqJQvQJ-H`NV}h#XrvM?rkkd}~+Xvqf7r zyDv-;P(NiP?{=fxPfsiStg-jr*%?++KBu4meeHL+@Z#-dPqxh4wKO_+s%*y-A=&Wu z*;&*6y!V?T<9Yn)k+jSn!(%#z-nEx|56yeM|2mV1*UtqTSoGB9x1Bx~XTEgb_rR9x zA>LBSv-ze+ zmPprAi{M#5|JJ-?7faorxi@m1EpNI)U(O-x$Stpmr zH9yU+{@BbrxyLYVW8^218RC}aN)zh-o6PaO#_}oB!2M#%9iiNumKO<)Pwv?BUSGA- zX^#4Yv{soNHtFA4H`i2E{rbt-9$X$08^3u>T9~z z{P5l9^vwPY;o1#@x#OIx+)CoHRGojvkr+xmaUp8IW^yY}UC<~1*~jXdvZ|4=P;k7R1N zKgDkT>2sRKjhnvAzQpJdsdf6(!3>sVn?j}?XJ;{YRQ1CN1(`|LM4MEDR2jOke>R z9Waf7LBpGY0Y*=G`aJh~u6_LZ`(LWr83Lx=&0C-A7a0CgxNNa-S=1cWcWGJfemlw; z7*Zu~nxsYEp0h}2cG-)Qg}Zb8{?{0u`}yU(4kN>q)WE>QZXa6;CGu~tlj*em9C$Qt zVP^3ryMnH_+hpgNe!IP~UMBjkeeC~#2a>jbYCm$iWYMX;A^HzK_%bl0TBhCkaDUU) zU;o_hN-4lh4pDH;9sZ*ip9^~g73;S!!R{l6TpUK!^QxZL#C$QI@WI@@Bu-`})+suLr9lmkD1zwW*Hrmk|TQsZD=2S(p{Mx=uPO zZ&>s{Z%OLT`pC|w{j26IvRRRvtn=1>q0Z;+4_~?*efpNYY$|u(TeG`ARhb$7TwCa| z=+D+q<@)^PFK?BtS-I@2ea?h_|76RPr+%IO?XPkAOZ^9)pfs`XL3d*RG9|s=Vavd< zU-PfWBYAyLG^u|}(bz4-z>vzxz;FseL*j5><>$1WG5;nqFdR@m_37>H?d#+AR#`?c zFdSIuKILiAP8+9SkpAE5bB=3zGcZhfx`-Xk1TB!TDpc@ieZvNie{*CR{Gz9s`+RzO zdV2Z$dw0*YvOeNSm)(6^mb+Qvh{yK7TUH3`8J4RGm%DLKnZ6=dtp7viZQDBAsj3X8Hoe{z zdt2i)=fk99=l1LP?>9Lm#E|;4=*!o<>$&^$cIWNB*?*+F#V%%^eZAcJGdE`HPgweM zXYzEA3xw<6xF1`4@$U6zp5BdTcSy2-Nz&-sIcL+J{hxO{m(Wgo!;|J2dF;fuckJ_T zKiper(Ra4}ig;io(*m8(#}wXgK0W(y*`KFX0xLF_DyCZgk?a+mZRnfa!4vIo<$cQN zjs2phX*)%C{`hP3)cIBS3LVCPX@So7`+JH?p1rN;5?0!*w?rqIt^1lry5>E*=EzTH zjOz1Fhn`CPxuSp9CKiWCzJ0axt^0b`ANyDp`ONu{>(taUA%a?!Rq00Fr#9{D0C`i= zKk3o#yQi-2sI)HYxOiIow8!b)yI)Kxa$4kiE`QpTr|0+cuCKcS3Z+k3CI8KzzJ2y8 zfA;M>^PZmBdljd)O)Pr8NA|dQykOkfb6Hzog+J7KV);i*^J(A}aZ8=h{R zK2u6*nR?8{$9(d}tIcH!YTiA*d@8HU_0w5=InL8g%u+kONjz7~i6b>KEq>y9rARra+m|*bA72y5 zf7R7QV3k^A)70v3Z)`to;z{mV{PweBL8R=aEuR%y0$5K9rAC&W-Fp42(J_hi$S})I zOF|8fJ>#0By6ODSNot2Bl7CNW&@ntVLA41)K2?}EGk@!|<-hMovrlH^iBvivl*|+P z?V!)wkhMF%=XU9sn4dTqzxsS=%7VUmez%sG-hZ)W)~yq(jw+;dx@mwFcXcJXJbm^3 z#>B>3$xDsy%s6eWtF+*XJcDV5$O)lMPl8z=S4nNkdG@xZ%y!bAb59rApVy9Vzwg5u zwK`1lz-Dg6)u$?VNlNo=dJ}y5?YB?i_Y9v_9S@(j)v!b1^szbR%a7X!OL89EaV^c{ zj{OgjLO-pdsgI}J-(!CC^E15+52FpUFWR%Y&aX5!kx99^e%kcu(`3{YPbW@F{qwus z&b!BO@xvf6h>975L`Geoxa&3BmA+~4Lrt!>is>9@R>2XER^fBW^V8)gi#y^*f> zU%D>|6}EXhWwC;{o0Hl}3Fm3M5~mkTb)WTlEfw(0lhIUjbMR(mS&(oLgp zk-zv3F3K(A`u6@<;i8}uMcgSTJx;VpChtp+yp=rN?b<6dtqUQhXBmtuyc90IKeh3p z!f88InJtIZtnLIT&J(+o_3F5ec#379vZ6$CnCz$XTh|s&z5l?yCoH8QwB00Z#RG@! zDJL#P7QWP$jq_PFQ72i3*Kb-+OG1qB<{+zM5}UqE%>Np|rE~h1&f5t$0#9b_u;gnf zX#y#zcAh4YeB#p0O`mnWru)mh_ncOEM`qKPg*>I}+UJ$JIT@^5uISxkn9^Cn#(zv= z(-Dc}6GEGgNH|ZMpz3d<%q+2~MaS^iSF;q&vX5I==C0eKv@q(wx_{b_Z?%&m?B6Ld ze{IdoJ!Upb^I6zsHLFwUil--XrbdQcN|8vOlX}x-!qRt_54VZxR=!QW`)u{G(3AzA zQY3F{Jh^sV%WJxP*0ZoS9e0(ICnqM_R(~tY)$cLfcAowBloj8-UTXQT|9AVtKRN9s zAGc}0HQD5}t0|$zC-R|S&0X<|)8bKa_d5=9-(9C0chbt|MquH_!xf&}JlV1wr)}&_ z%5$BcY@EUwlNR|+sYT${8lBTEQztu2D_i}o@Nk;mzKg}j_PlqObh1e8>4byr38QU+*YAYQU!v&UBH(1I?p?Yza(e&X zWs7^&x?L`K<~_OVuVKw&$tdDKN$k?=jn`&6Wo+jFCy#`s zwYQ=lURfEezkbq$tsV9%FF!my9DG&WX@cr8iA^row7(r-=9jUr`}6G;XXNgP*Addb ziY$>%)2`OfQwIzO5Ip@Np}i2-+Yt?Yd+~W=V+E-doB~)%#}~ z`mw!w{wd^$*(}bTS5LW|;g#=K@RlxReW0bCJy&posuL)EIkSuF`n*Whb=nu35o~H? zkO)d)&!&CV(N_4SlfQb^g%`hc1RqJ-TweX(Y|sAVT$wT1T+`M)vzWd;miz37lqpJw zm(KNBY7l6%dDY9p+bIb_CycfPe!ugHXWm9m$7x_o42~Y>oxSse>-px7`{vKQ=fB`% z$9#962kdQ*C)f6~9yf01R%RAHOU_ zKa1DjocnzHHA&7$C6>rl*=Kjv>=E|kSi143xJEjquIwtd^xbLU6_^98vSO^>YgrxRA%=X9B}TWQ4vJUk><9kftgKG^lX z-k!rZji+1hPCC0~RnkATe{~a7oxZAjzyFtc*7SMw$L z=4m)m**dJZ+o1(uzA`0T@@G0e=j?^t?h5~{p$C7<9{3y zKbJqvRVQvm=Gx81DV+i-FKZslrj?x!JKoQ4#FZrWOgeE_i3GRa!&Q=w4P`Hxem&Q+ zb%~A-Qeob@nIX`#FIS}aG|#-Z6P7+s@hW(ANT(#j>RxT?Nwc>rmOOjhZ~cvvF+6_y zG&8M;T+iJ)dD5#E1Xno-#x^PKdn>3P-mBA^?PM{1<7Bg2Nn6jyZSl3%T3Pw5XY#Za zr#sJTb8uefs#_JHcp>^uhv8oZt<_Hbv#d@o-gp0dZJ4{LUcBJsR~ftIcZh`bwde>o z>0B1PVRQeA@$$rY#VOBbO*s?K86%pudd3m1Hul1QU0Sy?PwzanJ}g~<*|g|P+oze^ z0?(|KnjYG|ZQW&W#=kPW$+qn${bH|%I67XOx4)fFh$CuG@P_)yRbfZHtb+0%UZ3cq zi|<;&*zCn8SWeEFR;jYqu6h-MuGj z^?sRmXzM)F(Bu6dHz|pE-M^#!aK)r0tT%bDG<>?Vv-n%q({-h5N)^0KLL5Ogz$O-h z?!^xmo(|Z(&0*TAmrrgyUQy6-VUzU+ui2eDvQjh)MB>FJ<~c7~w|2r(C8gsL3t3K| z(ms-X`^*8WRpn>5^a(wfcw+0_mzGm+Y?slq|8=pSOIy*~L=J3r(A`O~znN?!7&nD1 z>3a3o@_&coP33RzSKAf;{FEN|v~}BbvnJ`?K3uB=vR<9J)gf9^v1*cW3zy=p-=CHQ zxZBt5u(=)j&zR5un$-kVEv`*>{!d$!>lNoP5xsisJ}9WGtsKFMm*x6oFdqoHoWPkXL5u2%A1xr}S$ zvJC|co4#DW72VMke5Kp{tM4?$B=Ow$%jXB#x4DNbzXeK}m9GzXm)ra}a^%;vc5!ab zgA$u~gi}n+@@|I}+?+D|Lh6cH`<6!-_eHvI>S2{#WPTy@F+=Uq6Q7QB3QMp3c0 zW6Vh^w#{|7o}|B-w*O%2TIR?_3%NGcJh}9CvwzOz`FlP+KObAUT50$BZ;$y)^zHvf z*MI$!zjx1}6^)ACVrJ`EBHyhzlD>G7N4P{ZV`wudjppatZG1N0>i?Uo^}pAz{{QXG zRP*{rr{>>Wef(_eS&92=^(H)hH1qlTb*B)(2> z{l7}{rwFv@D0-hLGD!dzQ};fdSQZFr>1S~uC>A_rSq7_wB!Bq_CcYF*|H~ucta;VJv=?{-vid4kG1PRojE1_ zcWd;AH~IhX@Bj0BRsG95Zg;fiRKJS<_xb(#x;t9$jc)hH`%N>fc((njq*}qxU-5B! zf0d{Ey_Ye05dZ7yjE8b(mn_(NI{&{=?X-*@tAYmy=9b^9ykGlWcICVYTf0FuiHOr- zp_Izcho|TLIl%feS-bwrms79*nzH?W{J-wuo2Vymg8!!o9-aRyk^7y~{X6=RRsmL< zB3wT1|I;XYh*d_>h{bjOHG!8IKXw$#Z*pPhm%FpS{(pJ>_i}mbvNsh|Th_R)iCt65 zCu?QWdSL@g__RK~|Np)J|Gz8zktyZBmf4*Qax`3; znG(Sn*|z?$+olwgJxM8@JTW}+aUr$~We<9_D4aeFHDO*<<=Xvaylp4=|6RHN|8RcY z?WW!5nI|q)vi~r--h7o}xZC018EPBVQY?)WTLhYP`1ieU`m=WVzjy1y}w;UBSEK&w>2)exY)lwg%11S(Fa*$mRQ3h`=+rHQRUjF~<|9@py>;GTnkKgg|u(ozs-1p%7>9gy%e$uMndg|F( zLHnAg>UEdO-s;`%U$19aYrK9#Q7`X?X_J@A^TqU)UsZg6ktg?f)ih;cP!rFZ~1th(e>yue(QxwOn9^ZS)h&G{2l zPi@LES=(=TZqpj=u)e43t&{gmpZ@B~%HV&3iaXZuM!uSNch>y4`*UIicz8eN__0+M zFOD)kKl>Qt+*x6AGOQ;YWMzYH%{cvh`R-+Yj#CxAP4sR)|C13VpPaKlFWB*#zQwxk zosU~f9v$J_eW>>Lx2xSct#)g7&Qy7{{mIqqH4Cq<_CLWFx!!X6YQOWFC3&~l$dw;G zd(f9H>+yt3lddd1n3lKq(3eQRH45H6ir(CPuaolbH~G!8$uxcKK5b&!AGdkty6?6Z z@Ar&8^7v(7rupov8$C|me6#h>+R}d@Q=ZJYBoQ*n*Qx%5Q14uDFONA}izU~m=Fy2u zk6)Qo&A+=XcxB(Y;JR(ECZ{enW{5O|D#!J zCLFt(ZfUvr;l$MUZ*{?z)jOA$5KfsI6or{r*Rn znfH=eQw38b`wmHLy5hrm_VV0V5AmFrQiaibo|J3FoLQT_>;1mpRuL~Z`Evid=e9V} zR6XhH!W|9W6&?o-lvWnm%#JKHyloY?h4 z=eC4rp2OeCPowXBn#Ru-x#3;PNp@jL4f8ggwHL~C=WaV|k|4S(hxJU0&fb7Oo89*+ zbNlYE7M(tCMjv-TiS^XJ*!WJRHOspVQ#8A!4%@T~ykzDqG2EWxXl!geA@!~=n?cG= zzo#oIs!n!ZYP{t2`u~ia`JzV_EL)et8To3riC^Q-HRnA(dt|Mhc{Q7{t3oTjYSCv? zX}f&|CMlBd-!Jm{J5fw&!qb9Y!)51#uH10+PWGKFy3I<8FS2dx-^W#g4^NvtJTPzh zr+w!?{S)m`JZ+(E!j_y8ol^N(%*57~H*%KYu?b7PYb*sKou+ZA-IsXRt+RK|r=_nF zcp|3>EV*+gS3|*#P3g4x-j}}e9GetUEH^H`l)~UV?XLUb={jqql+NY$wHZsvEoYcE zA$9x353N7le!VpmR6jN$_0MnLV&~%9J{`txY)anDJN0WGaz7Wkxs3I-@3ca>f4`qw zNpqQOZtT}e${(nd26-@MMUavD!IcM@2mY(EA;zE_o<~Fd2bsTjySY#&VASZ+OA&pZgj-{ zULKz(tDLj8-Y{8{-YMX;;#bnrFROOw#Rh{CActa$!fCD@=ZwQoF#N0kb}n^!Z%*!E z@kx&V57o2Xl{nGK$Y8X|?9I8L%` zW??upNx+FCtuvB|A6YeOzGs9O3{LMC+!9p( zfAQ!4{fr7n>n+qTdSy>23e!g`dA3{w&4{^5~~53)z!V#=mwjY}Pq-V~%PG1(U zx2gZwp0aUK&(yrKn(DVR)i~?of4|)2_Lg)1x?^2C4@Lwkcc*{tRFmI)@o3L})-#_z zeE4v4PGzy7M9dz~+ouKIKC?9kg{-iB_T0!_X%S-Ywq4Z;j-2DXGbZNZDGAQdyB|Ux z|N7v;e{aj~{dV==PWLYs+-klnONU4M{p8D@-%B2!eEHqn`+&~<@9lrT8x~!Z=eye3 zl&G>RQ2w!0=QOF{R=ooG%`6S94Uxxm(|dhW{LW^$Tq%uQVzd2;Z_E2@T$|P)S+Uvi z4_41GTx*`7(z>p{bo19scb0G7ru+THM~y;5Q?X2gwTL`MC-GUQ9XkrO_zOvU=*Y*-P1NmBfACYW>uoy)v@u z!rM-@w)kUDo_&iF^U{2F;`67km9Kq0(?9E$#_wFS@+9+&)R>GpiPI7%Eu8*%*;d0p zmnNGCfYbhtpE;Y?Tsf0JZC}%irIMS!?3iqNx@7876Yu^xUfYg|OVyg!{99S`R6lwC zS0#=5+M-pDB<2L#|Msgbn^@2y)gG3&h4OGoL2)2o&g zJ-*9tvOaRz>Mf7+cAU+O+x+FkOSco(o(S7WcKX;IeC*C+yLF@M#~yy3zq>xBys4b| ztJ419Rw-%vf9;n z@7&sK7twdIQ&WG$uX!uEeEPL>V!b7S_jE3Y-b$D@Y00Vd_(``qwS@wk zQvRLf{Sq@%PD8z^_-gg-OVaOV9T#4<`DV%Cw%GSl>*DQnHs85_|9%C-#k{0x3^z`z^6~M0ND1=O^5m;muTGshb?w@0d)?~Rb=P=b`}!j8xn2~w)a#6Swd#zr(}}k)N(G}lA*BwY zj6A4g2+G??rRG5$MuyEQEdouEOb7llLRk!Hp1bbmEx%m3CFCMo_GZiSmV{|&&EtX)OY0iheROoY@2_6ORVXdV2BV#m}leX40EgST?gXEgac6$l_vtHhnkNU?zdps=GpBz_T6z{#_(eWB zdo-coquQ-^``+`bFV6aYfA<+v?$f8I>)Y4=`}6#5hRfrrUb$vzo*ZeM489GKZ4ZAg z`?8i%G^FbC>%M())8ZMD^4ibzFYiWR7_&;W)F@1H9r@v&$@msW3wS7pcvLg9=kqUFy1#r zIrPArU0KVgJI&oxP;2zIq%if_t(AK;*P5O7;8^zO(&KfRE_(KLe=^qod46URDAF0y zBsa$2yQ{N#{%_Cqc2yhpZHnFbwfNuHp9uy3qI$iqTV6i<-nif2ZQdW|i)qQzK(*}! zh8d}M?|%3+?deU6=SJS*)z8*M?n*ql#wNvTs`u@LX$w2c+&G_XHF-6ApWp6fXD?-g zBT?vq++p>Ku1)VQo4iXqvngoK?&EXU2!*CvZVkP+=2ggBgVTTi*3Rz_zjV@*?fLqw z_GRo(=1Kqe*>ZD+s^Sb)h9wEpmawK(K8KjaVBp;pDdc2u+Lei6hHBc)*I%!J($<+t z(3ItAHTT@NZ{Nz*5ajHQJx%WH_Jc*;Ov3aqQGopfJ8VMW~eH*fJ)Z|ThmVF%f2eH>i00dxbdps zGnefT3Ixw=s$^i;?4teka$N7^$&)X;w!c{M>V{q2pNibvUg5ha`FYo z_JcZGC1v!QBF*?15~js$u5p~@Q@t*-Xa_h2sybR2c!P4*3{?gWNVanIKKtp#ix-xe zMplRJdrrLvZik$n^CHzQ=H6D;HgF4zFW)`iymyakbxK*`HSO44ENMT#T~4q#_u%sF z*X#CGUi5u_`1-@^{CZ(m>iwRDsM=2~@_+p7Y|wKRxa~hfoc9U zaO-c=zf1l)dv&hra_fKlBysY~Ux9gEA4~Mg^lM)%np1V>{-xK!dI6=oL=6{x`)=ZW z`(TR4Btt>|ayQ=DPc`1z`Rv@Hel~YnYG7^H^ru(9OxCRod*VK&@{CdODI2Rwqa8W( zCNATfes+__Z_j}0VnX8V@ z(^~sI;jWw7b>qn^_f3zKlaaBR>#}UY39&pkCy90Yzkkh5nQ}c<>*FTRq#uc{`AtSk z^yBxvSbb}&snwyat3sw+W_xn^?eg4TYdqX9rT;i1Ja^9BSqEQkmVCR@P0A)_^7Zgf z=UuhGGW`?gf|PXYZu;o^-VS^-#r2xb<&}3lmY=$_`}z3!U)i6p zcc1HMG9_!eh1DU+&0j=cM{Pc1e{jm0$Y=gr{Ac=Cefi5$a5F}kS5EJ3l;Cuo; z|F_Nrr=(AUCOfsD#S2(pQa21dHOXIm_`xwPUY0_HZ~5P*05>I^5x5?TzXZImZrHh zQDTbf2i_@5*Tk$hxBov$so`r?ab66_yeO}e;c4s>f`Xkiy)KqB{kWRc@ff`d-s6_?-@C=_o?I?qNafTx zy?F19efs^y5yy=GM)YrDnW7q?dD?J#zOh+;%a$|0H`x3$v59+;Y0@3Hx}+3soWN2gTI1v-rTHSbPQ1vwz|lu*DlWIQeC)6|=cOQuXwEf7o1JZ!M$ zx^(=U1A(uo zHGTFg_H@yU)cr*!GL?ImSz6Wpv-$h|jLo_7`%j+*SYEqlJ0-?u;XRf9_xol%n|yQo zr`PUx=FdI;?b^q4Z?)}ql>hi%u*C}G9mdqi&F^$|kKZYYs7$Y3^53N9Os?ItjeiW| zs{_`5o@mpyiAQ~l`O7^ss#4zVFUtFUbL#D_>2kG|Z`HqkJ7)t*a!jW_l|*by6m`~> z;Y^k6yROrH{oB5m5!dV=9-99B(wfhoW}R5~RC2ivBPgOL6!;#E-K#S@|99)^Q@_-w zFzoyC^y=4Bo8Fw+7cvc$N>Xd@+;)l1-F~a$p+`;Jol2=Xo8OP_KAUTicxI#Z?f>1M z_OyTfyJ^k*5W629^V;_FgOX`Z*IKvepPO_3P5fA}gmaVO_xdLFCAVulcSOhjZ~66Z z)2-@{eM(*F4N71_0n?W0FoHyo zFoZr~O>23pbfW zR;BH9oYo(*A|g^KI{W;m{0|Y+RE;7x{iw}Lo3UeAy}`Q3cXMy3R@@AHTk~(vyVd;e zDfwIleczlf)Q0R{TOD@ae_H->?!AUPcD?PlU*7Pr;xoT)lg#N9ZO`CU+n?N=BK*>F zqQ!fUJ=%Kii=SC|ndS=1Y&}xEHF@Xli>hC*Oq?dre{-(%oUd$qWBc~cYC0&b>>A%u z=WDf@XP7g;7B5MysC|GHtpvRktsiL4e~ zGXL3>S4(dR1&N<`o;E>@$58j!8M8eqN4GBMUl#JdMVUdkJ1X&vuK2XV(ynViUl&d} z)Vj3iQjl|+46pmMprTpHR@l>O`8jm1a)Mar8c!DtNP0PV;XE>$MiM`ESi+N-`um(kENa{Ny!7 zY005ScGXQPP&((sl9qQt5gA&WCx=+HSftgME#rrr<%A?GHtc-}amq zp>Z`zHM!ztT{PySNqTd_2*KTwvJahjr`{KyIuSx@%ndMjA2;IK(^@RgE#@aWg>RLWF zudq9*^SR@v=J)T~##3xHE%#n_vRt2Px@Z6P!0?>K;+`ueh3sA<&R{6AQV^!S0qi$)D|9zy-7R4;we>3^e zr=y?mmfyd7Y>p~Jn&z7+e7k2o7D{_rK8<0<(u8Segc7DP9MGAm%8+(ahta@0?dK)N z10cpho%R1qj-ReKef=h38bg6-n&uqox~*(8znu@sJ-u$)<5`CvRaX8v>ZJu5+}50- zy7|tz3p(@T7iOp4Kf00$YS_%l48NE4{Qdkc^!~XG@6vZ>-%KgIn7Z%wx8lonUf=(Q zl&9+)o!-x<-tWEA?u`n6TgbK>Z~F5tPqRw(NQ^1|l7Hj7z}^2r`=b6|_dfk=-L$3o zawd1K7Cl`*dCpd@&(p28tf^9;p}LvnfX>X+?Tdc;yq)vRJWj6ng-cb{^rA11t}F`6 zRzEdIY<=lDJH4ev+PZIjB`oZ2c3pC&vG6 zLSXRh_U|g`h5G{M8ZEi`c2f2BtM^$^>)n*V9>| z$(v>F-_4sAecwy-@*?e{r@z{4w%B_!{or=r%QmNX?Db2nKD$0;nqu#H^V8>k=s|R@ zZF_(JuI%%ra;O@-E*dBgVel7OV6?W^;)^v>D#L(@9q@-FNnA_SNit8 ztqPTn)@l+q}4$Hk0ejq(~!ghVu=PQM~?N>+}fIU^rYYWvb!<=B8p?uOFa^!&wgFM^Z(O1k<;e0 z@Z5Xwvi5cJy!2^XnKsuX8hA6D3A&*vdnK1=hAM-BcN%9JCnN|#Ga^PHS&$MThRq^p zJ_#*%i4$emoHC7JhU#XW^>y+0l)X=X<&^*>Opx&H#AzT3B-@j`_3xg@M|HbyKTRs- zKN{!lmJMavHsRz3<=Kldl*lEavZX)@aX_m$IiDF8?)Sn4#LheL!dC z)5)d2y1z^cc0S_nGP8>2^qgs_XRS6*)r=52C4Bvik!5jIcI|D$viuC#17M}i!G~V+q@KT-2aX?*1y3LDSMPps-ozW~(Xhjp>vBB( zVvKb)nHoTe$$7?7^NMBD&hxKTP0u+hE>-D{Z6nI>7EGA*6~+IZmJ())Lx zKkqN!-R^GshI8(}BL)(2Y{g{<4)ngA@^5?YK^?}LFi_6P|Il+aH>=sa;#gYbwKc}k zGn-Tw+7zDEnQXj#>oxY6UCi5!(_fajLvrSUbmP0PP;JmP z@MZux<-pdNPtV)`|Fd7n{_huIP$A2@ndQUD;%V#S_s3-{wS;Em^D(^hpKi)l-CSb_ z%B3t1%BQV={=ph5d+z~b!B%J@hYEp`f(VEJr3cl`ED!D!KoY59iv-K&Jpv3fmV!rE z8zQ;DlNnGh!poxhxFLnlyao~i{v_lP~16e={ zO(0>~qvPM@?e_ei82QgJZf|u(#rMPCWEjo}9XLDdX?y>ESDiPDq>k$xUo@@zboGg+;28WxBrYbACit*&aK*8=hMEcZavP$X6Xs{yS+yMN-zZhfDq5&tRPXZaW94#y;(l zux{~;+FS24t&Ai4#Z?!^&vAP{ZQaEEcV4uW?O zoR4?WE0G5)!k3#b^Il?H%2$5bXsg-RmWNA{W#jUesx}*@ za~gOv$nM|#=kBH-nP;?Sc5iLTnznaoT~E}qr7vDaRnP5@xngts5_|o{s~;@F_F9y# zSHBv)Wsd3T!u0`{{gT5@#;j582|xV%Yv%nG2Af$xN$zIvS|8_W7FtohJ31o2?L0Hf zG9!}bUm0q-%6349@y?H|iX*GzOEvfWpL=0yOY7{s7+(2VPZ!vVhNWvQMdHzwn?;l(2d02c;XY!Te zQxEoUikxO%aqN}Z)`QYE&YRa{Uz@qs=isD(c{|dkot$|&Dq42Ke}Bd_&I5ig5Ba_P zpT3<>hk+r1q3!SguVn`l0+tlHFs5@ZvGh*oe4xXau9?nh;e8H;FcClE1K4@xda6>fb0hezhMSB0A{J`109g@FLf9}w!tvW)|>1W zM0<4;e*w{6RlV>W*{jfy1o;Mm;Q_30BGSqm?p0_=f_wwRAYZY}SqgGABgk(?AQs41 znx3;amrRRq*gR#4a{hC$7ga%VXW^Z$c@i9LMK{(uD|0p~@GNeeBWYZ9M3z&*;DF>M zB@L(B>r5@Kl^`2x;(ouVNNC^ zx5*S$2f5V9?B3;%ctImahX$+oIQZ-X$j%UtlTX(dvFij>KqFg9d zvR~)4k&VL~$>UK6n0Qk;CwN8vvpozCx6cW+*K-7T88LR9SQzO>4n*SX$JpKj{?=OClg zzRi)RbXo$L& zgfG`K?=vh?v}`Kpl6oOK6I9~QR5e)~@%8+ZNQGrKnWxKk%O3xz{Gm1fy1Dnegu-c? zqYwT`s}yn0TVB4o#nqj|ud&{8mGGjomBH#32f23&&s=&Yh(pokc-qd}Z`;^vB99q} ztp3;&x^)tNmO7%JGIY6NA(H_I5Rf+9yt%VIW(d-s!SA@sV|! zq;|Z>Y4h7=8-$F!6uXs zDc_qzt|iM|n7jX?Ltn#vS?zttxL>hcKg*+kY;GHGNiWEyEoX#|F(gd*$D_7+hr{IQ z#@;7X4J1_f4CYQhRxUH=TmCf79q%=dZi*~YSIAZ?zqC2BZd-J_g%DGsfE)iNCZ`L3 zxe{$t9KV*+O3hgVNBw>b(wWX*rb#m^DtvvoFvooyrbM)ee!{uJwtZ zIMbucU(w(Q+H)Cm{p+rEzxVa8Oif5jTf=S>z@z2OFy-mK_qVsreg4zNe|E?+m<+Q9 zNJd>}TI$c)QEX|;*lhxoK|-pK4ct>;n|V1I81DaNKEyGxW8%++LJSNH44$rjF6*2U FngF-?&42&^ diff --git a/doc/qtcreator/images/qtcreator-baremetal-jlink.webp b/doc/qtcreator/images/qtcreator-baremetal-jlink.webp new file mode 100644 index 0000000000000000000000000000000000000000..5d1fd1f933a001b1f5e15b9099789772c6d7f478 GIT binary patch literal 10888 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 diff --git a/doc/qtcreator/images/qtcreator-baremetal-openocd.webp b/doc/qtcreator/images/qtcreator-baremetal-openocd.webp new file mode 100644 index 0000000000000000000000000000000000000000..2f04c4f8b19e5209c66421d82cfa7db71fa8c082 GIT binary patch literal 9416 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 KaBP-;%K!jBA{~$b literal 0 HcmV?d00001 diff --git a/doc/qtcreator/images/qtcreator-baremetal-stlink.png b/doc/qtcreator/images/qtcreator-baremetal-stlink.png deleted file mode 100644 index f759eb355be28cb4744a428bf7f94c891e53d9cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14299 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 K&t;ucLK6V;&DIY9 diff --git a/doc/qtcreator/images/qtcreator-baremetal-stlink.webp b/doc/qtcreator/images/qtcreator-baremetal-stlink.webp new file mode 100644 index 0000000000000000000000000000000000000000..3e2502e1e78a6168f1f8d06b3c8b6faf8c6264fc GIT binary patch literal 9290 zcmWIYbaQi3VPFV%bqWXzu<$WcVPMc_WuC?G^}+7{@$)WuoKO8Wcb?8({hL*#CV>Xu z?)i#LU$c2hf3o&N`?Rxm-DlryYn*fW_oTI6^AG>k?pO9#{9gC|`@Q??^F;UWx-soZ z$nhY~ha3?bFFsRQwlFBMO~%+{YD7bc_VOFS%X5@ukBT`jxNWeP`cm2P<+sr7_u5N#ubQhn`B%tP=M%C*32vukvvU|X{+=9v z>(aL4xwGFdO+I>jDueIk+J(m%G)vPb|F%ylpZMdU;oZB^jxX6Z`TWnlxJ_GS)7GHt zau*!l8u)bc_a2|{z4+pq)ek>E@XX#D@JEs1?!4*mT=#8jt7Fy`h+Hsjuju={trwr$ zH}QOkU-Nac0k2Kw`K|vNwHDm|d};5A>(8Seb2}Q&>)URZzW97SM;%XW;`ylS`OKH! zR=$jTnmxU#$j@to^H@^m~W$am(HM-!>Ixgnw)9a5FkHRY~2#FlYKRt7mqjliEnR?hm~?)!l2WcelbDtJBvoIvdvm`$da)rf$|&|u z!Wqd0=cT@U6pB25|8Yn5hpP|$ibN**`Mlnqdi718$=Z9eE0zTHG$#2mb8b4Y;w6h= z@#<}FUUX>g-TK@i^>O3WAHvI5vIL)P;_TRX$e_mLW<`tFoeGwBoeQ|Pwzzt{*AA9# z``vLV;vUm?k%HToa+JJ_3N3ad%JUqr4RBBF+IjBG=e)>eor@0#aQ9mJ%~zE=o&Of( zKaSt5-R*bR{yo8zsC?O=H&=4Ed1BHbu?5A;Hs&_FyB${dGoKdT-t1DWy4yI2GiTv3 z=BWWatW6UXnEe{vMXVd<{?fCFP@q&a}>=C9Z zodVJ_u`f;qsGXY|v(B5lSV1+_D)rGFPffKZEeDa*M{GrBkFA}OX<{*}DQbq6k9=D2 zp{rK)QM}hbGpCoov+cFn`QSj`&t@^T9rb1YbGG&PZkBXECH8$oXzW*mwfCmoG>m4E z6v=&9J0ZdD4AYUci#>V;-dT=)OQx{qMT#xn?X{Vw#8z!l`Qf?u3|tSV>HlU8;Z|q4 z+8Rg6Hy~riT6H#oaT+KG+{Q zeQ3Tf$F_o&cHWpJLKQ;Ck3`t{AN1zgY;pI7lHK2np~`#LKbjiAUL$0Bf$!TC5w00J z7ha0x*|OvopOdotrcrt>s<7m`w)wSZ2cJJkeh`_xCUKXo{@v9zxgi49d~-|b zW2L8|9jkuHk4`ad!3_=nS^hk)j+*J|yr{>pyuvwTLd3J*uG5xoG;Gs2`{jgU!Ghf( zZ9jJ^?wnF2_tIC(JM)3auaubzCo^rtVxng1taxG_v^hJib&ifN7l+r}V2Vd&9{xn}pu$VI9i5O4GMrk?!z_bN^|< z6d=eWZESjz?a0|RQa<)d#mm0u9`kwWc|%{K<6X`oMbp4j?m?GBayaac&&V+jHjIll zF`LkLlq-3TQ^^8hAJ)s>SDg!I)WvLDwx`g2D%;^>GfV<5S{@ZFnS5%a@`{8CuFKmd zA2Hc?d2X=fqN(vM8oh_x*F7s-Cf9ZNOR`b(!xii1@J>(k+2$!E?Uj5h$@${K44%u4 zIh^cWhYzIk&D50Lc}wJbPjb3&hvv7Cq|BUM7dw|;+`OPCDA!}pF3oo_$7Y6EK5+SL zA=2*4k;3Qt^>HPaK*B)-3!hia=clvxXnsjLFUPZ~!!XlN`a6%>+3cwdFJ3-7`qt%( zveCmx{=HS_tZuByoADx)EBTJ;W~blAH;?tr@ZyR)x?Rn-_+rhHkGxMC&h6*?;h*4@ z=j6R4=}wj6%?I(bP5#Q>OX)tElepYr{f4@=4du2xag1eLU$`!F$EfZ(S+wMI>s+S2 zhrTd{H=0NC{n`lPTyuHi_0ad*pQn>Ryb|W{Rk^#Cdrt`xdM*>cr@1;QdB)v)Gi9fk zNha^Rp(<#(Q?arxG`djLrc5>Wg6e;h==WETPuX5sU|IFX@WBFEroGAbFIdw$nvJip zO}}z)X`vf$Y<^rgpH_bH(bT4O$7Qy-E(m|a{@3BCZE|t-bcW32cQ4(G}-`N+`xv4LEdf?vQS2toxByaJ@ zS{L}6zqvm@?o#iWgO$hIp8Tv|SS-ZU&M)n3YcIoM{ououf47gfWw7mjUJx+Xc9As0 z_a_Pw=Vw@Su;u-WPE7U*aBVwjvCr3 z$^HfZ{5&nU=Lt`_-u#AP`mvXyIo>5+D{U7kzpxbS^VgG%3b%b{;rOY?xZnq8sO7_; z!c^aH2J16K0-xt3JopfDesUq(HuoOv;Xo0{ysSF$2; z=^n#i+Y6SGeA3DD9+W$rm~p%6KyN~ShH8$%)(5#6TrPV>8;#UTBUaQdJg;waV8Uv- z@)tVGl=C-bUs$?=^+w5`g+K1(EsK__c*v{G80J+qu6gTfn3tXXEdT!RkAj*LD_r)c&8_+NL0w0P@LQgY*M zKdro>f8ti%w%;|^P9E)*-(T~jT=n0#s|)wmUOoL@_;vl28oQhOdS5lIYS8fe%2nSG zd`))KvHn?&CL5NzOuGEBLoTo8X~>&T;VbU{yy-3XvvM|}I2^oGxy>-rmyw6O}k zw%p_wXS!Vb7HdxPN4DoiqD6d>Oy$B~HDV9m*c!dQaFX2bh(`~fy?prb=uefDt6#r| zOmE2Tba~|Zq-|xy*C+7;md&X`e3Ac*JAcpiT9dw^-C(X;b(bysh64|J51+ms_Jdhr z;(~t8L((-(D-&+*j`x1VchiZB!*7Xp#iSCm;^6fM-@Sjy)%WhY&`U1H)Z6Fenfkf3 z&((YIOp9Fpd#iZxOD=A{NNce>Z5!qMmS~$uzg>BxirYN3gq7`g{LHW)%%>7&^7y=7 zc+g0*eT`%>U-I?59jwbDmv4NuxL@mlaH95>z0j4f2L zs)F&5!L~p_t9NRw{+t~iDngzu@}{4kYwmc?ar=fa?~3=XEDILRbzN~nF*?J3=7Dp; zOSCPHznp(+@>$iJueHmPUQhh{@!8Xp(d3E(R zInKW~Sva*Kz6Y=cPdeECy_MfWaLWNSjAy;m=dW*Anhtje36j z-47>4m*Gj4mqacIJ9|Nkb-?s$jwm{56t;rWaU+9{hO_r^bu&e$+<_3T{_UhQR>v;OlV-miV$_g!wa6@@W9+*dvI6(i4D)~?%ppC2-neKkV6Xvg&=zkr^L3 zm_(8m*-VUMh!D4{G(0|kq1Fc1Nj@$uN0+oM_+guVcAB1Gf`6);Gbcl?vrG9&kCO*n zQr5EnxGb44hxcEJ*@lMyBHc9%u?E`js@MEtHvZMizo7i=nfBQSzTenb?$loPxQYGg z0i_=zKjgaiUs`wf2X6^;jZn?RtH(`c<}diY?b9_?8pop= zyLN4L;k!;>`y1DepJcdoCrS9W&`g&tH(p+Ckmos5{KPwgWpm>3zUZKW@XBqC>&$0+ zEGx?0{pLYWuwtfC?&gp0PTqZFq%Z8X*Q{M>a`}|WC)2hU7&Ru~!RJ+vG4I?QnP*cdmV23T+m<^* zD?@dbo9!rKigcM&GW~RpWpdY?)~=w0)4mfzx^DDLE|$D(X1HrbtW(LqBN^)o-FZXB znv~uhl2mJ&yitQaNayrHZ-&p#g=(8sS|p!=E{tX z0=F;4`US8~l;tn{Ciz1sN^#M}|MsV2>ly1S%+9t>&sTr9u;o0vrUyT#klQ7Lqnk6# zZB}jBJSXc_!pScQez{vY-j=GTAB))XL2%nbwie;@Y~`tuZD~QLiuWwr7LeCTChE-R2wjCl?qkSg=UsnA6#pI>Iwkv=kV(nRtfGOTIM8RPjyw-{oDa z^)Z8E{LQOhKBl?MvEQ+8aq-q=ce$QjdA912FZYAFuYE#Z=9Sn9xMVx$t>AE({IKik z-)0~7xbUI?uTKZ3Pl}m&@?uk!bFYv6)Pq+FRKL5ux%{YX3;)Ws+vo3D`1H4wOnGC< z%_5fHItvo~a+jQ1TYjv9ZHncrDJG{4x!?COZ9Q=88MCD5yBE_cnMEhMnJitvvqJr- z_rgUh*(L=Uujn^f^mb$Fv7J-vu367o;I}lW)i7_}kDup*0$N+6cK$l}f5PD7pL6H{@lW-IKQ6j*5FS*LX~l zQWN^SG9s;K@uCfzM4Cbz_nI63&GC+IF#l)$=h_RgeM#ynk!Ar0`%dpmI-0j_qxu7j z50w>CGP^!@&!{RrAsCTq!$x7FIjPaS?U zEApUtTgxftt!*oHdXEa^PJS2RFf(z-tSSz#mx|GbQU5>B*?KGev4|pjEUVd#P?M>j zV{hh7Z;e%r4PAI*`mBouXPUJSZaTPr-NV#tAwdmo)uQ)J4VY^tuDzVUC->U%hnFur zu6}dj$nCUD^LzHM4@Jtm-@Igc;(EmQ*Ww=U+5b*sd{+A+;Li6O3#WT?ZE9ql;=a3X z)dO#js)D1Rs|TG?Nss+XIO$7fz&zhb7`9=mn%fyTBw`drU`dElQJ zam9x}Zdv|LzL3+e-`**T7m&?1jM!wo`u(RhT^?M*p5iM74qr;MsWvwCFn{clP`TGP zuKMkkM8*QY8GDZgM@-Ta{j9LMC-_0sgcCn_H?>xuVw)qab7oJ!$J)sWf*vV<*k&HI zO)XSspZ{T()}~y8>dH=)6VE=SBu{!3VV2vW5oqSClJ@DX3DY%U5B8PEEY>^dJ$f1? zE&Q18f0E8lxmlUJEuO!eaKK?#(gcM$C;ATO+;i3JVKhAJdMx8xiZR>ds^}g2cAm>) zQrojGt79SOCdaZj2d!L$)P_=w)R+&2(mE!=wp0w`7`JZqA*3 z)A?$pSoo$(=dUl+GWg(g`>0VxRY50rgr$X5&W4D)wMS z)@hly6B}Z7ojUtq{kAA4Q;ie^Jl$0cs(;>!j}hKPrqJUpYZbF)l;w6 z#v32dm?`(?!f933n+KTW7I*LGJne1OP^bQJYui2J*ZuM$-&@{Ro$tv@`}_Wod}FSd zcuG$_|D`i;Hhq?|tgm9*oSpvc{GXFOX=-`u^O>&Xwd~mUd~(ArUZ=;*K}Vk-bemxq z_jz;S(jQ0N>V-bsJ*4^|+xKC}j2Sa_xUO-z5?7u#e|AG^%EyTwD>c6{++V$4p=67j z<_-j|r12qpzj*RSDy`I~Qk{v;8>sA@@70Y9Mdlv~y=`Zhf!uX4bK4 z5}&+6GkxmuOzEyi#W(E_ZuuiJXT{yeM<1V^*R;8gzacD+@w&nx!MZ%B=0vxWC!2RY zf1kCl!TuhvZaCj+S*F`UYaZ}llnu`kh`F*dVjlR#l zd%s+OU5zWuN-IcU*Q0#FZ#ywn+e7yJ9OL{_n*`R3DpX$)!e z8~qQ+2WF;i`=fW`gw>HvM~|>3?KL~c@c8B(@%8KUHBYc@yY{i?BjbN}OSupAQy#0` z_cLQKYAKAKB(-|S^n!zbUrqXcKkmbqShm&P^Y;E-xKHZoj;AvwJJ^I3nmQixS17~lDPeK)$>#Q_Wxde{lquF-q;UcdR{IN(%6+XN{u*RuNe9E9@YHeFPmeO>asLgQ!2r#qNg)@eJK?D&`v&u(N;_%Y(> z)LDP~(n?RdiQCubK6T6PEt2s&AlTl_xz9-b#DilO3%kQjkFY2NiOgiMe_!#jt=ZN( zvooe<^RAT7Vy@x6MSBiPY`&vs^5EP-*E8X7SlqSGg+61^yvb?z<>R@tO`I-WMw|6- zcE~lj-uwHFOOGjK&u{IFGoc^4EoKGw{Z`+(N%ptK@xOdtT*t~~3v#AB2Iu8}!AgB| z=da%N+Sd5j?63Q|&3d0iS8qPOZemS#{-d(qC(-rEmp%5GT7blxlWSG(?~MnT{r_`xUfz^(`vi zy6nx-WrAxRxu;9SSv)IT@M7hzRadVEe`8`;F0AGF`nu5~qoy@4thy4E_d0B7YAW2k z*tq7*V}WlOrFv#g4~>r$d#y-wP4CX!70Hl&DR{$=q~r01e0qj9cFzjuox5tac3+q- zv$xd!%CfItSN2_AbBU$C)LPZ;lWq7No-0~GE3X*px~5m^M$Hpjw?XH}jN_{v9#wq1 z!#wAl!{lS^zhAjqoE4aQE|^0sM;uPYN>ex7CC#SXE-}#T{zh!VYj^-CT_=%O9Yss0; z4UaGVU+Lm`aPi>mTSu`4NA#6;@rr5LwfZk=o_OL~_0sho?-}2+{WjYB zqO^iZsO}oW{T(_xKKU^$@KtCJZ>>|jU(~Foa@_Bl_v$!lYTkvQ>r!lSf=67dFk|n*_XIpDv4aoGoSnXwcCZ) zA5sa%I$TX-w%3ePV}e=a#6aK+r)d>`;nE+O}=SL&WuX( zZkNPxl^JcUbsL z38QGwqWz}}){-ihHKS^u1`6?~!o{b-am$2ZB( zZ}Rx}Z;fQXymMx4O5MMtP3k9Xyh4|RO|8pK|tE|ZgF zjGpANl+nI2Oj_x8D&L#aX^neZgUcGk3|~0!qr)&L^2cmbgiv&K*_vozh_xrVE+UzTjY%MEuvfFuIe3&<aQPL3CUkAnhavk-^8qYZ}Q|+t4WjZ-7K2?YeAl?oNVC4UAC4dzur)}W;A)h zcD47p##0VXIRonH`nZ&rzEHVwDdEJ7$@84#udF?>*!=N>a= zNgvOPBJc8wwO{N!xksccCNDSlZ)x0Y{=SXJ=6(s7`0uOZ-7cH1MYfimC8t!>7`|P5 zqI+!T)Ymh3tV*wo{3?6HU~4{8I>9lWF$1c&gsnew$@?2cY z7DV~`6@?x>&QcJ|8ac&@_j=dlH9Hj?&-B|~E#`vCC<+=UNlC~Amf~!L&rXQQMILY6yXzO=- zui2SGW_O=F@OE&>>uJ5`pzT*Tf6AdPb8a7Z*_8E1dUEIbJLx*JOCauQ^b)<<5Au-7 zH5CDd-CROpkLzc$i%8Z-_PDH+{B|dW%jBlYg$Ih(V%PagwVRHo6)9_NVt!gx6g2Nj zlZ>Zepr-+2bjD#nu`o90s{vCFrw7e*w!X5KV|9q&bmjALS6-j=Tz6f~Qt=sIzDK_A zy@|8(*7>TJ-z~h^aBU9D)gS%5l4^R-IA34rdcKDB>G$uO=FQHzJ`vO%;$EA1Huc)i z71L&4DYUhGIXfyZ==9eoOZ>BTddl9LJh?qiPxAzuSj2qO6aVDRFUS|xU6cPX|NTkl zI}_FBh^=+K8eE!H6T##?XL+??OTbCRiuvyk@ZC>T`gHAu{sW7;pRbj5{=7Spp?LYj ztYrsRYv@Sb)DQ43_E^Pu{gm~Ljy)Fy@4nRg!T6`>=o0bz@{}zTGFP-r6r4HnZ&QCv z0MnMvLWlPE8=hUem?(T_g{kF|{ig3Z)VXDMr9~yB>@WDR%!|>g#yy=$YC;^xj}xq_ z4$+nDB|rGg7v2=8FHebdSe?e@{*BwN$gz`i%hd9O_V*jk?pbg-@5YYWqxWSa#V)Lx zc?fLNf+-?>7Ve2`Jj0ybxfi3-jr)gR#Yyq&uQ$_)VvYkdGO}0 zhW~3?8IRxm>n^9uw_@}0!m|Gp^V(ax<2yIM`KKJpb@bJlbnDaa?1L5stm%_Yzxmgl zOQh@SL4OOFSgjyPaFs~c)tQfVcK`R7>a=m1$ehi5gxqrcW0CMH{bOsd|39u7aiD&V zi2P2Q{}1M$*O#BKow78&@*eBN9Zq7E>Qh(U%V0ehSGe!go~M_~ucqe(9?ROj?#KH- z%Hq#sW~{jS_`&gQ`?y!W>h)W&CHq|N*N3;g6mMS+U-1bm%U<-*_K3oZ_<9%%eUBP>pRx)tJ3znKDFOF zT?$t4_H2iJj$GqrU+^r?EPGP#y{|_@#cyCP7F@C>lxBQR(nb+^l651@_G-(@n zEUNKKW%=j8~}72OohF<91nJLc?>ws*ds!H4fWnBx`X>#Et~INyZ#P5%9il-bF*pKTMF z_IDL1yU(hkyI!Yp$48%vjo$)wD`w??uI$hrjj@^@>3 z6Kl}vB$F@8lV%!vy>C0Kqi0cN{^l#sj4Y8eD??hNkH&fxcl}zD8}ae-ygWglKIw0_ zA56_@ZeF$nC^=q{ zu9sS0yZpI)bCfM#UB)Bd(7hiQf8166H@2EIIU)T7>F94L-*Z8gF fF}P}Y?q1`)9_^I;ywGdX|K)r08UJ&B@L&f3gb52Y literal 0 HcmV?d00001 diff --git a/doc/qtcreator/src/baremetal/creator-baremetal-dev.qdoc b/doc/qtcreator/src/baremetal/creator-baremetal-dev.qdoc index 722cf8d89ba..368e313851a 100644 --- a/doc/qtcreator/src/baremetal/creator-baremetal-dev.qdoc +++ b/doc/qtcreator/src/baremetal/creator-baremetal-dev.qdoc @@ -59,8 +59,9 @@ \section1 Specifying Settings for Debug Server Providers To create connections to bare metal devices using a debug server provider, - select \preferences > \uicontrol Devices - > \uicontrol {Bare Metal} > \uicontrol Add > \uicontrol Default. + select \preferences > \uicontrol Devices > \uicontrol {Bare Metal} > + \uicontrol Add. + The available settings depend on the debug server provider. \section2 EBlink @@ -68,7 +69,7 @@ \l{https://github.com/EmBitz/EBlink}{EBlink} is an ARM Cortex-M debug tool that supports squirrel scripting, live variables, and hot-plugging. - \image qtcreator-baremetal-eblink.png "Bare metal device preferences for EBlink" + \image qtcreator-baremetal-eblink.webp {Bare metal device preferences for EBlink} To specify settings for \EBlink: @@ -105,7 +106,7 @@ \l{https://www.segger.com/products/debug-probes/j-link/}{J-Link} is a line of debug probes by Segger. - \image qtcreator-baremetal-jlink.png "Bare metal device preferences for J-Link" + \image qtcreator-baremetal-jlink.webp "Bare metal device preferences for J-Link" To specify settings for J-Link debug probes: @@ -137,7 +138,7 @@ (JTAG) facility. It enables source level debugging with the GDB compiled for the ARM architecture. - \image qtcreator-baremetal-openocd.png "Bare metal device preferences for OpenOCD" + \image qtcreator-baremetal-openocd.webp "Bare metal device preferences for OpenOCD" To specify settings for \OpenOCD: @@ -163,7 +164,7 @@ \l{https://www.st.com/en/development-tools/stm32-programmers.html#products} {ST-LINK Utility} is used for programming STM32 microcontrollers. - \image qtcreator-baremetal-stlink.png "Bare metal device preferences for St-Link" + \image qtcreator-baremetal-stlink.webp "Bare metal device preferences for St-Link" To specify settings for St-Link: @@ -202,7 +203,7 @@ \image qtcreator-baremetal-uvision-simulator.png "Bare metal device preferences for uVision Simulator" - To specify settings for uVision Simulator or uVision St-Link Debugger: + To specify settings for uVision Simulator: \list 1 @@ -215,11 +216,11 @@ \endlist - \section3 uVision St-Link Debugger + \section3 uVision St-Link or JLink Debugger \image qtcreator-baremetal-uvision-st-link.png "Bare metal device preferences for uVision St-Link" - To specify settings for uVision St-Link Debugger: + To specify settings for uVision St-Link or JLink Debugger: \list 1 diff --git a/doc/qtcreator/src/baremetal/creator-baremetal-settings.qdocinc b/doc/qtcreator/src/baremetal/creator-baremetal-settings.qdocinc index cce6b41d6d4..ea35fe9855b 100644 --- a/doc/qtcreator/src/baremetal/creator-baremetal-settings.qdocinc +++ b/doc/qtcreator/src/baremetal/creator-baremetal-settings.qdocinc @@ -1,4 +1,4 @@ -// Copyright (C) 2020 The Qt Company Ltd. +// Copyright (C) 2023 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only //! [baremetal-common] @@ -6,6 +6,8 @@ \li In the \uicontrol Name field, enter a name for the connection. \li In the \uicontrol {Startup mode} field, select the mode to start the debug server provider in. + \li In the \uicontrol {Peripheral description file} field, specify a path to + a file that describes the peripherals on the device. \li In the \uicontrol Host field, select the host name and port number to connect to the debug server provider. \li In the \uicontrol {Executable file} field, enter the path to the From 04fb088cf97b83d31f3b951b46020fb72f7f2777 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Thu, 2 Nov 2023 16:08:39 +0100 Subject: [PATCH 21/37] Doc: Update GDB Preferences screenshot "GDB" and "GDB Extended" tabs have been combined into one tab. Task-number: QTCREATORBUG-29392 Change-Id: I5f5e40399abf20d61cf0e2cd4e4c1f02dfc1404c Reviewed-by: hjk Reviewed-by: --- .../images/qtcreator-gdb-extended-options.png | Bin 5727 -> 0 bytes doc/qtcreator/images/qtcreator-gdb-options.png | Bin 7774 -> 0 bytes .../qtcreator-preferences-debugger-gdb.webp | Bin 0 -> 9864 bytes .../creator-only/creator-debugger-settings.qdoc | 4 +++- .../debugger/creator-only/creator-debugger.qdoc | 4 ++-- 5 files changed, 5 insertions(+), 3 deletions(-) delete mode 100644 doc/qtcreator/images/qtcreator-gdb-extended-options.png delete mode 100644 doc/qtcreator/images/qtcreator-gdb-options.png create mode 100644 doc/qtcreator/images/qtcreator-preferences-debugger-gdb.webp diff --git a/doc/qtcreator/images/qtcreator-gdb-extended-options.png b/doc/qtcreator/images/qtcreator-gdb-extended-options.png deleted file mode 100644 index 10e22f235c1021ef1122859705c97a7a4a4a0348..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5727 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 aQQBkEH37X3YZw?97(8A5T-G@yGywn+3u#mU diff --git a/doc/qtcreator/images/qtcreator-gdb-options.png b/doc/qtcreator/images/qtcreator-gdb-options.png deleted file mode 100644 index e1ec43cc37bb1eb680754e0568b8e7d59b912d3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7774 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 II;Vst0D$nPI{*Lx diff --git a/doc/qtcreator/images/qtcreator-preferences-debugger-gdb.webp b/doc/qtcreator/images/qtcreator-preferences-debugger-gdb.webp new file mode 100644 index 0000000000000000000000000000000000000000..9ac81bce22345a6b727006acaf2b9ae168476ec2 GIT binary patch literal 9864 zcmWIYbaQJ^V_*n(bqWXzu<$8XV_?u{Yp!Fs`e6IF|GBq4zHh26uX?}td!WtU?Kf`T zEALwNXYbMH7PqUvUi@}%@$3h>ymj;6KmV<*z^K?NU~bla?Tg?wZ&smP_M&6#GY!Hf z#P2v#)&Jzyw%6M%jm;0ZTfbz;Pt^Kq&%6ADGxJZOH;nE@xwlJi&p9l|V6~sADc$ep z|2c9({F)Ee9}m=ev0vX~+uCE>a%7P-G15ofc~X>_Ux$pGIgQ8`{lV@=kM+DwqK-p`cY)XlNG-Y zub6t&_~YyIw{&()czhtW@PGNqwdE_W7roY)dBQnf?EE41*Lz?sLC=m-p>CnQRaz|Muyj*>~Pc-F>moM&gLX`ENV7v+sW}x%S=9>786`d(xsd z*sWmmzk6|>#P(&&XDyd$jx>LK_+Y1-&FFnV9?+UL+@z%hY-H!M@)NMve!U>~&)LdPMX0x11d( z4OJc=zW?dQ*#jomf4Q&;?%G`YK$Vq2llUmCvVmd{$PCL%a- z&IX-*+-b`v6n%bl)9$;SW#6~18GHuj3Hus?K3f@obumagcCvHpVy1g(lPgS`pFYT$ zpZ5R7C2~|(OVI@>f4PL)sJ^&KK#nKfA)&~B!Byh@p3)CegFOl;=imoG5Z zCmiY7UAaZLx?#KjCZSf-|31PS%P*^(k&_ow*!VL@VCD{mOAaSZEN(A9C26U;#OBWp z*|iT!KXAW`xXw7 z+cmYzuSrbUZkm55&8BRb?a2$hufNxuO`lls_>5HZ@^f3-xvKB*3aNLWe^WN|WbwZH z)nOfX-8Tv`F8yG|Hb268jr?qzi;vG8xoIcpdqn+sVwuC88@nZ6y8BK4_Tk`upHF_r z9ZbKerT;E@a4bFhh{XFdQ~yNwFu(Gt&N~tRpriA;PU%U8&fsJ1tIk}hT$Jwg^uSHK zr|q0OW@}CL%RAMWZ96~0deLLiQ%s7R3e6l`X2^VA_qp_XFKgIw>kkFYmTw-!syVXk zDsS{@PT6F0akYgw`;ov&&$K#!3i(Ay%Fi~Kd?QZK>HN3-CyT5M^)2&{KdDwr6VfnU zZ_GWHqs@Pf(yJGx89@P0`ewctyt|yU^_XU@{5A8e8%000r#qkKk=N+K&$xe2{Qu_%A1#uxjkvEHaO|J)xB1mqi>i($2tF=*;`ZW1o8bzpx&C&kb{a`N zvv3YVrNwd+R{wk>V|%Q4 zXGe$b?UJpb%E#88nRB`-@ak;Qc4#H?&g$6J z`*Fva-ORafvK?lBSC>|-=3dZY(>-$~!@p%LzAlRr_QpO*FSwVzV4952UYQBnH||@l z5b$-W-XZA6w)&G^j>F9FNeo+`++&R4?DCoLmcu|$`kU*WzFTomZZChl^UwAbuTqQl ztmvF;_Wrg;ypXlxqrB$D*B|ftv187(m^i&>zbo@jDwpc%_doevY4>gZ#{X}=RGj

K{|Nctxb+`QGnfi2#UHp7*RvrGO%L-NHZ*2OceEah4Z}<7hH8SWSrae!o)lMd zR}u@qW2l!`6nAXiyEA<1?=OD+^|>N$Qqd%iABJa5&NwCATV1>9zHxr|$!RV#T(`AL zUo79gcIwA~*l%f)uDX}gqN^Tm=<+_&;IoADpv#@iM=8oV>qFB%w;lWX`R&xpE|UeX zf02+DPMLD;gH^~B7Z-E8)BD6ePU2{Z>v8H>QJ59*)9Hf8kw;zDFCO32+_p{bAMe$d zf8LcI`_cOS_`iQ|?axW9F4z+-|8LJ9NvFy$58LZQHur9GzJG<~@#C8d#Xf|&no56* z6=;nz+w?x~S+dK5m;2RbbXM0?KmGc4)n&owNe_)urfiveVLnGdlChQ5LPw3Jj+6+s z6rR+j9J$uYom~f3IzAD0Ts-ybBK7WxH)FWP&o9{X@q6X(@7ez|=QY2+E*-yr_Q6uy zx2d0s4^~XS^htS^WyC(Co6S*SUDMvnNVule<{wkpGRLP-dSmEf;n@Z&S57;nuKqoL z{hgXcR(l^Uc$v!K%gQwSY>ixO=0;P|7Yo*}R#cJ<6Wa9WiG$#+FQ(m#R;K*$*%x4* zG}C6oqyw8Q=1(n}&#*T4`R21PsyD_Ti@5scmHx){g_gE+@2>DRyMF7y_>;|xRXv;!`rNU)**!a- z^9`4z>f1ujsOh(Zu1ZLYZg~^X9H62+Yx|)KaV<_QU51V#Dq3@-TR(K$MXBvK@Pb-T_V3e_ILiDTE2e*>@nNF zIX3IxTe;=WhBUrc+DD^gFW=-lqH|`|x`S5=Hkm7!Uos0@;JW7Sb?%8K+Z22`)E-^q zj?v1FY0Xnr^X`~>Qm4g5F+)3hyNOkw_s?B7W_F}RNEo#oYB^=-DB{#|=b6Dzr@I<; zGtLX_S=Hfrg0sjlIlP{6sjvQp`N!)2Ju>e2`LXu%>~$gWf8w8hbbRfZP$swcn)sOz zk%)j#7caj4xrXJ%<+R_~jJtnzv!7{F+wpDx)qOwndsb&R+h5o1*Z6z*WX7}RQ&Vcr zao%1W(|lI6JWchC_Hy>Jui}3;?DGF+bCvPqqQ8G@e}4JOc<0})59zg^IsaO=6iqmr zuxxJM@Q)>V4td>qXzD?0e1Z;kC8?sLG@8B%?Zsn78KfAAbmaxb-)3 z+iUT{Cea`1+xEr!{+uz*VA<`Z7udZ&p1(b1T7UL7=kuDMf2_Qg<|;E`HN&fw2^Jwq zeAgdJ%0K$ErzY<8+qI`ov47qBOXchv_W$!=oSGcDz1!%7`hFLKITym#Z(kke_M+CE?L8QDyefrHB61>HG9h%Cgu}H&#iKwZSJ_5qW?|9{fb`0DUMD1 z8duCUh<#Y8xQFSGeqBxRD*eVJ2ZOs&y4o94jk3~H3!nBM$uiMdroHV@d|2-GV^(~d zE*%i@`<&Nz`s6m1QVA=?4LjRTXZdFvcN}$_BYI9-VaL_!0!h=R{`q+A&!lDICLi=$ zMZJ321R7^GF1)Sd8;kUBkK}fvQ zwf>BgKhJDkp}_v|!23J8Ti7z*vIe?3=&;Qe-NMwo!cF1dSsjk9IVVp}xt_M7bHa_! zTpW2{Ra<79JQ;FKe|z}rql!A8Hypnq9&$m7*H-Z2)|2<@gH87^IbT*k!u5~$+h&Kp z6|oFc1zol_iTT~nHeC8%FH2P5&MWT)Gqz3AZsoX@)U#2@XxZvg#@1@iy{|8Sc_|uW zGVz-g-|M?Z3mzPrc=FoBa_N}xhxhi^{JiXNdOCNF+^ywL7gnn?JpXkreQ8wSsmGQ3 za=*Ox6@BsL;mKV(dm27VsL$Sb!fD}yi?dFdCyJeY#J$Cu>(m;Zmc+AD=gA9bzg?vk zlp)Wa6mNbgA^)|9Cc9Q@=$ikWVt#iXg%~Z1U^!MDpm5&gwol}Bt`;k!WkIjA9TmTR zsS^C%a{1+=>0!4Llr@)Ju;cT&RxqolZRVGk%Rb%q zJJQhP@}tOSbI{9dN5j_0&EG%Y+_rXAr)R-s^#+ln{yPkpACJG&Q&&{Gd&09xNfQEg*N znO@g7y*kqCc#t7*%?crpS~q(xp@)xWbQzkho^4)XI)AFK>YvRwg)W2$C9dEVkBQ9l z4AtK7PyL2P;puFlmtD`$^j zC-!+;6eY|H2f42BkrVrj z@Vv>B8y>dt_td$LPu>Opda_X3x4T&-^TVa3Z$;IEXWy_rtyi>Q{uNI3;Ek43c{fBz zy$;rU8Br5c7-Qsp>y5wo?9q|MG2P2|WG=(;tdJN3Ni<^mUHqa!Lw%ht5= zXSB5VEn8wL!d%qKUUhBvQZ-Jo4RP7GSvQCHK1u*-E)WzqTeTuIyS%k9G*r4+F-1qa z#DD5Tf#C3am$(h|^inn$Brg4WFz#J6qgB}_wzHrn^Jk)9iC|4qyIycEZIx9^kj`3v?f^)1&|J(_FP#bG1qCcMaqaoY{1^JfpVMSqyZvQa!# zK44~$_ro1qR`NVtcvajhT0e_JYRVIqb0_Q%K6m}>clKyPD$_-=9Gmk|G6svkikN9z zMSf+Rnz>a(N6Wb)<7?}RHwl*)y?*n&_7l(D`}O<&vHmgL<6-(fO`%ql{03h z=5}-4Td}}*_jK(lo!6{$+@BqF743-#v}S4Db>YyaJpT9BYeQacaa>s3^S4Q)V^f=a zAg`m@ODVsDVw0V&s9cE3ZalSNQe()n@V0{NudJep*B8A$^ZfBA{|}ZscKz4Ptm83# zA2OplOl)P%-`wo(TV*b@i}b@=E}YyYvhl#)a~~co(z?dJ;;7E1Qr(iXUN&EE9CDxP zKYLrSTH~V+R$u&+Q<-K=pFH`jy2o#=7c*C!?g|UaaGV+DeQ=RcOYv&`99NyyF(1AZ ze=UDH|H1JOQ-AS)SpFd=aBuKh-Jqjc?`|ZdcXMry&A9yTX;+NWthggV+c$oHxJc{C zrD+`3UBuVTE@k#K%3Z>|dcu;bZdrc&fSC?vQ=7J~S8}|fGU2OG#M`D5+LBw2FLh1j zkYBqmz_r9_MW^j+_P9mQAI@Kpd9Qs}`Kqn1TFc(Oj%{A6tF?!3i{uQAgH;P3K3KGh z(O$c*?`71iRSaS$GM!~2bQz+r3pU)8>sl7n@hvnVSg^vk=|<-&ey5o$mMYAyT^ru^ z;nFMarEA64B;K%W_l=&oR!@6Vs@vbH@vL4e=^$gY zcqn%OH=jZ5zS-1J7=>%q5uJuU58IZNBW6=W?uzUV3E&n%bs7wQ}S zZ~y4Gb*snP>@O~+H*PID^x9!|m45iEs2dxSbh7s_>hS5Ul5(=HS#l!(vUm9HA1fwh zD);Xd@D$pySO2iji^GMVo9}Jfbm-3l{%Au*@tzl7XU&^zvFG=!Wu|`XCnucv7?68u z-?XL`YaT58b|~fbi92;(^ULEeCw6bPoFm4&{L9iEH-63Hi=LA=d4Yz)@B2*2|9AF_ z-SMsDD!$`e`EKfgny^E!YaXdw-u>giqM0>!Cmr8(vUqZ7WXvOFfptF3Vbz5%MW1un z9^8E+DXdT6&iC$efdJ+?yTt6w+)k(29pZNXal64L=e_jC^PRP8x7znz{nEX+cdq{% z)BkdTuLV^ZEqE(j7Wi~-7AX?VmY>t-lhxX1=l0?8<{%fQPww62ug)>OOjoWlJ-B6o zc;AQZjam=S99q8WVv+l=Cmf=jF5A+cHyi2xsqP6-^t@&ru55HFW6m4Ljo%nogcvHe zp6BmeA{BXW<)+Ps7C+TqU#hzO%GXcn&i%5=O?sc15;iLHl(wAZ%VN}*@qR5}toG1U z>5h+xs7CaOD>3yY|K-FQfA*KYU$WCG)q%g!PweQ&_Dng;dn;Q`n&(Y3^X3YCB+PzR zZ<4Xh%S6R{uTFQcS($F#8F@@@Z$VSTCf&e4)juYXU~4|K+3_WhMw_2AEbkOzk^5_eSb0_X*`% z-@mMBy{j?1X^HDH&MZ5NSV8McKN9+Hz$e$d=BTSS{LN~MR>`f5s$%=qqOwscG;Q)U=54X>EUM;C zICVA9@1tLA*pYK(b}Nz+@=k~;?sV_0oUuju?zYff?yGjGtvY(oAW%)JD{H=g8vDb3 zQQpI<<)7NhU;R;VQdZJY&@~F3m7G;%KFMyA+M;#haStZNemc2Eu^>{v@A97alg#%7 zM<=d1!&Xt`&ZaeKm28MgZ41~jR$kXmsANk@H!Vz4&9n`ha(_>7r*-}DH*Qm(mf01Eyn7yUUeIBmKYy%mr5np;Ba6*NE|cD0 zc0S&A)UtB^}C%cukOv74(>3QW)|$<<#RBbEVo8-dXqAY*31GSlF<_ zonzh0haHJwX?%XmZ2Io4+*P}>Yw3JHf$y@6p;KB`?O1h=U#o1r;n4;*(RE4UUk!v! zY+FKlOmw(kzhK`c z`C`MTgprK5|DQI(;io7BvbH7hLV^kvN6 zQ1DXGdHq#a?-9djI8?+kOXc%}u{)I`vA5Y>Lowp^}ZQ_beYJJP2annmm2#`p;7$@4qn; z`ToV=zVrEJ{?kuVvVQG&x$=4Aj-G9?-yZFYpYz|aG{KeG$24A+|E`4EG0WF?Q(lyO zJ0iX?wlSZ7*NjEGey(wu8?t1Df>U(Isk33MFRn9}t( z_Il+z-=aAuRQtAHo(tcqS(UT7ST{NSTu`K{rSeH^QPJj539p~?*B;dP?6=kb(i-!t zN}D(Dxpk!cz#)zQe`feT?+A^T{XTn>hpzXnb#E`o9XYq%ePazv!S>#Y6<(KxmRWtR z-^QkV!rD~eTG5LCE461CEi``YzU7U?rT@nkN*^}!@jGXG@%rSoi_08;RbA)((VKXPkz3Nn~n4nuUaNu4L|N}-u86erK-Z55dIUQx0c>&Qo6d_H)pC$!Ya?6 zOj(J-dn>nk@MfleVGUyWXmqz{-|@|MKTC@_{|C>zwK2oP>ExUcPdUp6&mWi<$vd-6 zU8{dE^4bxT4hl?_(k6V|uS_A`;bDyBH;uSBNjoSuE^t2}!oB7cF5 zH!^jRP5FEH&D2)0)zZmU+Ak|AvyLy?xa;;ZqXVnb-iyzik@o&#w*KrV7qo6}oH#l2 zg{)89%;OKC@B8df?H1}nylzK@HgV3z$F>Khc8N} z8{ewW;w*E!Klf{yskIJI=vx816=9Vs+*;Wi^j9X{nB#AJ!aCG-S({h-m%u4z3VQ-$ zXUb=^t>U@4EX1_GB|Bom0;5S=cLx?{zXv4@tBH@kL04c%ejs;UVU^* zXo>I2Ezv)D(;A~WIagIE*-qcVu_KdXi}t3+3f%rLKUXJqI!U~KWVu#a>YZW^tHHPV zRde>2YuVb~_sZ_73F3BsAHu(C2b&v+ZSwxglu1hSuQXk;7G3aGS5$08V@;6pthtNI zwQTNg&g}{jIH7Jj`{ToD&->c$v!o;Ss}^;eeKR)rdBR#W(ahS#QDOd-oMZjvTKlg{ zT)(RSyVIm2I_C-JBHo?HmRw%-{kOCvyJ6nb`fCDLdIJK#S-kvj$NypBOSf;XJ+*cp z{ajn-^PAq`d^&m7$seEma;-n^TBg2j`HiN$TMBs~_np4?p8KVel86qE%Rx9En=9?yV5dj%J&b?=V}G*TDExG@);^x3l2rhRPZp~oA~o+ zitu#ziL7QnY+RhDW@<1#nwjq^wy&#fZL`VSIFr3+^;|c;oNHxyljHCsA>WH`9Z46j zUD~k2MS17)ji8d~mEq5OEC0E&e(}})wb+c# z&f6lYw;(_3;j6h`W~yKQ=>>hC>#%R-&jVZucG_>NFRsYl`1Z&Pt2MF#x~9=rzMpiy zw^FQZrSJN(g|PLv%x&U3y z$FpbMwfLGSzp=ofS-P{4vRbY7Z>imoDXZ=0fmVdLp|7;rf?HTL3jxG81a#Ee$M?c@$`B`C) zueH}!EcjOH#AkGK^_6=s7DpU?J-_~NK(%PsR)g57olk3?E%pAj^N97;yXL0i4{x;B z9=Uc@#5QCqNa@o_;sPvtpB^&N;41VLjlFcI?b09)~&pu`ZvZQ_WDn$>vnIHr|B)b;ym?BzWmW!U##cfD@v3SseQ0- zm2bFs1&dy$_p;e`-zPi!z2r_=Ijc>A%OEJ~TK8k4Si?KH37|~(oA1!wDa#Fx-|c-8 z#}ToOG0#r>@YUafRhK>D$>>Rb>1+YUGu5pG*AYi4~7U zH)$@o!y9@g(X2t~!|Qiyy>*Y%?BenkuapsXd?l&p_O{mI=$XFmi`SxW#9a}HpS*8V zP-^^iF@JSeACpFw(Aam@Rk`1uADN-^r9!3p{o$260+)sKY%ABE^M|>{_m_{xDyIB; z$yrB_8XZxxpESGS*9i@)uq!ftuIb&*_u?-1?B!qH^tGvaUKL}gcG}9!J|{9pC*uz7w@Cw;XInV8Y2;>V($ zbMTiUd#piAlT1r>)ed8ZR}D{MLCJ#6VQrN8?#oiXp`3@j+B-u`xGdk?J}rLE`pRba z>l5F`{JnOLNqu+lCmqM%QD4$kFR%Dk_G7_%Pu1e1o82!@Y^?Zq>Uz-IqE$zq3O%g} zOEcb`SGIi9$z?2O8xh$TE3Gv0x2!ZV z+4|q_s>`(Hf0k++^mb{lYWcZ3>!ljo{MHS1JiF_v{r8+)7L@C+D3$xmxh95d=B{-9 zs}mM)LHv3PWCpRv7Rxpd3^Y7I4 zYs+I9GsQ0KFJYbf^$?S!f)n$pcfxyeb9~#IWggGf>hXQ~e?L>l!j<2yI%P6@t^cl> z6};~yLwP`|(%Z{NADy)hm6$#0e?991@4mJBgH8Xij!P+$Ttfj7!9oaxuCU3Tr&^^RQ~8_z2pI$yl3LNBkb z^7#6YS@R_4&DE&?mH+K;m*VwnZ>GG?dgRp?V*%9-+t*)Bwc4s(7WL)B zs<%d27JqEgyPh`Ro$3{AaCo!uQ~&>G_f7YFw5X}7eEpQ_$fN7FWfn*JZZq1l%WmOU zQR~R-POEaH`0UTmOzONl)vNjZ2OZa+m+On$;=?Bg>Rao_D?F~c7`-@tW3cM#D9?cQ z`OiZ(9(d=qRCC6|$S$7^*Sqf(wm)c`S{LhEslVE$wy`I-h2QH)s#R`g?(LjYy;q%4oc65H&a~151&yPSead%$MJyQ5S \uicontrol Debugger > \uicontrol GDB. - \image qtcreator-gdb-options.png "GDB preferences" + \image qtcreator-preferences-debugger-gdb.webp {GDB preferences} To specify a timeout for terminating non-responsive GDB processes, set the number of seconds to wait in the \uicontrol {GDB timeout} field. The default @@ -111,6 +111,8 @@ To execute arbitrary Python scripts, use \c {python execfile('/path/to/script.py')}. + \section2 Extended GDB Settings + The settings in the \uicontrol Extended group give access to advanced or experimental functions of GDB. Enabling them may negatively impact your debugging experience, so use diff --git a/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc b/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc index fe61cd19eae..a39e561badd 100644 --- a/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc +++ b/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc @@ -1368,7 +1368,7 @@ \uicontrol Debugger > \uicontrol GDB > \uicontrol {Load system GDB pretty printers}. For more information, see \l{Specifying GDB Settings}. - \image qtcreator-gdb-options.png {GDB preferences} + \image qtcreator-preferences-debugger-gdb.webp {GDB preferences} \section2 Customizing Built-In Debugging Helpers @@ -2036,7 +2036,7 @@ when loading the same binary in the future. Select \preferences > \uicontrol Debugger > \uicontrol GDB > \uicontrol {Use automatic symbol cache}. - \image qtcreator-gdb-options.png {GDB preferences} + \image qtcreator-preferences-debugger-gdb.webp {GDB preferences} \section2 Minimizing Number of Breakpoints From ae4b6f9e17e83e0580d46df9df157bcf5fd2f594 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Tue, 31 Oct 2023 12:01:17 +0100 Subject: [PATCH 22/37] Doc: Update Preferences > Environment > System screenshot Task-number: QTCREATORBUG-29392 Change-Id: Ic8ccedfbcb3f6aeb139f969bde1c439c78720941 Reviewed-by: Alessandro Portale --- .../qtcreator-options-environment-system.png | Bin 12580 -> 0 bytes ...tcreator-preferences-environment-system.webp | Bin 0 -> 7928 bytes .../src/howto/creator-only/creator-how-tos.qdoc | 2 +- .../creator-projects-settings-environment.qdoc | 2 +- .../creator-open-documents-view.qdoc | 2 +- 5 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 doc/qtcreator/images/qtcreator-options-environment-system.png create mode 100644 doc/qtcreator/images/qtcreator-preferences-environment-system.webp diff --git a/doc/qtcreator/images/qtcreator-options-environment-system.png b/doc/qtcreator/images/qtcreator-options-environment-system.png deleted file mode 100644 index 9d6cb599c1228d550a1caa08001ce998e561ecfd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12580 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 k0v>q;)nT)wAN^b%7 diff --git a/doc/qtcreator/images/qtcreator-preferences-environment-system.webp b/doc/qtcreator/images/qtcreator-preferences-environment-system.webp new file mode 100644 index 0000000000000000000000000000000000000000..9b86064da52ece5d5edf0f1f70683992afbb6d84 GIT binary patch literal 7928 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 UrWZD \uicontrol Environment > \uicontrol System. - \image qtcreator-options-environment-system.png {System preferences} + \image qtcreator-preferences-environment-system.webp {System preferences} \li In \uicontrol {Maximum number of entries in "Recent Files"}, set the number of files to show. \endlist diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-environment.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-environment.qdoc index dd3534bb904..4459d0b9063 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-environment.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-environment.qdoc @@ -23,7 +23,7 @@ \uicontrol Environment > \uicontrol System, and then select \uicontrol Change in the \uicontrol Environment field. - \image qtcreator-options-environment-system.png "Environment preferences System tab" + \image qtcreator-preferences-environment-system.webp "Environment preferences System tab" In addition, you can specify custom environment variables in the \uicontrol {Project Settings} > \uicontrol Environment settings. diff --git a/doc/qtcreator/src/user-interface/creator-open-documents-view.qdoc b/doc/qtcreator/src/user-interface/creator-open-documents-view.qdoc index e758c6c2b27..3eb7a3c2d4c 100644 --- a/doc/qtcreator/src/user-interface/creator-open-documents-view.qdoc +++ b/doc/qtcreator/src/user-interface/creator-open-documents-view.qdoc @@ -38,7 +38,7 @@ To set preferences for opening files and handling open files, select \preferences > \uicontrol Environment > \uicontrol System: - \image qtcreator-options-environment-system.png {System tab in Environment preferences} + \image qtcreator-preferences-environment-system.webp {System tab in Environment preferences} \list \li In the \uicontrol {When files are externally modified} field, From afc5395bd1e9f3b1dc0cb974d63658d2b9dc2b5c Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Thu, 26 Oct 2023 16:21:31 +0200 Subject: [PATCH 23/37] Doc: Update info about vcpkg package manager - Generating code for CMake - Add vcpkg Package dialog - Creating vcpkg.json files Task-number: QTCREATORBUG-29392 Change-Id: Iffe2aadc9f5e2cb9846c56756685d46a2cb079e1 Reviewed-by: Alessandro Portale --- dist/changelog/changes-12.0.0.md | 2 + doc/qtcreator/images/icons/cmake.png | Bin 0 -> 293 bytes doc/qtcreator/images/icons/vcpkg.png | Bin 0 -> 286 bytes .../images/qtcreator-vcpkg-cmake-config.webp | Bin 0 -> 5228 bytes .../qtcreator-vcpkg-manifest-file-editor.webp | Bin 5460 -> 5784 bytes .../qtcreator-vcpkg-package-selector.webp | Bin 10538 -> 5902 bytes .../src/howto/creator-only/creator-vcpkg.qdoc | 67 ++++++++++++++---- .../creator-only/creator-files-creating.qdoc | 5 +- 8 files changed, 57 insertions(+), 17 deletions(-) create mode 100644 doc/qtcreator/images/icons/cmake.png create mode 100644 doc/qtcreator/images/icons/vcpkg.png create mode 100644 doc/qtcreator/images/qtcreator-vcpkg-cmake-config.webp diff --git a/dist/changelog/changes-12.0.0.md b/dist/changelog/changes-12.0.0.md index 6e96ada76bb..dd6606dccaf 100644 --- a/dist/changelog/changes-12.0.0.md +++ b/dist/changelog/changes-12.0.0.md @@ -264,6 +264,8 @@ Projects * Added parsing the dependencies from `vcpkg.json` manifest files * Improved the addition of dependencies to `vcpkg.json` +([Documentation](https://doc-snapshots.qt.io/qtcreator-12.0/creator-how-to-edit-vcpkg-manifest-files.html)) + ### Qt Safe Renderer * Added a wizard for Qt Safe Renderer 2.1 and later diff --git a/doc/qtcreator/images/icons/cmake.png b/doc/qtcreator/images/icons/cmake.png new file mode 100644 index 0000000000000000000000000000000000000000..bc68b8b467d66ca79a11673d29550470de4eea35 GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4i*LmhONKMUokK+yzz8#4AD5>dcj`f2&2TY zkLTa}{Sk&C&+^`!th%^!mlK}v?jFX&v%aWoTzGxOk$l_To3hW;|6)1kXPFlib=!)8fq}u()z4*}Q$iB}4NHOd literal 0 HcmV?d00001 diff --git a/doc/qtcreator/images/icons/vcpkg.png b/doc/qtcreator/images/icons/vcpkg.png new file mode 100644 index 0000000000000000000000000000000000000000..5a0c40aa64d05fb70ec4a2f37552a9dd070df46e GIT binary patch literal 286 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4i*LmhONKMUokK+JoR*O4AD5h_2PQ(W=4Ty zAJ1F6inGl26__a5c5p+20L#%O5-p|&AH*kYj@|r|e}(6UZpV!p8AV4G7AYi4@Z56w zbMzU{?cG1kx~KQ;er~zX=J@{bNoIy=_gm^Z+uTnFW}Yp6`*l~gY9(hCkF`(l-rVoY z_MLg!*mIz9SMqzc-fikr*E~4e8hKShz07ClR~ggkfqs(jd`?$3MszPy)^0mfqWJvc zmfMOEQy(nRw)mWK-s#Q}Gl?&6V-#l}&V0RO*DCGG;;cX)#f4W6>S;VUeQEuI53^1_ tyzF)-owZxeckw%SmRszAZQTe9epdVXZej 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 literal 0 HcmV?d00001 diff --git a/doc/qtcreator/images/qtcreator-vcpkg-manifest-file-editor.webp b/doc/qtcreator/images/qtcreator-vcpkg-manifest-file-editor.webp index 1d341a081f4f7fa3ad943f16b945bf64253354d0..485e0ea974e87909c1fb520ba876ac334f5ccb51 100644 GIT binary patch literal 5784 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 diff --git a/doc/qtcreator/images/qtcreator-vcpkg-package-selector.webp b/doc/qtcreator/images/qtcreator-vcpkg-package-selector.webp index 97295b6b485737492d959b6f6bcf6d562661bd5d..966bc3dbc438fef78e66cfc9ca77ea67997d1cde 100644 GIT binary patch literal 5902 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 literal 10538 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 cDgK9yKJK_?J!7MFfQ0A1f?wxeo+yz30H5ZY \uicontrol {New File} > - \uicontrol Vcpkg. - \image qtcreator-file-new-file-vcpkg-manifest-file.webp {vcpkg.json Manifest File wizard page} + \uicontrol vcpkg > \uicontrol {vcpkg.json Manifest File} > + \uicontrol Choose to open the \uicontrol Location dialog. + \li In \uicontrol {File name}, enter a name for the manifest file. + \li In \uicontrol Path, enter the path for the manifest file. + \li Select \uicontrol Next to open the + \uicontrol {vcpkg.json Manifest File} dialog. + \image qtcreator-file-new-file-vcpkg-manifest-file.webp {vcpkg.json Manifest File dialog} \li In \uicontrol Name, enter a name for the manifest file. - \li In \uicontrol Version, enter a version number for the file. + \li In \uicontrol {Version string}, enter a version number for the file. \li In \uicontrol Dependencies, enter the packages to manage. You can add packages later in a manifest editor. @@ -57,27 +72,51 @@ The wizard automatically adds the vcpkg.json file to the CMakeLists.txt file of the project. - \section1 Selecting Packages to Manage + \sa {vcpkg Package Manager}, {Edit vcpkg manifest files} +*/ + +/*! + \page creator-how-to-edit-vcpkg-manifest-files.html + \previouspage creator-how-tos.html + + \ingroup creator-how-to-build + + \title Edit vcpkg manifest files When you open a vcpkg.json file, it opens in the manifest file editor: \image qtcreator-vcpkg-manifest-file-editor.webp {vcpkg.json file in the manifest file editor} + \section1 Add packages to manage + To add a package to your project: \list 1 - \li Place the cursor on the line where you want to add a package. - \li Select the \inlineimage icons/zoom.png - (\uicontrol {Search Package}) button. - \image qtcreator-vcpkg-package-selector.webp {Package selector dialog} + \li Select the \inlineimage icons/vcpkg.png + (\uicontrol {Add vcpkg Package}) button on the manifest editor + toolbar. + \image qtcreator-vcpkg-package-selector.webp {Add vcpkg Package dialog} \li Select the package to add to your project. \li Select \uicontrol OK to return to the editor. \li Repeat to add more packages. \endlist - To set the path to the directory where you installed vcpkg, select - \inlineimage icons/settings.png - (\uicontrol Configure) on the editor toolbar. + \section1 Generate code for CMake configuration files - \sa {Enable and disable plugins} + To generate sample CMake code to copy to the CMakeLists.text file: + + \list 1 + \li Select the \inlineimage icons/cmake.png (\uicontrol {CMake Code}) + button on the manifest editor toolbar. + \image qtcreator-vcpkg-cmake-config.webp {CMake Code dialog} + \li Select the example code you need and copy-paste it to the + CMakeLists.txt file. + \endlist + + \section1 Set the path to vcpkg + + To set the path to the directory where you installed vcpkg, select + \inlineimage icons/settings.png (\uicontrol Configure) on the editor toolbar. + + \sa {vcpkg Package Manager}, {Create vcpkg manifest files} */ diff --git a/doc/qtcreator/src/projects/creator-only/creator-files-creating.qdoc b/doc/qtcreator/src/projects/creator-only/creator-files-creating.qdoc index 21c189a6986..4d9b8b54b9f 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-files-creating.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-files-creating.qdoc @@ -65,8 +65,7 @@ \li Class and script files for Python projects. \row \li \uicontrol {vcpkg} (experimental) - \li \l {Managing Packages with vcpkg}{vcpkg package manager} manifest - files (vcpkg.json). + \li vcpkg package manager manifest files (vcpkg.json). \row \li \uicontrol {Nim} (experimental) \li Empty Nim source and script files. @@ -74,7 +73,7 @@ \sa {Create compiler explorer sessions}, {Create C++ classes}, {Create OpenGL fragment and vertex shaders}, {Create resource files}, - {Use project wizards} + {Create vcpkg manifest files}, {Use project wizards} */ /*! From 05ef0d9cb9422b98f51ad4ae285a33f9a4d1b94c Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Tue, 7 Nov 2023 15:59:22 +0100 Subject: [PATCH 24/37] Fix crash in QmlOutline related to QmlDesigner This is a workaround for the ugly hack that QmlDesigner forces the EditorManager to send a currentEditorChanged signal with QmlDesigner's custom, internal IEditor. The currentEditorChanged signal triggered an update/re-creation of the outline widget *for that editor*. Which is not the intended result in the first place, but even aggrevated by the fact that QmlDesigner never calls currentEditorChanged with the actual EditorManager::currentEditor() again. Work around that by only ever using the EditorManager::currentEditor() for the outline widget. Fixes: QTCREATORBUG-29653 Fixes: QTCREATORBUG-29702 Change-Id: I39c5bee94141a0d86c0e92879eb8b1c2b7ba64b9 Reviewed-by: Reviewed-by: Christian Stenger Reviewed-by: David Schulz --- src/plugins/texteditor/outlinefactory.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/plugins/texteditor/outlinefactory.cpp b/src/plugins/texteditor/outlinefactory.cpp index 2c462127026..8c736a45396 100644 --- a/src/plugins/texteditor/outlinefactory.cpp +++ b/src/plugins/texteditor/outlinefactory.cpp @@ -120,8 +120,10 @@ OutlineWidgetStack::OutlineWidgetStack(OutlineFactory *factory) : m_toggleSort->setToolTip(Tr::tr("Sort Alphabetically")); connect(m_toggleSort, &QAbstractButton::clicked, this, &OutlineWidgetStack::toggleSort); - connect(Core::EditorManager::instance(), &Core::EditorManager::currentEditorChanged, - this, &OutlineWidgetStack::updateEditor); + connect(Core::EditorManager::instance(), + &Core::EditorManager::currentEditorChanged, + this, + &OutlineWidgetStack::updateCurrentEditor); connect(factory, &OutlineFactory::updateOutline, this, &OutlineWidgetStack::updateCurrentEditor); updateCurrentEditor(); From 503fd8121d6030680d8727dbbdc540b5615e4357 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Wed, 8 Nov 2023 09:32:02 +0100 Subject: [PATCH 25/37] Terminal: Make test actually manual Change-Id: Ib44111401c4b4e1f16c8c53b6bd1f323f725cdd1 Reviewed-by: Cristian Adam --- tests/manual/terminal/CMakeLists.txt | 1 + tests/manual/terminal/terminal.qbs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/manual/terminal/CMakeLists.txt b/tests/manual/terminal/CMakeLists.txt index f4fff9d2c43..409cba4d706 100644 --- a/tests/manual/terminal/CMakeLists.txt +++ b/tests/manual/terminal/CMakeLists.txt @@ -1,4 +1,5 @@ add_qtc_test(tst_terminal + MANUALTEST DEPENDS Utils SOURCES tst_terminal.cpp ) diff --git a/tests/manual/terminal/terminal.qbs b/tests/manual/terminal/terminal.qbs index 4b7a408a1e4..a9bea16872f 100644 --- a/tests/manual/terminal/terminal.qbs +++ b/tests/manual/terminal/terminal.qbs @@ -1,6 +1,6 @@ import qbs -QtcAutotest { +QtcManualTest { name: "Terminal autotest" Depends { name: "Utils" } files: "tst_terminal.cpp" From 2eb73350abba6d5e57af2f546a3dc4afb2aa5492 Mon Sep 17 00:00:00 2001 From: Samuli Piippo Date: Thu, 19 Oct 2023 16:11:31 +0300 Subject: [PATCH 26/37] boot2qt: always use GenericUpload GenericUpload knows if sftp or rsync can be used. Change-Id: I6f6d478f2da9659777cc5046b4425ae025fdca0a Reviewed-by: hjk --- src/plugins/boot2qt/qdbplugin.cpp | 26 +------------------------- 1 file changed, 1 insertion(+), 25 deletions(-) diff --git a/src/plugins/boot2qt/qdbplugin.cpp b/src/plugins/boot2qt/qdbplugin.cpp index a66bf2846a6..de1a7557c83 100644 --- a/src/plugins/boot2qt/qdbplugin.cpp +++ b/src/plugins/boot2qt/qdbplugin.cpp @@ -124,31 +124,7 @@ public: && prj->hasMakeInstallEquivalent(); }); addInitialStep(Qdb::Constants::QdbStopApplicationStepId); - addInitialStep(RemoteLinux::Constants::GenericDeployStepId, [](Target *target) { - auto device = DeviceKitAspect::device(target->kit()); - auto buildDevice = BuildDeviceKitAspect::device(target->kit()); - if (buildDevice && buildDevice->rootPath().needsDevice()) - return false; - return !device || (device - && device->extraData(ProjectExplorer::Constants::SUPPORTS_RSYNC).toBool()); - }); - addInitialStep(RemoteLinux::Constants::DirectUploadStepId, [](Target *target) { - auto device = DeviceKitAspect::device(target->kit()); - auto buildDevice = BuildDeviceKitAspect::device(target->kit()); - if (buildDevice && buildDevice->rootPath().needsDevice()) - return false; - return device && !device->extraData(ProjectExplorer::Constants::SUPPORTS_RSYNC).toBool(); - }); - // This step is for: - // a) A remote build device, as they do not support real rsync yet. - // b) If there is no target device setup yet. - addInitialStep(RemoteLinux::Constants::DirectUploadStepId, [](Target *target) { - auto device = DeviceKitAspect::device(target->kit()); - auto buildDevice = BuildDeviceKitAspect::device(target->kit()); - if (buildDevice && buildDevice->rootPath().needsDevice()) - return true; - return false; - }); + addInitialStep(RemoteLinux::Constants::GenericDeployStepId); } }; From 210907529f74bce29e8938445276634f2e010a54 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Wed, 8 Nov 2023 09:06:25 +0100 Subject: [PATCH 27/37] QtSupport: Fix order of setEnabler / readSettings Silences a soft assert. Change-Id: Ibd32f2efe75f610bf7e8f6a33a7a84a8da9f7019 Reviewed-by: Marcus Tillmanns --- src/plugins/qtsupport/codegensettings.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/qtsupport/codegensettings.cpp b/src/plugins/qtsupport/codegensettings.cpp index 007467e619d..ec956dc09bb 100644 --- a/src/plugins/qtsupport/codegensettings.cpp +++ b/src/plugins/qtsupport/codegensettings.cpp @@ -41,7 +41,6 @@ CodeGenSettings::CodeGenSettings() addQtVersionCheck.setSettingsKey("AddQtVersionCheck"); addQtVersionCheck.setLabelText(Tr::tr("Add Qt version #ifdef for module names")); - addQtVersionCheck.setEnabler(&includeQtModule); setLayouter([this] { using namespace Layouting; @@ -66,6 +65,7 @@ CodeGenSettings::CodeGenSettings() readSettings(); + addQtVersionCheck.setEnabler(&includeQtModule); } class CodeGenSettingsPage final : public Core::IOptionsPage From df360704f00a4274cc7c616b91302bf1fae8b8e8 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Mon, 6 Nov 2023 17:30:38 +0100 Subject: [PATCH 28/37] ClangTools: Suppress bogus clazy warning about #pragma once We don't pass the correct value "c++header" to the -x option, because to clang that implies building a precompiled header, which apparently switches on some different mode that breaks clang-tidy and clazy. On the other hand, with "-x c++" clazy now thinks that this is a source file and frowns at "#pragma once". Suppress this warning for header files. Amends 60fca0596adfc98af9e3ef4e657d90eec4af9486. We might run into similar "header vs source" problems in the future. I don't see anything better than suppressing them one by one. Fixes: QTCREATORBUG-29781 Change-Id: Ia15ac5b278777e2b2e089e9d58bb7537c38955ce Reviewed-by: David Schulz --- src/plugins/clangtools/clangtoolrunner.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/plugins/clangtools/clangtoolrunner.cpp b/src/plugins/clangtools/clangtoolrunner.cpp index e83037aa536..23c249d3489 100644 --- a/src/plugins/clangtools/clangtoolrunner.cpp +++ b/src/plugins/clangtools/clangtoolrunner.cpp @@ -10,6 +10,7 @@ #include #include +#include #include #include @@ -76,14 +77,17 @@ static QStringList checksArguments(const AnalyzeInputData &input) return {}; } -static QStringList clangArguments(const ClangDiagnosticConfig &diagnosticConfig, - const QStringList &baseOptions) +static QStringList clangArguments(const AnalyzeInputData &input) { QStringList arguments; + const ClangDiagnosticConfig &diagnosticConfig = input.config; + const QStringList &baseOptions = input.unit.arguments; arguments << ClangDiagnosticConfigsModel::globalDiagnosticOptions() << (isClMode(baseOptions) ? clangArgsForCl(diagnosticConfig.clangOptions()) : diagnosticConfig.clangOptions()) << baseOptions; + if (ProjectFile::isHeader(input.unit.file)) + arguments << "-Wno-pragma-once-outside-header"; if (LOG().isDebugEnabled()) arguments << QLatin1String("-v"); @@ -157,7 +161,7 @@ GroupItem clangToolTask(const AnalyzeInputData &input, const QStringList args = checksArguments(input) + mainToolArguments(data) + QStringList{"--"} - + clangArguments(input.config, input.unit.arguments); + + clangArguments(input); const CommandLine commandLine = {data.executable, args}; qCDebug(LOG).noquote() << "Starting" << commandLine.toUserOutput(); From ffcbbecf271d23830dbe0515586044ffc05f2fc2 Mon Sep 17 00:00:00 2001 From: Semih Yavuz Date: Sat, 6 May 2023 17:06:17 +0200 Subject: [PATCH 29/37] reformatter: Do not remove type annotations Type annotations were being removed by the reformat action. Write out the relavant annotations in ast to fix it. Add exclusion mechanism in tst_qml_reformatter test since it performs line by line comparison which doesn't fit all reformatting cases. Introduce char-by-char data tests. Fixes: QTCREATORBUG-29061 Change-Id: Ia52b51e6d7d938bdec325c4f426b11c722f85f8e Reviewed-by: Ulf Hermann --- src/libs/qmljs/qmljsreformatter.cpp | 8 +++ .../auto/qml/reformatter/tst_reformatter.cpp | 53 ++++++++++++++++++- .../reformatter/typeAnnotations.formatted.qml | 18 +++++++ .../auto/qml/reformatter/typeAnnotations.qml | 17 ++++++ 4 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 tests/auto/qml/reformatter/typeAnnotations.formatted.qml create mode 100644 tests/auto/qml/reformatter/typeAnnotations.qml diff --git a/src/libs/qmljs/qmljsreformatter.cpp b/src/libs/qmljs/qmljsreformatter.cpp index d2891451e95..008968afc46 100644 --- a/src/libs/qmljs/qmljsreformatter.cpp +++ b/src/libs/qmljs/qmljsreformatter.cpp @@ -1282,6 +1282,10 @@ protected: out(ast->rparenToken); if (ast->isArrowFunction && !ast->formals) out("()"); + if (ast->typeAnnotation) { + out(": "); + out(ast->typeAnnotation->type->toString()); + } out(" "); if (ast->isArrowFunction) out("=> "); @@ -1406,6 +1410,10 @@ protected: { for (FormalParameterList *it = ast; it; it = it->next) { accept(it->element); + if (it->element->typeAnnotation) { + out(": "); + out(it->element->typeAnnotation->type->toString()); + } if (it->next) out(", "); } diff --git a/tests/auto/qml/reformatter/tst_reformatter.cpp b/tests/auto/qml/reformatter/tst_reformatter.cpp index 36c8f2a83e8..748b8b81263 100644 --- a/tests/auto/qml/reformatter/tst_reformatter.cpp +++ b/tests/auto/qml/reformatter/tst_reformatter.cpp @@ -28,6 +28,11 @@ public: private slots: void test(); void test_data(); + + void reformatter_data(); + void reformatter(); + +private: }; tst_Reformatter::tst_Reformatter() @@ -41,10 +46,18 @@ void tst_Reformatter::test_data() { QTest::addColumn("path"); + // This test performs line-by-line comparison and fails if reformatting + // makes a change inline, for example whitespace removal. We omit + // those files in this test. + QSet excludedFiles; + excludedFiles << QString::fromLatin1(TESTSRCDIR) + QDir::separator() + "typeAnnotations.qml"; + excludedFiles << QString::fromLatin1(TESTSRCDIR) + QDir::separator() + "typeAnnotations.formatted.qml"; + QDirIterator it(TESTSRCDIR, QStringList() << QLatin1String("*.qml") << QLatin1String("*.js"), QDir::Files); while (it.hasNext()) { const QString fileName = it.next(); - QTest::newRow(fileName.toLatin1()) << it.filePath(); + if (!excludedFiles.contains(fileName)) + QTest::newRow(fileName.toLatin1()) << it.filePath(); } } @@ -84,6 +97,44 @@ void tst_Reformatter::test() QCOMPARE(sourceLines.size(), newLines.size()); } +void tst_Reformatter::reformatter_data() +{ + QTest::addColumn("filePath"); + QTest::addColumn("formattedFilePath"); + + QTest::newRow("typeAnnotations") + << QString::fromLatin1(TESTSRCDIR) + QDir::separator() + "typeAnnotations.qml" + << QString::fromLatin1(TESTSRCDIR) + QDir::separator() + "typeAnnotations.formatted.qml"; +} + +void tst_Reformatter::reformatter() +{ + QFETCH(QString, filePath); + QFETCH(QString, formattedFilePath); + + Utils::FilePath fPath = Utils::FilePath::fromString(filePath); + Document::MutablePtr doc + = Document::create(fPath, ModelManagerInterface::guessLanguageOfFile(fPath)); + + QString fileContent; + { + QFile file(filePath); + QVERIFY(file.open(QFile::ReadOnly | QFile::Text)); + fileContent = QString::fromUtf8(file.readAll()); + } + doc->setSource(fileContent); + doc->parse(); + QString expected; + { + QFile file(formattedFilePath); + QVERIFY(file.open(QFile::ReadOnly | QFile::Text)); + expected = QString::fromUtf8(file.readAll()); + } + + QString formatted = reformat(doc); + QCOMPARE(formatted, expected); +} + QTEST_GUILESS_MAIN(tst_Reformatter); #include "tst_reformatter.moc" diff --git a/tests/auto/qml/reformatter/typeAnnotations.formatted.qml b/tests/auto/qml/reformatter/typeAnnotations.formatted.qml new file mode 100644 index 00000000000..208aa25cd9a --- /dev/null +++ b/tests/auto/qml/reformatter/typeAnnotations.formatted.qml @@ -0,0 +1,18 @@ + +// Copyright (C) 2023 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +import QtQuick + +Text { + function aaa(t: int, k: double): int { + return 42 + } + + function bbb(aaa): int { + return 42 + } + + function abc(cba: int) { + return 42 + } +} diff --git a/tests/auto/qml/reformatter/typeAnnotations.qml b/tests/auto/qml/reformatter/typeAnnotations.qml new file mode 100644 index 00000000000..af0d93b3de7 --- /dev/null +++ b/tests/auto/qml/reformatter/typeAnnotations.qml @@ -0,0 +1,17 @@ +// Copyright (C) 2023 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick + +Text { + function aaa (t : int, k : double) : int { + return 42; + } + + function bbb(aaa) + : int {return 42} + + function abc (cba : int) { + return 42; + } +} From e48d365b199c6a6264c4ae28978d7798b6467ca5 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Tue, 7 Nov 2023 15:47:03 +0100 Subject: [PATCH 30/37] ProjectExplorer: Normalize separators on HeaderPath construction Fixes a Windows test failure in CompilationDatabaseProjectManager. Change-Id: Ic373b7a50b1374be4cf028fc304442c3cf077735 Reviewed-by: Christian Stenger --- src/plugins/projectexplorer/headerpath.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/projectexplorer/headerpath.h b/src/plugins/projectexplorer/headerpath.h index f46d1ad401e..6df25245424 100644 --- a/src/plugins/projectexplorer/headerpath.h +++ b/src/plugins/projectexplorer/headerpath.h @@ -6,6 +6,7 @@ #include #include +#include #include #include @@ -22,7 +23,8 @@ class HeaderPath { public: HeaderPath() = default; - HeaderPath(const QString &path, HeaderPathType type) : path(path), type(type) { } + HeaderPath(const QString &path, HeaderPathType type) + : path(QDir::fromNativeSeparators(path)), type(type) { } HeaderPath(const char *path, HeaderPathType type) : HeaderPath(QLatin1String(path), type) {} HeaderPath(const Utils::FilePath &path, HeaderPathType type) : HeaderPath(path.path(), type) From a02766431b92ef847a76a331f7a56328248d571b Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Wed, 8 Nov 2023 14:49:23 +0100 Subject: [PATCH 31/37] Update change log for 12.0.0 Change-Id: Ia105b80002652f9f37b2e41cb13afe439713af9f Reviewed-by: Leena Miettinen --- dist/changelog/changes-12.0.0.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/dist/changelog/changes-12.0.0.md b/dist/changelog/changes-12.0.0.md index dd6606dccaf..69ab50ee436 100644 --- a/dist/changelog/changes-12.0.0.md +++ b/dist/changelog/changes-12.0.0.md @@ -145,6 +145,12 @@ Editing ### QML +* Fixed multiple crashes when updating the `Outline` view + ([QTCREATORBUG-28862](https://bugreports.qt.io/browse/QTCREATORBUG-28862), + [QTCREATORBUG-29653](https://bugreports.qt.io/browse/QTCREATORBUG-29653), + [QTCREATORBUG-29702](https://bugreports.qt.io/browse/QTCREATORBUG-29702)) +* Fixed that reformatting QML code removed type annotations + ([QTCREATORBUG-29061](https://bugreports.qt.io/browse/QTCREATORBUG-29061)) * Fixed invalid `M325` warnings ([QTCREATORBUG-29601](https://bugreports.qt.io/browse/QTCREATORBUG-29601)) * Language Server @@ -237,6 +243,8 @@ Projects * Fixed issues with the subdirectory structure of the project tree ([QTCREATORBUG-23942](https://bugreports.qt.io/browse/QTCREATORBUG-23942), [QTCREATORBUG-29105](https://bugreports.qt.io/browse/QTCREATORBUG-29105)) +* Fixed an issue with source file specific compiler flags + ([QTCREATORBUG-29707](https://bugreports.qt.io/browse/QTCREATORBUG-29707)) * Presets * Fixed that variables were not expanded for `cmakeExecutable` ([QTCREATORBUG-29643](https://bugreports.qt.io/browse/QTCREATORBUG-29643)) @@ -258,6 +266,11 @@ Projects * Fixed the project tree structure in case of some subfolder structures ([QTCREATORBUG-29733](https://bugreports.qt.io/browse/QTCREATORBUG-29733)) +### Qbs + +* Fixed the importing of builds on macOS + ([QTCREATORBUG-29829](https://bugreports.qt.io/browse/QTCREATORBUG-29829)) + ### vcpkg * Added the generation of code for `CMakeLists.txt` @@ -279,6 +292,11 @@ Debugging * Added support for remote Linux debugging with LLDB * Fixed warnings about index cache permissions ([QTCREATORBUG-29556](https://bugreports.qt.io/browse/QTCREATORBUG-29556)) +* Pretty Printers + * Fixed `QDateTime` with a time zone offset + ([QTCREATORBUG-29737](https://bugreports.qt.io/browse/QTCREATORBUG-29737)) + * Fixed `std::unique_ptr` on macOS + * Fixed `QImage` Analyzer -------- @@ -325,10 +343,17 @@ Test Integration * Added an option for the number of threads used for scanning ([QTCREATORBUG-29301](https://bugreports.qt.io/browse/QTCREATORBUG-29301)) * Improved the wizards for `GTest` and `Catch2` +* CTest + * Enabled colored test output Platforms --------- +### macOS + +* Fixed running and debugging in an external terminal + ([QTCREATORBUG-29246](https://bugreports.qt.io/browse/QTCREATORBUG-29246)) + ### Android * Fixed issues when `LIBRARY_OUTPUT_DIRECTORY` is set in the CMake build files From 2f664c4c3def6e34b98644105df13fd6071adfb6 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Mon, 30 Oct 2023 16:43:00 +0100 Subject: [PATCH 32/37] Doc: Add a note about iOS support being broken in version 12.0 Task-number: QTCREATORBUG-29392 Change-Id: Iede2437b370971c595df2ddca6a0cb544550b1c3 Reviewed-by: Eike Ziller --- doc/qtcreator/src/ios/creator-ios-dev.qdoc | 2 ++ .../src/overview/creator-only/creator-mobile-platforms.qdoc | 2 ++ .../src/overview/creator-only/creator-supported-platforms.qdoc | 3 +-- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/doc/qtcreator/src/ios/creator-ios-dev.qdoc b/doc/qtcreator/src/ios/creator-ios-dev.qdoc index 579e0651740..6c9ca24dfea 100644 --- a/doc/qtcreator/src/ios/creator-ios-dev.qdoc +++ b/doc/qtcreator/src/ios/creator-ios-dev.qdoc @@ -11,6 +11,8 @@ You can connect iOS devices to your local machine with a USB cable to run applications built for them from \QC. + \note Deployment, running, and debugging on iOS 17 devices are not supported. + To be able to use \QC on \macos, you must install Xcode, and therefore, you already have the tool chain for building applications for iOS. \QC automatically detects the tool chain and creates the necessary diff --git a/doc/qtcreator/src/overview/creator-only/creator-mobile-platforms.qdoc b/doc/qtcreator/src/overview/creator-only/creator-mobile-platforms.qdoc index 5b3fbeaecc8..f563a69e382 100644 --- a/doc/qtcreator/src/overview/creator-only/creator-mobile-platforms.qdoc +++ b/doc/qtcreator/src/overview/creator-only/creator-mobile-platforms.qdoc @@ -48,6 +48,8 @@ \section1 iOS + \note Deployment, running, and debugging on iOS 17 devices are not supported. + To be able to use \QC on \macos, you must install Xcode, and therefore you should already have the tool chain for building applications for iOS. \QC automatically detects the tool chain and creates the necessary diff --git a/doc/qtcreator/src/overview/creator-only/creator-supported-platforms.qdoc b/doc/qtcreator/src/overview/creator-only/creator-supported-platforms.qdoc index 5ea6d94a0cf..784dccad4b8 100644 --- a/doc/qtcreator/src/overview/creator-only/creator-supported-platforms.qdoc +++ b/doc/qtcreator/src/overview/creator-only/creator-supported-platforms.qdoc @@ -69,8 +69,7 @@ \li \image ok.png \endtable - \note UWP support was removed from \QC 8.0. - To develop for UWP using Qt 5, use \QC 7.0, or earlier. + \note Deployment, running, and debugging on iOS 17 devices are not supported. \QC automatically runs scheduled checks for updates based on the settings specified in \preferences > \uicontrol Environment > \uicontrol Update. From e4805b88c9835bf6dfa258cdbaf5bfe89cd27fa2 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Wed, 8 Nov 2023 15:31:06 +0100 Subject: [PATCH 33/37] CMakePM: Use FilePath::fromUserInput Change-Id: I748fc41ed380c907b6edcca3a1802a47f9f74436 Reviewed-by: Cristian Adam --- src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp index 238cf87b712..febb130a0ac 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp @@ -1792,7 +1792,7 @@ void CMakeBuildSystem::updateQmlJSCodeModel(const QStringList &extraHeaderPaths, auto addImports = [&projectInfo](const QString &imports) { const QStringList importList = CMakeConfigItem::cmakeSplitValue(imports); for (const QString &import : importList) - projectInfo.importPaths.maybeInsert(FilePath::fromString(import), QmlJS::Dialect::Qml); + projectInfo.importPaths.maybeInsert(FilePath::fromUserInput(import), QmlJS::Dialect::Qml); }; const CMakeConfig &cm = configurationFromCMake(); From 6e1d7fc961d966c973e5db796e5b0f4f25f05fb8 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Wed, 8 Nov 2023 16:47:21 +0100 Subject: [PATCH 34/37] CompilerExplorer: Fix crash on undo We need to store the source text document so that when the editor is remove and the user triggers undo/read, the pointer is still valid. Change-Id: I571906db1c4424455172a42d72351cd9ba1e7c03 Reviewed-by: David Schulz --- src/plugins/compilerexplorer/compilerexplorereditor.cpp | 9 ++++++--- src/plugins/compilerexplorer/compilerexplorersettings.h | 9 +++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/plugins/compilerexplorer/compilerexplorereditor.cpp b/src/plugins/compilerexplorer/compilerexplorereditor.cpp index f71010744ef..25c096c20d9 100644 --- a/src/plugins/compilerexplorer/compilerexplorereditor.cpp +++ b/src/plugins/compilerexplorer/compilerexplorereditor.cpp @@ -209,14 +209,17 @@ SourceEditorWidget::SourceEditorWidget(const std::shared_ptr &se connect(m_codeEditor, &CodeEditorWidget::gotFocus, this, &SourceEditorWidget::gotFocus); - TextDocumentPtr document = TextDocumentPtr(new SourceTextDocument(m_sourceSettings, undoStack)); + auto sourceTextDocument = settings->sourceTextDocument(); + if (!sourceTextDocument) + sourceTextDocument = TextDocumentPtr(new SourceTextDocument(m_sourceSettings, undoStack)); + settings->setSourceTextDocument(sourceTextDocument); - connect(document.get(), + connect(sourceTextDocument.get(), &SourceTextDocument::changed, this, &SourceEditorWidget::sourceCodeChanged); - m_codeEditor->setTextDocument(document); + m_codeEditor->setTextDocument(sourceTextDocument); m_codeEditor->updateHighlighter(); auto addCompilerButton = new QToolButton; diff --git a/src/plugins/compilerexplorer/compilerexplorersettings.h b/src/plugins/compilerexplorer/compilerexplorersettings.h index 64f67122fe6..dc32dbd8c2d 100644 --- a/src/plugins/compilerexplorer/compilerexplorersettings.h +++ b/src/plugins/compilerexplorer/compilerexplorersettings.h @@ -8,6 +8,8 @@ #include +#include + #include namespace CompilerExplorer { @@ -58,6 +60,12 @@ public: ApiConfigFunction apiConfigFunction() const { return m_apiConfigFunction; } + TextEditor::TextDocumentPtr sourceTextDocument() const { return m_sourceTextDocument; } + void setSourceTextDocument(TextEditor::TextDocumentPtr sourceTextDocument) + { + m_sourceTextDocument = sourceTextDocument; + } + public: Utils::StringSelectionAspect languageId{this}; Utils::StringAspect source{this}; @@ -75,6 +83,7 @@ private: private: CompilerExplorerSettings *m_parent; ApiConfigFunction m_apiConfigFunction; + TextEditor::TextDocumentPtr m_sourceTextDocument{nullptr}; }; class CompilerSettings : public Utils::AspectContainer, From 4436e96f91e934473308b5115a3052a650d77e57 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Thu, 9 Nov 2023 06:55:30 +0100 Subject: [PATCH 35/37] Debugger: Fix compile with Qt6.2 Amends 43f99cb53b0943926753f8d7c7f695a07a1fb8a6. Change-Id: Ia28b129f761e8cfe6dd3a908ccfcf50d043d1639 Reviewed-by: Marcus Tillmanns --- src/plugins/debugger/dap/dapengine.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/debugger/dap/dapengine.cpp b/src/plugins/debugger/dap/dapengine.cpp index 33cc0d9ae37..8dcbb89dd7e 100644 --- a/src/plugins/debugger/dap/dapengine.cpp +++ b/src/plugins/debugger/dap/dapengine.cpp @@ -815,7 +815,7 @@ void DapEngine::refreshLocals(const QJsonArray &variables) if (currentItem && currentItem->iname.startsWith("watch")) currentItem->removeChildren(); - for (const QJsonValueConstRef &variable : variables) { + for (const auto &variable : variables) { WatchItem *item = new WatchItem; const QString name = variable.toObject().value("name").toString(); From e5c4d20e2b9796e13b70b1b67f7d8dd0904dabb9 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Thu, 9 Nov 2023 08:28:04 +0100 Subject: [PATCH 36/37] LanguageClient: Reset maximum restart tries on explicit restart If the user forces the language client to restart for whatever reason the client may end up in not starting anymore depending on the number of restarts that had been done already. So, explicitly reset the counter in case the user triggers the restart. Change-Id: Ie5f33c8dc3d565b6126badc9708906fc14f4e743 Reviewed-by: David Schulz --- src/plugins/languageclient/client.cpp | 5 +++++ src/plugins/languageclient/client.h | 1 + src/plugins/languageclient/languageclientmanager.cpp | 1 + 3 files changed, 7 insertions(+) diff --git a/src/plugins/languageclient/client.cpp b/src/plugins/languageclient/client.cpp index 976704fed5b..def0016f3ab 100644 --- a/src/plugins/languageclient/client.cpp +++ b/src/plugins/languageclient/client.cpp @@ -592,6 +592,11 @@ bool Client::reachable() const return d->m_state == Initialized; } +void Client::resetRestartCounter() +{ + d->m_restartsLeft = ClientPrivate::MaxRestarts; +} + void Client::setClientInfo(const LanguageServerProtocol::ClientInfo &clientInfo) { d->m_clientInfo = clientInfo; diff --git a/src/plugins/languageclient/client.h b/src/plugins/languageclient/client.h index aba2b996754..fdeb1356d6c 100644 --- a/src/plugins/languageclient/client.h +++ b/src/plugins/languageclient/client.h @@ -86,6 +86,7 @@ public: State state() const; QString stateString() const; bool reachable() const; + void resetRestartCounter(); void setClientInfo(const LanguageServerProtocol::ClientInfo &clientInfo); // capabilities diff --git a/src/plugins/languageclient/languageclientmanager.cpp b/src/plugins/languageclient/languageclientmanager.cpp index bb655e2d8f8..81838357bb9 100644 --- a/src/plugins/languageclient/languageclientmanager.cpp +++ b/src/plugins/languageclient/languageclientmanager.cpp @@ -159,6 +159,7 @@ void LanguageClientManager::clientFinished(Client *client) QTC_ASSERT(managerInstance, return); if (managerInstance->m_restartingClients.remove(client)) { + client->resetRestartCounter(); client->reset(); client->start(); return; From 266f9bc63218fc5ed78161838032ca2dbff629c0 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Tue, 7 Nov 2023 18:10:02 +0100 Subject: [PATCH 37/37] Doc: Turn "Specifying Environment Settings" into how-tos Add a line drawing that describes the environment settings hierarchy. Task-number: QTCREATORBUG-29361 Change-Id: I7869797154c0e70263528a8635ea7f2dcee30f30 Reviewed-by: Eike Ziller --- .../images/qtcreator-edit-environment.webp | Bin 0 -> 5658 bytes ...reator-environment-settings-hierarchy.webp | Bin 0 -> 3662 bytes .../qtcreator-projects-environment.webp | Bin 0 -> 4728 bytes .../creator-projects-cmake-building.qdoc | 3 +- .../src/editors/creator-code-completion.qdoc | 9 +- .../creator-only/creator-language-server.qdoc | 4 +- .../src/howto/creator-external-tools.qdoc | 23 ++- .../creator-build-settings-qmake.qdoc | 2 +- .../creator-only/creator-projects-kits.qdoc | 2 +- .../creator-projects-settings-build.qdoc | 6 +- ...creator-projects-settings-environment.qdoc | 155 ++++++++++++------ .../creator-projects-settings-overview.qdoc | 17 +- ...ator-projects-settings-run-desktop.qdocinc | 2 +- .../creator-projects-settings-run.qdoc | 25 --- .../qtcreator-how-to-use-qtc-variables.qdoc} | 25 ++- doc/qtcreator/src/qtcreator-toc.qdoc | 1 - 16 files changed, 155 insertions(+), 119 deletions(-) create mode 100644 doc/qtcreator/images/qtcreator-edit-environment.webp create mode 100644 doc/qtcreator/images/qtcreator-environment-settings-hierarchy.webp create mode 100644 doc/qtcreator/images/qtcreator-projects-environment.webp rename doc/qtcreator/src/projects/{qtcreator-variables.qdocinc => creator-only/qtcreator-how-to-use-qtc-variables.qdoc} (64%) diff --git a/doc/qtcreator/images/qtcreator-edit-environment.webp b/doc/qtcreator/images/qtcreator-edit-environment.webp new file mode 100644 index 0000000000000000000000000000000000000000..f68eb52540e979e80893ac4d632a0366dfc43bab GIT binary patch literal 5658 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 b<+|ED_s_Q}y;;AfJ$d^)*ZR-#$AzW<_agOS literal 0 HcmV?d00001 diff --git a/doc/qtcreator/images/qtcreator-environment-settings-hierarchy.webp b/doc/qtcreator/images/qtcreator-environment-settings-hierarchy.webp new file mode 100644 index 0000000000000000000000000000000000000000..574b2a7547009417503ca5eb57719f2810c1b850 GIT binary patch literal 3662 zcmWIYbaQj#V_*n(bqWXzu<)_uV_?v?Zko%m|ImVoOFUTlKD?jWR&68Uaa(PA;eWeu z=FHnET<`9`vHqWR*(~9k$lb=Nd)0*|noRN66LJ2wh(&cvhYRO4CBaU|E(ezYm!Jtw z0**}{Ci=cR&&>a@)nJc;M?uCB22Q1p%FX`@B(~(LXg=ew{%_4BXvo-`_svx!XHWX! zE%k>IHr%e)6n^fTdHKn{-JA$`3vQuZ2stQG0 z87_DHySylOw^xep?uTkpcij8fwfUopUVAUfz3mmvtMHC(P!4zK<5f4fb^ z&W*+A*1CO>7g9NyJ3G=cefA;29ju&jKfhkSxHI;DrL1~H2H!o&6IJpi-Hw+Qt1LUe zo~K~%t12%=>sLn-9=xtwBQ%$P?m`7+|DrxQ387i>L4PVu|KxnaS9ewRedP?7uW+1*i}rYGrM^%%MV4Q^@v8lt zx!-=jw!dBk|a;Ggfy%$tj)GgBTM9}URzc%MFo!!+1Jei}b^K6Q(ht@Q`?kiVkTe_z8T75bYpi(XKT`z@6l;_Vz zjRfBdPtG`oW>g3TRPt{0cQ>$PxA4}Q!u9{5e@}kXg}x`*&WonAF4&#WAj-%$Z-JHP zH}+Qw_Pvb$t6JDpCU`ul-6G*^{PWG0)|mf0lRxj=yzbEXxnE=Irmj=o+Hw9@Y4?&i z^UZy{RRN2(d~j4UU0I!SjdQ-zx38Q%6C>63IK6$n$Y8=wJ+3Tmd-o@$tey9EUAb7X zW0Go<_Wzb6(cGI{iZT~lGOeGRIp6B~?Qb)S=hh!u^>)MOKR?gUR{Q63%th_7y}^yO zX&!g$lEUnz>SSg<$^Xy%T6uHU_2+3{|F8eLF!Ji_8@@xC@ke2lyVlyAyTC&pQpiwd3k6G^uPprDs^CCZ;z4`v{dGYz(E~Sk6 zeWxo5PaHS8)H!ec!+;kP{d7+%zM8sQ;s2H8)0$#eb~^`X&pvT7)oEE*5Kmdc(TPC< zDvb3@d{q1X2xgk76gnTQxN5~3==~`|J#*{!PWu_13ZZPG+)XOQw~pM*g{CJA%i_=mS9xpt$gk@xX=8*hdUN*u1U~tbF%e9Lp^18W3?GW`)-r5)8 zvR2F|H@P@B)Tra+brYk=UAGFlSsc4A^*pdV&CeHmD|YKDj;(UC6BA`*l8BI6nBb)}DXom!32&)bl-e z&h`BM&&7Y|U+I&6w4`j0`T5M_U+ev>?^Qh8@^~NfPpe*cwxa8Wj5S+ND?4kRsJ#9D ze`P=h|169D3v@J=t4h~JtQTfqek0J6L$!~q!Z>&1=F4J5f1m$4|5bj9!t-+qUW?eL zOJ3+ou{mv&6h{yTN-{h z^gGN@xXym-Q^&uPo_7Vry`IM?rk^% zj`w{ZO}DN)^!optvY7wRw>+M&|IgBTy3POC#@GM1q%5h7GFtb4|7R)vbNfF_UH@Ns zvf}Z~={>LQuZNt_-_o|=*xHaQlMA!zi<|fFQN4Jz&iMG`hDiQ1pZe-*qu&Z2czr!+ zUr6y{pMUeKW~H35`FSFI;^$*e)xRtDW*0ta)fBw$yin)SJ|1`@ovA9y_+WE=tm*y4xdVNleJ97K+i<>Xk)q^6%TdwxE z?&O8m`}SR4wT)x;CFdg*oeMwCoUJc1zw5)CiH4^YE>u3OxcI7YUgDBBe`EsWt}*hT z+_;?Ol;jHyHo4_bXKPmNk$U{unDx~1^xrQ(M6Yekc^L6QvvJe0#T*K&K3#V6Q+@dT zdyVRbf%wv6QZ zz9&h&nX|tZFX=M$d$_sM{`k$z{rmrYesw7P(k`y`|36PE{5yX-&-!V*<)T*1Ua|4p z$Hw?+cIHc1zMbwBKel#yRbXkY--8adbGLh(*B-s^v40xJt!v#Aj=AOO_fP+PJ9BDz z?R@Et8*3+aSn8C$3Eo%p+t(~j{M!u)@0cw+zb}`1`nTazz4rbmLEWYMa(7o(NlZ8@ zH9u^R+{b!*Ly**I~&>!%~$yv_O7_wITw{^~}==~eSWePW;7*=uj}_S4%X zcb|o{|2TH++Q-BjckH7%?`%50$-L&<a|@4e-`AV=)&1Cq_o26$rtF_u{515)v2(6Q z&+fE1A6fJ7oQUVOf2z-psMfz;wfR@k#*a%QEjebIPv}k1Ey`ZHOHt$J?H4l)o9)fw z#7$49Z8Ti7(U(tVPFag`z4mj7a;L{Og2w$EdCJ~AcCN!J%-0N85QKZUC?Q62)7lm zoRe*w*4%oP->y~Ibl;bgy|R1E4%?qra0uf+vh_Wi%o>V>hZ;6jDM(B`eD+<-*0T}6behiuXtYaz$USx`UGj-#hm+-< z3z^1T>#wYk^GMq~pXq*@&foZ@nTrDW%u81my(|3S9BXvbRH zv;%eD{AEr(-1cn-qqW79!?|yN%c?dM-+jWkLAKbFA@6t$AHyBP=}ZdcXHpq1$QE-l zlpVkGk9kjW-fzZxhTH!uJe~2{$Y0Daa?w0qhN|mlHD2gNyjEOvEC2l-PKWoqX3khB z{IM{q*3)aIVx05)U6S2q`){62xqd9J^03d9b<2&N_q5$BHP+LKGx=?$SD$o-Nm7Mz z@9VTR?G`cot(#W-Ugl&dyVuS5NcM~BYt8ywnkPKp*C)s_Ig7YtAiZdU5 z{Z~b=KI&N4_1&yDrt7GDnJv<-DX9}zUzfJ0@vUyxjz6-?r+5bH1+o0dcqz5M{rKfC zOK!*nthc(Fo!(xsz+gdyyf9*M-TyijK zLNb5s`d!oiwmmyMoxdq*f7R6|O^>e4__``GZbs{l_&EU+P8io+uP$M+u)IDsVum!E z(DeB+S>+|7%#N#*_hyB0uIVnRo)?_8uJgb4D88ss1^-?-y@duJYE`!76{Y)wgzwm;k*H>kU z-e-t4shrT$Fz2S0Gn`M<=C<3hE& z=9#0r+WI|T$}KSGbH2O#q+ZEfW{r2r-pX|`w-%?bH@U3qxw*G?)j0<%JyRC+ShmXb@{-pLL7_KqCcayy-fR#p?DpEgse)<4VM~z1 zuU0T^x?;k3XNBf-kb@mpG43l?*~Fex<(0Eh^lFZa*O7#?Zd2HswVx%mhq41*I9?Tmi8{JWc);>wbMSh(53BnP{1r>W{xJS#=jHiv)qRHMf%V4{zdFR% zwy5*|`gfFP0oPkW#(lpyJ~RFJ+s!GqgE2>MiMQ;5RZ0!__ea<+2$z4jQla_&{s_B< zaQQ^L%K|Urb>wfXKg{0v@2ES&yU;65_xI0OcKz&yqYmOf{&v5t%6ZH7;Jdz={EOe> zyZPVz?f%RD<=@fe4NrcF9eGrJX5###-)AV>cfU7uuMNAO-1p6o000<5EusJb literal 0 HcmV?d00001 diff --git a/doc/qtcreator/images/qtcreator-projects-environment.webp b/doc/qtcreator/images/qtcreator-projects-environment.webp new file mode 100644 index 0000000000000000000000000000000000000000..36011d22263463bf752ae30442bff0589d7ffe12 GIT binary patch literal 4728 zcmWIYbaN{ZVqge&bqWXzu<%J1Vqnle?HI!FHDdbz`<1s|#C@_7-u8W7+yOS0ck?7} zH~2;t(?1#J3FBB>WA37nTWqm(}}w;+`+!TK^xbVnyU7lkp)c*H zzMF95=2idfSzD@JWnZ#+b);WDMpeOg^OVE(y^}tDTy{-xbBgk$9m{Pm`+u*UR@G!* zdu8)g{m<`X)F;J1ldq9B(G`8HaxwaL#|z!MqGj6;r1g4!{_f^^dHa&b4&DzAZ0POK zSeQQf_Z1Uw%QM+WWcuDWtZOL!_3>Xn+qbrkx!+VJmu%lLlVyX+4)M>AHQy!}h&%jd zN}4S*@xuq^X5SqDKF9Ss%)HZCs%=abWtNFF?wPA1#dAndZ40LdOLk|5zzin#j>Tu3 z9;~=9FTt@-Q078Bb8^Ca4QnQa2eXY5m}ItpXXUxkvTlLkwpgYLDUsWgUtWC_F1>@% z+2KIKglZ&tsPXEFkt@Cp2~fNWy5TtPfodupH1qC5c^pB z#d_sZnFwLMYhO;!atnVazI;~4F_y=xRshj^{K&MO}}nhcC_c|{xcreb?@Ic zIrg^a_X69DRqOB8U-6$9ztZQ*g6G@x9S?999F}FCZgtM7+%8{G&{T1Ecu{C}*NTI| zlN>8!qaw17Z|$8WoatrsXhWAq)NZ3(0oR@K$37f)xq4{6{ZuC1YnM%%*VXqFo}O%G zx?%d(&WmQ34(xAQy>fNG( zxftGpEj?R%H}D>-WhimW|DGKDwk|+(O2?6}ca(OpZVB*B{_vn-PGRyInN8L{CeJJ* zr>|PKvAJVWL!gqcwoCHy;79X66kfahPMxvox~+-?@5JasUHcVN7*DKaoaLgDu_j7B z#XRKf>56k#3#8f1CpuPg1V-=H`S{Vv&Z$3(vnIvx!4yr4HfHU|`!4AEYZdzJuJ0A; zZR!leHUCbZhz9a3d8Y!OxHZ-!d{@wwiX25fXI2BzoR!Bqw)(K_ z&d{sUd$3V8f$P|`No8CYL^dql7IlUtQT(i6xYzrNoWxIwMmK_@b!<;rJ| zYI^f5S+RKO#~%%hwihSwH8?(1=R(d$S;ZTSjp_cHXKGHcTt21p>Dle2Cm25^#vRvH zcQq{!ijm-F7rSmH=H@fdWuLgcFZ|SN zHrbG%!_nc7&u(6-HBH>)ed+eEDdkG$lc#j9+O7J{N;uQ&;%hw|{w*TlLMViJi}{t1WH)$nfih>1v%HW-s116v$WE&Ni@|z_)CwpLh21 z&x=_F&%S5N^S$i6gL#L`v#HG2E?4I(Us+PUxbXcU@rSoQT2waa)=H!#E!a4{x53x; zP9v+t4Mwv+RsC}w%(GPyzkFcJrHrfRyTvv}iBzs`#jLKAJ%MDBW>mOde z^|53vbF(jxkZuqA-aDtK1(wyAbx)MFaN2T*t9lxTURJK|#>Ekym+cdy*G$RuIVD`A zkrTCY%hqijFY2s0_1Cexe2;!r{P<|V--rs=)5}G--e~&&M)ma>SK))xUTv9?k|LhE zFn@7DUo@Y1KH0nF=_X~tpTf^JifmXaw^`!&;oRRE zFE+OBknwGMc_G`GckfNz=QV7#W$u$N>bx|){qp{Dd*!VsEEjU$6_j4JTUF)ujX(Dz zrpxoM`CcddRkD1}j(-RCF&aNew~)K1zk8+8%H6;F?%uZ+PBs7CxALuDta_^X^K(C! z9%u>Nv~K^&I|7f}*6VN5n=-R;yQHU$j@{PpU(5eLe0-qnd6&Pe$aB`rt~d&123W8LtEX`Ri=6WF}NGQD>nD3^q1**kLSd{(~|ur zd(-UC(vnU0k6$Q!^#00E)r}X|JM-G-&DV{o{%d#tLC(Wl{|Df|H2-=IuK^@hh>g_oGpWL^HtW<7a6x5y721J zRQB`-8IyzM^e@ZID=t4Od$V=j-#-iIS|6NlYjuNrZpk~X-xlI}3}4@C2G?spJNanp z-sXnS7ndY9UwvG^`+x4@)ju5{?=_Zd;`Q9;W5f4r_q!XVTJKJ5J1G759YaO-*3I*j z%P#F-9?DSCb1Z&&LBa+r^F0-EvJCI1nC~rTn>+L7f=B8FM{Zu^>;E`s+xh8{`#Tdn z-n?1&{CQfzDY4w9xe~vY?$6%;PA#YB!%^Rv(p=X>=J8B!YX~-zGWE}sdoaJZMfp_l z2FH`rOSz7^bNnf}z4J0Z+sSj6PVQ6Q{a@h*XZm0ZV-5AOL?eb8#{HOsvkU9%#m7+CAwj+mi;d$-QV>7kFG&lhz)tK&7p zHAR}+*ppA|ompw+-2-cn2sSaNt(f%FXVRtv*EWdSi5N6box;rhIaO76{}M6b()DYO zStPV+%{)K-q}9y?yGciqb(Uy)Ml-OU2~hn!QzbOf)3zXdnf%eD%#gd8g)FRR5>%fa z*j010Yg+yOxh*r_<(q|HNfI$|o_gl_=@jYRAmX)=XG=<{n&-BScJa&1ZrH|e+o!bl z=ccbBnP;c3UG9;+FUQt3>~pGU;V0dfvoB3okzVz8w$mlcI^G+`@nu_oh)pWq*ZF3a zzO~BpnxyMBH`OQg`F>8l)EE0XbrYQMI;66Pb!VhP@w+=~4rq#~eNLTO!Chmfd%`O3 z+dZb3v<5@_G?4m}HIZ!Js_o`WrPS<&3HeN7etqh*rrPJTU$!mSQ#j>=ujZQUlo%tu zTp2d@D@82G8ZZ=iqKGT1*X6Bk?qsdd+N}v5ynS6B9p0h@J zW-B+GyQp@SA&18@HEo9JW`@5r&Z?~Bs`*=e?#>>OX8X7#u@JV&KR1P}xtu<^>2N{C zwCz8amS)ZL{BN7yD4bQ)^!3Y`Yga4^SGE~!5IA>o&#YiIkT1bObJ8bhB2P$V%A^$8 z>`$q$T4Fz^PC9p8b@#K=tDels_qgx$?acJ8^~|2X_CKxJ^-5TJ)vL^{f6T9mE>(2? z+>vWBaY^M7vk4xTZIYx9{V$*Gb5?oVJf)SNJJxPL@yaIYwRZoWS?)dti4kXZN6wwW z|18?|&8K}C8#-NomSQ`=Up$j@AS^IgYB_le^FmrCW&%{r^hrpDtOtJGw9#7a+aFN0oDVewzVr?cF3 zdRJM8O1~BfEcU#`l=H~IqB6qs^7SREWk+%j9AmzkEw@p$^Sqj1b(*VgA7{tj$e`IV zS8ho)t+;NJv@+zr!mYVdLTRx|pT1gmn)n8bb389w%(v+5p3Ecdd!Gqz&f(kGHRYM$ z>M!>3VIMR1ow@V0;qMZwx9{Dc$=%+$FO?c;`nYofA_xu9&%d(yqD3+FpgP@YrG@_3?n@nVBmK_xYq6dGZH8Kdtrm zz4*pU|LX)l@0l)cp*^EzyTbY9?2@k(3mZSFe|@9jw!h;t*ZPh%D;UZeGImwFeA%({ zp0?J`GeSz*$Mxz~Nc>eg_p!|H!KY{iT_T$_|#z#|vxuO^J zE@sJAC`hY3ZEB=9GrU0chU%ln+|66BcKMt!OS@fmBUK?{{_N;$bqX&W1#Vq=Z5Z$> zG5ZGB{l>$rPkq0dYqFmk8?`qoR70U|u-MqJJO7gva*GA?Cy|+`&U0E1^ zLc{@ahy#8cjzPsQh+oG8>uits2^qXbp zqiItX#vd_RV{GmxskYp#{^?rgWgDly-<~$Zbd5?D@5J@?Gxev3wUvu$ywabrGwa;< zXC_5U@0TQ)ov<-BnjK%3nVPiVp1s5T{zYDorU`yOzG+XX)^UgR>T?&z^dxwG`|Wz> zDM+AL}l=$C!u+-~0aB7ePU6-3KD z-ba7(7VP}evBLC-xXJV-`VDV#*4Zb0xp!{0_x_Fz(k_YF9gDgdc1PS#d%1V+dA866 zKVO>NkW!KfP~F \uicontrol Nim > \uicontrol Tools, and enter the path to the tool executable in the \uicontrol Path field. - \sa {Document code} - \else - \include qtcreator-variables.qdocinc qtcreator variables + \sa {Document code}, {Use Qt Creator variables} \endif */ 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 8ebbaa74d4b..0a89789d4a7 100644 --- a/doc/qtcreator/src/editors/creator-only/creator-language-server.qdoc +++ b/doc/qtcreator/src/editors/creator-only/creator-language-server.qdoc @@ -81,7 +81,7 @@ \li In the \uicontrol Name field, enter a name for the language server. Select the \inlineimage icons/replace.png (\uicontrol {Variables}) button to use a variable for the server - name. For more information, see \l{Using Qt Creator Variables}. + name. For more information, see \l{Use Qt Creator variables}. \li In the \uicontrol {Language} field, select \uicontrol {Set MIME Types} to select the MIME types of the files to send to the language server. In the field below, you can enter file @@ -113,7 +113,7 @@ \li In the \uicontrol Name field, enter a name for the language server. Select the \inlineimage icons/replace.png (\uicontrol {Variables}) button to use a variable for the server - name. For more information, see \l{Using Qt Creator Variables}. + name. For more information, see \l{Use Qt Creator variables}. \li In the \uicontrol Java field, enter the path to the Java executable. \li In the \uicontrol {Java Language Server} field, enter the path to the Java language server \c .jar file. You can download the Java diff --git a/doc/qtcreator/src/howto/creator-external-tools.qdoc b/doc/qtcreator/src/howto/creator-external-tools.qdoc index 53ba24a3f4b..3f29dfc57bf 100644 --- a/doc/qtcreator/src/howto/creator-external-tools.qdoc +++ b/doc/qtcreator/src/howto/creator-external-tools.qdoc @@ -35,10 +35,12 @@ \image qtcreator-external-tools.png + \if defined(qtcreator) Select the \inlineimage icons/replace.png (\uicontrol {Variables}) button in a field to select from a list of - \l{Using Qt Creator Variables}{variables} that are available in a + \l{Use Qt Creator variables}{variables} that are available in a particular context. + \endif To configure external tools: @@ -71,8 +73,8 @@ \if defined(qtcreator) \li In the \uicontrol {Base environment} field, select whether to run - the tool in the system environment or the \l{Build Environment} - {build environment} or \l {Selecting the Run Environment} + the tool in the system environment or the \l{Specify the environment for projects} + {build environment} or \l {Specify the run environment} {run environment} of the active project. Select the build or run environment if the system environment does not have the necessary PATH settings to find the tool chain, for example. @@ -82,20 +84,12 @@ \li In the \uicontrol Environment field, select \uicontrol Change to modify environment variable values for build and run environments in - the \uicontrol {Edit Environment Changes} dialog. - \if defined(qtcreator) - For more information about how to add and remove variable values, - see \l{Batch Editing}. - \endif - + the \uicontrol {Edit Environment} dialog. To globally change the system environment from the one in which \QC is started, select \preferences > \uicontrol Environment > \uicontrol System, and then select \uicontrol Change in the \uicontrol Environment field. - \if defined(qtcreator) - For more information, see \l{Specifying Environment Settings}. - \endif \li Select the \uicontrol {Modifies current document} check box to make sure that if the current document is modified by the tool, it is saved @@ -121,6 +115,11 @@ configuration file to the folder. \sa {Run QML files}, {Use external text editors}, {Use Qt Linguist} + + \if defined(qtcreator) + \sa {Batch edit environment settings}, {Specify the environment for projects}, + {Use Qt Creator variables} + \endif */ /*! diff --git a/doc/qtcreator/src/projects/creator-only/creator-build-settings-qmake.qdoc b/doc/qtcreator/src/projects/creator-only/creator-build-settings-qmake.qdoc index 2d427ee15aa..ea95ce05924 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-build-settings-qmake.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-build-settings-qmake.qdoc @@ -21,7 +21,7 @@ checkbox. Select the build directory in the \uicontrol {Build Directory} field. You - can use the \l{Using Qt Creator Variables}{variables} that are listed when + can use the \l{Use Qt Creator variables}{variables} that are listed when you select the \inlineimage icons/replace.png (\uicontrol {Variables}) button. diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-kits.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-kits.qdoc index 3e1f9fcd62e..dc0fe3abc42 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-projects-kits.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-projects-kits.qdoc @@ -151,7 +151,7 @@ \li Select \uicontrol Change to modify environment variable values for build environments in the \uicontrol {Edit Environment Changes} dialog. For more information about how to add and remove variable - values, see \l{Batch Editing}. + values, see \l{Batch edit environment settings}. \row \li \uicontrol {Force UTF-8 MSVC compiler output} \li Either switches the language of MSVC to English or keeps the diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-build.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-build.qdoc index 3a54e8e4e7e..222c7e5d48f 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-build.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-build.qdoc @@ -110,10 +110,8 @@ tested or grouping commands, are not supported because the value of the \uicontrol Executable field is always placed first when constructing the command. - You can use \l {Using Environment Variables}{environment variables} as - values in the fields. In addition, you can \l {Using Qt Creator Variables} - {use \QC variables} in arguments, executable paths, and working - directories. + You can \l {Use Qt Creator variables}{use \QC variables} in arguments, + executable paths, and working directories. \section1 Build Steps diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-environment.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-environment.qdoc index 4459d0b9063..504f9d02732 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-environment.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-environment.qdoc @@ -1,16 +1,17 @@ -// Copyright (C) 2021 The Qt Company Ltd. +// Copyright (C) 2023 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only /*! - \previouspage creator-build-dependencies.html - \page creator-project-settings-environment.html - \nextpage creator-custom-output-parsers.html + \page creator-how-set-project-environment.html + \previouspage creator-how-tos.html - \title Specifying Environment Settings + \ingroup creator-how-to-projects - You can specify the environment you want to use for building - a project in the \uicontrol {Build Environment} section of - the \uicontrol {Build Settings}. + \title Specify the environment for projects + + The environment for a project is determined according to a settings hierarchy: + + \image qtcreator-environment-settings-hierarchy.webp {Environment settings hierarchy} By default, the environment in which \QC was started is used and modified to include the Qt version. Depending on the selected Qt version, \QC @@ -18,36 +19,109 @@ existing environment variables or add, reset and unset new variables based on your project requirements. - To globally change the system environment from the one in which - \QC is started, select \preferences > - \uicontrol Environment > \uicontrol System, and then select - \uicontrol Change in the \uicontrol Environment field. + The final environment is specified separately for each kit. With + project-specific environment settings you can change the environment for + all kits that you use to build, deploy, and run the project simultaneously, + rather than having to change it separately for each kit. + + The changes are stored in the local project-specific \c{CMakeLists.txt.user} + or \c{.pro.user} file, depending on the build system you use, such as CMake + or qmake. Therefore, they are not suitable for sharing between developers or + development PCs. To share settings, incorporate them into the build system. + For example, if you use CMake, make the changes in the \c {CMakeLists.txt} + file, and if you use qmake, make the changes in the \c{.pro} file. + + \section1 Globally change the environment + + To globally change the environment from the one in which \QC is started, + select \preferences > \uicontrol Environment > \uicontrol System, and then + select \uicontrol Change in the \uicontrol Environment field. \image qtcreator-preferences-environment-system.webp "Environment preferences System tab" - In addition, you can specify custom environment variables in the - \uicontrol {Project Settings} > \uicontrol Environment settings. - They are added to all build environments. The final build environment - is specified separately for each kit. The project-specific environment - settings enable you to amend the build environment for all kits that - you use to build the project simultaneously, rather than having to edit - it separately for each kit. + \section1 Change the environment for a project - \image qtcreator-build-environment.png "Build Environment" + To change the system environment for a project from the one in which + \QC is started, select \uicontrol Projects > \uicontrol {Project Settings} + > \uicontrol Environment. - The changes are stored in the local project specific \c{CMakeLists.txt.user} - or \c{.pro.user} file, depending on the build system you use. Therefore, - they are not suitable for sharing between developers or development PCs. To - share settings, incorporate them into the build system. For example, if you - use CMake, make the changes in the \c {CMakeLists.txt} file, and if you use - qmake, make the changes in the \c{.pro} file. + \image qtcreator-projects-environment.webp {Environment tab in Project Settings} - \section1 Batch Editing + \section1 Specify the build environment - To modify environment variable values for build or run environments, - select \uicontrol {Batch Edit} in the \uicontrol {Build Environment} - or \uicontrol {Environment} pane and enter environment variables in - the \uicontrol {Edit Environment} dialog. + Specify the build environment to use for a kit in \uicontrol Projects > + \uicontrol {Build Settings} > \uicontrol {Build Environment}. + + \image qtcreator-build-environment.png {Build Environment section in Build Settings} + + \section2 Clear the build environment + + To build with a clean system environment, select the \uicontrol {Clear + system environment} check box. \QC discards the current environment, and + populates a clean system environment with the environment variables that + the compilers and tools need. Therefore, the environment is never totally + empty, even after you clear it. + + \section1 Specify the run environment + + \QC automatically selects the environment used for running the application + based on the \l{glossary-device}{device} type. You can edit the environment + or select another environment in \uicontrol Projects > + \uicontrol {Run Settings} > \uicontrol {Environment}. + + You can edit existing environment variables or add, reset and unset new + variables. + + \image qtcreator-run-environment.png {Environment section in Run Settings} + + When running on the desktop, the \uicontrol {Build Environment} is used by + default, but you can also use the \uicontrol {System Environment} without the + additions made to the build environment. + + To modify the environment variable values for the run environment, + double-click environment variables or their values and change them inline, + or select \uicontrol {Batch Edit} to change several variable values at a + time. + + \section2 Clean the run environment + + To run in a clean system environment, select \uicontrol {Clean Environment}. + + \section2 Run on devices + + When running on a mobile device connected to the development host, \QC + fetches information about the \uicontrol {Device Environment} from the device. + Usually, it does not make sense to edit the device environment. + + \sa {Batch edit environment settings}, {Specifying Build Settings}, + {Specifying Run Settings}, {Use Qt Creator variables} +*/ + +/*! + \page creator-how-to-batch-edit-environment-settings.html + \previouspage creator-how-tos.html + + \ingroup creator-how-to-projects + + \title Batch edit environment settings + + You can change the environment variable values for build or run environments + either for a particular project or globally for all projects in the + \uicontrol {Edit Environment} dialog: + + \list + \li To change values globally, select \uicontrol Change in the + \l {Globally change the environment}{global environment preferences}. + \li To change values for a project, select \uicontrol {Batch Edit} in the + \l {Change the environment for a project}{project}, + \l {Specify the build environment}{build}, or + \l {Specify the run environment}{run} environment settings. + \endlist + + \image qtcreator-edit-environment.webp {Edit Environment dialog} + + Use the following syntax to enter environment variable names and values: + \c {=}. To remove a variable value from the environment, enter the variable name. For example, \c TEST sets the value of the \c TEST variable empty when @@ -70,21 +144,6 @@ To temporarily disable a variable, add a hash character (#) to the beginning of the line. - \section1 Clearing the System Environment - - To build with a clean system environment, select the \uicontrol {Clear - system environment} check box. \QC discards the current environment, and - populates a clean system environment with the environment variables that - the compilers and tools need. Therefore, the environment is never totally - empty, even after you clear it. - - \section1 Using Environment Variables - - You can use any environment variables in build, deploy, and run - configurations. For a list of variable names, select \uicontrol {Build - Settings} > \uicontrol {Build Environment} > \uicontrol Details. - Environment variables are referenced using the native syntax: $VARNAME - or ${VARNAME} on Unix and %VARNAME% on Windows. - - \include qtcreator-variables.qdocinc qtcreator variables + \sa {Specify the environment for projects}, {Specifying Build Settings}, + {Use Qt Creator variables} */ diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-overview.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-overview.qdoc index 6a15f763200..ab8a2f164ba 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-overview.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-overview.qdoc @@ -14,13 +14,12 @@ \title Configuring Projects - When you install Qt for a target platform, such as Android or QNX, - \l{https://www.qt.io/download-qt-installer}{\QOI} - creates \l{glossary-buildandrun-kit}{kits} for the development - targets. + When you install Qt for a development or target platform, such as Linux, + \macos, Windows, Android or QNX, \l{https://www.qt.io/download-qt-installer} + {\QOI} creates \l{glossary-buildandrun-kit}{kits} for the development targets. - Select the kits to use in the \uicontrol {Configure Projects} - view when you open a project for the first time. At least one kit must be + Select the kits to use for a project in the \uicontrol {Configure Projects} + view when you open the project for the first time. At least one kit must be active. To maintain the list of active kits for a currently open project, switch to @@ -29,7 +28,7 @@ \image qtcreator-projects-kits.webp {Sidebar in the Projects mode} To specify build or run settings for a kit, select \uicontrol Build or - \uicontrol Run below the kit. + \uicontrol Run below the kit name. \section1 Overriding Global Preferences @@ -45,7 +44,7 @@ \li \l{Specify dependencies}{Dependencies} \li \l{Document code}{Documentation Comments} \li \l{Specify editor settings}{Editor} - \li \l{Specifying Environment Settings}{Environment} + \li \l{Specify the environment for projects}{Environment} \li \l{Applying Refactoring Actions}{Quick Fixes} \li \l{To-Do Entries}{To-Do} (experimental) \endlist @@ -69,7 +68,7 @@ lists the kits that are compatible with your project. To activate one or more kits, click them. - \image qtcreator-project-kits.png + \image qtcreator-project-kits.png {List of kits in Projects mode sidebar} The list displays kits from \preferences > \uicontrol Kits. Warning and error icons indicate that the kit configuration diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-run-desktop.qdocinc b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-run-desktop.qdocinc index caadbe3b463..74e6357ee7b 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-run-desktop.qdocinc +++ b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-run-desktop.qdocinc @@ -27,7 +27,7 @@ To run with special environment variables set up, select them in the \uicontrol {Run Environment} section. For more information, see - \l {Selecting the Run Environment}. + \l {Specify the run environment}. When building an application, \QC creates a list of directories where the linker will look for libraries that the application links to. By diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-run.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-run.qdoc index e574c00a4c3..14205f59db2 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-run.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-run.qdoc @@ -95,31 +95,6 @@ \include creator-projects-settings-run-qnx.qdocinc run settings qnx \include linux-mobile/creator-projects-settings-run-b2qt.qdocinc run settings boot2qt - \section1 Selecting the Run Environment - - \QC automatically selects the environment used for running the application - based on the \l{glossary-device}{device} type. You can edit the environment - or select another environment in the \uicontrol {Run Environment} section. - - You can edit existing environment variables or add, reset and unset new - variables. - - \image qtcreator-run-environment.png {Run Environment section} - - When running on the desktop, the \uicontrol {Build Environment} is used by - default, but you can also use the \uicontrol {System Environment} without the - additions made to the build environment. For more information, see - \l {Build Environment} and \l{Specifying Environment Settings}. - - To run in a clean system environment, select \uicontrol {Clean Environment}. - - When running on a mobile device connected to the development host, \QC - fetches information about the \uicontrol {Device Environment} from the device. - Usually, it does not make sense to edit the device environment. - - To modify the environment variable values for the run environment, select - \uicontrol {Batch Edit}. For more information, see \l{Batch Editing}. - \section1 Specifying a Custom Executable to Run If you use CMake, Meson or the generic project type in \QC, or want diff --git a/doc/qtcreator/src/projects/qtcreator-variables.qdocinc b/doc/qtcreator/src/projects/creator-only/qtcreator-how-to-use-qtc-variables.qdoc similarity index 64% rename from doc/qtcreator/src/projects/qtcreator-variables.qdocinc rename to doc/qtcreator/src/projects/creator-only/qtcreator-how-to-use-qtc-variables.qdoc index eef38706981..cf8100a68ae 100644 --- a/doc/qtcreator/src/projects/qtcreator-variables.qdocinc +++ b/doc/qtcreator/src/projects/creator-only/qtcreator-how-to-use-qtc-variables.qdoc @@ -1,13 +1,19 @@ -// Copyright (C) 2021 The Qt Company Ltd. +// Copyright (C) 2023 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only /*! -//! [qtcreator variables] - \section1 Using Qt Creator Variables + \page creator-how-to-use-qtc-variables.html + \previouspage creator-how-tos.html - You can use \QC variables in arguments, executable paths, and working - directories. The variables take care of quoting their expansions, so you do - not need to put them in quotes. + \ingroup creator-how-to-projects + + \title Use Qt Creator variables + + You can use \QC variables in \uicontrol Preferences, + \uicontrol {Build Settings}, and \uicontrol {Run Settings}, in fields that + set arguments, executable paths, and working directories, for example. The + variables take care of quoting their expansions, so you do not need to put + them in quotes. Select the \inlineimage icons/replace.png (\uicontrol {Variables}) button in a field to select from a list of @@ -15,7 +21,7 @@ For more information about each variable, move the cursor over it in the list. - \image qtcreator-variables.png "Qt Creator Variables dialog displaying a tooltip" + \image qtcreator-variables.png {Qt Creator Variables dialog showing a tooltip} The following syntax enables you to use environment variables as \QC variables: %{Env:VARNAME}. @@ -38,7 +44,7 @@ backreferences. For example, if \c %{variable} is \c my123var, then \c %{variable/(..)(\d+)/\2\1} is expanded to \c {123myvar}. - Instead of the forward slash, you can also use the pound sign (\c #) as + Instead of the forward slash, you can also use the number sign (\c #) as the substitution character. This can be helpful if the value is supposed to be a file path, in which case forward slashes might get translated to backslashes on Windows hosts. @@ -48,5 +54,6 @@ \badcode %{variable:-default} \endcode -//! [qtcreator variables] + + \sa {Specify the environment for projects}, {Specifying Build Settings}, */ diff --git a/doc/qtcreator/src/qtcreator-toc.qdoc b/doc/qtcreator/src/qtcreator-toc.qdoc index 0e3f3883d51..ad60462b0f4 100644 --- a/doc/qtcreator/src/qtcreator-toc.qdoc +++ b/doc/qtcreator/src/qtcreator-toc.qdoc @@ -39,7 +39,6 @@ \li \l{Conan Build Configuration} \endlist \li \l{Specifying Run Settings} - \li \l{Specifying Environment Settings} \li \l{Using Custom Output Parsers} \li \l{Sharing Project Settings} \endlist