Commit Graph

80111 Commits

Author SHA1 Message Date
Jarek Kobus
08f3d57aa1 CppEditor filters: Reimplement matchers()
They are used only when ClangCodeModel plugin is disabled.
Activated with '.', ':', 'c' and 'm' shortcuts.

Change-Id: I131473c419e0cb302492cc6d4263bd8ad80769e4
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2023-04-25 08:49:55 +00:00
Marcus Tillmanns
2e384d9c12 Utils: Fix line ending conversion in FileReader
FilePath::fileContents always uses "binary" mode when reading files.

FileReader::fetch previously used QFile with QIODevice::Text mode to
read (local) files, which converts \r\n to \n. This patch re-introduces
the conversion.

Fixes: QTCREATORBUG-29040
Change-Id: I0a16b056bea456512e6526497b725c73b0a1bd11
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2023-04-25 08:35:46 +00:00
hjk
c2ea7bc415 FakeVim: Re-organize ExCommand settings page setup
Change-Id: I085a86529fc840472aabf7ae62d6565f454256ae
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2023-04-25 08:35:45 +00:00
hjk
d13d48a281 FakeVim: Use IOptionPage::setWidgetCreator() for user command settings
Change-Id: Ic5d895634cb5ef1b2e1a6fa465cd800a213a7d41
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2023-04-25 08:12:05 +00:00
Christian Kandeler
daf1b29b2d Core: Try not to evict still-running searches
... when the maximum number of searches has been reached.

Task-number: QTCREATORBUG-28976
Change-Id: I12bad860ce61f71aad9ba2fec93333a5d98bc61d
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-04-25 08:04:03 +00:00
Christian Stenger
ca3d889831 AutoTest: Only handle document updates if necessary
Do not send qml document updated unnecessarily in case we know
that nothing had changed at all.

Change-Id: I1d6b94dcd68753e0f451a2812a752ff92f4860af
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2023-04-25 07:53:06 +00:00
Jarek Kobus
57d982e5ca OpenDocumentsFilter: Reimplement matchers()
Change-Id: Ie458d74321286d720b3eef62b7b3273c5c222e44
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-04-25 07:32:27 +00:00
Eike Ziller
ec9680d42e Markdown: Add option for hiding preview
Make it possible to hide the preview, by having a toggle button for
"Show Preview" and "Show Editor", and ensure that at least one is always
on and they are in the order as the views themselves. Disable the "Swap
Views" button if only one is shown.

Change-Id: I0ec1e06c2a8ec94e34bf52eae45ba009fd8cd1b5
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-04-25 07:26:26 +00:00
Jarek Kobus
e849c19a33 AutoTest: Optimize TestCodeParser::scanForTests
In case of loading a Creator project, after the Scanning
For Tests finished, the scanForTests() called by
TestCodeParser::onFinished() freezed the main thread for
about 1 second. In this case requestRemoval() signal was
emitted nearly 1000 times.

Optimize the internals:

1. Don't emit requestRemoval() for every single file but
   emit it just once passing a QSet<FilePath> instead.
2. Adapt some other callees and callers to work on
   QSet<FilePath> instead on a single FilePath.

This change constraints the freeze to about 2 ms.

Change-Id: If23b85b495c125d82eb3c8b5a6912349df122745
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2023-04-24 14:04:41 +00:00
Marcus Tillmanns
cc14eaf570 CoPilot: Fix leak in authwidget
Also fixes a crash when the state check returns after the widget
was already deleted.

Change-Id: I04256e6ba686469f18ebdb75c73e12cecf330bed
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-04-24 13:18:12 +00:00
David Schulz
e58dd4381f Copilot: set the correct suggestion document for inline suggestions
Change-Id: Idbccf2eb68b4d1e2bd3751e851310cc74cac2694
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
Reviewed-by: Artem Sokolovskii <artem.sokolovskii@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-04-24 13:09:31 +00:00
Christian Stenger
5bc60ac8de QmlJS: Stop suggesting versions for imports if possible
Fixes: QTCREATORBUG-28649
Change-Id: I918b229855c18519800a54a73b56eaffa40524e5
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-04-24 11:37:58 +00:00
Marcus Tillmanns
9a25a8849b ClangTools: Check if executable is valid
Previously "getClangIncludeDirAndVersion" would fail
on the QTC_CHECK and print out a warning each time.

Change-Id: Id67b0c7f4c4e52b030d52ad5140f48e0a19770e0
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-04-24 11:20:35 +00:00
Jarek Kobus
4a3495c8b9 LanguageClient: Reorder arguments in workspaceMatchers
Provide a default empty list for clients. It's going to
be used for MatcherType::CurrentDocumentSymbols.

Change-Id: Ib3ba2ec8fa08b9a55eb097ac3cce8bcd513eb5ae
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2023-04-24 10:10:27 +00:00
David Schulz
afcbe845ce Copilot: Add setting for automatic completion
Can be used to turn off the automatic completion insertion, so a user
only can request suggestions explicitly via the shortcut.

Change-Id: I0c4d9e2f41d30312b0870facdd80dc1d3d03d809
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
2023-04-24 10:07:21 +00:00
Jarek Kobus
21c71cded7 DocumentLocatorFilter: Make internals reusable in LocatorMatcher
Prepare for LocatorMatcher implementation.

Change-Id: I3d78045a06c8ebefacb033f0eabb5f7a2457ab06
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2023-04-24 09:38:53 +00:00
Jarek Kobus
90c09c65f9 DiffEditor: Fix jumping to context line immediately on git show
Fixes: QTCREATORBUG-29081
Change-Id: I7a4658209f95e98cb485e725dee07074dae5c163
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2023-04-24 08:26:22 +00:00
Jarek Kobus
e9ae45bfcc FileSystemFilter: Reimplement matchers()
Change-Id: I47547713cadfe9aa1212336ffbfbdace3dd84430
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>
2023-04-24 07:39:29 +00:00
Eike Ziller
c9696fbabb Merge remote-tracking branch 'origin/10.0'
Change-Id: I8b36c1812b61dbe08fe3e7930f950e6b8e8a7079
2023-04-24 08:52:35 +02:00
The Qt Project
05f80a132d Merge "Merge remote-tracking branch 'origin/9.0' into 10.0" into 10.0 2023-04-24 06:51:40 +00:00
Jarek Kobus
bb9ba4349a Utils: Use Q_DISABLE_COPY / Q_DISABLE_COPY_MOVE
Change-Id: If9ea6220700769cd99ede3ebaacc4d75cb673e89
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2023-04-24 06:36:37 +00:00
David Schulz
b794e98233 QMLLS: fix crash on opening non existing qml files
The automatic handling of the document inside the language client
manager is normally done after a document was opened successfully. Since
the QML document registers the document manually on construction before
the file was tried to be opened the automatic cleanup inside the manager
does not work. Postpone the document registration like in the
PythonDocument after the document was opened successfully.

Fixes: QTCREATORBUG-29021
Change-Id: I2dd9e2da9c9ed6d38414ad991df3c03b62e9d611
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-04-24 06:25:19 +00:00
Jarek Kobus
9a1be79c0d LocatorWidget: Reuse LocatorMatcher in LocatorWidget
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>
2023-04-24 06:19:36 +00:00
Eike Ziller
646f95811d German translation: Python
Change-Id: I86e11626122c88a307134ae352331845fa4b394d
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-04-24 06:14:03 +00:00
Eike Ziller
5125ccf03f Merge remote-tracking branch 'origin/9.0' into 10.0
Change-Id: Ifbb14e33104b39de8ca2e1495301a53e71496ef9
2023-04-24 08:10:39 +02:00
Jarek Kobus
dfa1dafd49 PerfProfiler: Use Q_DISABLE_COPY_MOVE
Change-Id: I7abe582d2fb092bf87ac14690f588ae3524abc3d
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-04-24 06:04:49 +00:00
Jarek Kobus
2839d019b8 LanguageClient: Use Q_DISABLE_COPY_MOVE
Change-Id: Iee54086810442b64cb8b7aa68a48341909481787
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>
2023-04-24 05:38:02 +00:00
Alessandro Portale
1e02f6bf98 Resuscitate the "legacy" Qt Quick Application wizard
Users still want to create new Qt Quick Application applications
targeting Qt 5 and with other build systems than cmake.

Fixes: QTCREATORBUG-28964
Change-Id: Ib87b7128f0b34eb4126ec771f324c70a960b2a03
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-04-21 18:42:21 +00:00
Haowei Hsu
440541da23 l10n(zh_TW): Fix translations of 'Toolchain'
* Toolchain: 工具鍊 -> 工具鏈

Change-Id: Ia58d3c58ec46169abfc51036131be5572e7c242e
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: 林博仁(Buo-ren, Lin) <Buo.Ren.Lin@gmail.com>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-04-21 16:13:29 +00:00
Jarek Kobus
b1e65195ac CppEditor/LanguageClient: Reuse MatcherType enum
Change-Id: I95a8c902ddf6d7525543ccbc2acf45fe273a12f4
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2023-04-21 15:19:49 +00:00
hjk
6f7a56c31c Designer: Use IOptionPage::setWidgetCreator() for settings
Change-Id: I731905a84110966640cef0bfd8cf7eeb9e7527cc
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2023-04-21 12:46:14 +00:00
Leena Miettinen
51d6b75fb0 Doc: Fix references to locator screenshots in How-tos
They are now in WEBP format.
Also, move some text and images around and add a reference to
screenshot that shows a list of found files.

Change-Id: I219e2b94fe22ffc6d36b0de34529d3849a76ff1b
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-04-21 12:45:41 +00:00
Eike Ziller
e596ee2b68 Examples/Marketplace: Put horizontal ruler into the heading
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>
2023-04-21 12:17:45 +00:00
hjk
654dae486a CppCheck: Use IOptionPage::setWidgetCreator() for settings
Change-Id: I0c2b9d96e53ddcecc3d25e519c3df21b1d09ddf7
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2023-04-21 12:17:05 +00:00
hjk
4659053df4 TextEditor: Use IOptionPage::setWidgetCreator() for higlighter settings
Change-Id: I4e06e1606a66d00294899d26c0cb385d81ccea2d
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: David Schulz <david.schulz@qt.io>
2023-04-21 12:09:43 +00:00
Robert Löhning
94c9e6cbac SquishTests: Add possible location of cdb
Change-Id: I72c3f1b5bdcceeca2764d4a77229c45655187376
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-04-21 11:44:20 +00:00
Jarek Kobus
6d8ab1b4d5 Introduce CurrentSymbolsRequestTask
It's going to be used as task item inside a filter for
LanguageClient::DocumentLocatorFilter.

Change-Id: Icf091af83e9e6979628a7c01f3fcc5bd4cd95a9a
Reviewed-by: David Schulz <david.schulz@qt.io>
2023-04-21 11:40:12 +00:00
hjk
79ad71a9de QmlJSTools: Use IOptionPage::setWidgetCreator() for settings
Change-Id: I57442416da54acd49cfcfd172fc67f28fee4f7b8
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2023-04-21 11:05:39 +00:00
Leena Miettinen
60f6ff5147 Doc: Replace Manual front page icons with Qt Creator icons
To create connections between the UI and the different chapters
of the manual.

Remove the SVG source files for the old front page icons.

Task-number: QTCREATORBUG-28996
Change-Id: I9bd977df1005a4f8d6d60b438a66ec02ebb2bfb3
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-04-21 11:03:52 +00:00
David Schulz
e7e063fda5 Debugger: Add automatic source path mapping for Qt Packages
Change-Id: Iae2a02fc134ac05a30241d7a69302294137d3844
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2023-04-21 10:57:59 +00:00
Eike Ziller
30bd12d8dc Build: Add SOURCES_PROPERTIES to extend_qtc_target
This way the check if the target is enabled and the condition is met
doesn't have to be done manually.

Change-Id: If490a84fd5f1ede2d032c3800f69ede4f755bc2c
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2023-04-21 10:55:16 +00:00
Eike Ziller
54177ebccd Locator: Fix opening of remote files
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>
2023-04-21 10:37:52 +00:00
hjk
4acffc7cce TextEditor: Use IOptionPage::setWidgetCreator() for snippets settings
Change-Id: I9aa91edef20f325f1a2fc93388aecb5776b970d6
Reviewed-by: David Schulz <david.schulz@qt.io>
2023-04-21 10:25:32 +00:00
hjk
498bad56b2 Qbs: Use IOptionPage::setWidgetCreator() for settings
Change-Id: Idae8c17a8922b60ad9dee3595176d11e0b96fee8
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2023-04-21 09:24:04 +00:00
Christian Stenger
55d51e8b5e QmlJS: Improve QtQuick Controls completion
Fixes: QTCREATORBUG-28648
Change-Id: I14c402c8a486d5afa7ee500b2d8a06951540e1bd
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2023-04-21 09:16:40 +00:00
hjk
977689b4a9 QmlProfiler: Use IOptionPage::setWidgetCreator() for settings
Change-Id: If9371820abf4e86e7041a7a5555c0a043de5ae3f
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2023-04-21 09:09:37 +00:00
Jarek Kobus
16100acdc9 JsonFieldPage: Fix collecting the results from all matchers
Connect to LocatorMatcher::done() signal instead of to
serialOutputDataReady() in order to get all the results
available (not just 1st partial results).

Give locator matcher a parent to avoid possible leak.

Amends 1cc7342ef1

Change-Id: Ie4a73a5b2dd25f22616bd30a13eb7393c96a890f
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2023-04-21 08:55:05 +00:00
Jarek Kobus
f21e2ff65c LocatorMatcher: Add more comments, do some renaming
Rename:
OutputDataProvider -> ResultsDeduplicator
OutputFilter -> ResultsCollector

Change-Id: If29ae29a2fa6895ad36d94577824fbb2e6b65a4d
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-04-21 08:27:54 +00:00
Jarek Kobus
0ab1eaa31c LocatorMatcherTask: Refactor the storage class
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>
2023-04-21 08:27:35 +00:00
Christian Kandeler
8ac826a1a0 qbs build: Fix pluginjson module
The "product" qualification was missing for "sourceDirectory". This
currently happens to work due to scope pollution in the qbs
implementation.

Change-Id: I61758023d39d00505c586c1e5ad78185a69c0db1
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2023-04-21 08:16:35 +00:00