[qt/qt-creator/qt-creator]: Summary of bulk changes made

KDE Git Services - Bulk Change <[email protected]>
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git repository change summary for qt/qt-creator/qt-creator
Pushed by mirror-service into branch 'master'.
Changed from cc869ce8aaa82850aa5c8598376cbd5061cff75e to 25fe8139927d8ede033f8570010d6fe66a805690
Acknowledgement was received that this change introduces only existing code that has been pushed to another public open source repository.

This change contains the following new commits:

Git commit 5085f61c6e47c58d17eaf7835b8c89bc719bb6d3 by hjk on 21/07/2026 at 06:47..
QmlJS: Port QML refactoring system tests to plugin tests

Remove the Squish system tests suite_QMLS/tst_QMLS05..07, which applied
the QML "Refactoring" quick-fixes from the editor context menu and
checked the resulting text:

  - Split Initializer
  - Wrap Component in Loader
  - Add a Comment to Suppress This Message

Replace them with in-process QmlJSEditor tests that open a QML editor,
wait for its semantic info, place the cursor, then collect and apply the
same quick-fix through the production code (findQmlJSQuickFixes ->
QmlJSQuickFixOperation::perform()) and check the document text.

The "suppress message" test triggers a duplicate-declaration warning
(M107) rather than the invalid-property-name warning (M16) that the
Squish test used. The suppress quick-fix is message-agnostic - it
comments out whatever diagnostic sits at the cursor - and M16 is only
emitted after resolving the property against the QtQuick type
environment, which the lightweight plugin test does not set up. M107
comes from pure scope analysis and fires deterministically.

This is the first test in the QmlJSEditor plugin, so it also adds the
WITH_TESTS wiring.

Assisted-by: Claude Code
Change-Id: I677edcd7a0198571163268fc7747217c1ea6f256
Reviewed-by: Christian Stenger <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/5085f61c6e47c58d17eaf7835b8c89bc719bb6d3

Git commit dd75732e20c88e68fe2da05babb684590c679720 by hjk on 21/07/2026 at 06:47..
TextEditor: Let code styles unregister from their pool

Give ICodeStylePreferences a back-link to the CodeStylePool it was added
to (set in addCodeStyle()) and make its destructor detach from that pool.
Factor the unlink out of removeCodeStyle() into a new detachCodeStyle()
that drops the style from the pool's lists and emits codeStyleRemoved(),
without deleting the style or its settings file.

The pool's lists can no longer hold a dangling pointer, regardless of who
deletes a style or in what order, and delegating styles drop a vanishing
delegate through the existing codeStyleRemoved wiring. ~CodeStylePool
clears the back-links on its remaining members so a style that outlives
the pool (the global style vs. the global pool function statics) does not
detach from a dead pool.

While here, rename the confusing members: the CodeStylePoolPrivate style
lists m_pool/m_builtInPool/m_customPool become m_codeStyles/
m_builtInCodeStyles/m_customCodeStyles (matching their accessors), and
ICodeStylePreferencesPrivate::m_pool, which holds the delegating pool,
becomes m_delegatingPool (pairing with m_memberPool).

Assisted-by: Claude Code
Change-Id: Ie08319ca23d0665c1137285122af903a0366c848
Reviewed-by: Christian Stenger <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/dd75732e20c88e68fe2da05babb684590c679720

Git commit 67581036200ccfd8e72b969ad43a141fe3ae1244 by hjk on 21/07/2026 at 06:48..
FakeVim: Make the mapping timeout configurable

FakeVim always waited a hard-coded 1000 ms for the rest of a mapped key
sequence when the typed prefix was ambiguous (for example "gg" with a
user mapping that starts with "g"), with no way to shorten or disable
the wait.

Add the Vim "timeout"/"timeoutlen" options: "timeoutlen" sets the wait
in milliseconds (default 1000, as in Vim) and "notimeout" waits for the
next key indefinitely instead. This lets users reduce the otherwise
perceptible delay.

Fixes: QTCREATORBUG-29162
Assisted-by: Claude Code
Change-Id: I7ec7bd84f1117e57d0cde9b967861e8bcb6e2f2f
Reviewed-by: Cristian Adam <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/67581036200ccfd8e72b969ad43a141fe3ae1244

Git commit c75fa4b8a21de966e35b3e7c8a1cfbbe5f66d13d by hjk on 21/07/2026 at 06:48..
FakeVim: Keep the visual selection inclusive for shortcuts

In visual character mode Vim's selection is inclusive, but while the
editor is focused FakeVim leaves the last character out of the
underlying text cursor (it is covered by the block cursor instead). A
Qt Creator shortcut that reads the selection synchronously - such as
Advanced Find prefilling its search field - therefore saw one character
too few. The selection was only made inclusive once the editor lost
focus, which is too late for a shortcut triggered while it still has
focus.

Make the selection inclusive when a key is handed on as a Qt Creator
shortcut, so its action sees the whole visual selection.

Fixes: QTCREATORBUG-27442
Assisted-by: Claude Code
Change-Id: I08350a8d07d4eb33c634560a645994e0945a9e08
Reviewed-by: Cristian Adam <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/c75fa4b8a21de966e35b3e7c8a1cfbbe5f66d13d

Git commit 0a073f9286fa9145caa2b7096c5a579cee9e53d8 by hjk on 21/07/2026 at 06:48..
FakeVim: Extend CTRL-O/CTRL-I jumps across files

The jump list is stored per buffer, so after a jump that switched files
(such as Follow Symbol Under Cursor) CTRL-O could not return to the
previous file: the newly entered buffer starts with an empty jump list.

Once the buffer-local jump list is exhausted, continue in Qt Creator's
global navigation history, so CTRL-O goes back and CTRL-I forward across
files.

Fixes: QTCREATORBUG-12114
Assisted-by: Claude Code
Change-Id: Iad1c42020946dfb718747f1fae2a1c9cc481ce9c
Reviewed-by: Cristian Adam <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/0a073f9286fa9145caa2b7096c5a579cee9e53d8

Git commit dbb17df4f170df533d95bb948e20597545d6ee4c by Jarek Kobus on 21/07/2026 at 07:22..
Debugger: Fix QML stack truncation in fetchStack's extraqml path

fetchStack()'s passive "extraqml" stack extraction calls
qt_v4StackTraceForEngine() via an inferior call and converts the
returned QString with str(gdb.parse_and_eval(...)). That goes
through gdb's own value printer, which truncates at "print
elements" (200 by default), silently corrupting the embedded
"stack=[...]" MI text for any non-trivial QML call chain.

Lift the print-elements limit for the duration of that call and
restore it afterward.

This is shared code: both GdbEngine::loadAdditionalQmlStack() and
GdbImpl's QmlStack refresh call into this same fetchStack() path,
so both are affected and both are fixed by this one change.

Change-Id: I540fbf8c44bbd1235c82d35de96b7283d970610b
Reviewed-by: hjk <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/dbb17df4f170df533d95bb948e20597545d6ee4c

Git commit 2b1ede4718850c8e00aa3a1a095a2464b5666bbb by Jarek Kobus on 21/07/2026 at 07:22..
Debugger: Remove the dead languageContext()

languageContext() was a virtual returning a per-subclass Context
constant (CppDebuggerEngine/QmlEngine were the only overriders).
No action/Command anywhere is registered against
Context(C_CPPDEBUGGER)/Context(C_QMLDEBUGGER), so its one reader,
EngineManagerPrivate::activateEngineItem(), may be dropped safely
along with the method itself.

Also drops the now-unused C_CPPDEBUGGER/C_QMLDEBUGGER constants.

Amends 3b5ecac238b87615b44b27375cef0b4f1d4637e4.

Change-Id: I4ff4e84bbde78466dc908ce2bdbf90ff2122c6ad
Reviewed-by: hjk <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/2b1ede4718850c8e00aa3a1a095a2464b5666bbb

Git commit a2f9d53648b7bcc0444b773759f8bf46caf06e34 by David Schulz on 21/07/2026 at 07:22..
QtSupport: fix memory leak

Created Qt versions that have an identical mkspec to an already found Qt
version were not handled further.

Change-Id: Ia814ac2b88ebea7da8542eda9a93664756fdec7a
Reviewed-by: Marcus Tillmanns <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/a2f9d53648b7bcc0444b773759f8bf46caf06e34

Git commit c5b013116b4c015ed61e5eeeecafeb3ca81a06de by David Schulz on 21/07/2026 at 07:22..
QtSupport: Allow Qt auto-detection without a target kit

QtKitAspectFactory::autoDetect() registers the Qt versions it finds
and attaches them to the passed kit. Guard the attach with a null
check so callers can pass a null kit to only detect and register the
Qt versions, without binding them to a specific kit.

Change-Id: I474cf0082a44c8c5b6ceb18372b84ffd488af875
Reviewed-by: Marcus Tillmanns <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/c5b013116b4c015ed61e5eeeecafeb3ca81a06de

Git commit 44895221fa933534f9bb3f41444512174a540896 by Jarek Kobus on 21/07/2026 at 07:35..
Debugger: Devirtualize validateRunParameters()

validateRunParameters() was a virtual with exactly one override
(CppDebuggerEngine) and an empty base body - unlike
languageContext(), this one is genuinely called for every engine
from DebuggerEngine::setDevice(), just a no-op for non-C++ ones.

Moved CppDebuggerEngine's body into the base method itself,
gated by a new setRunParametersValidationEnabled() flag. Defaults
to true, since C++/ELF/PE validation is the common case; QmlEngine,
PdbEngine, and DapEngine (covering all its DAP variants) disable
it explicitly in their own constructors to preserve their previous
no-op behavior.

Change-Id: I053cd46254093b11e4554c3a971d5a0af5947a03
Reviewed-by: hjk <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/44895221fa933534f9bb3f41444512174a540896

Git commit a657bc238d7e108a834e9d44951b8e5c47401d14 by Jarek Kobus on 21/07/2026 at 07:38..
Debugger: Get rid of CppDebuggerEngine

Move initDebugHelper() and other private methods to the base
DebuggerEngine.

Change-Id: I1270f3875e8e11160658af2985196f9f5f44a9d2
Reviewed-by: hjk <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/a657bc238d7e108a834e9d44951b8e5c47401d14

Git commit 22a1fb886e8fdec5e7b3fa47050f8499f59d1715 by Ahmed El Khazari on 21/07/2026 at 08:40..
Android: Add Logcat tab via Tools > Android > Logcat

Add a Tools > Android > Logcat submenu listing ready devices;
triggering an entry opens (or raises) that device's Logcat tab in the
App Output pane. The submenu is rebuilt from DeviceManager each time it
is shown, so device connects and disconnects are reflected without a
restart.

A device's output comes from a LogcatStream owning a single live
'adb logcat' tail. Streams live in a per-device registry so every
consumer (the menu now, the runner's auto-bind later) shares one adb
process rather than spawning duplicate tails. The tab is backed by a
stub RunControl so the App Output pane shows it as a running tab, and
the stream's lifetime follows that tab.

The submenu is assembled in setupAndroidToolsMenu() by addLogcatMenu(),
which lists the ready devices (filtered with AndroidDevice::asReady()
and labelled with AndroidDevice::displayNameWithSerial()) and opens
their tabs through showLogcatTab(), exported from androidlogcat.cpp.

The stream captures the device's serial when it starts; the tail's
relaunches reuse it instead of asking the device again.

Task-number: QTCREATORBUG-34397
Task-number: QTCREATORBUG-33853
Change-Id: Id3cddfeafc8228921a0d2e189502bed23759e93c
Reviewed-by: Assam Boudjelthia <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/22a1fb886e8fdec5e7b3fa47050f8499f59d1715

Git commit e09c9e87f17c0bb3d4387beed26a3e7844d530c2 by Christian Stenger on 21/07/2026 at 09:06..
SquishTests: Fix tab bar size computation

Depending on display, system config, and maybe more the default
size of the tab bar may not be sufficient to display all modes
when using a default Qt Creator.
In that case the size of each tab gets internally adjusted to
be able to display all.
The originally estimated value is now computed when needed to
handle such cases.

Change-Id: I12e0975b7061b06af814066cce37e1484889fee5
Reviewed-by: Jukka Nokso <[email protected]>
Reviewed-by: Christian Stenger <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/e09c9e87f17c0bb3d4387beed26a3e7844d530c2

Git commit 6b6d60b1ec47918bf4d85447e058cea739cba1fa by hjk on 21/07/2026 at 09:07..
Remote: Attach a Qt version to the remote Windows kit

After creating the kit for the device, look for an MSVC Qt installed
under C:\Qt that matches the kit's target ABI and attach it. The match
is the highest-version build whose toolchain directory name carries
"msvc" and the right architecture (x64 vs arm64).

The attachment goes through the generic ProjectExplorer kit-aspect
auto-detection (only the Qt aspect, matched by its stable id), driven by
GlobalTaskTree as LinuxDevice does. This keeps the Qt creation inside
QtSupport, so the plugin needs no QtSupport dependency. Running every
aspect was avoided on purpose: the toolchain aspect would re-run MSVC
detection and overwrite the bundle just set on the kit.

The integration test now also verifies that a Qt version is attached,
checked via the generic kit value to keep the test free of a QtSupport
dependency.

Assisted-by: Claude Code
Change-Id: Ide30424491ffe2a38760117c19bf2276f42caaf7
Reviewed-by: David Schulz <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/6b6d60b1ec47918bf4d85447e058cea739cba1fa

Git commit e92d8318afa0c6022df995b9eaac45c105bcf72f by hjk on 21/07/2026 at 09:07..
TextEditor: Hold built-in code styles as factory members

Now that styles unregister themselves from their pool on destruction,
the built-in styles no longer need to be heap-allocated and swept up by
the factory destructor. Make them value members of the concrete
factories (CppEditor, QmlJSTools, Nim) instead, configured in the
setBuiltInCodeStyles() callback through a captured this.

With the built-ins owned as members and the custom styles owned by the
pool (parented to it), ICodeStylePreferencesFactory only needs to delete
the global style it created and the pool; its destructor collapses from
the qDeleteAll() sweep to "delete m_globalCodeStyle; delete m_pool;". A
built-in member destroyed before the base destructor detaches itself
cleanly, and any style delegating to it drops it through the existing
codeStyleRemoved wiring.

Also convert the ModelTestCodeStyleFactory built-in in the unit test.

Assisted-by: Claude Code
Change-Id: I262dc53e12246b6534dd35baa9ea8d9bb84529d4
Reviewed-by: Christian Stenger <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/e92d8318afa0c6022df995b9eaac45c105bcf72f

Git commit 4c43b332dac9de4b8b43ce2f8daa035e584b2963 by hjk on 21/07/2026 at 09:08..
Utils: Match the executable suffix when searching directories

FilePath::searchInDirectories() and searchAllInDirectories() derived the
candidate executable names from the search term's own OS via
appendExeExtensions(). For a bare name like "cmake" that OS is the host,
so searching a Windows device from a non-Windows host never matched
cmake.exe.

Derive the suffix from the directory being searched instead, so the
target device's OS decides the suffix. Also fall back to the conventional
Windows executable extensions when the host PATHEXT is empty (it is only
populated on a Windows host), so WithAnySuffix works for a Windows target
reached from another host.

Assisted-by: Claude Code
Change-Id: I4c39bc498d56355a8ec8b47f6381c4d21990b620
Reviewed-by: David Schulz <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/4c43b332dac9de4b8b43ce2f8daa035e584b2963

Git commit b691b1738a1c606ab0146288558cf75edcc7ccee by hjk on 21/07/2026 at 09:31..
Debugger: Guard QML inspector inserts against a missing parent

The QML inspector attached a child object to a parent as soon as
m_debugIdToIname named that parent, without checking the parent's
WatchItem still existed in the Locals tree. When it did not (never
inserted, or dropped by a tree rebuild), WatchHandler::insertItem hit
its parent assertion, once per object -- flooding the log and making
the IDE unresponsive during QML debugging.

Only take the direct-insert path when the parent is actually present;
otherwise defer the object and re-fetch the parent, as already done for
parents unknown to m_debugIdToIname.

Verified with a churning Qt Quick app under the debugger: the assert
burst at watchhandler.cpp:2245 disappears with the guard.

Fixes: QTCREATORBUG-34790
Assisted-by: Claude Code
Change-Id: I07a40640b5767b9adb9ce9f0d8406479db5d216b
Reviewed-by: Ulf Hermann <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/b691b1738a1c606ab0146288558cf75edcc7ccee

Git commit 435e318222d6309a20093693704107f1dbddb434 by Jarek Kobus on 21/07/2026 at 09:50..
Debugger: Add DebuggerRunParameters::isElfTarget()

Dedupes the isElf check duplicated in setLinuxOsAbi() and an
upcoming GdbImpl caller.

Change-Id: I18b3ab423d02bfcefd48156df613c34f94c6c95a
Reviewed-by: hjk <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/435e318222d6309a20093693704107f1dbddb434

Git commit 202ff05e3dc6ea90a92cbe5785e297aa62c4c2d0 by Eike Ziller on 21/07/2026 at 10:12..
ACP: Fix tab title after closing session

It was still showing the old working directory.

Change-Id: Id47547aeadcac9000bb56b2e3cf38fbec5518110
Reviewed-by: David Schulz <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/202ff05e3dc6ea90a92cbe5785e297aa62c4c2d0

Git commit d8d2ed83dd5c43cf952bb82dc641471d8a2a2456 by hjk on 21/07/2026 at 10:32..
TextEditor: Let CodeStyleAspect host language value editors

Add a value-editor hook to ICodeStylePreferencesFactory
(setValueEditorCreator) returning just the language's value-editing
widget, which edits the code style live. When a language provides one,
CodeStyleAspect builds the common selector and preview around it and
owns the deferred apply/cancel and dirtiness against the real style via
its page-local pool, instead of the language supplying a whole
CodeStyleEditor through createSettingsEditor.

The snippet preview building is factored into a reusable helper. The
existing createSettingsEditor path is kept for languages not yet
converted.

Assisted-by: Claude Code
Change-Id: Ia5a3d10fecd703c9153758b8682a26e23c149800
Reviewed-by: Christian Stenger <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/d8d2ed83dd5c43cf952bb82dc641471d8a2a2456

Git commit 2ff37e3ca766d85d89c2803eab5c3e07258f61c3 by Christian Kandeler on 21/07/2026 at 10:50..
Utils: Remove unused TextDisplay parameter

Change-Id: I03a6ad1b14a054b822842b9aa0d1fffb089904fa
Reviewed-by: hjk <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/2ff37e3ca766d85d89c2803eab5c3e07258f61c3

Git commit 2b08d41b0c682c8ad04dbba9b66420f6af77ed36 by Christian Stenger on 21/07/2026 at 10:52..
AutoTest: Work around failing options handling

..on iOS devices. For running an app on iOS devicectl is used.
Passing application options starting with dash may interfer
with devicectl itself as it fails to distinguish between
own options and options for the app.
Disable arguments processing if it makes it possible to
run the tests for such cases.
This does not work for boost or gtest as there anything
is passed on with options starting with a dash.
Catch does work limited, as we normally turn the reporter to
print XML, so visual test output will fail as the parser only
handles XML, but the text output produced instead is still
available inside the test results pane.

Task-number: QTCREATORBUG-34802
Change-Id: I85187516b096d80905578120c6d53272626f909a
Reviewed-by: Christian Stenger <[email protected]>
Reviewed-by: Eike Ziller <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/2b08d41b0c682c8ad04dbba9b66420f6af77ed36

Git commit 35f3fb8b8a6c09166a9007d012b05ca482fd71ef by Christian Kandeler on 21/07/2026 at 10:56..
Utils: Remove some unneeded includes from aspects.h

Aspects are widely used in Qt Creator and are often held by value as
public class members, which means this header file creeps pretty much
everywhere. It is therefore essential to keep the number of header files
it includes as small as possible, as not to kill incremental builds
completely. This patch starts that effort.

Change-Id: Ice4ad4e28d2166187f80cc50dc230e7e9e4bfd17
Reviewed-by: hjk <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/35f3fb8b8a6c09166a9007d012b05ca482fd71ef

Git commit 37a7d3b5f018ae71de11fe52166e11e1a3b52c7f by Joerg Bornemann on 21/07/2026 at 11:30..
HarmonyOS: Sign the .hap during deployment

Two additions let the deploy step build and sign an installable package
without manual environment setup:

- Set QT_HARMONYOS_HVIGOR in the build environment (Sdk::hvigorCommand).
  harmonydeployqt does not search PATH for hvigor, so without this its
  hvigor step is skipped and no package is produced.

- The make_hap step reads the signing configuration that DevEco Studio's
  automatic signing writes into the project's harmonyos-build
  build-profile.json5 and passes it via QT_HARMONYOS_SIGNING_*.
  harmonydeployqt regenerates that file on each run and clears the
  signing configuration, so the step caches the material and re-applies
  it on every build, keeping deployment signed even after a run, or
  another tool, has cleared the file. The key and store passwords are
  secrets and are not written to the project .user file; they are
  re-read from build-profile.json5 each session, and the step warns when
  they are missing. When no configuration is available, the step notes
  that the package will be unsigned and points to DevEco Studio to set
  up automatic signing.

Change-Id: I10a7399ddc2a9c08db9cdd403a51128f580aade1
Reviewed-by: hjk <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/37a7d3b5f018ae71de11fe52166e11e1a3b52c7f

Git commit d4a634e5916c8211e0182c22cd0768296923dc60 by hjk on 21/07/2026 at 12:03..
Remote: Attach a CMake tool to the remote Windows kit

Find the CMake bundled with Qt under C:\Qt\Tools on the device and attach
it to the kit, so the kit can configure CMake projects. This reuses the
generic kit-tool attachment (now generalized to run several kit aspects,
each over its own device search paths), so the Qt and CMake tools are
created by their owning plugins, reached polymorphically - the plugin
still needs no QtSupport or CMakeProjectManager dependency.

The integration test now also checks that a CMake tool is attached. Both
the Qt and CMake checks are guarded on their kit aspect being registered,
because a -test run may not load those plugins (the full GUI always
does); run with "-load QtSupport -load CMakeProjectManager" to exercise
them.

Assisted-by: Claude Code
Change-Id: I7a6927e97929ed8b7e522aeaac2176fbf1d8f4cf
Reviewed-by: David Schulz <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/d4a634e5916c8211e0182c22cd0768296923dc60

Git commit 922c8b964524df5e6b549659777a41b58b9544f5 by Orgad Shaneh on 21/07/2026 at 12:23..
Build: Regroup plugins by dependency level in CMakeLists

Assign each plugin to its correct level, where a plugin's level is the
longest chain of plugin edges leading to it. Both PLUGIN_DEPENDS and
PLUGIN_RECOMMENDS require the referenced plugin's target to exist when
add_qtc_plugin runs (each reads its QTC_PLUGIN_VERSION property), so
both constrain the build order. clangcodemodel also gains a QtSupport
edge because, with WITH_TESTS, its TEST_LINK_DEPENDS expands to
QtSupport inside PLUGIN_DEPENDS.

Only the level grouping changes here; the order within each level is
left as-is and alphabetized in a follow-up commit. vcsbase is kept at
level 4 rather than its minimal level 3 to keep the diff small.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Change-Id: I37a01337f632bcf06dea95114392900e442a467a
Reviewed-by: hjk <[email protected]>
Reviewed-by: Eike Ziller <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/922c8b964524df5e6b549659777a41b58b9544f5

Git commit 18811a3d1337bc8358946eb2c5b3c1721f402e0c by Orgad Shaneh on 21/07/2026 at 12:23..
Build: Sort plugins within levels in CMakeLists

Sort the plugins alphabetically within each dependency level. This is a
pure reordering; the level grouping is unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Change-Id: I48939273493033d024cac0893b5ef266f928d1c9
Reviewed-by: Eike Ziller <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/18811a3d1337bc8358946eb2c5b3c1721f402e0c

Git commit b7a857adad71977df3e8f939e9e702cd94640a74 by hjk on 21/07/2026 at 12:44..
Utils: Match wildcard name filters in FileDialog

The file open dialog filtered entries by a file suffix parsed from the
name filter, so glob patterns without an extension (e.g. "qmake*")
never matched. An extensionless file such as a HarmonyOS "qmake"
wrapper was shown grayed out and could not be selected, although
typing its full path still worked.

Match the file name against the filter's glob patterns instead, via
precompiled QRegularExpression::fromWildcard. This also covers the
existing "*.ext" and literal-name cases, and makes matching
case-insensitive.

Assisted-by: Claude Code
Change-Id: I2d1ae00d98e431106db6aa223dc0d5a355ef3b87
Reviewed-by: Cristian Adam <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/b7a857adad71977df3e8f939e9e702cd94640a74

Git commit 2e65d39b248ba9429bf279792be967b18e52c46c by Jeff Heller on 21/07/2026 at 14:09..
Autotest: Make CTest tests work with the MCP test tools

The MCP run_tests and get_test_details tools did not work for CTest
tests (which are discovered by the build system, not the C++ parser):

- run_tests deferred until the C++ TestCodeParser settled, but that
  parser is gated on the code model and can stay scheduled forever on
  a CTest-only project, so the run never started. It now resolves the
  requested tests up front and only waits for the parser when nothing
  resolves yet.
- testItemsByName() only searched framework roots, so named CTest runs
  and "Run Test by name" could not find tool tests. It now also matches
  test-tool roots.
- CTest results had no name-addressable output string, so summary
  failures and get_test_details could not reference them. Test
  outcomes now report the test name for the compact form and the name
  plus the ctest output for the detailed form; other messages keep
  their own text.
- testDetails() emitted null for absent file/line, violating the output
  schema for CTest results (which carry neither); those keys are now
  omitted when absent.

get_test_details also returned the entire test log on every call. A
single CTest test can dump many KB, flooding the caller. It now returns
only small, extracted fields by default -- the failure assertion (or
skip reason) and any warning lines -- and gates the full log behind
include:["log"] / ["messages"]. All text fields are tail-capped with a
truncated flag; the untruncated log stays in the Test Results pane.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Change-Id: I64d01b9a3351c8dc5c46ebfc7263f36767966a28
Reviewed-by: Christian Stenger <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/2e65d39b248ba9429bf279792be967b18e52c46c

Git commit 71e8865933652961dc2960e67cef5a4e8ae54ba4 by Jeff Heller on 21/07/2026 at 14:12..
Autotest: Let roots build configurations for a set of items

run_tests({scope:"named"}) turned each resolved item into its own
configuration. That is correct for frameworks, where one item is one
executable, but CTest runs the whole suite in a single ctest process
that takes a selection. One config per name therefore spawned one
ctest per test, adding a "Running tests for" node and two info rows
each, and the Test Results summary reported only the last invocation's
counts (resultTypeCount() prefers m_reportedSummary, and the
per-config summaries collide on an empty reader id).

Add ITestTreeItem::getTestConfigurationsForItems(), which asks each
root how to turn a set of its items into configurations, next to the
existing getAll/getSelected/getFailedTestConfigurations(). The default
keeps the per-item behaviour; CTestTreeItem coalesces the names into a
single testConfigurationsFor() call.

It takes items rather than names, as floated on 753310, because the
caller already resolves names to items -- including the Class::function
form -- so passing items keeps that resolution in one place and asks
each root only what it alone knows.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Change-Id: Ie383d3282e21b4d1c722b45ce251bc66e3827ae0
Reviewed-by: Christian Stenger <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/71e8865933652961dc2960e67cef5a4e8ae54ba4

Git commit 0e254d40f927775bf451234d15fb2eb1e6557c6e by Christian Kandeler on 21/07/2026 at 14:55..
Utils: Move InfoLabel::Type into namespace scope

Otherwise it cannot be forward-declared.

Change-Id: I2f91ebb7e543c5ecc5e13a33545408b360bd2b13
Reviewed-by: hjk <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/0e254d40f927775bf451234d15fb2eb1e6557c6e

Git commit 25fe8139927d8ede033f8570010d6fe66a805690 by Christian Kandeler on 21/07/2026 at 16:59..
Libs: Clean up includes

Resulting from a run of clang-include-cleaner, followed by manual
corrections.

Change-Id: If7d9bfe07cda798885296b0fcdfbd6df5f0cf11c
Reviewed-by: hjk <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/25fe8139927d8ede033f8570010d6fe66a805690
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.