Commit Graph

1260 Commits

Author SHA1 Message Date
David Schulz
1acd2499e2 Utils: replace LineColumn with Text::Position
Change-Id: Ia69547374efec7412717cbed1eb4162162a89d39
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2023-05-11 17:00:28 +00:00
Jarek Kobus
936086745a FileSearch: Get rid of FileSearchResult
Use SearchResultItem instead.
This change should reduce the remaining freeze described in
a9eb732ce6 even more.

Change-Id: I102b82ed5677360ccd9e425dd0bdd941d87116f0
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-05-09 11:03:48 +00:00
Jarek Kobus
8b3aa900da Utils: Move SearchResultItem/Color into Utils
It's going to be reused inside FileSearch.

Change-Id: I8993d7158ff31c311c2283d32bc43465a8946a52
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-05-08 06:41:27 +00:00
Eike Ziller
66c0c36bc1 Fix compiler warnings
Change-Id: I9b0b4a60d1152142f62bf3f76885cf8019714623
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Sivert Krøvel <sivert.krovel@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-05-02 09:05:16 +00:00
Tim Jenssen
adb664f521 Merge remote-tracking branch 'origin/qds/dev'
Conflicts: src/libs/utils/filepath.cpp
  src/plugins/qmldesigner/qmldesignerexternaldependencies.cpp
  src/plugins/qmlprojectmanager/cmakegen/generatecmakelists.cpp
  tests/unit/unittest/CMakeLists.txt

Change-Id: I017a6075db41a5233487ac855ffe23de2b2bb0ee
2023-03-30 13:30:42 +00:00
Tim Jenßen
feabda3aa7 Merge remote-tracking branch 'origin/10.0' into qds/dev
bigger conflicts resolved at:
  src/plugins/qmldesigner/CMakeLists.txt
  src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp

Change-Id: I08e2a109d8e37cbd77225129854e9e633725bfc7
2023-03-26 16:26:18 +02:00
Marco Bubke
cb0fc5fd1f QmlDesigner: Project Storage Watcher updates only some directories
Updates only the entries for the given source context (directory) ids
and skips everything else. It is enabling partial updates
for directories in a project.

[&, &ids = ids] the strange capture clause steams from a C++ issue.

Tak-number: QDS-9456
Change-Id: Id3abcd39ac429ba4483124f334d50c2999f5e6a8
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2023-03-21 09:48:31 +00:00
Marco Bubke
4c3530f5ee UnitTests: Simplify project storage watcher
Use the real path cache. It makes the test some 100ms slower because the
database has to be created for every test but makes the test simpler.
Renames some variables too for better readability.

Task-number: QDS-9456
Change-Id: I3246a1859eae7b26b9e13a9d88d3c717748de43e
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2023-03-21 09:48:27 +00:00
Marco Bubke
2d5062918a QmlDesigner: Project storage watcher watches unchanged files
The Qml documents and Qmltypes files cannot added or removed if the
project data is parsed. So the can simply been added to the watched
files.

Task-number: QDS-9178
Change-Id: Iaa30425241ac7ad3c2434b9c6c5955e894ec6049
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-03-21 09:48:21 +00:00
Marco Bubke
157b5039c1 Sqlite: Improve database opening
Change-Id: I9074cda4d9da12a061f094ca72fa156d89ca0f87
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2023-03-15 11:34:50 +00:00
Marco Bubke
68bceb92cf QmlDesigner: Improve readabilty of tests for project storage updater
Task-number: QDS-9382
Change-Id: I9aac10b7e7782847bae23b09e64fbe569ce2c40a
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2023-03-15 09:37:57 +00:00
Marco Bubke
c4a51f168e QmlDesigner: Update directories without qmldir to project storage
There are qml directories without a qmldir. To identify them we use the
directory source id instead of the qmldir source id.

Task-number: QDS-9345
Change-Id: I1356ad332c091b64cbdad389a3ac505133716634
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2023-03-09 13:22:53 +00:00
Marco Bubke
f0fde39b0b QmlDesigner: Use directory source id for project data
There are qml directories without a qmldir. To identify them we use the
directory source id instead of the qmldir source id.

Task-number: QDS-9345
Change-Id: I4ed4596a21576e6bbd18c5117753669ef8a68a28
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2023-03-09 13:22:46 +00:00
Marco Bubke
583bb87c6a QmlDsigner: Add entries to path watcher for initial run
If there are no cached data all importatnt files should be now being
watched.

Task-number: QDS-9178
Change-Id: I0c9093e41e6a2d4f3a5aa3d62aba1fd41e047da4
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2023-03-09 13:22:32 +00:00
Marco Bubke
130453fe15 QmlDesigner: Add image for broken preview
Task-number: QDS-9048
Change-Id: Ic2ce8bf4d51f72c3ddae588709820728fc7c76b5
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-02-28 14:01:03 +00:00
Marco Bubke
c2915c6963 QmlDesigner: Fix test for project updater
Some tests got broken by the directory support.

Change-Id: I2a0de46a7f7f84328440ee785329d915049cb7f3
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-02-28 14:00:50 +00:00
Marco Bubke
921157f646 QmlDesigner: Don't inline what method
This works around the type_info::hash_code macOS bug and leads to
smaller code size because the RTTI will be not anymore injected in all
TUs.

Task-number: QDS-9266
Change-Id: I3defe3dc11b4b76f5c60b08c103a3a39ee92f367
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2023-02-28 10:10:10 +00:00
Marco Bubke
cc507063bc Sqlite: Inject RTTI into TU
We had problems on macOS with the catching of exceptions because the has
type_info::hash_code was different. This is probably a bug because RTTI
code is injected for an inline class.

To work around that problem we implemented the virtual what method for
every exception.

Task-number: QDS-9266
Change-Id: I79052c8b70adead412d1940b17195151fb19ebb9
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
2023-02-28 09:48:30 +00:00
Jarek Kobus
d44126c300 Unittest: Drop unneeded dependencies to coreplugin files
Amends baa83725f6

Change-Id: I82b472585dc30b0466eace15897f5d96fc7e9fd9
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-02-23 09:35:38 +00:00
Marco Bubke
e675fecb9e UnitTests: Make test fore robust
Change-Id: I6e92f242f759a89a11c77d862b5158c86b2b7a5a
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-02-23 09:05:54 +00:00
Marco Bubke
e78837a27a UnitTests: Disable warning for self assign overloaded
We want to test it so we cannot fix the code.

Change-Id: Ieb0517e539ae60c275069b790ca32380d39a59f0
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2023-02-23 09:05:24 +00:00
Marco Bubke
20c366aa48 UnitTests: Disable self move warnings
We want to test self move, so we cannot avoid the warning.

Change-Id: Id785690d40cfc5299e65c9f0e69abe6e336ba9ff
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2023-02-23 09:04:55 +00:00
Eike Ziller
66d4e12a58 Build: Remove FindQt5.cmake
No longer needed, since we generally only support building with
Qt 6 nowadays, and the parts that still do support building with
Qt 5 handle that manually.

Change-Id: I72381589ca3ab7bf1af88d9f185cad7f0cdf149c
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2023-02-23 07:12:44 +00:00
Marco Bubke
18157d0b24 Sqlite: Add pathExists function
The 'pathExists' function can be registered to the database connection
and is then callable in Sql.

Task-number: QDS-9217
Change-Id: I21afc5cd38765854daa0b1058cc5e8946b551924
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
2023-02-22 10:48:05 +00:00
Marco Bubke
b4ab1e173b Sqlite: Add progress handler
Sqlite::ProgressHandler handler{
  [] { return Sqlite::Progress::Continue; },
  1000,
  database};

is setting up a progress handler for this scope. If the handler is
destructed it will automatically reset the handler on the database. The
handler is active for the whole database connection.

Task-number: QDS-9216
Change-Id: I59831f40d32c062eefdfb0c4dfbf3045058e1fd2
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
2023-02-22 10:47:55 +00:00
Vikas Pachdha
0e7a603568 UnitTests: Disable warnings as errors
Change-Id: Ib58799510258973638f25ec4d52ce62710c26f54
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2023-02-21 15:55:35 +00:00
Marco Bubke
ba6c1344b6 QmlDesigner: Integrate ProjectStoragePathWatcher
Task-number: QDS-9170
Change-Id: Iedbb07e41232beeb73cd12c89f892eec7968d084
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2023-02-20 14:12:43 +00:00
Marco Bubke
44d61b3e66 UnitTests: Fail on warnings
Task-number: QDS-9135
Change-Id: I798b1143c68e68bcd53144f5e6d01864ae0ce73b
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2023-02-20 14:12:37 +00:00
Marco Bubke
9b43e0caea Googletests: Bump to 1.13
Change-Id: I8b54611e404e5313269fc3436ce995bf0d09d35d
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2023-02-20 14:03:58 +00:00
Marco Bubke
cbd02325a8 QmlDesigner: Add extension support in qmltypesparser
Task-number: QDS-7384
Change-Id: I3f84f361360bd085d0ee78f32d808151e32a2436
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2023-02-16 12:26:32 +00:00
Marco Bubke
ff3d4b44f1 QmlDesigner: Use Qt6_VERSION instead of Qt5_VERSION
Change-Id: I346f5d256468696076299f964022c0a2ec2d190d
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-02-08 08:42:47 +00:00
Marco Bubke
d2bb27731d QmlDesigner: Add direct dependency on QmlDomPrivate
It adds an indirect dipendency to QmlCompilerPrivate too. We stick to Qt
6.5 because the private API changed.

Task-number: QDS-9049
Change-Id: Icb0b406fc47759763384e167c0cabbffc1c9e186
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2023-02-07 17:43:57 +00:00
Marco Bubke
befb49bbce QmlDesigner: Fix missing adaption
Change-Id: I307c9f236ee8ebd36d62b3fe9b0d4bbaea5699e8
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2023-02-07 17:43:43 +00:00
Marco Bubke
d593a5ea9b QmlDesigner: Add midSize image to cache
There is now a mid size image in the image cache. It's logical size is
150x150, so it is 300x300 for HighDPI.

Task-number: QDS-8918
Change-Id: I6586b2e82b9e74737f46b67c441201ad4964fca0
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2023-01-26 17:27:32 +00:00
Marco Bubke
c719825927 QmlDesigner: Don't abort if any image is not null
So far we expected that both images are null or not null. But sometimes
you only want to save one image type in the collector. This will try to
generate the image cache entry again if you try to get a null image so
be careful.

Task-number: QDS-8917
Change-Id: I765f5b82589f52e439513a11926314ad2d99a928
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-01-25 09:56:36 +00:00
Eike Ziller
06c4df37b9 CMake build: Remove usages of Qt5_VERSION
and remove checks for Qt < 6.2, since that is our minimum version.
Except for sdktool and qml2puppet.

Change-Id: Id36cd1a15a5a6e5480e4ae5d0a8ffaea4b2a1864
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-01-24 15:35:46 +00:00
Kai Köhne
56baf8c058 Remove GPL-3.0+ from license identifiers
Since we also license under GPL-3.0 WITH Qt-GPL-exception-1.0,
this applies only to a hypothetical newer version of GPL, that doesn't
exist yet. If such a version emerges, we can still decide to relicense...

While at it, replace (deprecated) GPL-3.0 with more explicit GPL-3.0-only

Change was done by running

  find . -type f -exec perl -pi -e "s/LicenseRef-Qt-Commercial OR GPL-3.0\+ OR GPL-3.0 WITH Qt-GPL-exception-1.0/LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0/g" {} \;

Change-Id: I5097e6ce8d10233993ee30d7e25120e2659eb10b
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-01-06 11:15:13 +00:00
Eike Ziller
55fa109b59 CMake build: Use version-less Qt targets
Since we do not support Qt < 5.15 anymore, and as a first step
for getting rid of our special FindQt5.cmake.

Change-Id: Icc5dbaf9b0a3a622b1f609ff114b9decb6d2856c
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2023-01-05 10:13:16 +00:00
Marco Bubke
63022d08ea QmlDesigner: QmlPuppet as standalone tool
The qmlpuppet is now a standalone tool. There is new a library too with
the communication code. That is shared between the designer and the
puppet. It's in a .cmake file so it can be included by the standalone
tool if it is not part of a designer build.

Task-number: QDS-5879
Change-Id: I2bc2a0b463fbb3e0c8c23d182abfd368cf87e968
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-11-09 12:29:38 +00:00
Marco Bubke
e3bf172585 QmlDesigner: Handles directories in Project storage updater
All directories are searched for qml files and they are added to the
meta data. If the directory is changed the qmldir is always parsed even
if it was not changed. We can optimize that later but I think there is
no big advantage fot this optimization.

Task-number: QDS-5297
Change-Id: Ibe3102520bc18ac474380aad306486d8e25bc5db
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-11-03 14:47:50 +00:00
Marco Bubke
2bbae7d499 QmlDesigner: Detach views outside of model destructor
modelAboutToBeDetached can still calling the model. So calling the
function from inside the model destructor is a little bit undefined. To
get around it we add a custom delete which call the detachAllViews()
before it deletes the model.

Change-Id: I38ff8283f4e1ac48b256aeb9fd5bb9f3fb6bfed1
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2022-10-27 14:48:31 +00:00
Orgad Shaneh
0793184956 Merge remote-tracking branch 'origin/9.0'
Change-Id: I2e11bfba622c14578f08ca988ad98dab97cb385b
2022-10-11 17:46:50 +03:00
Christian Kandeler
a0f356aed6 qbs build: Do not build QmlDesigner & friends
Too much maintenance effort for not enough gain.

Change-Id: Ica385bcc93da0dbc7af8e15c07fdd33580de29a7
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-10-10 13:43:53 +00:00
Marco Bubke
78cf5051f5 QmlDesigner: Merge cmake files
To improve testability external dependencies are now broken with an
interface. It is a first step to test individual units without injection
of source files.

Task-number: QDS-7571
Change-Id: I4255c8668022f1097947e4ea5788f2a6b605365d
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2022-10-07 13:15:41 +00:00
Marco Bubke
6659024dd3 QmlDesigner: Add sourceContextAndSourceId to SourcePathCache
Change-Id: I4f5eb784e80d3afc10aa007f3be1604f6e18e312
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-09-26 08:49:54 +00:00
Eike Ziller
04e50438eb Utils: Remove Utils::optional
Since we are now requiring macOS 10.14 we can remove our local
implementation of optional and use std::optional for macOS too.

Change-Id: I2bd018261b68da64f7f031a812045dd7784697e1
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2022-09-01 06:58:04 +00:00
Marco Bubke
da36459759 QmlDesigner: Refactor isSubClass
IsSubClass is renamed to isBasedOn and takes now NodeMetaInfo as a
parameter. But for most cases there are is... functions as short cut.
The model is providing shortcut NodeMetaInfos too. This is done in the
sake of caching.

Task-number: QDS-7445
Change-Id: Iff2dea66e253b412105427134bd49cb16ed76193
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2022-08-26 15:02:24 +00:00
Lucie Gérard
a7956df3ca Use SPDX license identifiers
Replace the current license disclaimer in files by
a SPDX-License-Identifier.

Task-number: QTBUG-67283
Change-Id: I708fd1f9f2b73d60f57cc3568646929117825813
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-08-26 12:27:18 +00:00
Marco Bubke
0982e668e7 QmlDesigner: Add isBaseOf to project storage
It return true if it is the same or a derived type. You can use multiple
base types.

Task-number: QDS-7424
Change-Id: I965a7c5b87ef0eb0183be1c705ebc18dee1943c3
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2022-08-26 12:15:58 +00:00
Marco Bubke
8a29c7da2f QmlDesigner: Add prototypes and prototypes+self getter
The ids are returned in order. There is no precedence between a
prototype or extension.

Task-number: QDS-7381
Change-Id: I38bce22067db93bbacaf9026c1dbb10363d2fb4f
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-08-26 12:15:30 +00:00