Introduce QTC_USE_MATCHER env var temporarily. When
this var is set, the locator will use LocatorMatcher
internally.
It's very hard to migrate all the matchesFor() implementations
into the LocatorMatcherTask in one patch, so this var
is going to be removed when all filters are migrated.
Whenever a new patch providing the filter's migration
is added, it may be tested by setting this env var.
Add a temporary printout with info about which implementation
is selected in runtime.
Change-Id: If2d6006a89f3669ea4f6f8f171e59e00917419c4
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Avoid the separate line above the heading, which also doesn't
make much sense for the first item.
Change-Id: I2cb4aa270f805552215f4f3dc114103f9f3c313f
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Opening remote files can pop up a ssh prompt, and before that happens we
need to hide the locator popup, which otherwise can stay on front of
that ssh prompt window, preventing the user from entering their password
and opening the file.
Otherwise for example modal error dialogs could also be shown.
So, delay the EditorManager::open call to after the popup is hidden.
Amends 07b1e1c5fe and
7f49d93fc1
Change-Id: If2dd9e745d5d98615b851ee4315e7de9a75afb00
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Considering the case that a locator task is running
its task in a separate thread, at least 3 threads are
involved:
1. Main thread
2. Task's thread
3. OutputFilter's thread (the thread that removes
duplicates from tasks' results)
State before this patch:
The task (2) was always delivering the results into
the main thread (1), and when main thread received
the result it was passed to the OutputFilter's thread (3).
The drawback is that we needlessly block the main thread
for intermediate handling.
State after this patch:
The task (2) is delivering the results directly to
the OutputFilter's thread (3), without blocking
the main thread (1).
Currently the common object shared between all 3
threads is OutputDataProvider.
Rename addOutput() into reportOutput().
Make ILocatorFilter::matchers() private.
Change-Id: Ie8ad7d82ae02825e232f65b82fe329e780f58626
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Less boilerplate for the implementation add user code access to
IOptionPage::{apply,finish} is planned to be removed.
Change-Id: I75c9ca893f49d66b72f6108f2451f3b0cb46722a
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This shouldn't be used outside of locator scope.
For other usages that could reuse some filter's
implementation use LocatorMatcher with shared
list of LocatorMatcherTask.
Change-Id: I63a62c79b38985e24835fecd38d016dfb164a16e
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Register cpp and lsp matchers for all symbols,
classes and functions.
Change-Id: Id85c8164077ec395dac7e6ff45acc89db9e6ae08
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
- Sort items in the menu.
- Disable items for disabled filters.
- Show a tool tip when hovering over the magnifying glass menu.
- Add descriptions to all filters and make them more consistent.
Change-Id: Ic03e303c50422f9de5dd3c512fe32bbdc958d2ba
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Add also AcceptResult structure, returned by acceptor.
The Acceptor, being a member of LocatorFilterEntry,
is going to be used instead of virtual ILocatorFilter::accept()
method. By default, when no Acceptor is provided, the
locator widget is going to call EditorManager::openEditor()
with a LocatorFilterEntry instance.
Change-Id: Ic9697492738d65fd1331bbd0872bc374285c4e53
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This machinery is going to replace
ILocatorFilter::matchesFor() and filter usages outside
of locator scope, e.g. in find unused functions.
In contrary to LocatorWidget, which calls
Core::Internal::runSearch() in a separate thread
and the latter executes matchesFor() sequentially for all filters,
this patch offers a possibility to run all filters in parallel.
Change-Id: Ia59463c95294299090173f3d510d57c9f8c7f993
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This reverts commit 962888cb02.
Reason for revert: Applied too early and produced a conflict
Change-Id: I98a2895a81196b61cf7020a187d3740be231f671
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Limit the items shown for categories to a single row (two rows for first,
"featured" category), and add a "Show All" link/button in the heading,
that shows all items in that category only (with a "Back" button).
The "Search in Examples" input ignores categories.
Change-Id: I7c8561a306ad86c3b537587621d3fd030cd08af8
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Make most of the public methods of DirectoryFilter
protected. Move connection to project manager signals
into AllProjectFilesFilter c'tor. Remove unused
DirectoryFilter::directories().
Change-Id: I66d16c2c90188de6a03fb072fed6c87ea3d9ce4c
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Drop internalData from c'tor. The internalData is going to be
removed, soon. Drop also the icon arg from c'tor since
LocatorFilterEntry instances are usually created in non-main
thread, while operating on QIcon instances isn't really safe
in non-main thread. The use of QIcon inside this struct is
a subject to change in the future, in a way like it was done
in other parts of code that generated icons from non-main thread.
Change-Id: Ic6aa719a64e5fbd65883c54149796057c632780e
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>
Add a "pin" button that appears on hover if the details have been
dragged around. Clicking on it resets the position.
Position is also reset when hiding & re-showing the details with the
button. And the details snap to the original position when dragged near
it.
Fixes: QTCREATORBUG-28829
Change-Id: I6a6f13ca1baac79951c20f2e8edf6fac137a8cfc
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
StyleAnimator moved to Utils in order to be used by other modules and
styles.
Since Utils is the most common dependency, it's chosen as the right
place of StyleAnimator.
Task-number: QDS-9522
Change-Id: Idbf55875e0c320ccfa21e1c479bf5997ea7d150d
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Make Environment a stack of changes that gets "expanded" to
a full environment before things are actively accessed.
Later this expansion should be done lazily if possible.
Task-number: QTCREATORBUG-28357
Change-Id: If1c7bfdb9f58b81e71c51ed87ee75d6964a47019
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>