[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 4b8141d1ed9398c249590d6dad71dd1a44e3a25b to cdbce703ed6ce0714afad68b65ff07debed7d0d9
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 37836334a57a2454d84de9a94eadef889385360f by hjk on 30/07/2026 at 06:37..
QtSupport: Fix device Qt mkspec evaluation for Windows devices

createQtVersionFromQMakePath evaluated the mkspec without setting the
proparser device root, so a remote Windows device's absolute paths
(C:\...) were resolved with host semantics and doubled up onto the
feature dir. Set device_root as updateMkspec() does, and teach the
proparser's isRelativePath() to recognize drive-letter/UNC paths as
absolute for non-local devices.

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

Git commit 4025fcb497ac50bf3bab2ff62f1f230bfa7885a3 by David Schulz on 30/07/2026 at 06:40..
Remote: improve WindowsDevice::rootPath

Ensure a final / and cache the rootPath to reduce getting the remote
environment.

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

Git commit 0ee6d4b95fecdbe91692f62c3762c837d5eb558e by hjk on 30/07/2026 at 07:16..
QtSupport: Don't query qmake on a disconnected device

QtVersionPrivate::data() launches the qmake query and then immediately
waits for it, so it is effectively synchronous. As it is called from
many property getters on the GUI thread (isValid(), qtAbis(), mkspec,
...), a remote qmake on an unreachable device froze the UI for the full
process timeout - repeatedly, since failures are intentionally not
cached.

Skip the query while the qmake's device is known to be disconnected,
mirroring the guard in IDevice::getUnixEnvironment(), and return the
read-only placeholder instead of blocking. m_data is left unset, so the
query is retried once the device is reachable again.

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

Git commit a08d572511f483caf0dd7c65e71c7e22f3585ad6 by Eike Ziller on 30/07/2026 at 07:43..
Editors: Guard SaveItemsDialog against externally closed documents

The SaveItemsDialog runs an event loop but caches the IDocuments that
were requested to save. It could happen that some of these are closed &
deleted during the event loop running, so keep a list of QPointers of
the documents, and check if they still exist before attempting to close
them.

Noticed via Sentry report.

Change-Id: I9735b98f5d37b43cf5541b858ddd22ad0e264ba4
Reviewed-by: Christian Stenger <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/a08d572511f483caf0dd7c65e71c7e22f3585ad6

Git commit 8bd5eefd8d942cde65e6806eb51715bc395707c8 by Jarek Kobus on 30/07/2026 at 07:58..
Cdb/UvscEngine: Prune unfinished support for watchPoint()

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

Git commit 06a2c8d98fc5de07b0d05a62330c0fbc98dcb60b by Jarek Kobus on 30/07/2026 at 07:59..
Pdb: Report breakpoint hit counts

pdb's own Breakpoint.hits already tracks this internally
(self.currentbp, set in break_here()) - report it once per real
stop. Reset right after use so a later, unrelated stop (e.g. a
step) doesn't re-report a stale count, and skip when the
breakpoint object is already gone (a one-shot tbreak deletes
itself the instant it fires).

Safe for real PdbEngine too: its own line dispatch has no final
else, so the new, currently-unhandled "breakpointmodified="
line is just ignored there.

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

Git commit d7bd8dcd16699c41a468380169e658233c580a37 by Jarek Kobus on 30/07/2026 at 07:59..
Debugger: Read a "module" field in updateFromGdbOutput()

Prep for a future CdbImpl, in conjunction with
BreakModuleCapability; no-op for every real engine today.

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

Git commit 6199e71d2365c6660418e6c47db342e5e63f6108 by Jarek Kobus on 30/07/2026 at 08:14..
PdbEngine: Wire up breakpointmodified hit-count reports

handleOutput2() had no branch for it, so the line was just
logged and dropped. Uses setHitCount() rather than
updateFromGdbOutput(), which would clobber condition/enabled
given pdb's minimal number+times report.

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

Git commit f333b893c375a244d7822739b549cee8b784cfaa by Jarek Kobus on 30/07/2026 at 08:14..
LldbEngine: Fix watch expression on a global variable

WatchpointAtExpression used frame.FindVariable(), which only
searches the current frame's own locals/args, never globals or
statics - its own comment already said "Top level-only for
now". Confirmed live: for a module-level global, this silently
resolves to an invalid value, so the resulting watch address is
garbage and the watchpoint never actually triggers.

frame.EvaluateExpression() resolves both, matching GdbEngine's
own "watch <expr>" scope. Same bug, same fix needed, for
LldbImpl - it calls this exact same insertBreakpoint() path.

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

Git commit b1f530847cd19194c091313ce30191419eec1f40 by hjk on 30/07/2026 at 08:19..
Remote: Run an executable on the Windows device

Enable the run worker and run configuration for the native Windows
device: register GenericWindowsOsType on RemoteLinuxRunWorkerFactory
and the run-config factory. Reuse RemoteLinuxRunConfiguration but hide
the Unix-only options (X11, VNC, run-as, remote terminal) for a Windows
run device; the runtime library search path stays handled OS-aware via
useLibraryPath (PATH on Windows).

The integration test now also runs the freshly built executable on the
device and checks its exit code and captured stdout.

RemoteLinuxRunWorkerFactory is a misnomer now, I will drop the 'Linux'
in a follow-up change.

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

Git commit 10f22764659a82fa969a04281d2f937d5fb693f4 by Jarek Kobus on 30/07/2026 at 08:22..
LldbEngine: Report output for Execute Debugger Command

executeDebuggerCommand() sent the command to lldbbridge.py's
runDebuggerCommand(), whose own report() carries no token - so its
success/output/error reply could never be correlated back to the
command that triggered it, and was silently dropped. The command ran
correctly, but its result never reached the user.

Now runs the command directly via HandleCommand() and reports via
reportResult(), the same token-carrying reply setRegister() already
uses - and reads it back via a real callback.

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

Git commit 017c68e6c4e2b9dccf82b79f16ef830f6e30ff82 by Eike Ziller on 30/07/2026 at 08:29..
Merge remote-tracking branch 'origin/20.0'

Change-Id: I682c35060693eca14035743738a77cb3cfbd0926
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/017c68e6c4e2b9dccf82b79f16ef830f6e30ff82

Git commit 13773e06d393fa6e16dd5ec0106bf1bfbdbdbd3c by hjk on 30/07/2026 at 08:49..
Remote: Don't expose file access for an unreachable Windows device

setupFileAccess() set the per-command (slow, one-SSH-per-op)
WindowsDeviceAccess as the device's file access synchronously, before
probing. An unreachable device then looked connected, so startup
validation (toolchains, Qt, kits) ran file operations against it and hung
on repeated 10s SSH timeouts - making startup very slow whenever a
configured device was down (e.g. after auto-connect on startup).

Set the public file access only after the async probe/deploy has finished
(in the continuation); a down device now stays without access and is
skipped quickly. deployCmdBridge() queries the device environment through
a throwaway local WindowsDeviceAccess instead of the device's own.

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

Git commit 5d93c46df0c988906cd449b3ecd4865b7d401d5b by hjk on 30/07/2026 at 09:06..
Remote: Auto-connect the Windows device on startup

Like LinuxDevice, connect the device in postLoad() so it has file
access from the start. Without this the device has no file access until
its settings page is opened, so hasFileAccess() is false and the device
is filtered out of the device-aware file dialog (Open File or Project)
and anywhere else that lists browsable devices.

Controlled by an "Auto-connect on startup" option (on by default), also
in the device settings, that switches itself off after a failed
connection - mirroring LinuxDevice.

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

Git commit 2d2bb6b752b417c4a44d2ae60d4b0f9a330853d9 by hjk on 30/07/2026 at 09:06..
ProjectExplorer: Don't mix host and device paths in the MSVC env

prependPathEnvironmentVariable() carried PATH entries from the previous
environment into the result. For a remote (device) MSVC toolchain the
result is the device's Windows environment while the previous one may be
the local host environment, so host paths were prepended there - both
tripping the Environment osType check and corrupting PATH. Only carry
over paths whose osType matches the result environment.

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

Git commit 28ad11606c2b19f9c7a3a155c5fb8e9d6b02cd2d by hjk on 30/07/2026 at 09:21..
Debugger: Make the abort-debugging force-kill discoverable

Activating "Abort Debugging" once shuts the debugger down gracefully;
activating it again kills harder. That escalation was only visible in
the debugger log, so there was no hint that a second activation would
forcefully terminate a debugger that is slow or stuck shutting down.

On the first, friendly abort, show a status-bar message and rename the
action to "Abort Debugging (Force Kill)" with a matching tooltip, so
the stronger second step is discoverable.

Assisted-by: Claude Code
Task-number: QTCREATORBUG-11954
Change-Id: I79978ce6d2fd1ad6937c5d8be4742b080935dd45
Reviewed-by: Eike Ziller <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/28ad11606c2b19f9c7a3a155c5fb8e9d6b02cd2d

Git commit 3842e27cc68d53705a2c1e5f55139fe06236a5af by David Schulz on 30/07/2026 at 09:38..
Editor: simplify TextEditorPlugin::updateCurrentSelection

Change-Id: I44377ae9ea0c46cefa09f6b4806b7286154a1938
Reviewed-by: Christian Stenger <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/3842e27cc68d53705a2c1e5f55139fe06236a5af

Git commit 36269743d53b31a63c1fcdd1ccc8e8899ed1d215 by David Schulz on 30/07/2026 at 09:39..
QMakeSupport: simplify QmakeProjectManagerPluginPrivate::addLibraryImpl

Change-Id: I0b928168dd5e4a646b50ca8732e5605f73e5740c
Reviewed-by: Christian Stenger <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/36269743d53b31a63c1fcdd1ccc8e8899ed1d215

Git commit 8946f6cb84007f96637df1af515bfd15694b91a8 by David Schulz on 30/07/2026 at 09:39..
Editor: remove unused TextEditor::TextPositionOperation

The naming was unintuitive and replaced by normal TextCursor
functionality.

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

Git commit aa69aedb96a76060c5ac95f21d0f41ffb0c9ae1d by David Schulz on 30/07/2026 at 09:39..
Editor: simplify BaseTextEditor::insert

Change-Id: Idaecfcfbd484c8edab0a56c70c414ff62713b7e3
Reviewed-by: Christian Stenger <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/aa69aedb96a76060c5ac95f21d0f41ffb0c9ae1d

Git commit 413cbb13762a30b232ab53aa354ce72aef962b0e by hjk on 30/07/2026 at 09:42..
RemoteLinux: Don't soft-assert when signaling a pid-less process

SshProcessInterface::handleSendControlSignal() soft-asserted on a zero
pid. But a device process that is canceled while its ssh connection is
still being established never obtains a remote pid, and the cancel path
sends it a control signal - so a canceled/unreachable-host probe spewed
repeated soft-asserts. There is nothing to signal in that case; return
quietly instead. Behavior is otherwise unchanged (it already returned).

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

Git commit 554b9da7583a20c472701a01e7ef306c3834f69e by hjk on 30/07/2026 at 10:42..
Devices: Add a common IDevice::isUp()

Several call sites decide whether a device is usable by comparing
deviceState() directly, and they disagreed:
LinuxDevice::isDisconnected() treated both DeviceDisconnected and
DeviceStateUnknown as not-usable, while the qmake query guard and
IDevice::getUnixEnvironment() only checked DeviceDisconnected -- so a
device in the unknown state could still trigger a blocking, doomed
query.

Add IDevice::isUp() (true only for DeviceReadyToUse or
DeviceConnected) as the single source of truth, route qmakeQueryable()
and getUnixEnvironment() through it, and drop the now-redundant
LinuxDevice override.

getUnixEnvironment() now also skips a device in the unknown state,
matching the intent of not querying a device that is not known to be
reachable.

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

Git commit 711f51ff718632553586901c3b6ce26fdfba136c by hjk on 30/07/2026 at 10:43..
RemoteLinux: Finish a canceled ssh process stuck connecting

When a device process is canceled while the shared ssh master is
still connecting (e.g. to an unreachable host), the interface kept
waiting and the process never reached NotRunning. A subsequent
restart then soft-asserted on "state() == NotRunning", and for a
direct (unshared) connection the stuck local ssh client was never
killed either.

Abort the connect wait and report done when canceled mid-connect,
and, when there is no remote pid, terminate/kill the local ssh
client instead of doing nothing.

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

Git commit c818a256406c5a7d4639c8900529b26821fcf24a by hjk on 30/07/2026 at 10:43..
ClassView: Jump to implementation

When activating a function or class variable in the Class View, the
editor jumped to the declaration, because the Class View only records
declaration locations (out-of-line definitions have qualified names and
are skipped by the parser). Resolve the definition of the symbol at the
target location via SymbolFinder and open that instead, falling back to
the previous behavior when no definition exists or the symbol is not a
function or class variable.

Task-number: QTCREATORBUG-16175
Assisted-by: Claude Code
Change-Id: I6297b44dae2c003b0a29a4b40069a05650373a7f
Reviewed-by: Christian Kandeler <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/c818a256406c5a7d4639c8900529b26821fcf24a

Git commit 6181ad51b1baf57ad6bce382f39614b993ab71a8 by hjk on 30/07/2026 at 10:58..
ClassView: Show the project file path as a tooltip

Projects are listed by name in the Class View, which is ambiguous when
several projects share a name (for example different checkouts). Add a
tooltip with the full project file path to the project items.

Fixes: QTCREATORBUG-12156
Assisted-by: Claude Code
Change-Id: Ic4a260501998a723e97edda0462b69850cff29fd
Reviewed-by: Christian Kandeler <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/6181ad51b1baf57ad6bce382f39614b993ab71a8

Git commit cdbce703ed6ce0714afad68b65ff07debed7d0d9 by hjk on 30/07/2026 at 11:09..
Debugger: Allow CDB for a remote Windows device

Relax the CdbEngineType gate that required a Windows host: CDB drives
cdb.exe as a subprocess and only parses its text output, so it also
works with cdb.exe running on a remote Windows device, with its stdio
piped over SSH.

Add DebuggerRunParameters::cdbExtensionPath() to carry the device
directory of the CDB helper extension, keeping the debugger core
independent of the device plugin.

Assisted-by: Claude Code
Change-Id: I03bbda56494b4a0557c956a67f92157d6d1a4eda
Reviewed-by: David Schulz <[email protected]>
https://invent.kde.org/qt/qt-creator/qt-creator/-/commit/cdbce703ed6ce0714afad68b65ff07debed7d0d9
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.