[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 6dc04ef847f85923106f1981ecff270a6337fd90 to 1f82c5e1dd1b5596b4a02fb9135fa2378fd05857
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 a91c4991f2779bccbf668c315b29be51da6113a7 by Christian Stenger on 18/08/2026 at 07:07..
McpServer: Fix build for older Qt

Amends 0c1b7dcca7ba04c1eae8a4ebcd95c8db7cc8d8f2.

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

Git commit 44a7b0c2d0e316b708ed06822ff24a6b6e2a26b1 by hjk on 18/08/2026 at 07:28..
Remote: Show GUI runs on the Windows device's interactive desktop

An application launched over SSH runs in the non-interactive session 0,
so its window lands on a desktop nobody sees. Launch runs on the
logged-on user's interactive desktop instead, via an interactive
scheduled task (schtasks /it): WindowsRunWorkerFactory flags run-mode
processes, and WindowsProcessInterface stages a PowerShell orchestrator
that creates the task, waits for it, and relays the exit code and output.

Verified on a real Windows machine over RDP. Live output streaming and
killing the remote process on Stop are follow-ups.

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

Git commit 387daa726c35d728962f1130e2a98cc9b19d7abc by Eike Ziller on 18/08/2026 at 07:32..
Merge remote-tracking branch 'origin/20.0'

Conflicts:
	src/libs/utils/markdownbrowser.cpp

Change-Id: Id285c4952c4056c2e20b1745d43be63e29bbdd8a
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/387daa726c35d728962f1130e2a98cc9b19d7abc

Git commit 266254593f77ccb252fe145908d2d66bf14d52de by The Qt Project on 18/08/2026 at 07:43..
Merge "Merge remote-tracking branch 'origin/20.0'"
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/266254593f77ccb252fe145908d2d66bf14d52de

Git commit 6712b2cf4c58972f4323b24a0e07b663f7e4dfd9 by hjk on 18/08/2026 at 08:58..
libptyqt: Do not write utmp records on HarmonyOS

The utmpx.h of the musl in the OHOS sysroot declares struct utmpx but none
of the functions operating on it, and no _PATH_UTMPX, so the whole block
fails to compile. Android and FreeBSD are skipped here already.

Assisted-by: Claude Code
Change-Id: I95adf90f85a7502ccb778d5d09baa6f85afd42aa
Reviewed-by: Joerg Bornemann <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/6712b2cf4c58972f4323b24a0e07b663f7e4dfd9

Git commit f346b69227398774e4d3e0151df4b04d761aff16 by hjk on 18/08/2026 at 08:58..
Remote: Report failed Windows GUI runs faithfully

The interactive launcher passed the application's Windows exit status
straight out of the script, but that status reaches Creator as the exit
code of the SSH connection, which carries only its low 8 bits. A status
that is a multiple of 256 - as many crash and loader failures are, for
example 0xC0000100 - arrived as 0, so a run that died before main() was
reported as "finished successfully". Other statuses arrived as
meaningless small numbers, 0xC000012F as 47.

Pass exit codes that fit through unchanged, and turn anything else into
a failure that names the real status. A missing or unparseable exit
value now fails too instead of silently becoming 0.

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

Git commit e1002c989a58c7b0bb502ff0c741a43cce25aae5 by hjk on 18/08/2026 at 08:58..
Remote: Provide a real run environment for remote Windows runs

Launching an application on a native Windows device gave it an almost
empty environment, so a Qt application could not find its Qt DLLs on
PATH and exited before main().

RemoteLinuxEnvironmentAspect left the "System Environment" base empty
until the user pressed "Fetch Device Environment"; fetch it from the
device on first use instead, so a remote run starts with the device's
actual environment.

The CMake run-environment modifier only adds the target's library
directories, which on Windows are the import-lib (lib) directories,
not the DLL (bin) directory. Add the kit's Qt bin to PATH for a Windows
run device so the application finds Qt6*.dll at runtime.

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

Git commit 51743338dd0957b3c71f89d2fbc998bcaf1f997c by hjk on 18/08/2026 at 08:59..
Remote: Describe the interactive run launcher as it works

The comment still described the first implementation, an interactive
scheduled task (schtasks /it). What the script does is elevate to SYSTEM
through a scheduled task, because only SYSTEM may call
WTSQueryUserToken, and start the application in the active session from
there.

Amends 44a7b0c2d0e316b708ed06822ff24a6b6e2a26b1.

Change-Id: Ic5144c4aa44058dcc92201cd313bd2960dd6b991
Reviewed-by: David Schulz <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/51743338dd0957b3c71f89d2fbc998bcaf1f997c

Git commit e623400ccf9d83e408906d400a2295f31eb2ffc6 by hjk on 18/08/2026 at 08:59..
libarchive: Do not claim glibc-only functions on HarmonyOS

config_unix.h is generated on a glibc Linux, so it claims closefrom(),
close_range() and lchmod(). The musl of the OHOS sysroot has none of the
three, and linking libUtils failed on the first and the last. Dropping
closefrom() alone would not do, as close_range() is what libarchive falls
back to; without either it uses _SC_OPEN_MAX.

Assisted-by: Claude Code
Change-Id: Ib5561e33bf12deed09645ca4f68d595d4cbde884
Reviewed-by: Joerg Bornemann <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/e623400ccf9d83e408906d400a2295f31eb2ffc6

Git commit d49cd06ffb0269900cb110a6563be55ccf7d0721 by hjk on 18/08/2026 at 09:05..
Debugger: Show CDB inferior output in the Application Output pane

When debugging with CDB without a terminal, the debuggee's stdout and
stderr (for example std::cout) did not appear in the Application Output
pane, unlike in a plain run. CDB relays the inferior's output
interleaved with its own stream; parseOutputLine() routed every
unrecognized line to the Debugger Log, so the program output was hidden
there instead of shown as application output.

While the inferior is running, such lines are the debuggee's own output,
so route them to the Application Output pane like the other engines do.
Verified on Windows/MSVC with CDB: std::cout/std::cerr now appear in
Application Output.

Fixes: QTCREATORBUG-10626
Assisted-by: Claude Code
Change-Id: I6026546eb71cac8a469a12b8a5de4e3292675162
Reviewed-by: David Schulz <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/d49cd06ffb0269900cb110a6563be55ccf7d0721

Git commit 6f061043f849afa7fc9dd9049851d9c5b6510e19 by Alessandro Portale on 18/08/2026 at 09:43..
Tracing: Use QLocale::formattedDataSize

Replaces the selfmade Timeline::formatMemory with
QLocale::formattedDataSize. Timeline::formatMemory is renamed to
::formatDataSize.

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

Git commit a4bcc8672828bc2dfcdd2bdb35b4b32d2b9aae34 by Marcus Tillmanns on 18/08/2026 at 09:50..
Profiler: Show and control debuginfod downloads

Post-processing a perf recording resolves symbols through perfparser,
which fetches debug information it does not find locally from the
debuginfod servers in DEBUGINFOD_URLS. That fetch blocks, once per build
id, so a slow or unreachable server left the Qt Profiler sitting in
"Processing captured samples" with no progress and nothing to cancel.

Make the downloads a setting, off by default, enforced by handing
perfparser an empty DEBUGINFOD_URLS, which is how elfutils is told not
to ask anyone. Cap what an unresponsive server may cost through
DEBUGINFOD_TIMEOUT and DEBUGINFOD_RETRY_LIMIT, whose defaults come to
4.5 minutes per build id. And while a download is in flight, name the
server on the recording page, with the request URL in the tool tip.

DebugInfoDownloadProgress was missing from PerfEventType::Feature, which
mirrors perfparser's wire tags, so the message never decoded.

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

Git commit 4b52e8b4157acb750d67776b6ee668f0833689da by Marcus Tillmanns on 18/08/2026 at 09:50..
Utils: Fix crash when a file watcher outlives the shutdown guard

The GlobalWatcher is owned by the shutdown guard, which is destroyed
at the start of PluginManagerPrivate::deleteAll(), that is, before the
plugins are deleted. A plugin holding a FilePathWatcher member thus
called removeWatch() on a null GlobalWatcher while being deleted, as
happened with the Lua plugin's user scripts watcher.

There is nothing left to unregister once the global watcher is gone,
so skip it.

Amends d4412e0e2e5b364a49c845b2d003458123dfa118.

Assisted-by: Claude Code
Change-Id: I31d24b88a0f0ac48abe6136b05580b7673f853ad
Reviewed-by: Eike Ziller <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/4b52e8b4157acb750d67776b6ee668f0833689da

Git commit ef4a9c27ec9cedb39b634fc6419b0f523bafe8c1 by Alessandro Portale on 18/08/2026 at 10:17..
Tracing: Remove one more selfmade data size formatter

Use Timeline::formatDataSize instead.

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

Git commit f86c16374b12e758506c3510fe3a2d346c0f147d by Alessandro Portale on 18/08/2026 at 10:23..
Tracing: Draw note markers as icons

Replace the exclamation-mark path (stick + dot) with an icon, in both
backends.

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

Git commit 6ab0fe7775b3a5e6a431559e0843d6be7844c2c0 by hjk on 18/08/2026 at 10:40..
CMake: Do not stage an install for HarmonyOS kits

A Qt for HarmonyOS project has no install target: its package is built
by the generated "<target>_make_hap" target instead. Staging made the
build step ask for "--target all install", which ninja refused outright.

Assisted-by: Claude Code
Change-Id: I2a1b3869c7f2432a034ecf9ab17db9be4ed710b3
Reviewed-by: Joerg Bornemann <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/6ab0fe7775b3a5e6a431559e0843d6be7844c2c0

Git commit 976a05d32fb7e80cdc58d2ec54a1194a2c7e6e5e by hjk on 18/08/2026 at 10:45..
McpServer: Add an apply_patch tool

Applies a unified diff to files on disk via the configured patch
command, capturing the tool's output through the new runPatch
callback so the result reports which files changed and any rejected
hunks. Supports revert and a configurable strip level; paths default
to the startup project's directory.

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

Git commit b315691d5f6ee24037c7cfed8fe7f8fd85952648 by hjk on 18/08/2026 at 10:45..
CppEditor: Report a 1-based column from get_file_symbols

IndexItem::column() is 0-based, so the tool contradicted its own
description and the 1-based columns the other code-model tools take as
input. find_symbols already converted; get_file_symbols did not, which
is what its new test caught on the CI machines.

Amends 69aff8f4d8ca2ab1e38ae09494d0e257b8f12558.

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

Git commit 6cd4ec96f567c768de1321fd6debb61eac18e5be by hjk on 18/08/2026 at 10:45..
Profiler: Let the perf MCP tool start the way its action does

start_perf_profiler called runStartupProject() directly, so unlike the
Performance Analyzer menu entry and unlike start_profiler it left the
Profile mode unselected. Give the tool a profileStartupProject() used by
both. The QML side keeps its extra step, discarding a previous trace
after asking about unsaved notes, which perf does not need: it clears
its trace when the next one starts.

Both tools' instance() is reachable from MCP requests while the perf
tool is already deleted by aboutToShutdown(), so clear the instance
pointer in the destructor, as the QML tool does, and report the missing
tool instead of dereferencing it.

Also state why start_profiler and start_perf_profiler exist next to
run_project, which reaches the same run modes by id: they return
immediately, so status and stop tools can drive the session.

Amends 4e8501847b7b74cde1ce4edd3f6db4b03a2d1223.

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

Git commit 66c20f2a40dfecc3c3d27049895f45588fe11396 by Marcus Tillmanns on 18/08/2026 at 10:56..
DiffEditor: Collapse unchanged lines in the inline diff

Add a toolbar toggle to the inline diff editor that hides runs of
unchanged lines, keeping a few context lines around each change and
replacing each hidden run with a clickable "Show N hidden lines"
placeholder that reveals it again. The toggle is on by default and
its state is persisted. It works in both the inline and the side by
side view, where both sides are collapsed at their corresponding
lines so the aligner keeps the two views lined up row by row.

The inline diff editor shares its document with the regular editors,
so real folding via QTextBlock::setVisible() cannot be used: it would
collapse the same lines everywhere. Instead TextEditorLayout gains a
per-widget "editor-hidden block" concept - hidden blocks report zero
height and line count and are skipped in this widget's paint, scroll,
gutter and navigation only. It stays inert for every editor that does
not opt in, behind a hasEditorHiddenBlocks() guard.

The CollapseController computes the collapsible runs on the editor
side and maps each to the matching baseline lines through the diff
offset, so a pure insertion or deletion collapses consistently on
both sides. It hides the runs in each view's own layout and floats
the placeholder rows; naturalBlockHeight() treats hidden blocks as
zero so the side by side aligner stays consistent.

Add testInlineDiffCollapse and testInlineDiffCollapseAddedLines,
covering both views, the toggle, the gutter line numbers, the row
alignment and the pure-insertion case.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Change-Id: I80cff6bd415f31eadfa40075c553049903db31f3
Reviewed-by: David Schulz <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/66c20f2a40dfecc3c3d27049895f45588fe11396

Git commit e6dbb94dea23cece555401c505315ebaeb119b5c by Alessandro Portale on 18/08/2026 at 10:58..
Tracing: Use theme colors for selection overlay, improve overlay width

Use theme colors for the selection/hover overlay instead of hard-coded
ones, and grow the border outward instead of inward so narrow items
keep a clearly visible outline.

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

Git commit a6fa1df5f2a42609e6cb647f8f4c2c33d188a819 by hjk on 18/08/2026 at 11:34..
Debugger: Use native incremental breakpoints in BridgeEngine

Replace the copied DAP declarative setBreakpoints model (whole-source
replace with fragile file:line correlation) with incremental
qtc/insertBreakpoint / updateBreakpoint / removeBreakpoint requests.

Parameters are serialized with the shared addToCommand(); responses are
correlated by the stable modelid, never by file:line. The bridge returns
the breakpoint in the MI 'bkpt' shape (with a sub-location list), which
the C++ side feeds to the shared updateFromGdbOutput()/handleBkpt() - the
same path GdbEngine uses - so sub-breakpoints are populated as first-class
children.

Verified end-to-end against real gdb: insert returns a resolved bkpt and
the inferior stops at the breakpoint.

Still to do: qtc/enableSubBreakpoint, the async qtc/breakpointChanged
event, and demangling the location function name.

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

Git commit af64ee48cdfd22e594cbc9c8cee1c28145b6b149 by Marcus Tillmanns on 18/08/2026 at 11:45..
Docker: Do not hardcode the X11 display

X11 forwarding always passed DISPLAY=:0 into the container on Linux
hosts. That fails on any session that is not :0, which is common on
Wayland setups where XWayland runs as :1.

Derive the display from the host's DISPLAY instead. A local display
name applies verbatim, since the host's X11 socket is mounted into the
container. Anything else has to reach the X server over TCP, so only
the display number is taken over from the host.

Add an "X11 display" device setting to override the derived value.
Leaving it empty keeps the derived value, so it follows the current
session instead of freezing a stale display into the device
configuration.

Fixes: QTCREATORBUG-34872
Assisted-by: Claude Code
Change-Id: I73524dc8f31e36a9100e4056ce3480e3a77e107f
Reviewed-by: hjk <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/af64ee48cdfd22e594cbc9c8cee1c28145b6b149

Git commit b46c49c96b58f0aaf18f1652aa012507910b4f78 by hjk on 18/08/2026 at 12:19..
Debugger: Add a run_to_line MCP tool

Resumes the paused inferior until it reaches a given file and line,
like the "Run to Line" action but for an explicit location. Adds a
public DebuggerEngine::runToLine that wraps the protected
executeRunToLine, mirroring handleExecRunToLine which only knows the
current editor position.

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

Git commit 415367948970edfe32497047e726bc6e7affdf96 by David Schulz on 18/08/2026 at 12:24..
Remote: fix ssh key deployment to admin accounts

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

Git commit 37c344247e9eeef02f6a9d150c18aa3508a26119 by Marcus Tillmanns on 18/08/2026 at 12:24..
Profiler: Say why a perf recording captured no samples

"No samples were captured" named two possible causes and left the user
to guess between them, while the processes that knew the answer had
already given it and been ignored: "perf record" writes the reason it
could not open events to stderr, and perfparser rejecting an argument
or giving up mid-stream was reported as an empty recording rather than
as its own failure.

Keep both streams and report what they say. Read perf_event_paranoid
when it is the restriction in force, so the message can name the level
and what it has to be. Count the samples perfparser delivered, which
separates "nothing was sampled" from "nothing resolved to a call
stack" -- two problems with nothing in common but an empty trace.

Change-Id: I5f23327b2ae9abe5310ffda1eb7de78b3a293dd2
Reviewed-by: Alessandro Portale <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/37c344247e9eeef02f6a9d150c18aa3508a26119

Git commit 1f82c5e1dd1b5596b4a02fb9135fa2378fd05857 by Marcus Tillmanns on 18/08/2026 at 12:24..
Profiler: Offer to lower perf_event_paranoid from the error

Recording under a perf_event_paranoid of 3 or more cannot produce a
sample, and the only way out was a command the user had to find, read
and run for themselves.

Let a backend describe a system setting that stands in its way, as a
button label, an explanation and the command behind it. PerfSampler
offers one by re-reading perf_event_paranoid after a failed recording,
so the button appears only while the change is still needed, and the
Qt Profiler runs it through pkexec, which asks for the password in its
own dialog -- sudo would read from a tty a GUI does not have.

Applying it starts the recording again; that is the whole
confirmation, so there is no second dialog to dismiss. Dismissing the
password prompt is a deliberate no and passes silently.

Change-Id: Ie60df00c4b07f593fd520cac497fde913a28ed1d
Reviewed-by: Alessandro Portale <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/1f82c5e1dd1b5596b4a02fb9135fa2378fd05857
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.