[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 0dc598f3813b5219db6fd38eb842540ee0680dbb to d8fe01f61a83cb28bd0577c9edd730c61ac77ae3
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 e736419406026d1048058fba0b9f60c8ec0d8ecf by hjk on 07/08/2026 at 06:28..
Debugger: Extend start_debug to debug a given executable

Give the start_debug MCP tool optional executable, kit, arguments,
working directory and qml_debugging parameters. With no executable it
debugs the current startup project as before; when an executable is
given, debug it directly through a RunControl with debugger run
parameters (StartExternal) - no project or build needed. qml_debugging
plus QTC_DEBUGGER_NATIVE_MIXED activates native combined C++/QML
debugging.

Assisted-by: Claude Code
Change-Id: I0af88a6de6bbdda0494b9f46d65998149c90f956
Reviewed-by: Marcus Tillmanns <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/e736419406026d1048058fba0b9f60c8ec0d8ecf

Git commit f53752556331275eaaa70e5147c9562be9ad5e97 by hjk on 07/08/2026 at 06:29..
ProjectExplorer: Make kit items configurable over MCP

Add a candidateValues() hook to KitAspectFactory so item-backed aspects
(debugger, toolchain, Qt version, device, ...) can advertise their valid
values, and implement it for the debugger aspect.

Expose three generic MCP tools: get_kit_aspects lists a kit's aspects
with their current values, get_kit_aspect_options enumerates an aspect's
valid values, and set_kit_value sets one - matching an enumerated
candidate so the stored value type (e.g. a debugger item id) is
preserved.

Assisted-by: Claude Code
Change-Id: I8a045fac94f62a404edf251e609c0b90424d4ef4
Reviewed-by: Marcus Tillmanns <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/f53752556331275eaaa70e5147c9562be9ad5e97

Git commit f3cd58e2cfc636047b98db4e43bb5a510559cc18 by hjk on 07/08/2026 at 06:30..
CmdBridge: Allow building the HarmonyOS server binary

HarmonyOS refuses to execute an ELF that carries no .codesign section,
and only the OpenHarmony SDK's own lld can write one (--code-sign), so
zig cc, which cross-compiles the other platforms, cannot be used here.

Add an opt-in target that builds cmdbridge-ohos-arm64 from an SDK given
as CMDBRIDGE_OHOS_SDK. Fail at configure time when that lld does not know
the flag: the binary would still build, but would fail to start on the
device with a bare EACCES.

Nothing looks the binary up yet, since Client::getCmdBridgePath() maps
OsTypeOtherUnix, which HarmonyOS devices use, to "linux". Choosing it
belongs with the device side that will need it.

Assisted-by: Claude Code
Change-Id: Icb977cc055bf7fbfd88df431faf085ca55345042
Reviewed-by: Marcus Tillmanns <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/f3cd58e2cfc636047b98db4e43bb5a510559cc18

Git commit 2b817284d14c41cd1a913df0cc5bbd7ca8ee863f by Marcus Tillmanns on 07/08/2026 at 09:01..
Utils: Add asynchronous getOpenFilePath

Add FileUtils::getOpenFilePathAsync() returning a QFuture<FilePath>
that resolves once the user chooses a file (or an empty path on
cancel). It shows the dialog without a nested event loop, which is
required on platforms where blocking the calling thread in
QDialog::exec() is not allowed, e.g. Qt for WebAssembly without
asyncify.

The dialog is window-modal, and the non-native cases (no native
dialog available, a non-local directory, or DontUseNativeDialog)
take the same Utils::FileDialog route as the blocking variant.

The future always carries exactly one result: a dialog destroyed
along with its parent resolves it with an empty path, just like a
cancel, so callers can consume it with a plain
.then([](const FilePath &)).

On WebAssembly the file content is materialized into the in-memory
filesystem (via QFileDialog::getOpenFileContent) and the future
resolves with that temporary copy, so callers can keep reading the
result by path from any thread.

Assisted-By: Claude Opus 5 (1M context) <[email protected]>
Change-Id: Id457431776479fc2bf5a7f25a19517028df6c7a7
Reviewed-by: hjk <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/2b817284d14c41cd1a913df0cc5bbd7ca8ee863f

Git commit 445736ae9deb71a608d8e5b11e8666619f006f9a by hjk on 07/08/2026 at 09:12..
Utils: Add LineEdit::onTextChanged to the Layouting builder

FancyLineEdit emits textChanged, but the Layouting LineEdit did not
expose it, so a builder-style onTextChanged handler was silently
dropped. Connect it to FancyLineEdit::textChanged.

Assisted-by: Claude Code
Change-Id: If2933a107c429386cf6d02b783b7ccd16eee5ee1
Reviewed-by: Marcus Tillmanns <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/445736ae9deb71a608d8e5b11e8666619f006f9a

Git commit 557427019de106b9cf1fb117a3349448dda74d41 by hjk on 07/08/2026 at 09:12..
Lua: Add SpinnerOverlay Gui binding

Expose SpinnerSolution::Spinner (an overlay that centres itself on a
target widget and dims it while running) to the Lua Gui module,
complementing the inline Spinner. Construct with SpinnerOverlay(widget)
and toggle its 'running' property.

Assisted-by: Claude Code
Change-Id: I94e16586c6bb7f3401dcb95d37a153b9168708bb
Reviewed-by: Marcus Tillmanns <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/557427019de106b9cf1fb117a3349448dda74d41

Git commit e3f0e8f7309fe129f47fa45666f301cdb543b394 by Jarek Kobus on 07/08/2026 at 10:35..
CLAUDE.md: Add testing rules

Codify what keeps the autotests deterministic: no wall-clock waits, how
to bound an assertion about something *not* happening, no raising a
shared timeout to hide flakiness, and proving a new test can fail.

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

Git commit c158441cac37aa3e788b733da56e20a298c9d005 by hjk on 07/08/2026 at 10:36..
ProjectExplorer: Don't assert when a tool check filters a candidate

DeviceToolAspectFactory::check() is used as a predicate to filter the
tool candidates found on a device. A failed result is a normal outcome:
it means the candidate does not apply, e.g. the QNX qnxsdp-env factory
registers both .sh and .bat patterns and rejects the suffix that does
not match the device OS. Wrapping check() in QTC_ASSERT_RESULT turned
each such rejection into a soft assert ("File suffix does not match OS
type") during QNX device tool detection. Use the result as the
predicate and filter the candidate out silently instead.

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

Git commit f0cddb23f91e27acc0111294f0855a50f8088824 by hjk on 07/08/2026 at 10:36..
Debugger: Keep a value display format tied to the item's type

A per-item display format chosen in the Locals view was stored keyed
only by the item's internal name and reapplied to any later item with
the same name, including one of an unrelated type in a different scope.
A hexadecimal format set on an "int foo" thus turned a "struct Foo foo"
one step later into "0", and the stale format also persisted across
runs.

Record the type a format was chosen for and honor the stored format
only while the item still has that type, both in the frontend
(itemFormat) and in the dumper (currentItemFormat). Individual formats
stored by earlier versions carry no type, so there is no way to tell
whether they still apply; drop them when loading the session instead of
letting them keep misfiring. Transient formats are not affected.

Fixes: QTCREATORBUG-17221
Assisted-by: Claude Code
Change-Id: Ie491d18ce18ab0910478b95074b0ef3dec77f73d
Reviewed-by: Orgad Shaneh <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/f0cddb23f91e27acc0111294f0855a50f8088824

Git commit e8a8de65461e08d4a64117864a46037d0bb715c3 by Marcus Tillmanns on 07/08/2026 at 10:42..
Profiler: Port perfdatareader to Utils::Process

Replace the raw QProcess member with a Utils::Process. Utils::Process
is not a QIODevice, so the parser's stdout is bridged through a small
sequential QIODevice (ProcessOutputBuffer) that the
PerfProfilerTraceFile streaming reader consumes. Keeping it sequential
preserves the reader's incremental progress reporting; a random-access
buffer would derive progress from pos()/size(), which is meaningless
for a stream we grow and drain in place.

The lifecycle is driven via the done()/started()/readyRead*() signals,
and the process-mode check replaces isWritable(). On a failed start we
now report only the failure instead of also emitting finished(), which
would finalize a trace that was never initialized.

The disk-spill back-pressure is retained: perfparser's stdin can lag
behind the incoming data, so we keep spilling to temporary files and
drain them as it catches up. Utils::Process cannot report its write
queue depth, so the parser's own output serves as the progress signal.
It pumps the drain in place of QIODevice::bytesWritten(), and the
bytes written since the last output replace bytesToWrite() as the
spill threshold: perfparser emits trace data as it consumes its
stdin, so a count that keeps growing without anything coming back
means it stalled and what we wrote since is still queued. The
recording timer stays on as a heartbeat for a backlog that was
spilled while the parser was idle.

This also lets perfdatareader compile where QProcess is unavailable
(Qt for WebAssembly).

Assisted-By: Claude Opus 4.8 (1M context) <[email protected]>
Change-Id: Ic61819f101f754e7eb95317fa632a9cf466c1899
Reviewed-by: hjk <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/e8a8de65461e08d4a64117864a46037d0bb715c3

Git commit db5645b62aa9ab23028f2da40654a95070b7071f by Marcus Tillmanns on 07/08/2026 at 10:53..
Utils: Guard desktop-only code paths for WebAssembly

Several dependencies have no WebAssembly backend. Skip libptyqt and
libarchive on Emscripten, provide a stub INTERFACE target for the
latter so its dependents keep resolving their link deps, make
unarchiver return errors there (libarchive uses POSIX disk-walking
APIs), and skip the execinfo.h backtrace in qtcassert (Emscripten
defines Q_OS_UNIX but ships no execinfo.h).

Whether libarchive is there is a build system property rather than a
compiler one, so unarchiver keys off QTC_UTILS_WITH_LIBARCHIVE, set by
CMake where the dependency is declared and unconditionally in the qbs
build, which always has libarchive.

Assisted-By: Claude Opus 4.8 (1M context) <[email protected]>
Change-Id: I9c1492f5fd0e2eb6dbc40a7a39cfbdd1f6f39eef
Reviewed-by: hjk <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/db5645b62aa9ab23028f2da40654a95070b7071f

Git commit 3708885798af699e4e3669eda878bafb08c6e0cd by Marcus Tillmanns on 07/08/2026 at 10:53..
QtProfiler: Add a WebAssembly build

Add a qtprofiler-wasm CMake preset that cross-compiles the standalone
qtprofiler for Qt for WebAssembly: it uses the wasm Qt toolchain,
builds statically (QTC_STATIC_BUILD) with only the Profiler plugin
dependency closure, and restricts the build to the qtprofiler
executable.

Invoke Qt's wasm executable finalizer for qtprofiler
(add_qtc_executable does not), so the .html shell, qtloader.js and the
required MODULARIZE/EXPORT_NAME/embind/memory link options are
generated. Initialize the statically-linked Utils resources
explicitly, and open trace files via the asynchronous
getOpenFilePath()/AsynchronousMessageBox so the UI never blocks the
main thread.

Assisted-By: Claude Opus 4.8 (1M context) <[email protected]>
Change-Id: I3b4c288998970ba8b86d4a49547d3006c87470b2
Reviewed-by: hjk <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/3708885798af699e4e3669eda878bafb08c6e0cd

Git commit a9aff3a6ae3ea3defae708aa76eeade48dd538b2 by hjk on 07/08/2026 at 11:05..
CmdBridge: Keep the C sources 7-bit clean

The comments used an em dash throughout, and a few lines ran past the
100 column limit. Both are plain style rules, but the first one is the
kind that spreads by copy and paste.

Amends decaf54a624e5c839f35a8f66677b73238d66857.

Assisted-by: Claude Code
Change-Id: I7613fcade1a1946d3c9c962427f28df1be687cf5
Reviewed-by: Marcus Tillmanns <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/a9aff3a6ae3ea3defae708aa76eeade48dd538b2

Git commit 0cf87a36ebdefce260a73a9bcbc395f41d9776bb by Jarek Kobus on 07/08/2026 at 11:24..
LldbEngine: Report breakpoint locations without debug info

SBAddress::GetFunction() needs debug info, so describeBreakpoint()
reported function="None" for every breakpoint location in a module built
without it. Fall back to the symbol table, which keeps the richer
signature where debug info is present.

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

Git commit d8fe01f61a83cb28bd0577c9edd730c61ac77ae3 by Marcus Tillmanns on 07/08/2026 at 11:29..
QtProfiler: Make the WebAssembly build setup portable

The qtprofiler-wasm preset encoded one machine's layout: an absolute
macOS Qt path, a 6.11.1 version pin and $env{HOME}/emsdk. The preset is
not hidden, so it shows up in every developer's preset list in Qt
Creator and configures for nobody but its author. Take the two Qt paths
from QT_WASM_ROOT and QT_HOST_PATH and let the activated emsdk provide
EMSDK, so only the cache-variable set stays committed, and name the
expected variables in the preset description.

Call the public qt_finalize_target() rather than the private
_qt_internal_finalize_wasm_app(). It runs the same WebAssembly
finalizer plus the resource and plugin-import finalization, and cannot
silently do nothing if a future Qt renames the private helper. The
macOS and Windows finalizers it also carries are guarded by APPLE and
WIN32 and so are unreachable from the Emscripten branch.

Also say in the resource-init comment what really decides the
Q_INIT_RESOURCE call - the static build, which has no C++ define and is
approximated here by __EMSCRIPTEN__.

Amends 3708885798af699e4e3669eda878bafb08c6e0cd.

Assisted-By: Claude Opus 5 (1M context) <[email protected]>
Change-Id: I143266cf52b27c6a715650deb326d2a744c1547b
Reviewed-by: hjk <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/d8fe01f61a83cb28bd0577c9edd730c61ac77ae3
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.