For a long time, probably from the very beginning, a RunControl
was meant to hold (a copy of) data needed for its operation, that was
valid at the time of its construction, to be resilient in cases
where RunConfiguration setting were changed while the RunControl
was running, or to properly re-run with the original settings.
Unfortunately, the task was repetitive, as RunConfiguration
classes had no generic access to properties / "aspects"
and there was was the runConfiguration() accessor (probably
for mostly unrelated reasons in the output pane handling) which
made the idea of just casting that to the original runConfiguration
and access the data directly there appealing, with all the
expected consequences.
This patch here partially addresses the issue by copying some
more of the related data at RunControl construction time and
adjust the using code, avoiding most uses of the runConfiguration()
accessor in a mostly mechanical matter.
Complete removal appears possible, but will be less mechanical
in "difficult" plugins like ios, so this is left for later.
The new accessors in RunControl are very much ad-hoc, leaving
room for improvement, e.g. by consolidating the access to the
run config settings aspects with the other runconfig aspects
or similar. For now the goal is to remove the runConfiguration()
accessor, and to as much as possible fixed data after RunControl
setup is finished.
Next step would be to officially allow construction of RunControls
without a specific RunConfiguration by setting the necessary
data independently, removing the need for the various workarounds
that are currently used for the purpose of faking (parts of) the
effect of the non-existing RunConfiguration or refusing to operate
at all, even if it would be possible.
Change-Id: If8e5596da8422c70e90f97270389adbe6d0b46f2
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Using aspects is the standard pattern nowadays, there's nothing 'extra'
to them anymore.
Change-Id: I446f9d7b1db58a4899e5e44df33ce51f655e7be4
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
It has been an obsolete alias for setId for a while and downstream
uses have been adapted.
Change-Id: I467370aa67054599c7771e8275d28e62ddc461fa
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
As all Runnables are known to be StandardRunnables, this here
essentially replaces all .is<StandardRunnable> by 'true'.
.as<StandardRunnable> by no-op, and fixes the fallout.
Change-Id: I1632f8e164fa0a9dff063df47a9e191fdf7bbb2e
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
The basic idea is to provide an easy-to-configure reusable
building block to provide an "Executable" in a run configuration.
This patch here extracts some generic from the previous
ExecutableAspect into a BaseStringAspect and bases the new
ExecutableAspect implementation on it. It also adds the
the ability to make it editable or to manually override an
executable, and adds a SymbolFile aspect for the accompanying
sources of debug information.
Use in RemoteLinux and Qnx for starters and demonstration purposes.
In the end the Qnx runconfiguration widget does not depend on the
RemoteLinux implementation anymore by replacing the previous
code-sharing-by-inheritance by direct (and less) code.
Change-Id: I91b55820455256a8526e39458364b6cb74e63cd7
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This apparently fell through the cracks in 89f02cba2.
Task-number: QTCREATORBUG-18804
Change-Id: Ib00a5a074ec1df3292267a194e8e87a92d3c6dfc
Reviewed-by: Dan Cape <dcape@qnx.com>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This increases re-usability of activities like 'port gathering',
and makes their use less dependent on actual device implementations.
Change-Id: I017cb74874f2b38c487ba2d03906a675d5618647
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This patch adds the missing include statements for QRegExp.
Change-Id: Ibb03b929940adb84ae190b5090cb6b88653cc14c
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Allow other plugins to use the existing Qnx device implementation.
Move QnxDeviceProcess into separate header/source files.
Change-Id: I3fe62aefbe8a71adf75acfc1a2c0c8ac1cc3d1e1
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
This is helpful for more selective and direct process killing.
Previously, all processes with a given name were killed, and
in some cases stale awk and grep processes were left over.
Change-Id: I4fb3999818062b8c1fdf7dca8a337ef9c158be9b
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
slog2 parser has ignored all slog2 messages not beginning with a letter.
For example:
console.debug("#### message prefixed with some hashes");
was silently ignored by slog2 parser and wasn't send to the QTC application
output window.
Change-Id: Ie4cac329d192c8b330226b99141848a1c0c0c715
Reviewed-by: David Kaspar <dkaspar@blackberry.com>
Reviewed-by: Mehdi Fekari <mfekari@blackberry.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Tobias Nätterlund <tobias.naetterlund@kdab.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
Slog2InfoRunner class now more properly parses the slog2info output
including datetime, applicationid filtering, buffer-name, buffer-id.
Task-number: QTCREATORBUG-10646
Task-number: QTCREATORBUG-10712
Change-Id: I71aaf6b9b3ff1da16d3c46065a1dc5125dc1503e
Reviewed-by: Tobias Nätterlund <tobias.naetterlund@kdab.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
Reviewed-by: David Kaspar <dkaspar@blackberry.com>
This change introduce a separate class for running the slog2info
process, in order to be able to use that for pure QNX (non-BlackBerry)
devices.
Also moved from using QSsh::SshRemoteProcessRunner to use
ProcessExplorer::SshDeviceProcess for the tail/slog2info processes
instead.
Change-Id: If917bd2a1099800f1a7333639d674c8d1b16de7b
Reviewed-by: Mehdi Fekari <mfekari@blackberry.com>
Reviewed-by: David Kaspar <dkaspar@blackberry.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>