Including using OTHER_FILES for qmake projects.
Fixes: QTCREATORBUG-27157
Change-Id: I802000c90472464430d1335b9e962c6691cc567a
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Instead of connecting to errorOccurred() and finished() signals.
Change-Id: I9fff11875a680240e63db1663299680f885dbdfc
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: hjk <hjk@qt.io>
We delayed switching the "current editor" by the double-click interval
to fix opening editors in extra editor windows from the project tree
etc. This leads to the weird effect that after switching the focus
between editors even within the same window was only applied after a
delay.
Instead just delay setting the current editor by "two events". When
clicking into a window, Qt sets the focus in two phases.
1. First the focus ends up in the focusWidget() in the new window, which
possibly is the editor that was active before in _that_ window
2. Only during the next event processing does Qt set the focus to the widget
that the user clicked into, which could be a non-editor widget, like the
Projects tree
We may only change the current editor if the focus didn't move away from
any editor in (2). So we need to delay setting the current editor until
after the next event processing.
Amends 22c67db406
Fixes: QTCREATORBUG-27479
Change-Id: I3d9197176a2d7ce50e5f29a1ce1b2efef52232d0
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: David Schulz <david.schulz@qt.io>
If a property actually is a variant we have to properly parse
the string and convert it to the correct type.
Booleans and numbers were not probably converted.
This did not create many issues, since the conversion happened
later, but it broke copy and paste and merging.
In Qt 5 this conversion seemed to happen mostly automatically.
Boolean literals have to be handled explcitly, since e.g. "10"
is technically true and can be interpreted as boolean.
Task-numbner: QDS-5944
Change-Id: I35c7cae7041667c7eac81e36a285a394263b35a4
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
The behavior of QStringView::mid is slightly different between Qt 5 and
Qt 6, so use Utils::midView which was created exactly to cover that.
Change-Id: Ia084e93c36fb152ac725f1b8eaa38a07dfb939e1
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reuse the code that selects the innermost item in the outline combobox
also in the widget so the behavior is consistent.
(cherry picked from commit b97204ebb6)
Change-Id: Ie7c32ba4e6c5cbdd608da207e515c737e3bd91e6
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
And pass a device path to command instead. The QtcProcess
should automatically select the device's process implementation
when the process is running.
Change-Id: Id3fed8656999af58ce1a5ba0632f94c3dc76ab04
Reviewed-by: hjk <hjk@qt.io>
This can be tested in run settings for the app on remote
device after expanding environment details and pressing the
"Fetch Device Environment" button.
Change-Id: Ic488eaae5a40443380ddfd8b01af3e92f2557e5d
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Don't use SshDeviceProcess anymore for opening linux terminal.
Fix running the empty command so that it opens ssh shell.
Don't leak terminal processes on shutdown.
One issue is that terminals are closed when closing settings,
as settings dialog operate on a copy of device, and in case
of no modifications applied the copy is being deleted.
The current workaround is to press the "Apply" button
before closing the settings dialog. This issue is to be
addressed separately.
Change-Id: I3c48b035daf1d099a1e8fa0762a6d6d0eca9592c
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
* clean up Design to a more minimal style
* remove some unused components
Change-Id: I37af39a1cae6b6f14f769383ac73c00570729f4f
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This adds the build system feature that allows Qt Creator's libraries
and plugins to be compiled statically.
Fixes some symbol clashes when all plugins are linked into the same
executable.
Support for actually loading static plugins will be added in a separate
commit.
The feature is controlled by QTC_STATIC_BUILD which by default is OFF.
Change-Id: I1fab7953c43e42dc75619e35660029ee067106df
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
When a QProcess is being started in a thread that doesn't have
event dispatcher installed, e.g. in a thread started with
std::async(), the process signals are emitted only from inside
QProcess::waitFor...() functions, but not emitted spontaneously.
This may cause issues when adding the running process into the
ProcessReaper, as the implementation of the latter relies on
signal emission and doesn't use blocking API of QProcess.
Currently there is one case like this: ProcessCreator::createProcess()
of clangsupport library.
Change-Id: I823a139b356f62fee9e0e5d6fc8326301c36b449
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
To display the relative cost in the editor a custom text mark icon was
painted with a custom width factor for qml profiler marks. Move this
textual information into a line annotation and be a bit more verbose
what kind of information was collected in that line.
Change-Id: I863c2afa52f2acdf19ffcab3dfc95af566ac0efe
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
- Prevent insertion of invalid animation ranges that may cause DS
hanging
- Properly update the toolbar when switching to a different qml file
- Show an informative text instead of the empty curve editor when
the current file does not contain a timeline
- Move the toolbar into its own class
- Add an implentation to the "Set Default" button
Fixes: QDS-6543
Fixes: QDS-6542
Fixes: QDS-6545
Fixes: QDS-6544
Change-Id: Id6bc1457627ea23a670e74ea335fbb475711b9a6
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
... and "switch between declaration/definition".
It's either clangd or built-in code model now.
Use the opportunity to dissolve the pointless FollowSymbolInterface
class hierarchy, which introduced a confusing parallel inheritance
chain.
Change-Id: I792ad55656c5dd9f10c6b4db7c5c36cf7be45125
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: David Schulz <david.schulz@qt.io>
ProjectExplorerPlugin::recentProjects() filters out non-existent files.
Because files could at any time be removed/renamed, we cannot presume a
certain, constant length of the list when calling recentProjects() a
second time.
Fixes: QTCREATORBUG-27399
Change-Id: I3f09830896b308e251881c855abb552b6022695f
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Centralize some boiler plate and warn about best-guessed cases.
Keep the QByteArray based access as writeRaw()
Fixes: QTCREATORBUG-27445
Change-Id: I948d80fba78b36cf85cc73664175ab05eb7707d4
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
ShellCommand doesn't support retrieval of individual sub-jobs.
Simply use chained QtcProcesses and add a progress item directly.
This gets rid of fragile hacks that were needed to combine the output of
the two calls into a valid XML document.
Change-Id: I426c74f5fd2c522850daf9c077bfd09ce3f88bb1
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>