Close is already deleting the instance.
Fixes: QDS-13268
Change-Id: I95998d6c11f6824386d109ae1f622d022a59ce7f
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Motivation:
a) It was ridiculous that when users wanted to manually
add a new toolchain, they had to do the entire setup twice.
b) It was equally weird that users had to take care to choose
matching toolchains when setting up a kit, or indeed that it was
even possible to mix random toolchains in the first place.
User-visible changes:
- The "C" and "C++" categories in the toolchain settings page have
been merged into a single "C/C++" category.
- When adding a new toolchain, the "C" and "C++" sub-menus are gone.
Instead, the toolchain config widget offers two path choosers if
the respective toolchain type supports C and C++ compilers.
- By default, the C++ compiler file path is derived from the C
compiler file path automatically, so the user usually has
to enter only the former.
- In the kit settings page, the "C" and "C++" toolchain combo boxes
have been replaced by a single "C/C++" combo box, relieving the user
of the responsibility to choose two matching toolchains.
Implementation:
The notion that a Toolchain object corresponds to a single compiler is so
deeply engrained in the code that it cannot realistically be changed in
the short term. We therefore introduce the concept of a "toolchain
bundle" as an additional layer that groups matching C and C++ toolchains
together. This way, most code dealing with toolchains stays unchanged,
and only the presentation layer (i.e. the toolchain and kit settings
pages) needed to be rewritten. Once set up in a bundle, toolchains stay
implicitly linked together so the matching only needs to be done once.
In follow-up patches, we will make use of toolchain bundles in all the
places where kits are auto-created, eliminating the risk of mixing
incompatible toolchains in a kit.
Change-Id: Ie6c5add9963e7c1096268dd77acd624671b2674f
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: hjk <hjk@qt.io>
... and IDevice::qmlRunCommand, currently for storage only.
Leave the GUI side as-is for now, as this synchronizes the widget
content with the local copy of the device data to allow the
device tester to be run with the visible data.
Change-Id: Ie8fb967c9a7f8246eec71d52c9b714ca3b3f5acd
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Make it more easy to toggle between showing inline
markers or not.
This also makes the reaction more direct. Before this
change markers were kept or not added until the file
got re-opened the next time.
Change-Id: I3ad56444648967db9565176e5b60ac6df8c32ff1
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
The recipe which fetches the issue properties works
in general equally to the one needed to fetch source
code for a given analysis version.
This patch provides this function but does not make
any use of it yet.
Change-Id: I5bd63eb470e9cb7038aaae5e4c79fa2d570d45db
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Line markers for issues were fixed to the latest analysis
version.
Explicitly make use of the analysis version the user selected
as end version.
Change-Id: I39e95693d4aa7d370447a2bb2b35fb28543a031d
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
The build key is legitimately empty for CustomExecutableRunConfig.
Amends 07df45cdeb.
Change-Id: Iadc992b772913599e5af0d5ea5104188707fad45
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This is effectively the same approach as taken with ProjectConfiguration.
Having the settings separate leads to quite some boilerplate and in the
end to parallel IDevice and DeviceSettings hierarchies.
The unusual registration of the docker aspects are due to the multiple
inheritance, we need to "dynamic" downcast.
Change-Id: I50864e2009f4e525d635decf1c9beaad5e6a5f1f
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
One unneeded #include, and a case where a plain array suffices and
is faster and smaller.
Change-Id: I49269f645b8239019baa817e137da27a767f640b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Only string literals were considered so far. Properly consider character
literals as well.
Fixes: QTCREATORBUG-31342
Change-Id: I880546c1384f48ba9f81a6c6716e50fb7781cc11
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Update the error kind enum to cover all known error
types.
Fixes: QTCREATORBUG-31376
Change-Id: Icae72edfa941c7f1e8cfc1bdd039d01ff44dc28d
Reviewed-by: hjk <hjk@qt.io>
From Store toMap() to toMap(Store).
More symmetric code on the user side and better in line with
ProjectConfiguration/AspectContainer at the price of a few
more lines in the base.
Change-Id: I6069c96c250c1846e870879bcb52c58fdd806478
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Some column data used for links may be optional and thus requires a null
check before contructing the link to prevent QtCreator from crashing.
Change-Id: I53f78d1335f5688cc4655838453fddaa61f9ffab
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: hjk <hjk@qt.io>
It's accessible via editor(), which we now have also for the
detached memory views.
Change-Id: Ibce6a0e3b753b3beb5c5a8eac67b11b352dcc250
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
... when views have been closed manually before.
Change-Id: Ib589d525b00b5a349d6ed60bdf0e703baafb9871
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This makes things more deterministic and ensures we consistently prefer
the version-less variant from a set of file paths pointing to the same
compiler executable.
Example on my machine:
/usr/bin/aarch64-linux-gnu-gcc
/usr/bin/aarch64-linux-gnu-gcc-14.1.0
/usr/bin/aarch64-linux-gnu-++ (no versioned variant present!)
Before this patch, QtC preferred /usr/bin/aarch64-linux-gnu-gcc-14.1.0
to /usr/bin/aarch64-linux-gnu-gcc, because it was found first when
iterating the directory, and then discarded /usr/bin/aarch64-linux-gnu-
gcc as a duplicate, which resulted in an ugly asymmetry between the C
and C++ toolchains.
Fixes: QTCREATORBUG-31132
Change-Id: I2da252beda1b565e66906f10fa1e8a9d36ad852c
Reviewed-by: hjk <hjk@qt.io>
The default minimum of QSpinBox is 0 which is not allowed
for vim's tabstop in general.
It has to be some positive integer.
Beside disallowing the unsupported value it also fixes
some crash which could happen if using the zero as
tabstop width. (div by zero)
Fixes: QTCREATORBUG-28082
Change-Id: I8913b1c28b8ec239ecdf2306fe8861669ccb9d56
Reviewed-by: hjk <hjk@qt.io>
When triggering context menu on locals, receiving an update for
locals (e.g. still running fetch of locals finishes, expanding
children,..) and triggering an action referring to a former
now no more existing item.
Close the menu on updates to avoid this scenario.
Change-Id: I273bb85d497dfbaa257f267a866ea014a7e3b209
Reviewed-by: hjk <hjk@qt.io>
When adding a Docker device via the Add Device Wizard,
while the docker executable is running on a remote linux device,
a crash would happen because the linux device is destroyed
due to a call to "saveSettings".
This patch adds a lock to the device shell mutex during destruction
to try and keep the device alive while a LinuxDevicePrivate::runInShell
call is still ongoing.
Fixes: QTCREATORBUG-31364
Change-Id: Ia154b527bb8344fc41fa91a56a7ef3305bfef0fa
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
It makes it easier to add new arguments without breaking the tests.
Change-Id: Id03053ac17e4da26a2abf2a23e6cc20848ed9af5
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
A file component is always of the reference kind. Sets the file
component trait too.
Task-number: QDS-12665
Change-Id: I800b32a4d204fb016c1274d05c08695b01581ae4
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
If the user has specified a remote path for the "docker" executable
it is not possible to simply bind the cmdbridge as its on a different device.
We fall back to copying the cmdbridge in this case.
Task-number: QTCREATORBUG-31364
Change-Id: I03b5594c1c942fe6539a45a32d2a31e24f2a493b
Reviewed-by: hjk <hjk@qt.io>
Make BinEditorImpl also the EditorService implementation.
Change-Id: I6a741f678c93f96e80947c041f9d55c9f8190148
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
To simplify the different code paths, still on the way to allow
duplication of editors.
Change-Id: I09f8e9faee4b5b6c8179f56341997024daa8681a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This intentionally keeps the lifetime (almost) identical.
Change-Id: Ic420d8c5f89eaad33e38160bb8ee26965830047f
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>