This basically inlines the current rawPath() implementation
on the user code side, keeping behavior the same.
Baby steps towards the originally intended swap of rawPath()
and rawFilePath() implementations.
Change-Id: Ib61887bfdc4485a17856c0dbc7c7c5dba7c3e0e3
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Less synchronous in cases where it is not needed.
Change-Id: Ia07e6d293c7f5e6dfb81b06c0ffb6d5d651b88b3
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
Recompiles only ~500 instead of ~630 after touching qtcprocess.h.
Change-Id: If0256f27b2b9a1665cd76a65fedb7adb38a07bac
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This patch needs to be applied together with the parent change.
There are 3 basic cases:
1. The user doesn't write anything to the write channel:
You don't need to call closeWriteChannel manually anymore.
By default the QtcProcess you create is in ProcessMode::Reader mode.
Internally it opens the process in ReadOnly mode and
closes the write channel just after starting.
2. The user writes some initial data (after being started)
and then closes the write channel:
All what is needed now it to set the write data
(QtcProcess::setWriteData) before calling start.
You also use the default ProcessMode::Reader mode.
Internally it opens the process in ReadWrite mode
and writes the writeData asynchonously when the process
already started. After writing the data it closes the
write channel automatically.
3. The user writes the data also after calling start.
All you need now is to create a process with
ProcessMode::Writer mode. In this mode the write
channel is not closed.
Internally it opens the process in ReadWrite mode
as some writers also read the data from the process.
All the code base is adapted here to the above rules.
Change-Id: Id103019d1d71a3012fd1eade226fe96b9aaa48c2
Reviewed-by: hjk <hjk@qt.io>
this partially reverts ddefe062c7 - contrary to what that commit's
message suggests, the process state doesn't just change out of the blue,
making waitForFinished() return false. that requires the process being
reaped, which may happen only if the event loop runs or one of the
I/O-related waitFor*() functions is called on that process.
note that the first condition in SynchronousProcess::stopProcess() was
actually bogus, as it makes obviously no sense whatsoever to insist that
the process is still running after waitForFinished() returned success.
qtpromaker was also plain broken - it would always terminate prematurely
due to thinking that the sub-process failed.
Change-Id: I44f332a6784ccc7e732ee868e38218f746141129
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Path separators should be translated to '/'.
That's probably was the intention for originally using QDir::cleanPath(),
which was removed in b7c72f8621.
Change-Id: Id7fdbc1e430b7d52da1bd7406fcfd777326bf593
Reviewed-by: hjk <hjk@qt.io>
Classes involved are BaseAspect and some derived classes,
LayoutBuilder and VariableChooser.
This is mostly mechanical, with various include/using changes
to make it compile.
Change-Id: I624a457f3555f102e541c4c71e33a9423af32250
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
More in line with QFileInfo terminonlogy which appears to be
best-of-breed within Qt.
Change-Id: I1d051ff1c8363ebd4ee56376451df45216c4c9ab
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Store the unexpanded string in settings and expand on execution.
Change-Id: Ib3160a548b7501b22d120629a6376e2252df32e5
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
On macOS. This amends ada0e43c93. Fixes the default build directory
on macOS as this is different compared to Linux.
Beside this the patch passes the configured mappings of build dir and
source locations to the lldb.
Task-number: QTCREATORBUG-20693
Change-Id: I4258c09ec96fbdc1a713ae82df6bcab04129570c
Reviewed-by: hjk <hjk@qt.io>
On Linux. Required installs are the gcc-built Qt libraries themselves,
the "Sources" and "Qt Debug Information Files" components.
Fixes: QTCREATORBUG-20693
Change-Id: I920efd641ce3ee4583741ea1db0bea18031adc51
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
waitForFinish returns false if the process is no longer running at
the time of the call. Handle that throughout the codebase.
Change-Id: Ia7194095454e82efbd4eb88f2d55926bdd09e094
Reviewed-by: hjk <hjk@theqtcompany.com>
This is a mechanical replacement for the former executable, processArgs,
inferiorEnvironment and workingDirectory members.
Change-Id: I4160e01427ed801df9b729f1f31d0a2ca48159b5
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Debugger and stub run locally, the debugged process not necessarily.
Change-Id: Ibf6aec3dcaec60069866ec0765ec2178ca0a26d6
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Instead of PathChooser::rawPathChanged(), because the associated slots
use PathChooser::path() rather than PathChooser::rawPath().
Change-Id: Idcf0709583ccf285d07f45b2b3007951d918fb04
Reviewed-by: hjk <hjk@theqtcompany.com>
The name is overly generic, particularly with a pathChanged() signal
also present. Rename to "rawPathChanged", which adequately describes the
semantics.
Change-Id: Ia62b8b0a97a794cb6d5ad6b8ce0abcd36b5f5cdb
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
Right now, DebuggerStartParameter is part of the debugger plugin
external interface. Better not make it fatter than necessary.
Change-Id: I3b9205089f971dd314ccba1335b5ca2d4d9fe7c6
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
In Qt Creator, we want line edits to take up the free horizontal
space.
Change-Id: I4ff78035ab2481cc2f944fc02569638f06f0b090
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
Allow multiple expanders to be registered for lineedits, e.g. a
local and the global ones, and actually show them.
Use a tree view in the chooser for somewhat more structured display.
Change-Id: I769f92144e5249f45e54381de52aa6973eb20118
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
Useful for e.g. substituting any build dir to current project dir.
Change-Id: I50e8c101fa39bd45e55eef65776b18ef76bfd6ad
Reviewed-by: hjk <hjk121@nokiamail.com>
This is useful when there are multiple build machines with different
path, and the user would like to match anything up to some known
directory to his local project (variable support will also be useful -
will try to add that later).
Syntax: (/home/.*)/KnownSubdir -> /home/my/project
Capture group will be replaced by the value.
In this example the substitute path will be (in case a source string
found such as /home/SomeUser/SomeProject/KnownSubdir/foo.cpp):
/home/SomeUser/SomeProject -> /home/my/project
Change-Id: I19d03c9388161d8456a86676086dcb06dc3d7370
Reviewed-by: hjk <hjk121@nokiamail.com>
In target debugging or core dump, the source is typically linux,
so converting the separators doesn't make much sense.
Paths are converted internally by CdbEngine, so no change is needed there.
This is required for regular expressions support.
Change-Id: I19488798856b731ef77a14383d12b110eae5d369
Reviewed-by: hjk <hjk121@nokiamail.com>