And provide some tips for searching.
Task-number: QTCREATORBUG-28996
Change-Id: I35d611326555ccc568c98c49e092380d206fce6b
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
So far there were always kits for "all" (usually three?) archs
created, leaving n-1 of them in an typically unused but expensive
to validate state.
Change-Id: I78c7ed3faea0829104dc62bf358e9e1c62082b01
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
They are closely related, and we might want to add more variants of this
functionality.
Change-Id: Ida83cce018fad5a84d5f6d24a0fa4ff2bca5a67b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
20 string duplications warrant a centralized setter. A couple more of
them will come with the upcoming toolbar changes.
Change-Id: Ide8c680da21d5be09f968bcc0a774e062c6f0260
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
The "false" default wasn't really useful.
This changes the default value to the following usages:
1. AndroidDeployQtStep
Introduced in 91f136ef3a
The synchronizer was used to cancel the running tasks inside
the doCancel(), so the similar behavior should be expected
when destructing the AndroidDeployQtStep.
2. GitClient
Introduced in f3106ebafe
Is used only inside the last line of
GitSubmitEditor::updateFileModel(). The running function
(CommitDataFetchResult::fetch) doesn't take QPromise<>,
so it can't detect if the future was canceled or not.
In this case this change is no-op.
3. ExtraCompiler
Introduced in c99ce1f455
The intention was to make it cancellable and finish
early on cancel.
4. PluginManager global future synchronizer
Introduced in 72bddf9f51
The intention was to make it cancellable and finish
early on cancel.
The relevant places in code are marked explicitly for
points: 1, 2 and 3.
Change-Id: I1a52deb8d1f81d355950c8772bbaa6d0a202fd7e
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Instead of using plugin's own synchronizers. The global
synchronizer does the synchronization just before all the
plugins' destructors run (in sync), so this should be
the right equivalent.
Change-Id: I8d09c9ea4a11b7a703684ad5319191ce310d992e
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
The whole machinery is now almost only layoutbuilder.{h,cpp},
mostly independent of the rest of Utils. Idea is to finish the
separation to make it stand-alone usable also outside creator.
Change-Id: I958aa667d17ae26b21209f22412309c5307a579c
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Check if the full search text matches a device root and suggest them at
the end of the results.
Change-Id: I6e6e201597a9824b5e0c342cbc930baf2ac5ffea
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
When loading a Qt project, after the Scanning For Tests
finished, the scanForTests() blocks the main thread for
about 2.5 seconds on the call to m_taskTree->start().
The reason is that created task tree contains about 8000
asynchronous tasks. If all they run in parallel it means
that we start them all synchronously.
Don't use internal QThreadPool, as it doesn't prevent
the freeze when more than maxTreadCount() threads
are started. Instead, use the parallel limit with the
same constraint that was used for thread pool.
It means that only constrained number of tasks are being
run in parallel and the rest is being postponed until
some of the running tasks finished. In this way starting
the constrained number of tasks reduces the GUI freeze
to ~0 ms on task tree start().
In general: this patch divides the overall freeze of
2.5 seconds evenly into many very small pieces and
distributes them evenly in time, so the GUI stays responsive.
This patch, when applied together with 2 bottom patches,
reduces the GUI freeze spent inside scanForTests() after loading
a Qt project and after Scanning For Tests finished
from about 23 seconds into 160 ms.
Change-Id: If33076d4f042c3d96434b9f3cc305776fb30906d
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
When loading a Qt project, after the Scanning For Tests
finished, the scanForTests() blocks the main thread for
about 3.5 seconds on the calls to parser->init().
Refactor the code so that it operates on QSet<FilePath>
instead of QList<FilePaths>.
This patch constraints the freeze to about 40 ms.
Change-Id: I219b3e2abf2b7e5166eec08d83f4cdcb8e4a8098
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
The global synchronizer will be destructed after the
asynchronous shutdown phase and prior to deleting
all the plugins (i.e. synchronously). It's assumed that
between deleting the synchronizer and the point when all
plugin destructors are finished no new futures are added
to the global future synchronizer.
Change-Id: Ibc839b04f2c2bbd35980b8baed51b29c2c4f7c76
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
between old and new API, so I can continue with changes on top.
Change-Id: Ic7b807c9b57296499f1a622bc4e3bc60fbba6865
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Removal of a project file is done as a rename with an empty filename.
Fixes: QTCREATORBUG-25922
Change-Id: I4443d4a31723eb1ac93f02bad633bcfaf99a9573
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: hjk <hjk@qt.io>
This includes both with source files explicitly specified or
resulted from a file(GLOB|GLOB_RECOURSE) call.
Fixes: QTCREATORBUG-27538
Change-Id: I5ee113af168bdb8cd0a96e8ab2ae603c0607fb0b
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>