If we fail to start the executable or the executable is missing
we need to ensure the runner continues by cleaning up and
scheduling the next test if there are more.
Fixes: QTCREATORBUG-27285
Change-Id: Ia89374d7105f2fd6a42fa3fa018f14677e30ad1b
Reviewed-by: David Schulz <david.schulz@qt.io>
Instead of relying QProcess to operate with MergedChannels, keep
the separate channels and merge inside QtcProcess.
Fixes: QTCREATORBUG-27196
Change-Id: I3039267fcd6d90f95f8212642e17049b87af1156
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
If the kit doesn't specify anything specific, default to the local host.
Fixes: QTCREATORBUG-27242
Change-Id: Ie19a332638467bd121314a2a0303803253ced4af
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: hjk <hjk@qt.io>
Save whether an interpreter was automatically detected. Use this
information on startup and check whether the path still exists to remove
the interpreters that are gone.
Fixes: QTCREATORBUG-27253
Change-Id: I094e573122f2800f643a2708b924a7a9d7e25ae1
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Calling QtcProcess::terminate() after disconecting from
process signals is a task for implicit ProcessReaper.
Delete the process instead.
Change-Id: I59b0aa1d9df602077d006084635a5321beae0010
Reviewed-by: hjk <hjk@qt.io>
Calling QtcProcess::terminate() after disconecting from
process signals is a task for implicit ProcessReaper.
Delete the process instead.
Change-Id: I02d9b892125b1a1053aefe8edbc7bc96bac41381
Reviewed-by: hjk <hjk@qt.io>
I find it too confusing to have that inheritance only to enforce
similar interfaces.
Change-Id: I9da68ea59c04f709228e0874460e987115b30f56
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
The QtcProcess is already forward declared in idevice.h.
In case of std::unique_ptr<MyClass> being a member
of a public class in a header file it's enough to
deinline constructor and destructor of a class
containing the member, and forward declare MyClass.
Amends f91a9cb891
Change-Id: Iacf272b62fed8827c0451c5d4c5c3429bb7106ef
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Raw shaders can no longer be used for ShaderEffect, but instead
a precompiled QSB must be used. To facilitate this, we now
automatically run QSB tool whenever a shader file changes.
Task-number: QDS-6472
Change-Id: Ic2886b815c7f428ac393d1d7623105a4e82053ae
Reviewed-by: Samuel Ghinet <samuel.ghinet@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Last segment of host part represents version string.
e.g. qthelp://org.qt-project.qtwidgets.630/...
If it starts with "6", let's open qt-6 documentation.
Otherwise, let's open qt-5 as it is.
Change-Id: I88b5f6bd2ebfd8494e48f043678dbc190310b90f
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
- Fixed behavior "Formatting mode" combobox settings isn't
saved after pressing "Ok" button when no one project is
open. Now it works as expected, settings save after press
"Ok" button.
- Added additional applying interface for ICodeStylePreferenceFactory
which allows pass-through apply call from dialog to the editor.
Note: it doesn't work with read-only code style profiles
Change-Id: If4f0c85e3105550db4ffd9860e94b678f0d9b386
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
There were cases when an empty "-D" CMake command line parameter would
be genered, resulting in a failed CMake project configuration.
Task-number: QTCREATORBUG-27256
Fixes: QTCREATORBUG-27237
Change-Id: Ic26c9dfe72db154cd76fdcc913eb7fe623b3123c
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
With huge source files it might not be so useful to continuously
recompile them while editing, which is basically what clangd does.
Let users opt out.
Change-Id: If3e95c1e286090606a84961d071179f8b40f9180
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: David Schulz <david.schulz@qt.io>
If you hide the progress details with the toggle button, we show a
progress bar in the status bar, and in case of indexing prefix that with
a details label (n/N). Since these numbers change all the time, the
label changes slightly in size, and if the window is small enough that
leads to the output pane buttons resizing all the time.
Avoid that flickering by restricting the details label to a grid.
Fixes: QTCREATORBUG-27255
Change-Id: I3d031779f9fe1ce960e44e8a65e613c2bac3b107
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: David Schulz <david.schulz@qt.io>
Structured bindings were parsed as lambdas instead
Fixes: QTCREATORBUG-27183
Change-Id: I3c88dc1012e55edfe417504c17f6138e3356651c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Don't kill the process, delete it instead.
Minimize code repetition when starting both versions
of adb process, enclose it in startAdbProcess().
Call deleteLater() and clear the pointer to adb process
from inside adb process handlers. Don't disconnect from adb
process unnecessarily now.
Change-Id: Id77eda562fa7fa4108c52cc839bd73a8032f5f25
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
That is, only if the ClangCodeModel is enabled, as it was already done
for the global clangd settings. The current mix is an excellent way to
confuse users.
Change-Id: I1d3e7a366172ed972ac1ed04c4b332686a2ffb10
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This saves some unneeded file path conversion and lookups in the
python settings.
Change-Id: I8647858320183dc1da027363b4ab265f6c75e1ae
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Checks if the document imports PySide and whether the selected python
interpreter can find a PySide installation. If not show a global info
bar that can install PySide via pip like the python lsp server.
Task-number: PYSIDE-1742
Change-Id: I02c0d5f6eb268f3d8826d4fb9d9ec3c7c48b8638
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Delete the AndroidDeviceManager instance on shutdown from inside
android plugin destructor.
Implement AndroidDeviceManager destructor and wait for
futures currently running to finish. Don't do any special
handling for possibly still running m_adbDeviceWatcherProcess,
as it will be deleted automatically by the std::unique_ptr
and this will automatically initiate a proper termination of the
process running.
Change-Id: I5aad6f4fcfca23a0a37c3709efcdffad43a88203
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
When reaping a process: do one call to terminate() and after
500 ms timeout (default) do one call to kill() if the process is
still running. When the process finishes, end reaping by
deleting the reaper and its process. Ensure that the state of
the process is NotRunning before deleting it.
Eliminate the need to process events in ProcessReaper's destructor.
This change removes the emergency counter, which could caused
issues when the process was still running and the emergency
conter was above 5. Before, we were forcefully deleting the
running process. Now we wait as long as it's needed for process
to finish.
Since the reaper was operating in the main thread before,
it could happen that ProcessReaper inside the process launcher
could have blocked the launcher's main thread considerably, when
emergency counter exceeded the value of 5 and the destructor
of QProcess was run in turn. In this case the process launcher couldn't
operate and couldn't handle other running processes. This could cause
that corresponding running QtcProcesses on Creator side
timed out. Moving the reaper to the separate thread eliminates
this issue.
Change-Id: Id78953a2aec5cb08dc869621386b6a61a182e81c
Reviewed-by: hjk <hjk@qt.io>
This label is obscured by other controls in the current layout, so
it can be removed. On some platforms it also incorrectly draws on
top of the controls that should be obscuring it.
Fixes: QDS-6554
Change-Id: I3deed0779ea79ded2753b1437b168ef0f45654ab
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
If Qt Creator crashed at startup, we show a dialog pointing fingers to a
plugin, the next time Qt Creator is started.
Make clearer that the problem was the _last_ time Qt Creator was
started, not during the current startup.
Make clearer that the "following plugins are disabled too" refers to the
case when the user decides to temporarily disable the plugin.
Change-Id: Ie6cfed2e445b9e5c1598783474ce8a169d82bc3a
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Calling QtcProcess::terminate() is a task for implicit ProcessReaper.
Delete the process later instead.
Change-Id: I0f4f531e7eefff2ca6ecec350fb3c95b97ba4c2c
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>