From 7781e852e0131d8e64d83904db0c6cb54f0a584d Mon Sep 17 00:00:00 2001 From: David Schulz Date: Mon, 16 Sep 2024 07:17:33 +0200 Subject: [PATCH 01/22] TextEditor: Fix crash after request provider destruction If an assist provider gets destructed while a code assist request is running we need to cancel the running request and reset the provider. Otherwise we might try to cast the deleted provider in CodeAssistantPrivate::isDestroyEvent. Which is called whenever the texteditor is changed. Fixes: QTCREATORBUG-31563 Change-Id: Iaec36c6ca73ba5e6795c1c3847da8b30fd446ffc Reviewed-by: Eike Ziller --- src/plugins/texteditor/codeassist/codeassistant.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/plugins/texteditor/codeassist/codeassistant.cpp b/src/plugins/texteditor/codeassist/codeassistant.cpp index 0bdf34efaba..27f8f8fe259 100644 --- a/src/plugins/texteditor/codeassist/codeassistant.cpp +++ b/src/plugins/texteditor/codeassist/codeassistant.cpp @@ -183,6 +183,8 @@ void CodeAssistantPrivate::requestProposal(AssistReason reason, m_assistKind = kind; m_requestProvider = provider; + connect( + m_requestProvider, &QObject::destroyed, this, &CodeAssistantPrivate::cancelCurrentRequest); IAssistProcessor *processor = provider->createProcessor(assistInterface.get()); processor->setAsyncCompletionAvailableHandler([this, reason, processor]( IAssistProposal *newProposal) { @@ -367,6 +369,8 @@ void CodeAssistantPrivate::invalidateCurrentRequestData() { m_processor = nullptr; m_requestProvider = nullptr; + disconnect( + m_requestProvider, &QObject::destroyed, this, &CodeAssistantPrivate::cancelCurrentRequest); m_receivedContentWhileWaiting = false; } From 9a79c669dac8c9cdfb1818ed2881a6149f342f81 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Tue, 17 Sep 2024 10:24:12 +0200 Subject: [PATCH 02/22] EditorManager: Fix crash on shutdown Some plugins (Debugger) do a "delayed" shutdown, which triggers an event loop and the processing of async EditorArea "hidden" signals. The Debug mode is already deleted then, which leads to a crash when the "hidden" handler investigates the current mode. We don't need to do anything anymore when areas are hidden while shutting down, so just skip ahead in that case. Amends b7167838a3808d89a5f32831bac2ec3aba2bb435 Change-Id: Iaf41750df213908ba1e5b19ceae418abea76ad58 Reviewed-by: Christian Stenger --- src/plugins/coreplugin/editormanager/editormanager.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp index 1112620431f..bb0b65ebaf8 100644 --- a/src/plugins/coreplugin/editormanager/editormanager.cpp +++ b/src/plugins/coreplugin/editormanager/editormanager.cpp @@ -1863,6 +1863,8 @@ void EditorManagerPrivate::addEditorArea(EditorArea *area) &EditorArea::hidden, d, [area = QPointer(area)] { + if (ExtensionSystem::PluginManager::isShuttingDown()) + return; // The connection is queued, because the hiding might be very short term, e.g. // when switching between Edit and Debug modes. Check if it is still hidden. const auto isReallyVisibile = [](QWidget *w) { From 249b9f148ffc9dbc61f6c58180dbf5b73c92e3e1 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Tue, 17 Sep 2024 11:10:42 +0200 Subject: [PATCH 03/22] COIN: Minimal fix for building cdbextension The default for the cdbextension is now to build for arm64, x32 and x64, but the PRECHECK only deploys Python for Intel64. As a quick fix just restrict the cdbextension build to x64. The full fix is already in master branch. Change-Id: I7adc6200ca8d95d1785f1aa9dea2c641d59af1ee Reviewed-by: Cristian Adam --- coin/instructions/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coin/instructions/build.yaml b/coin/instructions/build.yaml index b98cfbafbcc..d7e622e99f4 100644 --- a/coin/instructions/build.yaml +++ b/coin/instructions/build.yaml @@ -121,7 +121,7 @@ instructions: maxTimeBetweenOutput: 360 userMessageOnFailure: "Failed to extract LLVM package, check logs." - type: ExecuteCommand - command: "python -u {{.AgentWorkingDir}}\\qt-creator\\qt-creator\\scripts\\build.py --build-type {{.Env.QTC_BUILD_TYPE}} --src {{.AgentWorkingDir}}\\qt-creator\\qt-creator --build {{.AgentWorkingDir}}\\qt-creator\\qt-creator_build --qt-path {{.AgentWorkingDir}}/build/qt_install_dir --python-path {{.AgentWorkingDir}}\\build\\qt_temp\\python --elfutils-path {{.AgentWorkingDir}}\\buid\\qt_temp\\elfutils --llvm-path {{.AgentWorkingDir}}\\build\\qt_temp\\libclang {{.Env.QTC_TEST_OPTION}} --no-zip {{.Env.QTC_SCCACHE_C_OPTION}} {{.Env.QTC_SCCACHE_CXX_OPTION}} {{.Env.QTC_SCCACHE_ENABLE_OPTION}}" + command: "python -u {{.AgentWorkingDir}}\\qt-creator\\qt-creator\\scripts\\build.py --build-type {{.Env.QTC_BUILD_TYPE}} --src {{.AgentWorkingDir}}\\qt-creator\\qt-creator --build {{.AgentWorkingDir}}\\qt-creator\\qt-creator_build --qt-path {{.AgentWorkingDir}}/build/qt_install_dir --python-path {{.AgentWorkingDir}}\\build\\qt_temp\\python --elfutils-path {{.AgentWorkingDir}}\\buid\\qt_temp\\elfutils --llvm-path {{.AgentWorkingDir}}\\build\\qt_temp\\libclang {{.Env.QTC_TEST_OPTION}} --no-zip {{.Env.QTC_SCCACHE_C_OPTION}} {{.Env.QTC_SCCACHE_CXX_OPTION}} {{.Env.QTC_SCCACHE_ENABLE_OPTION}} --add-config=-DQTCREATORCDBEXT_BUILD_ARCHS=x64" maxTimeInSeconds: 36000 maxTimeBetweenOutput: 3600 userMessageOnFailure: "Failed to run build.py, check logs." From e986dc8938050a8d14a092f15ad875603df80c97 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Tue, 17 Sep 2024 14:14:41 +0200 Subject: [PATCH 04/22] CppEditor: Fix a crash on concurrent access to knownNames Fixes: QTCREATORBUG-31569 Change-Id: Ic7248facf78c7778aae50a598c01c77e6b2897c1 Reviewed-by: Christian Kandeler Reviewed-by: hjk --- src/plugins/cppeditor/cpptoolsreuse.cpp | 28 ++++++++++++------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/plugins/cppeditor/cpptoolsreuse.cpp b/src/plugins/cppeditor/cpptoolsreuse.cpp index 7be177c2c1b..40576da3d24 100644 --- a/src/plugins/cppeditor/cpptoolsreuse.cpp +++ b/src/plugins/cppeditor/cpptoolsreuse.cpp @@ -146,22 +146,22 @@ void moveCursorToStartOfIdentifier(QTextCursor *tc) static bool isOwnershipRAIIName(const QString &name) { - static QSet knownNames; - if (knownNames.isEmpty()) { + static const QSet knownNames { // Qt - knownNames.insert(QLatin1String("QScopedPointer")); - knownNames.insert(QLatin1String("QScopedArrayPointer")); - knownNames.insert(QLatin1String("QMutexLocker")); - knownNames.insert(QLatin1String("QReadLocker")); - knownNames.insert(QLatin1String("QWriteLocker")); - // Standard C++ - knownNames.insert(QLatin1String("auto_ptr")); - knownNames.insert(QLatin1String("unique_ptr")); - // Boost - knownNames.insert(QLatin1String("scoped_ptr")); - knownNames.insert(QLatin1String("scoped_array")); - } + "QMutexLocker", + "QReadLocker", + "QScopedArrayPointer", + "QScopedPointer", + "QWriteLocker", + // Standard C++ + "auto_ptr", + "unique_ptr", + + // Boost + "scoped_array", + "scoped_ptr", + }; return knownNames.contains(name); } From 151f9e7d04433263933ff8e1ceaf59ff535a8e99 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Thu, 12 Sep 2024 15:41:32 +0200 Subject: [PATCH 05/22] Python: Fix enabled state for generate kit button Ensure the generate kit button for a python interpreter is only enabled if we can add a kit for this python. Basically disallows (local) python with incorrect paths. Change-Id: I3ca7b1fefb453837894a7ad6f39a446394fe2c4b Reviewed-by: David Schulz --- src/plugins/python/pythonsettings.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/plugins/python/pythonsettings.cpp b/src/plugins/python/pythonsettings.cpp index bfc411c6c2f..ba74146053e 100644 --- a/src/plugins/python/pythonsettings.cpp +++ b/src/plugins/python/pythonsettings.cpp @@ -155,6 +155,7 @@ private: void currentChanged(const QModelIndex &index, const QModelIndex &previous); void detailsChanged(); void updateCleanButton(); + void updateGenerateKitButton(const Interpreter &interpreter); void addItem(); void deleteItem(); void makeDefault(); @@ -283,10 +284,10 @@ void InterpreterOptionsWidget::currentChanged(const QModelIndex &index, const QM emit m_model.dataChanged(previous, previous); } if (index.isValid()) { - m_detailsWidget->updateInterpreter(m_model.itemAt(index.row())->itemData); + const Interpreter interpreter = m_model.itemAt(index.row())->itemData; + m_detailsWidget->updateInterpreter(interpreter); m_detailsWidget->show(); - m_generateKitButton->setEnabled( - !KitManager::kit(Id::fromString(m_model.itemAt(index.row())->itemData.id))); + updateGenerateKitButton(interpreter); } else { m_detailsWidget->hide(); m_generateKitButton->setEnabled(false); @@ -299,8 +300,10 @@ void InterpreterOptionsWidget::detailsChanged() { const QModelIndex &index = m_view->currentIndex(); if (index.isValid()) { - m_model.itemAt(index.row())->itemData = m_detailsWidget->toInterpreter(); + const Interpreter interpreter = m_detailsWidget->toInterpreter(); + m_model.itemAt(index.row())->itemData = interpreter; emit m_model.dataChanged(index, index); + updateGenerateKitButton(interpreter); } updateCleanButton(); } @@ -312,6 +315,13 @@ void InterpreterOptionsWidget::updateCleanButton() })); } +void InterpreterOptionsWidget::updateGenerateKitButton(const Interpreter &interpreter) +{ + bool enabled = !KitManager::kit(Id::fromString(interpreter.id)) + && (interpreter.command.needsDevice() || interpreter.command.isExecutableFile()); + m_generateKitButton->setEnabled(enabled); +} + void InterpreterOptionsWidget::addItem() { const QModelIndex &index = m_model.indexForItem( From 26372392d8986f90b95c203032d2b2ec43877a41 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Thu, 12 Sep 2024 15:13:42 +0200 Subject: [PATCH 06/22] Python: Allow kit creation for virtual environments This had been intentionally disabled before, but we still should permit to explicitly create a kit for a registered virtual environment if the user requests so. Change-Id: I677c0c5093bedd1a9f50e73da173db09195e128e Reviewed-by: David Schulz --- src/plugins/python/pythonsettings.cpp | 19 ++++++++++--------- src/plugins/python/pythonsettings.h | 2 +- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/plugins/python/pythonsettings.cpp b/src/plugins/python/pythonsettings.cpp index ba74146053e..b53977c3966 100644 --- a/src/plugins/python/pythonsettings.cpp +++ b/src/plugins/python/pythonsettings.cpp @@ -580,7 +580,7 @@ void InterpreterOptionsWidget::generateKit() { const QModelIndex &index = m_view->currentIndex(); if (index.isValid()) - PythonSettings::addKitsForInterpreter(m_model.itemAt(index.row())->itemData); + PythonSettings::addKitsForInterpreter(m_model.itemAt(index.row())->itemData, true); m_generateKitButton->setEnabled(false); } @@ -808,19 +808,20 @@ static void setRelevantAspectsToKit(Kit *k) k->setRelevantAspects(relevantAspects); } -void PythonSettings::addKitsForInterpreter(const Interpreter &interpreter) +void PythonSettings::addKitsForInterpreter(const Interpreter &interpreter, bool force) { if (!KitManager::isLoaded()) { - connect(KitManager::instance(), &KitManager::kitsLoaded, settingsInstance, [interpreter]() { - addKitsForInterpreter(interpreter); - }); + connect(KitManager::instance(), + &KitManager::kitsLoaded, + settingsInstance, + [interpreter, force]() { addKitsForInterpreter(interpreter, force); }); return; } const Id kitId = Id::fromString(interpreter.id); if (Kit *k = KitManager::kit(kitId)) { setRelevantAspectsToKit(k); - } else if (!isVenvPython(interpreter.command)) { + } else if (force || !isVenvPython(interpreter.command)) { KitManager::registerKit( [interpreter](Kit *k) { k->setAutoDetected(true); @@ -856,7 +857,7 @@ void PythonSettings::setInterpreter(const QList &interpreters, cons QList toRemove = settingsInstance->m_interpreters; for (const Interpreter &interpreter : interpreters) { if (!Utils::eraseOne(toRemove, Utils::equal(&Interpreter::id, interpreter.id))) - addKitsForInterpreter(interpreter); + addKitsForInterpreter(interpreter, false); } for (const Interpreter &interpreter : toRemove) removeKitsForInterpreter(interpreter); @@ -901,7 +902,7 @@ void PythonSettings::addInterpreter(const Interpreter &interpreter, bool isDefau if (isDefault) settingsInstance->m_defaultInterpreterId = interpreter.id; saveSettings(); - addKitsForInterpreter(interpreter); + addKitsForInterpreter(interpreter, false); } Interpreter PythonSettings::addInterpreter(const FilePath &interpreterPath, @@ -1071,7 +1072,7 @@ void PythonSettings::initFromSettings(QtcSettings *settings) if (cmd.needsDevice() || cmd.parentDir().pathAppended("activate").exists()) continue; } - addKitsForInterpreter(interpreter); + addKitsForInterpreter(interpreter, false); } } else { fixupPythonKits(); diff --git a/src/plugins/python/pythonsettings.h b/src/plugins/python/pythonsettings.h index ab5d092a5ff..6419335a32f 100644 --- a/src/plugins/python/pythonsettings.h +++ b/src/plugins/python/pythonsettings.h @@ -43,7 +43,7 @@ public: const Utils::FilePath &directory, const std::function &callback = {}); static QList detectPythonVenvs(const Utils::FilePath &path); - static void addKitsForInterpreter(const Interpreter &interpreter); + static void addKitsForInterpreter(const Interpreter &interpreter, bool force); static void removeKitsForInterpreter(const Interpreter &interpreter); signals: From 9bb9e5e99164a759cd92dd05a0ca5d2c8a0e3b85 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Mon, 16 Sep 2024 15:33:33 +0200 Subject: [PATCH 07/22] Doc: Add links to more tutorials Use the new shorter names of the tutorial topics. Change-Id: I8c4928fbeb4f3e7ba28de18535d8547a9681a9a0 Reviewed-by: Alessandro Portale --- src/plugins/qtsupport/qtcreator_tutorials.xml | 43 +++++++++++++++++-- 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/src/plugins/qtsupport/qtcreator_tutorials.xml b/src/plugins/qtsupport/qtcreator_tutorials.xml index b17b0def6a0..1ba838908d3 100644 --- a/src/plugins/qtsupport/qtcreator_tutorials.xml +++ b/src/plugins/qtsupport/qtcreator_tutorials.xml @@ -7,14 +7,14 @@ Talk - + qt creator,build,compile,help Help - + qt creator,qt widgets designer,widgets,c++,text,help @@ -28,20 +28,55 @@ Help - + qt creator,qt quick,qml,states,transitions,help Help - + qt creator,qml,android,ios,controls,help Help + + + qt creator,qt quick,python,help + + Help + + + + + qt creator,widgets,python,help + + Help + + + + + qt creator,qt widgets designer,widgets,python,help + + Help + + + + + qt creator,c++,debugging,help + + Help + + + + + qt creator,qt quick,debugging,help + + Help + + qt quick,controls,tumbler,help From 38c364a9b7bde1dda59bc68371408446cb492f40 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Wed, 18 Sep 2024 16:30:41 +0200 Subject: [PATCH 08/22] Doc: Link to the learning course for Qt Creator 14 The course has been updated. Change-Id: Idc4f340e10be72730e8e5c8e1d324caf62be0971 Reviewed-by: Eike Ziller --- .../src/overview/creator-only/creator-getting-started.qdoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/qtcreator/src/overview/creator-only/creator-getting-started.qdoc b/doc/qtcreator/src/overview/creator-only/creator-getting-started.qdoc index 8c54ecbe91c..b1f4bc8dc61 100644 --- a/doc/qtcreator/src/overview/creator-only/creator-getting-started.qdoc +++ b/doc/qtcreator/src/overview/creator-only/creator-getting-started.qdoc @@ -9,7 +9,7 @@ \title Getting Started To learn the basics of \QC, take the - \l{https://www.qt.io/academy/course-catalog#getting-started-with-qt-creator} + \l{https://www.qt.io/academy/course-catalog#getting-started-with-qt-creator-14} {Getting Started with Qt Creator} course in Qt Academy. \table borderless From 85b965857ee1ecf6533297a4913cedd0aa8c2b51 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Thu, 19 Sep 2024 13:55:44 +0200 Subject: [PATCH 09/22] Debugger: Remove space from suggested file name for full back traces File names with spaces are impractical. Change-Id: I7c4bab24d2fc7e115720a92f2941a150eb905499 Reviewed-by: hjk --- src/plugins/debugger/cdb/cdbengine.cpp | 2 +- src/plugins/debugger/gdb/gdbengine.cpp | 2 +- src/plugins/debugger/lldb/lldbengine.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/plugins/debugger/cdb/cdbengine.cpp b/src/plugins/debugger/cdb/cdbengine.cpp index 840f78dfc93..6fa342d252f 100644 --- a/src/plugins/debugger/cdb/cdbengine.cpp +++ b/src/plugins/debugger/cdb/cdbengine.cpp @@ -255,7 +255,7 @@ int CdbEngine::elapsedLogTime() void CdbEngine::createFullBacktrace() { runCommand({"~*kp", BuiltinCommand, [](const DebuggerResponse &response) { - Internal::openTextEditor("Backtrace $", response.data.data()); + Internal::openTextEditor("Backtrace$", response.data.data()); }}); } diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index 41d26962c96..2be678120d6 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -4240,7 +4240,7 @@ void GdbEngine::createFullBacktrace() DebuggerCommand cmd("thread apply all bt full", NeedsTemporaryStop | ConsoleCommand); cmd.callback = [](const DebuggerResponse &response) { if (response.resultClass == ResultDone) { - Internal::openTextEditor("Backtrace $", + Internal::openTextEditor("Backtrace$", response.consoleStreamOutput + response.logStreamOutput); } }; diff --git a/src/plugins/debugger/lldb/lldbengine.cpp b/src/plugins/debugger/lldb/lldbengine.cpp index e234aefc216..d8535fd697c 100644 --- a/src/plugins/debugger/lldb/lldbengine.cpp +++ b/src/plugins/debugger/lldb/lldbengine.cpp @@ -1062,7 +1062,7 @@ void LldbEngine::fetchFullBacktrace() { DebuggerCommand cmd("fetchFullBacktrace"); cmd.callback = [](const DebuggerResponse &response) { - Internal::openTextEditor("Backtrace $", fromHex(response.data["fulltrace"].data())); + Internal::openTextEditor("Backtrace$", fromHex(response.data["fulltrace"].data())); }; runCommand(cmd); } From 75be9e9941df9ac30d88fab2b3569d459bf14469 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Thu, 19 Sep 2024 13:49:00 +0200 Subject: [PATCH 10/22] TextEditor: fix disconnect in invalidateCurrentRequestData The disconnect needs to be done before resetting the sender. Change-Id: If64673d8889d7e88fb60dfb2e6bb454a029fda83 Reviewed-by: Friedemann Kleint Reviewed-by: Christian Stenger --- src/plugins/texteditor/codeassist/codeassistant.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/texteditor/codeassist/codeassistant.cpp b/src/plugins/texteditor/codeassist/codeassistant.cpp index 27f8f8fe259..e918288d7ef 100644 --- a/src/plugins/texteditor/codeassist/codeassistant.cpp +++ b/src/plugins/texteditor/codeassist/codeassistant.cpp @@ -368,9 +368,9 @@ QString CodeAssistantPrivate::proposalPrefix() const void CodeAssistantPrivate::invalidateCurrentRequestData() { m_processor = nullptr; - m_requestProvider = nullptr; disconnect( m_requestProvider, &QObject::destroyed, this, &CodeAssistantPrivate::cancelCurrentRequest); + m_requestProvider = nullptr; m_receivedContentWhileWaiting = false; } From 26dcf27f4f632a57a40cc5f7b6c7775a2002cd05 Mon Sep 17 00:00:00 2001 From: Sami Shalayel Date: Thu, 19 Sep 2024 08:11:57 +0000 Subject: [PATCH 11/22] Revert "Reset qml code model after build" It turns out that 604dfa57efbf39a3edee7a205fb6692c01e5b50a makes QtC freeze after each build on bigger QMake projects, so revert it. Change-Id: I05eb45706176956f9cca47a9f9a10cff9f0125d5 Fixes: QTCREATORBUG-31582 Reopens: QTCREATORBUG-24428 Reviewed-by: Eike Ziller --- src/plugins/qmakeprojectmanager/qmakeproject.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.cpp b/src/plugins/qmakeprojectmanager/qmakeproject.cpp index 53e80f482b2..c118ba1920e 100644 --- a/src/plugins/qmakeprojectmanager/qmakeproject.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeproject.cpp @@ -745,10 +745,8 @@ void QmakeBuildSystem::asyncUpdate() void QmakeBuildSystem::buildFinished(bool success) { - if (success) { + if (success) m_invalidateQmakeVfsContents = true; - updateQmlJSCodeModel(); - } } Tasks QmakeProject::projectIssues(const Kit *k) const From 0076ef4be6771d0e51a0e15154b73710cf8ea0a9 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Thu, 19 Sep 2024 14:38:32 +0200 Subject: [PATCH 12/22] Debugger: Reverse gdb stack traces when creating full back traces By default, threads are sorted in descending order. This change brings thread 1, which is ususally the most interesting frame, to the front. Change-Id: Ie8b0d6b849da8b8d816bca907e5a8efa7e46c473 Reviewed-by: hjk --- src/plugins/debugger/gdb/gdbengine.cpp | 32 +++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index 2be678120d6..24214212241 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -4235,13 +4235,43 @@ void GdbEngine::notifyInferiorSetupFailedHelper(const QString &msg) notifyEngineSetupFailed(); } +static QString reverseBacktrace(const QString &trace) +{ + static const QRegularExpression threadPattern(R"(Thread \d+ \(Thread )"); + Q_ASSERT(threadPattern.isValid()); + + if (!trace.contains(threadPattern)) // Pattern mismatch fallback + return trace; + + const QStringView traceView{trace}; + QList threadTraces; + const auto traceSize = traceView.size(); + for (qsizetype pos = 0; pos < traceSize; ) { + auto nextThreadPos = traceView.indexOf(threadPattern, pos + 1); + if (nextThreadPos == -1) + nextThreadPos = traceSize; + threadTraces.append(traceView.sliced(pos, nextThreadPos - pos)); + pos = nextThreadPos; + } + + QString result; + result.reserve(traceSize); + for (auto it = threadTraces.crbegin(), end = threadTraces.crend(); it != end; ++it) { + result += *it; + if (result.endsWith('\n')) + result += '\n'; + } + return result; +} + void GdbEngine::createFullBacktrace() { DebuggerCommand cmd("thread apply all bt full", NeedsTemporaryStop | ConsoleCommand); cmd.callback = [](const DebuggerResponse &response) { if (response.resultClass == ResultDone) { Internal::openTextEditor("Backtrace$", - response.consoleStreamOutput + response.logStreamOutput); + reverseBacktrace(response.consoleStreamOutput) + + response.logStreamOutput); } }; runCommand(cmd); From 81bfc2f9f722f350be8ab56286d1a1cc1405e712 Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Thu, 19 Sep 2024 17:28:04 +0200 Subject: [PATCH 13/22] vcpkg: Fix usage with Visual C++ 2022 Visual Studio 2022 comes with their own vcpkg and sets the VCPKG_ROOT as part of the 'vcvars.bat' environment. This change makes sure that the 'vcpkg' program specified by the vcpkg plugin is being used. Change-Id: I582a54ed615a2ad8f47814736d4e6dddad9f50cd Reviewed-by: Alessandro Portale --- .../cmakeprojectmanager/cmakebuildconfiguration.cpp | 7 +++++++ src/plugins/cmakeprojectmanager/cmakeprojectconstants.h | 1 + src/share/3rdparty/package-manager/auto-setup.cmake | 5 ++++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index 747659de3b8..06137921bbe 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp @@ -2086,6 +2086,13 @@ CMakeBuildSystem *CMakeBuildConfiguration::cmakeBuildSystem() const void CMakeBuildConfiguration::addToEnvironment(Utils::Environment &env) const { + // Use the user provided VCPKG_ROOT if existing + // Visual C++ 2022 (and newer) come with their own VCPKG_ROOT + // that is incompatible with Qt Creator + const QString vcpkgRoot = qtcEnvironmentVariable(Constants::VCPKG_ROOT); + if (!vcpkgRoot.isEmpty()) + env.set(Constants::VCPKG_ROOT, vcpkgRoot); + const CMakeTool *tool = CMakeKitAspect::cmakeTool(kit()); // The hack further down is only relevant for desktop if (tool && tool->cmakeExecutable().needsDevice()) diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectconstants.h b/src/plugins/cmakeprojectmanager/cmakeprojectconstants.h index 04922b6e9db..bd060da4470 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectconstants.h +++ b/src/plugins/cmakeprojectmanager/cmakeprojectconstants.h @@ -27,6 +27,7 @@ const char CMAKEFORMATTER_MENU_ID[] = "CMakeFormatter.Menu"; const char CMAKE_DEBUGGING_GROUP[] = "Debugger.Group.CMake"; const char PACKAGE_MANAGER_DIR[] = ".qtc/package-manager"; +const char VCPKG_ROOT[] = "VCPKG_ROOT"; const char CMAKE_LISTS_TXT[] = "CMakeLists.txt"; const char CMAKE_CACHE_TXT[] = "CMakeCache.txt"; diff --git a/src/share/3rdparty/package-manager/auto-setup.cmake b/src/share/3rdparty/package-manager/auto-setup.cmake index 628b69cc768..c797138f67b 100644 --- a/src/share/3rdparty/package-manager/auto-setup.cmake +++ b/src/share/3rdparty/package-manager/auto-setup.cmake @@ -199,7 +199,10 @@ macro(qtc_auto_setup_vcpkg) if (EXISTS "${CMAKE_SOURCE_DIR}/vcpkg.json" AND NOT QT_CREATOR_SKIP_VCPKG_SETUP) option(QT_CREATOR_SKIP_VCPKG_SETUP "Skip Qt Creator's vcpkg package manager auto-setup" OFF) - find_program(vcpkg_program vcpkg $ENV{VCPKG_ROOT} ${CMAKE_SOURCE_DIR}/vcpkg) + find_program(vcpkg_program vcpkg + PATHS $ENV{VCPKG_ROOT} ${CMAKE_SOURCE_DIR}/vcpkg + NO_DEFAULT_PATH + ) if (NOT vcpkg_program) message(WARNING "Qt Creator: vcpkg executable not found. " "Package manager auto-setup will be skipped. " From 550a51de851ac595310d1c41244de8792bafe3bc Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Fri, 20 Sep 2024 11:39:36 +0200 Subject: [PATCH 14/22] Update qbs submodule to HEAD of 2.4 branch Change-Id: Ic60cebbc99a761f67a4924c816a5a6f7a7f874d0 Reviewed-by: Christian Stenger --- src/shared/qbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shared/qbs b/src/shared/qbs index 130b3c2a8f1..b5ff1d0e96d 160000 --- a/src/shared/qbs +++ b/src/shared/qbs @@ -1 +1 @@ -Subproject commit 130b3c2a8f17c1ed18061d645e908a623f1e73b6 +Subproject commit b5ff1d0e96d7cab0d64f1467453304334d545274 From de9fd33584055959d25cf985f70b57c9b243e5d9 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Wed, 18 Sep 2024 17:04:34 +0200 Subject: [PATCH 15/22] Doc: Remove links to outdated videos online The Qt Academy has updated versions of all these tutorials as courses. Add a link to the Getting Started with Qt Creator 14 course. Change-Id: I402e77db6a6e9cd69185872460bc5fe459a14ba9 Reviewed-by: Alessandro Portale --- .../qtsupport/images/icons/gs-qtc-14.png | Bin 0 -> 6838 bytes .../images/icons/youtube-xhiVA0P4yk.webp | Bin 3670 -> 0 bytes .../images/icons/youtube1tSpq5OLkYI.webp | Bin 5150 -> 0 bytes .../images/icons/youtube2RvhhEAZQxM.webp | Bin 2934 -> 0 bytes .../images/icons/youtube9BcAYDlpuT8.webp | Bin 3540 -> 0 bytes .../images/icons/youtubeBkgjJfxYN20.webp | Bin 3434 -> 0 bytes .../images/icons/youtubeDRFz0Tll4G8.webp | Bin 5790 -> 0 bytes .../images/icons/youtubeEhJ1eV_6RH8.webp | Bin 3226 -> 0 bytes .../images/icons/youtubeFTSvDmcAgPI.webp | Bin 7190 -> 0 bytes .../images/icons/youtubeLnVjI0I7cKs.webp | Bin 2048 -> 0 bytes .../images/icons/youtubeR6zWLfHIYJw.webp | Bin 4464 -> 0 bytes .../images/icons/youtubeY-MM-9FigTc.webp | Bin 5102 -> 0 bytes .../images/icons/youtubeYJfFwDBOvqk.webp | Bin 2436 -> 0 bytes .../images/icons/youtubehOx3dod5-1A.webp | Bin 6504 -> 0 bytes .../images/icons/youtubejbx3Oq1Q4gY.webp | Bin 5602 -> 0 bytes .../images/icons/youtubemn-JmXIMCqk.webp | Bin 3856 -> 0 bytes .../images/icons/youtubeuuhmSZxK1mk.webp | Bin 3968 -> 0 bytes .../images/icons/youtubezAqSiIGdj8M.webp | Bin 7862 -> 0 bytes src/plugins/qtsupport/qtcreator_tutorials.xml | 118 +----------------- src/plugins/qtsupport/qtsupport.qrc | 18 +-- 20 files changed, 4 insertions(+), 132 deletions(-) create mode 100644 src/plugins/qtsupport/images/icons/gs-qtc-14.png delete mode 100644 src/plugins/qtsupport/images/icons/youtube-xhiVA0P4yk.webp delete mode 100644 src/plugins/qtsupport/images/icons/youtube1tSpq5OLkYI.webp delete mode 100644 src/plugins/qtsupport/images/icons/youtube2RvhhEAZQxM.webp delete mode 100644 src/plugins/qtsupport/images/icons/youtube9BcAYDlpuT8.webp delete mode 100644 src/plugins/qtsupport/images/icons/youtubeBkgjJfxYN20.webp delete mode 100644 src/plugins/qtsupport/images/icons/youtubeDRFz0Tll4G8.webp delete mode 100644 src/plugins/qtsupport/images/icons/youtubeEhJ1eV_6RH8.webp delete mode 100644 src/plugins/qtsupport/images/icons/youtubeFTSvDmcAgPI.webp delete mode 100644 src/plugins/qtsupport/images/icons/youtubeLnVjI0I7cKs.webp delete mode 100644 src/plugins/qtsupport/images/icons/youtubeR6zWLfHIYJw.webp delete mode 100644 src/plugins/qtsupport/images/icons/youtubeY-MM-9FigTc.webp delete mode 100644 src/plugins/qtsupport/images/icons/youtubeYJfFwDBOvqk.webp delete mode 100644 src/plugins/qtsupport/images/icons/youtubehOx3dod5-1A.webp delete mode 100644 src/plugins/qtsupport/images/icons/youtubejbx3Oq1Q4gY.webp delete mode 100644 src/plugins/qtsupport/images/icons/youtubemn-JmXIMCqk.webp delete mode 100644 src/plugins/qtsupport/images/icons/youtubeuuhmSZxK1mk.webp delete mode 100644 src/plugins/qtsupport/images/icons/youtubezAqSiIGdj8M.webp diff --git a/src/plugins/qtsupport/images/icons/gs-qtc-14.png b/src/plugins/qtsupport/images/icons/gs-qtc-14.png new file mode 100644 index 0000000000000000000000000000000000000000..ee19937e82e333188918987a99b1db49e7ce36d1 GIT binary patch literal 6838 zcmeAS@N?(olHy`uVBq!ia0y~yU|7e%z)-}&#=yXE>cgvD3=9mM1s;*b3=DinK$vl= zHlH*D0|R@Br>`sf3r-OZW`pPcixn9dq(VJi978JRyq#M)VQzTk^7+O4zOJjSo*uO+ zj5~7Lo<#L+jGHUC)kM5=64WFP2`C6_>6mhF7WGNxs8omV(eHcjcGsV_{Cs@p-HA`{UCG*7^Y;D9pq0DcU*Dd8|5xpM z+vm0Q@2ijWiSJwB>G8tg$<8`PPEKz{!8|ATNgU=2l|5T#Uzn(J$oGYZ&_lHnmCgcT zt4S_9IAuMR?zHr&penoZ{1@wv~w3Oekz`?bVoETYD;jxc;WAwKc$kwQ{xz) z1-0f5yhwBuK7u^j#BI`5p-W1nXuEf$GL5|WF z*^Y{BO<#T@Py4~QpCo=7)A&IVPjkasKP+ zD6tl0PPf@t_RL#d|AV!j zlkd%NW#v+IO@Dvdgu`8+$HaF@Zuhku3&(b@dJW!wc=EB0?@pJJHBUc2V)YmUDx>XhEBUt6-^!}YW?%g+f5Khd)+ z{-|~+R`F1$*u#rfCBNL>q`WeGSzfX*+4t>Du9d!#B?iCeu4Hn}s=c;^vD|;c?ltU7 z8dST?1>bQg=5&6mNaZxY#^FBc_QkVL4kw%NJ7qOT?myqgCGzsD>LjBhdmd)lyw~6 zO_GaJ=AGr9&E5U|kIkjcE8b`->iAjjp2T6E7Km6_~bQ*Z!Oy%Wjc;r8_OD zuE(WbMnBPewXAT1SN4|18Qyztb(j}BGRkHPSBh)ibJ@Xpy06b9?3P;jM!|fGi?ibQ zY*gF6xS>yE>vHwp3ULL&yhD+W?p)frllN|LczfUp)1#|yd&IvkXrA%wbMWVN{fZz3 zF78~~k0;y>Td-}vPe_!)CoSK!YV(UB9)EZKJUW}h{Nb8K%B^$DPv*T}_UnvFp{mP` zVx6R|Cpn+%y;7Tz5m>#?XgSD3b4p8=Y~a?Lxt3My_o*XSGx9!a^$IloN!{xbtavv0 zYvkWkodv>SEV5d2@}_@zCNtGm_0g?6kFI(t$8y(~cAacL9=Nc|vs70w?@-r5=ho}* zC*Pa2{8x(P)sFPuWrqy!ikww8z2jJa?OdnJ4o>YZF421n{IiOuow|3)J8F81a_1@C zSL|vhbF>ql&yAE#0a+y@s&S`LE5q`Rc%cdk2K-KoVmb+76saj^m}J*zplOXqW#KRlBWzOSU_ zm+rS!f)9C@Ui32ldBP&2C!^YCbIXL{>vf(@D% zTzoZSCx2%_d~XZa_WS7{Vqc$Sab0Tp<>=oj<$TV&j8!g5t~W}on_?FE=O~-^(v8(N z7X-Gme_(yw`;)ymqvvAvysT?plXA{k&3$Q_C2-hg>tFGO2j710)%NCCui%<_oR(`?2z zyW}47{&=?Wr`_49Za>8Q`q{ZAG!^VgoyNR;UHnuw?+4$0x&$kh9ZS1fZPu{)%f|($ zU6t{%u~#&t>22u`a&lZ*a{-$xihAqCb-# zPpPwOn!2r1TJY!TYRx@`0RDlC*_`` z-q?bTMrInt4RHq3cYAXM6g)cDoVK7{*D;gr-d?%v1I?Dt9;{>OEU@k^6HEN??5l?{t&iaDYW(%CWbf)1Qg1Nb`x9v;4z@XqNNglDofaT$-A;=|`m`+r5o> zA0vAwJ*gwoc<3}1_j1-zB+_$dXQXga-W_Vw9z`izCTPmaj4D_-E9 zo^7ho>e+hHuho~;<*H>+;^iAcrjkZQ*Bvh}TYS)KyLr|;*3&gvPm(-ZZhM*}|GKwr z+Lxa{zqOr7`s04sWHOvd!F9xXZSKQIX?# zlz^U6(l&lc$(^qS9#&kIIVLo_ch+93+)J6-9!huo92ht4Rn*?`;zmxF+dDfCn`B|dwF?5M}F|0{28Z&h28e_ z&X|`SK5_4&@`pvAjV5t?f7)ku(V)Ik{?gVoF4n2BuA3Lz%l=<;$--7{Q|y8O$LJl) zAO9#~*>z>nrz0$fj83y!zn`>w&2^V|qFuW>3*z5xS=;vbyR7o6mSY!}8vbjMd%vZ4 zW#0aLwpqyxOg< z@y@32i*AU(iT!zj=wxOukg`TshG^5#8V-+4<&Km z?Ganw>x1eraZKQ|#Oyl@%Eg}=KPi^9L@zq!_B8g|Zbv9*6$t8SU`)s7eY@=SMjS9i=7 zG)fJwN@#ht__4NJuA*RGdLkzW$UK!*tsIGFk*o7=Ht6j5oPTA?G0hz}B&*X7B^m5H zF*9Dbb@R0+*`+CFDF<(qe2L%5d-J5qp|>VAvyTN&7O6Ms@sT|2{p*iRZGNU^^aY*cxMuvkX+r6!F`Jr5*T1#{#|GrB+ba?B}z5CNAy6l+S#&FB}=dp!S zmnN?W^ZDS2mDHkqPe&G128!M(cv1S#n+>ojBag*R1lao^4ryg+nHCZ9p ztnluf`KzP4HtgvLxp8{N^y|4(3d%m@dhyR$uxokC<>!jE-8+P&q?6h=l|0N6Sl9YR zmLbI0g`VOXtW=@;>^Vol%?@nj4tS(AD zwB*Q~mmm0SQaBS+i1ISi(8Z-2lJ-4}mi_x(KXS*R&7A%IK{tPzWcWTi)mstG)*~_1 zGSgt)mI;!Rn*!Gg%=|cG*Z<5vYnyjub02%NaLda2=u0~PN`GfZ3y5Zil)ZB|Ro--c zPXF#@2`q0T-b(FsXn&R_`1a?9!mX)C>}q|MPkC|SiD~M!<^O&NhHQ0xcB=QqgF9zf zEYv+1=RKIZ$tvbjyrNF$s;v_LW2#KeKGw`&gfd!f7Ift=ShVz6e|B|Ui8-#{&Xo9-{NMb~2;-ac&h zxPS27*?^xHgMH#Q_GK(_s@QYpg?N2WpXs5^l7GH@?Wujr*de<1`SFO)&$mC=uhyH@ zc4CeDzh!SNY9sqslA?tc^A7A-Q*c|F6~N+>NobH23Gg4v2j&zn^(KFPmJc%uI<{nhc` z8-H(RVefWXEV?QGhR^-u>lDl1vOZaN+w1(=@Jlt%SRQ7uiXP*s{Wn)Ya}~dxyGfvG z>C4I!J>9#PNy{GN`Fqm3Fs!`r$>Z&T{|-)0xxb_J9)GNF)^UNba;b;6Oy*g58N?jh zpTf&Lzk>VUx2rsLzpSF#yI9z}BlbqB)$f?TQvO})hsoD3eLlE4F4nsxT*F&vU7yIi zUvY;X8uiAye=z$ZB&Vw=!yURRxZ?X#kohaFDAJ2@6OfxKP?W>zFG>%#C zmseDsI$ti~!Q|_+cw@Ak%$=+33q)UDU$=PUYXgN2@6uEEZ=QWpUiLWmm9sfhiNND^ znhB-LFFN{EEMbuf+1j~%XaBzY^~_QkvNFrRzAjY0!*_3nicaVb$ClkIr_YOCpYr9j z{nE;WmOIhgE`6>JpBeWzzF%3Ud!6+5z<>AT*39GimLUFgclqSnziD?$ZBy3W=@4i- zb9MF^hHViK*S$`A6wQCx#-Qm;RY=`G9rypIV_lAF?Uk=%zL|Y)`M(p2Dc26)z0tmk z{RXq;o>JQi>E8isJO1$Ap7G~-?UFK{i93sgd)50F9`4x3A9wUht-m0j|D;_xwL+!V zG8-Sa>g!Z)RlmH>Q`>WM;_RDGxBE9vT-TcAYAnfomrHP8veG)$i)%SnPgwNpw7A8; zmvI3l1n6%ZP*voIy%fR+1qfZH2UQI9lWwyA<7mncUjJ>U#E0r z<^Io4PM`a@la=%I@zaZ+taiNG)Vki=BjfWajm0W^URgZu(2kLQdHd}>_10DG3vSJ8 z%FKVEbDHI0)QKs^#Ze2hT+>#anz_#Q`LDU&2~~IY@cCysh`gOtyypK^>xmm4&6#-8 zZJBJ-;#95w?=u&5TCL;`pIrM`EV*Q+*~K}l*Ta1ILy~8dWw>V+&HQ!ku*p1&Q_pt)pK#{2`Ql}>UPK5^ecf{W z)Q;D?IQx1Y@jTmDbty!?YTkzR&l`O6 zr^&lY+Y0Gl1=mC_WUR8Uo|du4>(?XGirK#dzcw7ZtX{xYd}L{x<%Q(l!quMVpZ%Es zr{U54|3WiAa`gMpdfLeL&~nPVik=;}l&ZfzQ(0POHgSe;b@DV}{m4}(k4-uh zPk$qQ?)eG%yKQ_)i;{Y;&aajJ$G%Q!-7M)7_l-_0yKR5!O8?l=|HUDxR|U|FGL;_eC;Dd~NCz{rB$fhO5L9N|#4|e_HQ--PgJ!d+kgo zukXLtDSV%{cA1vNU$><(TK3irt4v=0zhT-_`*XR>-zRSqqK|!_y}@Qn?Ukv=yFKnJ zZQlA?by4e5J<(gwQ)jNacCt;hw=bzBJNaoahkH`#(t@z3XWQ6vr|E7pnYuQzi`(ew zh3^})PsCR<9IP5I+?08P*j9a#iK9MQgMFWb@)J04x z*cudJDW7iOpM2i1B|Z7KrPS{}L7906ZrdcR3VC~ZyYKH_&uT^1ca?X2?(Uwx>E$o`Mo$M*jdh<^8%<;EoOdw1`=ze%9TZRItP;`MhDktn|3= z=`F{-js*LipliCDuvmIupN5`Eu$VXUZ+LV#n!%Z)M)Uyri`5(up4D^S|pS zKm7ksmhb;T^N-tj3`*a}?cv?~B>x5*)0&#DPycIqW){7yy3My{PCuX0C-b-yFQ(TW zTF77D{D=2;$FbEvZnvK~mbq)YPR|GZh}OH47ykQ^_~vTtk)>Aee#K4x-z(a?++RRO zOUU1Jg?(Mimr&`6^PE4<{@+xf6J*^sL38@U|37Vu@^2kFV*jV>-S@b@sb77!_XWadaa>RPvzq@xMbV5uz2Z{ykJT&+m5S|FFuZxjZ$(G2Sa84i z$7@SG^UuvLd1dqd<)qI$3fH>6UmLEZqv{?`9cyTiNph1-b->3J!C zwC$H~Dz^VAyFgem7~pa^lTMx$+rib>Z6YC)eIho9s4A>}*Zgq2SzhgWUpYd*5AoKljVgmHUe~ z?oYpVeaDgGLg%zjr)P^S6ZduRv^9MAX0nO`p2-)qIhz0cJfB&g$$y-zz`(%3;OXk; Jvd$@?2>^?zV)_68 literal 0 HcmV?d00001 diff --git a/src/plugins/qtsupport/images/icons/youtube-xhiVA0P4yk.webp b/src/plugins/qtsupport/images/icons/youtube-xhiVA0P4yk.webp deleted file mode 100644 index cd9bcf48a97379197bc3978bc71caf89851ff4c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3670 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 diff --git a/src/plugins/qtsupport/images/icons/youtube1tSpq5OLkYI.webp b/src/plugins/qtsupport/images/icons/youtube1tSpq5OLkYI.webp deleted file mode 100644 index 8d9aa54d4fa7907e089e562a12e2900057291c4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5150 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 diff --git a/src/plugins/qtsupport/images/icons/youtube2RvhhEAZQxM.webp b/src/plugins/qtsupport/images/icons/youtube2RvhhEAZQxM.webp deleted file mode 100644 index 3f595e8d335ae82590b20bb037878e6e49f848f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2934 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 diff --git a/src/plugins/qtsupport/images/icons/youtube9BcAYDlpuT8.webp b/src/plugins/qtsupport/images/icons/youtube9BcAYDlpuT8.webp deleted file mode 100644 index f0ec6e5bb46c65a2ba1ba688336cfb0ef0e6d3cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3540 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 diff --git a/src/plugins/qtsupport/images/icons/youtubeBkgjJfxYN20.webp b/src/plugins/qtsupport/images/icons/youtubeBkgjJfxYN20.webp deleted file mode 100644 index f1d5598844a21a53b14ad91125ae1743d3032cdd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3434 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 diff --git a/src/plugins/qtsupport/images/icons/youtubeDRFz0Tll4G8.webp b/src/plugins/qtsupport/images/icons/youtubeDRFz0Tll4G8.webp deleted file mode 100644 index 382c89979aaced9e45d82eb770793d99bd365ee4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5790 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 diff --git a/src/plugins/qtsupport/images/icons/youtubeEhJ1eV_6RH8.webp b/src/plugins/qtsupport/images/icons/youtubeEhJ1eV_6RH8.webp deleted file mode 100644 index 69559d8822d540d46e7b63821796ad8edf87977b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3226 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 diff --git a/src/plugins/qtsupport/images/icons/youtubeFTSvDmcAgPI.webp b/src/plugins/qtsupport/images/icons/youtubeFTSvDmcAgPI.webp deleted file mode 100644 index d2412e1e489e6113df911f70949784646a208803..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7190 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 diff --git a/src/plugins/qtsupport/images/icons/youtubeLnVjI0I7cKs.webp b/src/plugins/qtsupport/images/icons/youtubeLnVjI0I7cKs.webp deleted file mode 100644 index 76368aea5cf0e0663f2cb25de1d154b5e296f691..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2048 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 diff --git a/src/plugins/qtsupport/images/icons/youtubemn-JmXIMCqk.webp b/src/plugins/qtsupport/images/icons/youtubemn-JmXIMCqk.webp deleted file mode 100644 index 42d41e63347ce353ad54ab53876f1205fc198853..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3856 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 S%ADgLihi&c-zjr~fdK$x4xy<4 diff --git a/src/plugins/qtsupport/images/icons/youtubeuuhmSZxK1mk.webp b/src/plugins/qtsupport/images/icons/youtubeuuhmSZxK1mk.webp deleted file mode 100644 index 086bfeee8c28c15cbe55516c018f57fec46c02e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3968 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 diff --git a/src/plugins/qtsupport/qtcreator_tutorials.xml b/src/plugins/qtsupport/qtcreator_tutorials.xml index 1ba838908d3..08350da20c1 100644 --- a/src/plugins/qtsupport/qtcreator_tutorials.xml +++ b/src/plugins/qtsupport/qtcreator_tutorials.xml @@ -85,42 +85,14 @@ - - - qt creator,learning,ui,welcome,2023 - - Learning - - - - - qt creator,learning,projects,qt widgets,2023 - - Learning - - - - - qt creator,learning,qt widgets designer,coding,2023 - - Learning - - - - - qt creator,learning,debugging,2023 + + + qt creator,ui,welcome,qt widgets designer,widgets,editing,debugging,learning,2024 Learning - - - qt creator,embedded,device creation,video,2021 - - Online - - qt creator,SCXML,video @@ -128,41 +100,6 @@ Online - - - qt creator,qt quick,c++,video - - Online - - - - - qt creator,video - - Online - - - - - qt creator,video,2018 - - Online - - - - - qt creator,qt quick,controls,video,2018 - - Online - - - - - qt creator,debugging,video,2021 - - Online - - qt creator,qt linguist,translation,video,2021 @@ -170,55 +107,6 @@ Online - - - qt,installation,online installer,modules,video,2021 - - Online - - - - - embedded,installation,device creation,video,2021 - - Online - - - - - qt creator,widgets,video,2021 - - Online - - - - - qt quick,widgets,ui,video,2021 - - Online - - - - - qt,mcus,video,STM32H750B-DISCOVERY,2021 - - Online - - - - - qtformcus,mcus,qt,video,NXP IMXRT1050-EVKB,2020 - - Online - - - - - qtformcus,mcus,qt,video,2021 - - Online - - diff --git a/src/plugins/qtsupport/qtsupport.qrc b/src/plugins/qtsupport/qtsupport.qrc index 1fe96a6ed22..4dda636c7c6 100644 --- a/src/plugins/qtsupport/qtsupport.qrc +++ b/src/plugins/qtsupport/qtsupport.qrc @@ -9,46 +9,30 @@ images/icons/playoverlay@2x.png images/icons/tutorialicon.png images/icons/tutorialicon@2x.png - images/icons/youtube-xhiVA0P4yk.webp - images/icons/youtube1tSpq5OLkYI.webp images/icons/youtube1w0ak9RNNWY.webp - images/icons/youtube2RvhhEAZQxM.webp images/icons/youtube3o2Wo4YzlII.webp - images/icons/youtube9BcAYDlpuT8.webp images/icons/youtube9xqhq9nDiOg.webp images/icons/youtubeB0X5FOev9Lw.webp - images/icons/youtubeBkgjJfxYN20.webp images/icons/youtubeDP0lMoLVneY.webp - images/icons/youtubeDRFz0Tll4G8.webp images/icons/youtubeECA8_oLT0ZE.webp images/icons/youtubeG0AbgVHGdXI.webp images/icons/youtubeKo3DuCgFamo.webp images/icons/youtubePzV2MYRAUYQ.webp - images/icons/youtubeR6zWLfHIYJw.webp images/icons/youtubeT_13aX5NTPk.webp images/icons/youtubeTiJiF0MOOFc.webp images/icons/youtubeW3WC-VpKdGQ.webp images/icons/youtubeWIRRoPxIerc.webp images/icons/youtubeX0kEkB0ewyw.webp - images/icons/youtubeY-MM-9FigTc.webp - images/icons/youtubeYJfFwDBOvqk.webp images/icons/youtubeau3brB7lNms.webp images/icons/youtubehrKz63Q_Rf0.webp - images/icons/youtubejbx3Oq1Q4gY.webp - images/icons/youtubemn-JmXIMCqk.webp images/icons/youtubenmvurCcsWos.webp images/icons/youtubepN0pRBUqrrc.webp images/icons/youtubeqclquZ99ZVQ.webp images/icons/youtubesRihJdZFuCg.webp images/icons/youtubetnZo9umrPtg.webp - images/icons/youtubeuuhmSZxK1mk.webp images/icons/youtubev4glCQt2jE0.webp images/icons/youtubev_ynSET9FHU.webp images/icons/youtubexNIz78IPBu0.webp - images/icons/youtubezAqSiIGdj8M.webp - images/icons/youtubeEhJ1eV_6RH8.webp - images/icons/youtubehOx3dod5-1A.webp - images/icons/youtubeLnVjI0I7cKs.webp - images/icons/youtubeFTSvDmcAgPI.webp + images/icons/gs-qtc-14.png From a0c1f886d01647e78cbee24c08527ac7b9a62b97 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Fri, 20 Sep 2024 12:58:27 +0200 Subject: [PATCH 16/22] Add change log for 14.0.2 Change-Id: I577e540c7e642daf41f30dcd19960beb03078d05 Reviewed-by: Leena Miettinen --- dist/changelog/changes-14.0.2.md | 121 +++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 dist/changelog/changes-14.0.2.md diff --git a/dist/changelog/changes-14.0.2.md b/dist/changelog/changes-14.0.2.md new file mode 100644 index 00000000000..4e9deb4e273 --- /dev/null +++ b/dist/changelog/changes-14.0.2.md @@ -0,0 +1,121 @@ +Qt Creator 14.0.2 +================= + +Qt Creator version 14.0.2 contains bug fixes. + +The most important changes are listed in this document. For a complete list of +changes, see the Git log for the Qt Creator sources that you can check out from +the public Git repository. For example: + + + +Editing +------- + +* Fixed performance issues when long lines are highlighted +* Fixed a crash after completion + (QTCREATORBUG-31563) + +### C++ + +* Fixed generating getters and setters for static pointer members + (QTCREATORBUG-27547) +* Fixed a crash while parsing + (QTCREATORBUG-31569) +* Built-in + * Fixed an issue with empty lists in member initializations + (QTCREATORBUG-30797) + * Fixed an issue with empty lists in the placement version of `new` + (QTCREATORBUG-30798) + +### QML + +* Fixed that automatic formatting on save with `qmlformat` ignored + `.qmlformat.ini` + (QTCREATORBUG-29668) +* `qmlls` + * Fixed semantic highlighting + (QTCREATORBUG-31148) + * Fixed that enabling `qmlls` disabled code snippets + (QTCREATORBUG-31322) + +### Python + +* Fixed the state of the `Generate Kit` button + +### Language Server Protocol + +* Fixed the line number for diagnostics + +### Widget Designer + +* Fixed issues with switching to Design mode when external editor windows are + open + (QTCREATORBUG-31378) +* Fixed a crash when renaming widgets + (QTCREATORBUG-31519) + +Projects +-------- + +* Fixed a crash when editing the project environment + (QTCREATORBUG-31483) + +### CMake + +* Fixed that `Clear CMake Configuration` was visible regardless of the used + build system +* Presets + * Fixed the handling of the `PATH` environment variable + (QTCREATORBUG-31439) + +### vcpkg + +* Fixed that the wrong `vcpkg` executable could be used + +Debugging +--------- + +### C++ + +* CDB + * Fixed the debugging of 32bit applications + (QTCREATORBUG-31345) + +Platforms +--------- + +### Windows + +* Fixed the detection of ARM compilers and debuggers + +### Android + +* Fixed that the debugger could be interrupted a lot during startup + (QTCREATORBUG-29928) + +### Remote Linux + +* Fixed that deployment with `rsync` preserved owner, group, and permissions + (QTCREATORBUG-31138) + +Credits for these changes go to: +-------------------------------- +Alessandro Portale +Alexandre Laurent +Aurélien Brooke +Christian Kandeler +Christian Stenger +Cristian Adam +David Schulz +Eike Ziller +Friedemann Kleint +Jaroslaw Kobus +Jussi Witick +Leena Miettinen +Marcus Tillmanns +Oliver Wolff +Orgad Shaneh +Robert Löhning +Sami Shalayel +Semih Yavuz From 8c527a136c2bc72f23afaf85b39fb3f993a3cdad Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Wed, 18 Sep 2024 14:18:21 +0200 Subject: [PATCH 17/22] ProjectExplorer: Update build actions on change of active project ... regardless from where the change originated. Fixes: QTCREATORBUG-31579 Change-Id: Id87593f91b670e01278d4c30e73775d018fc6571 Reviewed-by: Eike Ziller --- .../projectexplorer/projectexplorer.cpp | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index 8838a37645b..ca7776940f4 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -504,8 +504,6 @@ public: void duplicateFile(); void deleteFile(); void handleRenameFile(); - void handleSetStartupProject(); - void setStartupProject(Project *project); bool closeAllFilesInProject(const Project *project); void checkRecentProjectsAsync(); @@ -876,6 +874,8 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er dd, &ProjectExplorerPluginPrivate::updateActions); connect(SessionManager::instance(), &SessionManager::sessionLoaded, dd, &ProjectExplorerPluginPrivate::updateActions); + connect(ProjectManager::instance(), &ProjectManager::startupProjectChanged, + dd, &ProjectExplorerPluginPrivate::updateActions); connect(SessionManager::instance(), &SessionManager::sessionLoaded, dd, &ProjectExplorerPluginPrivate::updateWelcomePage); connect(SessionManager::instance(), &SessionManager::sessionLoaded, @@ -1827,7 +1827,7 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er connect(dd->m_renameFileAction, &QAction::triggered, dd, &ProjectExplorerPluginPrivate::handleRenameFile); connect(dd->m_setStartupProjectAction, &QAction::triggered, - dd, &ProjectExplorerPluginPrivate::handleSetStartupProject); + dd, [] { ProjectManager::setStartupProject(ProjectTree::currentProject()); }); connect(dd->m_closeProjectFilesActionFileMenu, &QAction::triggered, dd, [] { dd->closeAllFilesInProject(ProjectManager::projects().first()); }); connect(dd->m_closeProjectFilesActionContextMenu, &QAction::triggered, @@ -2153,14 +2153,6 @@ void ProjectExplorerPlugin::openNewProjectDialog() } } -void ProjectExplorerPluginPrivate::setStartupProject(Project *project) -{ - if (!project) - return; - ProjectManager::setStartupProject(project); - updateActions(); -} - bool ProjectExplorerPluginPrivate::closeAllFilesInProject(const Project *project) { QTC_ASSERT(project, return false); @@ -3928,11 +3920,6 @@ ProjectExplorerPlugin::renameFile(Node *node, const QString &newFileName) return {}; } -void ProjectExplorerPluginPrivate::handleSetStartupProject() -{ - setStartupProject(ProjectTree::currentProject()); -} - void ProjectExplorerPlugin::setAppOutputSettings(const AppOutputSettings &settings) { dd->m_outputPane.setSettings(settings); From 14e04c03252238b771a2cc251cce6b17f2075b96 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Thu, 19 Sep 2024 11:42:18 +0200 Subject: [PATCH 18/22] Build: Fix archive creation on ARM Windows Prevent 7z from using the "arm executable" compression algorithm, that cannot be extracted by pk7zip Task-number: QTCREATORBUG-31331 Change-Id: I1c6358bad90f4fc0f8e065cdda802c72a97bd129 Reviewed-by: Cristian Adam --- scripts/build.py | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/scripts/build.py b/scripts/build.py index 094cc9d6c4b..037ac37a545 100755 --- a/scripts/build.py +++ b/scripts/build.py @@ -279,33 +279,33 @@ def package_qtcreator(args, paths): if not args.no_cdb: common.check_print_call(command + [paths.qtcreatorcdbext_install]) + # use -mf=off to avoid usage of the ARM executable compression filter, + # which cannot be extracted by p7zip + zip = ['7z', 'a', '-mmt' + args.zip_threads, '-mf=off'] if not args.no_zip: if not args.no_qtcreator: - common.check_print_call(['7z', 'a', '-mmt' + args.zip_threads, - os.path.join(paths.result, 'qtcreator' + args.zip_infix + '.7z'), - zipPatternForApp(paths)], + common.check_print_call(zip + + [os.path.join(paths.result, 'qtcreator' + args.zip_infix + '.7z'), + zipPatternForApp(paths)], paths.install) - common.check_print_call(['7z', 'a', '-mmt' + args.zip_threads, - os.path.join(paths.result, 'qtcreator' + args.zip_infix + '_dev.7z'), - '*'], + common.check_print_call(zip + + [os.path.join(paths.result, 'qtcreator' + args.zip_infix + '_dev.7z'), + '*'], paths.dev_install) if args.with_debug_info: - common.check_print_call(['7z', 'a', '-mmt' + args.zip_threads, - os.path.join(paths.result, 'qtcreator' + args.zip_infix + '-debug.7z'), - '*'], + common.check_print_call(zip + + [os.path.join(paths.result, 'qtcreator' + args.zip_infix + '-debug.7z'), + '*'], paths.debug_install) if common.is_windows_platform(): - # use -mf=off to avoid usage of the ARM executable compression filter, - # which cannot be extracted by the p7zip version on the machine doing - # the repository builds - common.check_print_call(['7z', 'a', '-mmt' + args.zip_threads, '-mf=off', - os.path.join(paths.result, 'wininterrupt' + args.zip_infix + '.7z'), - '*'], + common.check_print_call(zip + + [os.path.join(paths.result, 'wininterrupt' + args.zip_infix + '.7z'), + '*'], paths.wininterrupt_install) if not args.no_cdb: - common.check_print_call(['7z', 'a', '-mmt' + args.zip_threads, '-mf=off', - os.path.join(paths.result, 'qtcreatorcdbext' + args.zip_infix + '.7z'), - '*'], + common.check_print_call(zip + + [os.path.join(paths.result, 'qtcreatorcdbext' + args.zip_infix + '.7z'), + '*'], paths.qtcreatorcdbext_install) if common.is_mac_platform() and not args.no_qtcreator: @@ -319,9 +319,9 @@ def package_qtcreator(args, paths): app = apps[0] common.codesign(os.path.join(signed_install_path, app)) if not args.no_zip: - common.check_print_call(['7z', 'a', '-mmt' + args.zip_threads, - os.path.join(paths.result, 'qtcreator' + args.zip_infix + '-signed.7z'), - app], + common.check_print_call(zip + + [os.path.join(paths.result, 'qtcreator' + args.zip_infix + '-signed.7z'), + app], signed_install_path) if not args.no_dmg: common.check_print_call(['python', '-u', From 792e73a1882720ce089d7b53a67096466bd3bb4a Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Mon, 23 Sep 2024 13:50:43 +0200 Subject: [PATCH 19/22] Doc: Add links to "Get and Install Qt" ...when discussing Qt Online Installer Fixes: QTCREATORBUG-31622 Change-Id: Ifefcffd8426a33085a840e9ac5ad747a6b9b6b73 Reviewed-by: Eike Ziller --- doc/qtcreator/src/android/androiddev.qdoc | 2 +- doc/qtcreator/src/conan/creator-projects-conan.qdoc | 4 ++-- doc/qtcreator/src/howto/creator-help.qdoc | 3 ++- .../howto/creator-only/creator-how-to-install-plugins.qdoc | 2 +- doc/qtcreator/src/howto/creator-only/qtcreator-faq.qdoc | 2 +- doc/qtcreator/src/ios/creator-ios-dev.qdoc | 2 +- .../src/overview/creator-only/creator-configuring.qdoc | 2 +- .../src/overview/creator-only/creator-getting-started.qdoc | 2 +- .../src/overview/creator-only/creator-overview.qdoc | 6 +++--- .../creator-only/creator-projects-build-run-tutorial.qdoc | 4 ++-- .../projects/creator-only/creator-projects-compilers.qdoc | 6 +++--- .../projects/creator-only/creator-projects-qt-versions.qdoc | 2 +- .../creator-only/creator-projects-settings-overview.qdoc | 2 +- .../src/qtquick/creator-only/qtquick-creating.qdoc | 4 ++-- doc/qtcreator/src/reference/creator-sdk-tool.qdoc | 3 ++- doc/qtcreator/src/webassembly/creator-webassembly.qdoc | 4 ++-- 16 files changed, 26 insertions(+), 24 deletions(-) diff --git a/doc/qtcreator/src/android/androiddev.qdoc b/doc/qtcreator/src/android/androiddev.qdoc index e2b064d5b50..cc6c7d23b11 100644 --- a/doc/qtcreator/src/android/androiddev.qdoc +++ b/doc/qtcreator/src/android/androiddev.qdoc @@ -43,7 +43,7 @@ automatically download, install, and configure for you. \endlist - \sa {Android}{How To: Develop for Android} + \sa {Android}{How To: Develop for Android}, {Get and Install Qt} */ /*! diff --git a/doc/qtcreator/src/conan/creator-projects-conan.qdoc b/doc/qtcreator/src/conan/creator-projects-conan.qdoc index 67cdd9141ae..4ebd14aa9fb 100644 --- a/doc/qtcreator/src/conan/creator-projects-conan.qdoc +++ b/doc/qtcreator/src/conan/creator-projects-conan.qdoc @@ -31,8 +31,8 @@ sources. Because the client has a local cache for package storage, you can work offline, as long as no new packages are needed from remote servers. - To use Conan, install it by using \QOI or the tools that - your operating system has. For example, on Windows, you can use the + To use Conan, install it by using \l{Get and Install Qt}{\QOI} or the tools + that your operating system has. For example, on Windows, you can use the \c {choco install conan} or \c {pip install conan} command. \note Enable the Conan plugin to use it. diff --git a/doc/qtcreator/src/howto/creator-help.qdoc b/doc/qtcreator/src/howto/creator-help.qdoc index 530937337cc..06f669472f0 100644 --- a/doc/qtcreator/src/howto/creator-help.qdoc +++ b/doc/qtcreator/src/howto/creator-help.qdoc @@ -153,7 +153,8 @@ \endlist \if defined(qtcreator) - \sa {Read Documentation}{How To: Read Documentation} + \sa {Read Documentation}{How To: Read Documentation}, {Installation}, + {Get and Install Qt} \endif */ diff --git a/doc/qtcreator/src/howto/creator-only/creator-how-to-install-plugins.qdoc b/doc/qtcreator/src/howto/creator-only/creator-how-to-install-plugins.qdoc index a0f0bb9adb8..fe844c7e952 100644 --- a/doc/qtcreator/src/howto/creator-only/creator-how-to-install-plugins.qdoc +++ b/doc/qtcreator/src/howto/creator-only/creator-how-to-install-plugins.qdoc @@ -38,5 +38,5 @@ \li Select \uicontrol {Restart Now} to restart \QC and load the plugin. \endlist - \sa {Enable and disable plugins} + \sa {Enable and disable plugins}, {Installation}, {Get and Install Qt} */ diff --git a/doc/qtcreator/src/howto/creator-only/qtcreator-faq.qdoc b/doc/qtcreator/src/howto/creator-only/qtcreator-faq.qdoc index a67a8fb7657..63a428febe1 100644 --- a/doc/qtcreator/src/howto/creator-only/qtcreator-faq.qdoc +++ b/doc/qtcreator/src/howto/creator-only/qtcreator-faq.qdoc @@ -121,7 +121,7 @@ \b {The Qt API Reference Documentation is missing and context help does not find topics. What can I do?} - Install a Qt version and Qt documentation with \QOI. + Install a Qt version and Qt documentation with \l{Get and Install Qt}{\QOI}. To view the installed documentation (.qch files) and to add documentation, go to \preferences > \uicontrol Help > diff --git a/doc/qtcreator/src/ios/creator-ios-dev.qdoc b/doc/qtcreator/src/ios/creator-ios-dev.qdoc index b6c8d53cde9..e465b035617 100644 --- a/doc/qtcreator/src/ios/creator-ios-dev.qdoc +++ b/doc/qtcreator/src/ios/creator-ios-dev.qdoc @@ -17,7 +17,7 @@ configured iOS devices. You only need Qt libraries that are built for iOS. You can install Qt for iOS - with \QOI. + with \l{Get and Install Qt}{\QOI}. \section1 iOS 17 Devices diff --git a/doc/qtcreator/src/overview/creator-only/creator-configuring.qdoc b/doc/qtcreator/src/overview/creator-only/creator-configuring.qdoc index fa7b1ddc554..085be899eb3 100644 --- a/doc/qtcreator/src/overview/creator-only/creator-configuring.qdoc +++ b/doc/qtcreator/src/overview/creator-only/creator-configuring.qdoc @@ -178,5 +178,5 @@ For more information, see \l{Download highlight definitions}. - \sa {Installation}, {Reset \QC settings}, {Preferences} + \sa {Installation}, {Reset \QC settings}, {Preferences}, {Get and Install Qt} */ diff --git a/doc/qtcreator/src/overview/creator-only/creator-getting-started.qdoc b/doc/qtcreator/src/overview/creator-only/creator-getting-started.qdoc index b1f4bc8dc61..b9548b24e60 100644 --- a/doc/qtcreator/src/overview/creator-only/creator-getting-started.qdoc +++ b/doc/qtcreator/src/overview/creator-only/creator-getting-started.qdoc @@ -57,5 +57,5 @@ and APIs to develop Qt applications, go to \l {Qt Documentation}. \endtable - \sa {Installation} + \sa {Installation}, {Get and Install Qt} */ diff --git a/doc/qtcreator/src/overview/creator-only/creator-overview.qdoc b/doc/qtcreator/src/overview/creator-only/creator-overview.qdoc index 9ab035a23e1..19717732963 100644 --- a/doc/qtcreator/src/overview/creator-only/creator-overview.qdoc +++ b/doc/qtcreator/src/overview/creator-only/creator-overview.qdoc @@ -210,9 +210,9 @@ \li \l {Remote Linux} \endlist - Install the toolchain for building applications for the targeted - embedded platform on the computer, and then use \QOI to install Qt - libraries that are built for the platform. Add a kit with the toolchain and + Install the toolchain for building applications for the targeted embedded + platform on the computer, and then use \l{Get and Install Qt}{\QOI} to install + Qt libraries that are built for the platform. Add a kit with the toolchain and the Qt version for the device's architecture. When possible, \QOI creates suitable kits for you. diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-build-run-tutorial.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-build-run-tutorial.qdoc index 206e028e348..a0ca1155568 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-projects-build-run-tutorial.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-projects-build-run-tutorial.qdoc @@ -19,8 +19,8 @@ \brief How to build and run a Qt example. - To test that your \QOI installation is successful, open an existing - example application project. + To test that your \l{Get and Install Qt}{\QOI} installation is successful, + open an existing example application project. To run an example application on an Android or iOS device, you must set up the development environment for Android or iOS. For more information, see diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-compilers.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-compilers.qdoc index e068ec86d4f..991b8fbff84 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-projects-compilers.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-projects-compilers.qdoc @@ -22,9 +22,9 @@ necessary tools for building an application for and running it on a particular platform. - \QC automatically detects the compilers that your system or \QOI - registers and lists them in \preferences > \uicontrol Kits > - \uicontrol Compilers. + \QC automatically detects the compilers that your system or + \l{Get and Install Qt}{\QOI} registers and lists them in + \preferences > \uicontrol Kits > \uicontrol Compilers. \image qtcreator-toolchains.png diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-qt-versions.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-qt-versions.qdoc index 48958f8846e..a535c12b304 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-projects-qt-versions.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-projects-qt-versions.qdoc @@ -31,7 +31,7 @@ \section1 Register installed Qt versions - You can link to a Qt that \QOI installed to + You can link to a Qt that \l{Get and Install Qt}{\QOI} installed to automatically detect the installed Qt versions. However, you cannot link to a Qt that the system installed with some other package manager, such as your Linux distribution, brew on \macos, or Chocolatey on 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 942c42bddcf..bfe9f8a6832 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 @@ -105,7 +105,7 @@ \sa {Activate kits for a project}, {Configure projects for building}, {Configure projects for running}, {Open projects}, - {Activate custom output parsers} + {Activate custom output parsers}, {Get and Install Qt} */ /*! diff --git a/doc/qtcreator/src/qtquick/creator-only/qtquick-creating.qdoc b/doc/qtcreator/src/qtquick/creator-only/qtquick-creating.qdoc index d0c4e64970e..f8d87dda1b1 100644 --- a/doc/qtcreator/src/qtquick/creator-only/qtquick-creating.qdoc +++ b/doc/qtcreator/src/qtquick/creator-only/qtquick-creating.qdoc @@ -57,8 +57,8 @@ \note If you have not installed the Qt Virtual Keyboard module when you installed Qt, an error message will appear when you try to open - \e Main.qml for editing. You can use \l {Installing Qt} - {\QOI} to install Qt Virtual Keyboard. + \e Main.qml for editing. You can use \l{Get and Install Qt}{\QOI} + to install Qt Virtual Keyboard. \li Select \uicontrol Next to open the \uicontrol {Kit Selection} dialog. diff --git a/doc/qtcreator/src/reference/creator-sdk-tool.qdoc b/doc/qtcreator/src/reference/creator-sdk-tool.qdoc index 27f22f1bbce..547cc1b304d 100644 --- a/doc/qtcreator/src/reference/creator-sdk-tool.qdoc +++ b/doc/qtcreator/src/reference/creator-sdk-tool.qdoc @@ -12,7 +12,8 @@ \brief Configure CMake and set up compilers, debuggers, devices, Qt versions, and kits from the command line. - \QOI uses the SDK Tool (\c sdktool) to configure CMake and set \l {Kits}{Kit} + \l{Get and Install Qt}{\QOI} uses the SDK Tool (\c sdktool) to configure + CMake and set \l {Kits}{Kit} preferences, such as compilers, debuggers, devices, and Qt versions. You can use it from the command line to set Qt and \QC preferences automatically for all users of a computer, for example. For a single user, it is usually easier diff --git a/doc/qtcreator/src/webassembly/creator-webassembly.qdoc b/doc/qtcreator/src/webassembly/creator-webassembly.qdoc index ab757d7add0..37526abe87d 100644 --- a/doc/qtcreator/src/webassembly/creator-webassembly.qdoc +++ b/doc/qtcreator/src/webassembly/creator-webassembly.qdoc @@ -20,8 +20,8 @@ \note Enable the WebAssembly plugin to use it. To build applications for the web and run them in a web browser, install - Qt for WebAssembly with \QOI. It automatically adds a build and run kit - to \QC. + Qt for WebAssembly with \l{Get and Install Qt}{\QOI}. It automatically adds + a build and run kit to \QC. \section1 Set up WebAssembly development environment From 31e98000f751af47ef2925c1d6b73620c082ffd2 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Mon, 23 Sep 2024 13:03:15 +0200 Subject: [PATCH 20/22] Doc: Add Linux examples of CLI commands Fixes: QTCREATORBUG-31620 Change-Id: I2993801a60a93d9593015dc12efdb4ff0fb2985e Reviewed-by: Christian Stenger --- .../howto/creator-only/creator-how-tos.qdoc | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/doc/qtcreator/src/howto/creator-only/creator-how-tos.qdoc b/doc/qtcreator/src/howto/creator-only/creator-how-tos.qdoc index d31fe7a97bd..b8e05b7ca2c 100644 --- a/doc/qtcreator/src/howto/creator-only/creator-how-tos.qdoc +++ b/doc/qtcreator/src/howto/creator-only/creator-how-tos.qdoc @@ -297,15 +297,31 @@ \section1 Examples of CLI commands + The following are examples of the commands on supported platforms when you + install \QC with \l{Get and Install Qt}{\QOI} to the default location. Change + the paths as necessary. + On Windows: \list - \li \c {C:\qtcreator\bin>qtcreator -help} + \li \c {C:\Qt\Tools\QtCreator\bin\qtcreator -help} - \li \c {C:\qtcreator\bin>qtcreator C:\TextFinder\textfinder.cpp:100:2} + \li \c {C:\Qt\Tools\QtCreator\bin\qtcreator C:\TextFinder\textfinder.cpp:100:2} - \li \c {C:\qtcreator\bin>qtcreator C:\TextFinder\textfinder.cpp +100+2} + \li \c {C:\Qt\Tools\QtCreator\bin\qtcreator C:\TextFinder\textfinder.cpp +100+2} + + \endlist + + On Linux: + + \list + + \li \c {~/Qt/Tools/QtCreator/bin/qtcreator -help} + + \li \c {~/Qt/Tools/QtCreator/bin/qtcreator /src/TextFinder/textfinder.cpp:100:2} + + \li \c {~/Qt/Tools/QtCreator/bin/qtcreator /src/TextFinder/textfinder.cpp+100+2} \endlist @@ -313,7 +329,7 @@ \list - \li \c {Qt\ Creator.app/Contents/MacOS/Qt\ Creator -help} + \li \c {~/Qt/Qt\ Creator.app/Contents/MacOS/Qt\ Creator -help} \endlist From 88446ae78ae4eed307f92a251e8efd7d9e156aa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20L=C3=B6hning?= Date: Mon, 23 Sep 2024 22:47:48 +0200 Subject: [PATCH 21/22] SquishTests: Update expected tutorials in suite_WELP Change-Id: I20231887ee8cc15e9bfdb6b45b964472b9246e57 Reviewed-by: Christian Stenger --- tests/system/suite_WELP/tst_WELP01/test.py | 2 +- tests/system/suite_WELP/tst_WELP04/test.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/system/suite_WELP/tst_WELP01/test.py b/tests/system/suite_WELP/tst_WELP01/test.py index 89ee6dbd1e3..1cad3151d85 100644 --- a/tests/system/suite_WELP/tst_WELP01/test.py +++ b/tests/system/suite_WELP/tst_WELP01/test.py @@ -129,7 +129,7 @@ def main(): for (qType, prop, info) in expect: test.verify(checkIfObjectExists(search % (qType, prop)), "Verifying whether %s is shown" % info) - checkTableViewForContent(search % (expect[0][0], expect[0][1]), "Creating .*", "Tutorials", + checkTableViewForContent(search % (expect[0][0], expect[0][1]), "^Qt .*", "Tutorials", "Verifying that at least one tutorial is displayed.") # exit Qt Creator invokeMenuItem("File", "Exit") diff --git a/tests/system/suite_WELP/tst_WELP04/test.py b/tests/system/suite_WELP/tst_WELP04/test.py index 21b4b515bbf..632a803e7e5 100644 --- a/tests/system/suite_WELP/tst_WELP04/test.py +++ b/tests/system/suite_WELP/tst_WELP04/test.py @@ -33,7 +33,7 @@ def main(): tutorial = findExampleOrTutorial(listView, ".*", True) test.verify(tutorial is None, "Verifying: 'Tutorials' topic is opened and nothing is shown.") - bnr = "Building and Running an Example" + bnr = "Build and run" replaceEditorContent(searchTutorials, bnr.lower()) listView = __waitForListView__() waitFor('findExampleOrTutorial(listView, "%s.*") is not None' % bnr, 3000) @@ -50,8 +50,8 @@ def main(): sendEvent("QCloseEvent", waitForObject(":Help Widget_Help::Internal::HelpWidget")) # check a demonstration video link mouseClick(searchTutorials) - replaceEditorContent(searchTutorials, "embedded device") - embeddedTutorial = "How to install and set up Qt for Device Creation.*" + replaceEditorContent(searchTutorials, "device") + embeddedTutorial = "^Qt Creator for Bare Metal Development" listView = __waitForListView__() waitFor('findExampleOrTutorial(listView, embeddedTutorial) is not None', 3000) tutorial = findExampleOrTutorial(listView, embeddedTutorial, True) From 852470cfbb947433a3fc3d0ad3cc5d2765637ee4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20L=C3=B6hning?= Date: Fri, 13 Sep 2024 13:31:23 +0200 Subject: [PATCH 22/22] SquishTests: Update and clean up toggling of QML debugging - The old code was waiting for labels but their properties were outdated. Since these were only used to issue a warning, I removed them. - After removing that, the remaining code branches could be merged. - The branch for CMake would try clicking a button which would not appear at this point in time anymore. That dialog - with changed properties - will now be shown when starting a build. It didn't matter because that brach was unused anyway. I removed it. Change-Id: I564ea7a7c918ba910d50cc42306683613222226d Reviewed-by: Christian Stenger --- tests/system/objects.map | 1 - tests/system/shared/build_utils.py | 43 ++++++------------------------ 2 files changed, 8 insertions(+), 36 deletions(-) diff --git a/tests/system/objects.map b/tests/system/objects.map index 6ad38f58318..e18f8512d7c 100644 --- a/tests/system/objects.map +++ b/tests/system/objects.map @@ -213,7 +213,6 @@ :scrollArea.Details_Utils::DetailsButton {text='Details' type='QToolButton' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'} :scrollArea.Edit build configuration:_QComboBox {leftWidget=':scrollArea.Edit build configuration:_QLabel' type='QComboBox' unnamed='1' visible='1'} :scrollArea.Edit build configuration:_QLabel {text='Edit build configuration:' type='QLabel' unnamed='1' visible='1'} -:scrollArea.Library not available_QLabel {name='qmlDebuggingWarningText' text?='Library not available*' type='QLabel' visible='1' window=':Qt Creator_Core::Internal::MainWindow'} :sourceFileLineEdit_Utils::FileNameValidatingLineEdit {name='SrcFileName' type='Utils::FancyLineEdit' visible='1' window=':New_ProjectExplorer::JsonWizard'} :splitter.Commit File(s)_VcsBase::QActionPushButton {text~='(Commit .+/.+ File.*)' type='QToolButton' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'} :splitter.Description_QGroupBox {container=':Qt Creator.splitter_QSplitter' name='descriptionBox' title='Description' type='QGroupBox' visible='1'} diff --git a/tests/system/shared/build_utils.py b/tests/system/shared/build_utils.py index a47416ca333..fb28c8d8569 100644 --- a/tests/system/shared/build_utils.py +++ b/tests/system/shared/build_utils.py @@ -142,41 +142,14 @@ def verifyBuildConfig(currentTarget, configName, shouldBeDebug=False, enableShad buildCfCombo = waitForObject("{leftWidget=':scrollArea.Edit build configuration:_QLabel' " "type='QComboBox' unnamed='1' visible='1'}") - if shouldBeDebug: - test.compare(buildCfCombo.currentText, 'Debug', "Verifying whether it's a debug build") - else: - test.compare(buildCfCombo.currentText, 'Release', "Verifying whether it's a release build") - if enableQmlDebug: - try: - libLabel = waitForObject(":scrollArea.Library not available_QLabel", 2000) - mouseClick(libLabel, libLabel.width - 10, libLabel.height / 2, 0, Qt.LeftButton) - except: - pass - # Since waitForObject waits for the object to be enabled, - # it will wait here until compilation of the debug libraries has finished. - runCMakeButton = ("{type='QPushButton' text='Run CMake' unnamed='1' " - "window=':Qt Creator_Core::Internal::MainWindow'}") - qmlDebuggingCombo = findObject(':Qt Creator.QML debugging and profiling:_QComboBox') - if selectFromCombo(qmlDebuggingCombo, 'Enable'): - if buildSystem is None or buildSystem == "CMake": # re-run cmake to apply - clickButton(waitForObject(runCMakeButton)) - elif buildSystem == "qmake": # Don't rebuild now - clickButton(waitForObject(":QML Debugging.No_QPushButton", 5000)) - try: - problemFound = waitForObject("{window=':Qt Creator_Core::Internal::MainWindow' " - "type='QLabel' name='problemLabel' visible='1'}", 1000) - if problemFound: - test.warning('%s' % problemFound.text) - except: - pass - else: - qmlDebuggingCombo = findObject(':Qt Creator.QML debugging and profiling:_QComboBox') - if selectFromCombo(qmlDebuggingCombo, "Disable"): - test.log("Qml debugging libraries are available - unchecked qml debugging.") - if buildSystem is None or buildSystem == "CMake": # re-run cmake to apply - clickButton(waitForObject(runCMakeButton)) - elif buildSystem == "qmake": # Don't rebuild now - clickButton(waitForObject(":QML Debugging.No_QPushButton", 5000)) + buildType = "Debug" if shouldBeDebug else "Release" + test.compare(buildCfCombo.currentText, buildType, + "Verifying whether it's a %s build" % buildType) + qmlDebuggingCombo = waitForObject(':Qt Creator.QML debugging and profiling:_QComboBox') + if (selectFromCombo(qmlDebuggingCombo, "Enable" if enableQmlDebug else "Disable") + and buildSystem == "qmake"): + # Don't rebuild now + clickButton(waitForObject(":QML Debugging.No_QPushButton", 5000)) clickButton(waitForObject(":scrollArea.Details_Utils::DetailsButton")) switchViewTo(ViewConstants.EDIT)