Commit Graph

1500 Commits

Author SHA1 Message Date
Marco Bubke
a55efac890 Sqlite: Extent Statement::values for other container
You can now use QList and QVarLenghtArray for values. The later is quite
interesting because it is not allocating for a provided capacity.

So you can now write:

statement.valuesWithTransaction<QVarLenghtArray<int, 1024>>();

And in almost all case no expensive memory is allocated. With the help
of NRVO there should be no copy too.

That is very useful for temporary values which are transformed into a
different type.

The capacity changed to an template parameter too:

statement.valuesWithTransaction<int, 1024>();

That is more clear than before:

statement.valuesWithTransaction<int>(1024);

Change-Id: I6d8d10ed9db0cc37f0579353a416e36e23c30415
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2023-08-28 16:17:40 +00:00
Marco Bubke
9462c7a3e9 QmlDesigner: Add task queue
To share the code TaskQueue is introduced. The Thread and the
synchronization code is moved into TaskQueue. Only a dispatch and cean
must be implemented in the callback.

Change-Id: I19c85c891ef700aae85b54630714555e862200a4
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
2023-08-28 16:17:18 +00:00
Marco Bubke
b2fff59b8c QmlDesigner: Timeout thread
The thread will be stopped after 10min. And then started if needed.

Change-Id: I66f64081353fa4f24c7927139d1676ee8de85679
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2023-08-28 16:16:25 +00:00
Burak Hancerli
c71ebda677 QmlProject: Fix incorrect conversion of MCU property
Task-number: QDS-10376
Change-Id: Ic16d03355419281a0bf5c8bd04ba5fea317a70d4
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
2023-08-24 15:43:23 +00:00
Marco Bubke
76a798992a UnitTests: Merge MockListModelEditorView into AbstractViewMock
It was an AbstractView mock too.

Change-Id: Ida971a3468df1b14b1f8bd900817ff9fe74e0767
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2023-08-24 08:55:34 +00:00
Marco Bubke
1be5475f62 QmlDesgner: Add inflate property functions
Sometimes we want to have the dot properties instead of the
value(readonly) properties.

CompoundPropertyMetaInfos inflateValueProperties(PropertyMetaInfos
properties);
CompoundPropertyMetaInfos
inflateValueAndReadOnlyProperties(PropertyMetaInfos properties);

are removing the value proeprties and adding the dot properties if the
property type has properties.

Task-number: QDS-10472
Change-Id: Ia2291f77f1b38bbe62d71319bfa28cf545cbef18
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
2023-08-24 08:54:08 +00:00
Marco Bubke
1bdbe55c28 QmlDesigner: Add NodeMetaInfo::property dot getter support
Dot and dotdot properties can be gotten but three dots or more are not
supported.

Task-number: QDS-10472
Change-Id: I5e05405cd8ce80bc321dd78b2f74158832fed0bb
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2023-08-24 08:53:26 +00:00
Marco Bubke
7d948b26d7 QmlDesigner: Support dot properties in NodeMetaInfo::hasProperty
Dot and dotdot properties are supported but not three or more dot
properties.

Task-number: QDS-10472
Change-Id: Ib5e40bfca470fe7520c9caacf0f469892bb73f7c
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
2023-08-24 08:50:18 +00:00
Marco Bubke
681468051f QmlDesigner: Add type to NodeMetaInfo
If the project storage works we can access if a type is a value,
reference, sequence or non of the above.

We can even test of values has properties like QFont etc.. That is
removing quite some heuristic code.

Change-Id: Ie3447d99931c6784db178e4b48f7d2f9a4f646fc
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
2023-08-24 08:49:58 +00:00
Marco Bubke
7f9d3b302f QmlDesigner: Add path for property editor in project storage
A simple store for editor path in the project storage. So we can inquire
the path for every type. The storage is synchronized per directory. So
only entries with the updated directory id are affected.

Task-number: QDS-10391
Change-Id: Ic4d0ce17eedd374ade56abd7cab08f2b7a9830c6
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2023-08-24 08:49:31 +00:00
Marco Bubke
90fea3ebd6 QmlDesigner: Collect panes and specifics in updater
The update is walking a path which is provided by the
QmlDesignerProjectManager paths which ends to Pane.qml or Specifics.qml.
From that paths the module and type name is extracted. That data is
synchronized with the ProjectStorage. If no directory was changed it
will skip that directory. It will to collect the directory id to update
the storage per directory.

Task-number: QDS-10390
Change-Id: I3aaf5528133cf5e5c15f38a9720fbbf540d24eca
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-08-24 08:49:03 +00:00
Marco Bubke
ddde6b1ea5 UnitTests: Silence padding warning in tests
It is not very useful here and adds a warning for every test.

Change-Id: Iaf75385f90ebbe3d0ac9a306328ba56c489ea6cf
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2023-08-23 21:53:08 +00:00
Marco Bubke
9074fb28e2 QmlDesigner: Cpp module id can be invalid for qml documents
Qml documents have no cpp module id.

Change-Id: Ib0f9f23473e3f0f680784416e30365f7be51866b
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
2023-08-17 11:56:50 +00:00
Tim Jenssen
91a931dd21 QmlDesigner: build it only if Qt is GREATER_EQUAL 6.4.3
Change-Id: Iccd05a7d4f4ace47fd9398bdc78584e3919ec595
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2023-08-15 18:57:48 +00:00
Marco Bubke
0f7462ad24 QmlDesigner: Fix dependency
Change-Id: Iccf3f80e9dd5c9a9dc49c363f9099352732bab60
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2023-08-15 16:14:33 +00:00
Marco Bubke
dadb9074ed UnitTests: Improve matcher
It should work for pointer and non pointer.

Change-Id: Ib80a58874282191b0cbaa576e8846f43d674ce9d
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-08-15 15:18:28 +00:00
Jonas Karlsson
404bf9547f Update QtQuick3D.Physics.Helpers qmldir
Task-number: QTBUG-115539
Change-Id: I6d44ebe64dd32d1f2c1575ce4cbc84c01d3588f7
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-08-02 00:45:57 +00:00
Marco Bubke
d59d27e16b QmlDesigner: Add property meta info tests
The cast function is now returning an invalid variant if the meta info
is invalid. It is too not anymore converting the value magically.

Task-number: QDS-10290
Change-Id: I125aab9ac46c9ac0605364ede32fb1a10d20cd89
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2023-07-26 08:57:35 +00:00
Christian Stenger
a263d3de89 Tests: Fix cmake build
Change-Id: I1e42c0361aa92b54e52ba2c29f26f3f3f600e898
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-07-24 06:26:25 +00:00
Tim Jenssen
7df557c0ba Merge remote-tracking branch 'origin/qds/dev'
Conflicts: tests/unit/tests/printers/gtest-creator-printing.cpp

Change-Id: I5f791161ca1a2966e98a3ca55bc60e5bcbb8f58f
2023-07-21 10:20:45 +00:00
Marco Bubke
3d7f1a0f7f UnitTests: Optimize example string generation
Change-Id: I9cc17269812dd9a61b192598f947e2754673c96e
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2023-07-21 10:07:19 +00:00
Marco Bubke
21983a8377 Utils: Fix SmallString::append(QStringView string)
It used the size of the destination string but it had to use the size of
the appended string to inquire the maximum required size.

Change-Id: I1c910abab0ac60ed5fec1b3dc3a358e438532281
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
2023-07-20 10:30:25 +00:00
Marco Bubke
e46eb57543 UnitTests: Add more matcher
The IsEmpty and IsNull matcher have been extended to be more generic.
QVaraint matcher have been added.

Task-number: QDS-10290
Change-Id: I34fcb0571190dd37e7706587ee617e1301f9f841
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2023-07-19 13:17:44 +00:00
Marco Bubke
90b0fd2869 UnitTests: Fix warning
Change-Id: I834095e1e8f40cb063b6014e98bf79ae8d8e439b
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
2023-07-18 15:12:22 +00:00
Marco Bubke
2322313baf QmlDesigner: Remove typeName usage in binding editor
Task-number: QDS-10266
Change-Id: I91232c1296c4ed3b3148af9053d3db0f43a08e24
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Aleksei German <aleksei.german@qt.io>
2023-07-18 09:00:14 +00:00
Marco Bubke
3d5ceb795d QmlDesigner: NodeMetaInfo can now get exported type names
You can get all exported names. That can the C++ names too for C++
types. If you only want the types name which are imported in a document
you can provide the source id for the document and get only that. If
there are different version exports you get them too.

Task-number: QDS-10274
Change-Id: Iefc0b68ebfd65998cf0481961f8c7643cdf9e5b9
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
2023-07-17 09:36:58 +00:00
Marco Bubke
f7f65b9ea4 QmlDesigner: Get exported type names for type id and source id
It is matching the document imports with the exported type names.

Task-number: DS-10265
Change-Id: I0623cd0b3d04fa1a8c05354a194f10f3d8948b21
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
2023-07-17 09:36:49 +00:00
Marco Bubke
e7bc9846d1 QmlDesigner: Add exportedTypeNames(TypeId) to project storage
Task-number: QDS-10265
Change-Id: If440f87b6719b865216e3890c8492c3682cf42dd
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
2023-07-17 09:36:39 +00:00
hjk
9f72b0519f Unittest: Work around warning for unused parameter
Amends 7fada70e8f.

Change-Id: Ic47526a497c67dab48903b6500a37bab742034fd
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2023-07-17 09:23:38 +00:00
Marco Bubke
e7a7914aa8 QmlDesigner: Fix skip auto moc
Actually the syntax was wrong.

You can use

SKIP_AUTOMOC foo.cpp

or

PROPERTIES SKIP_AUTOMOC ON

SKIP_AUTOGEN is skipping AUTOUIC and AUTORCC too.

Change-Id: Id4afdc2572fc287ae66368ba0fd70b3ce7fc04ba
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Burak Hancerli <burak.hancerli@qt.io>
2023-07-12 07:15:50 +00:00
Marco Bubke
98cff9e097 QmlDesigner: More test for NodeMetaInfo
Task-number: QDS-10055
Change-Id: I23a9d7ea87dff9f3e07f5beeb734cea7d01d2e94
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2023-07-12 07:13:39 +00:00
Marco Bubke
8ab4968278 QmlDesigner: Introduce origin flags
metaInfo.isProjectComponent() is signaling if a file component is
directly part of the project. metaInfo.isInProjectModule() otherwise
shows if a type is inside of the project as a qmldir module. Both cannot
be true. If a type is not part of either it is a system type.

Task-number: QDS-10251
Change-Id: Iae2270827a500ad6393e3751b3af276f9b030679
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2023-07-11 15:42:48 +00:00
Marco Bubke
a3f990d713 QmlDesigner: Add type lookup
Task-number: QDS-10246
Change-Id: I607f72e29734a3c59b7b5b33d96735d708cd18ec
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2023-07-11 15:42:06 +00:00
Christian Stenger
c6a8a76be0 Fix Qbs build
Change-Id: Ic02f12a08990bfa9eb3f0131141407373248bae1
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2023-07-05 09:21:08 +00:00
Tim Jenssen
7fada70e8f unittest: fix linking problem on windows
Task-number: QDS-10245
Change-Id: Ie6baee6c9e5c8351fe67b2dd49ad4e80147ec48a
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
2023-07-04 16:49:43 +00:00
Tim Jenssen
48230d63b8 Merge remote-tracking branch 'origin/11.0' into qds/dev
Conflicts:
 src/plugins/qmldesigner/CMakeLists.txt
 src/plugins/qmldesignerbase/CMakeLists.txt
 src/plugins/qmlprojectmanager/CMakeLists.txt
Change-Id: If706ae3fe7a7d0e17036ce6285bec772d1f6127d
2023-07-04 16:22:32 +00:00
Marco Bubke
941e890804 UnitTests: Fix flacky tests
There were multiple reasons why the tests were flacky. First
Utils::reverseCompare had a bug. Now

std::lexicographical_compare(first.rbegin(), first.rend(),
                             second.rbegin(), second.rend())

is used.

Second the check StorageCache::checkEntries was not const. So it would
change the vector which it was iterating. So the iterator could be an
dangling.

Fixes: QDS-10197
Change-Id: I84fca6a2b24e1cae9fb85a01b6208de7e58240df
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2023-06-29 18:06:25 +00:00
hjk
627cb353f6 Unittests: Avoid warnings about warnings
smallstring-test.cpp:1538:32: warning: unknown option after '#pragma GCC diagnostic' kind [-Wpragmas]

Change-Id: Ibd3236734abd20c72a67efae0ab477cab6ae8b97
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2023-06-29 10:51:12 +00:00
Marco Bubke
f81ef9b2d6 Sqlite: Don't link to the internal Sqlite library
If you link to the internal Sqlite library you link actually twice. That
leads to strange bugs because you have an uninitialized object file. The
static linking workaround is now moved to cmake.

Change-Id: I51d966a623a18486ce5870d898999f3ce139f092
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2023-06-28 16:40:49 +00:00
Marco Bubke
b65ba2f702 QmlDesigner: Remove ProjectStorageSqliteFunctionRegistry
It is not used.

Change-Id: I7c2968a0a9876c04afffceedb87d46f19f0a7ace
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2023-06-28 16:40:44 +00:00
Marco Bubke
f36062c084 UnitTests: Temporary remove function registry
The function is not used but triggers strange accesses to null pointer.

Task-number: QDS-10178
Change-Id: Iea51609f7b8956a98fe9391aef8edac899e14c03
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2023-06-27 16:27:18 +00:00
Marco Bubke
5bd9721f01 UnitTests: Fix disabled test
Change-Id: I828ba785ac352a72b0fe7e3c3ea23c72df219fe5
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2023-06-27 13:01:15 +00:00
Marco Bubke
90cfc2f7e8 QmlDesigner: Fix warnings
Change-Id: I2b9c2d024b1c09c157e448f590e2748337cbeb89
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2023-06-27 13:00:46 +00:00
Marco Bubke
d7ee848efd QmlDesigner: Improve NodeMetaInfo
Change-Id: I1b31a1b08332f6bdba74c46af3d0a190901e9607
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2023-06-27 11:54:02 +00:00
Tim Jenssen
623ee60611 UnitTest: disabled needs to be DISABLED
Change-Id: Id6e4cb898934bcc2993c1e402ce7741162e0ab91
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2023-06-27 09:04:58 +00:00
Tim Jenssen
53579298c5 UnitTest: add mock property "layer.effect"
Change-Id: Ibd9698b8e4a365818ff9e5a3233a08eb891325c8
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2023-06-27 09:04:49 +00:00
Marco Bubke
5d4dffdc89 UnitTests: Remove unused matcher
There are no clang test anymore.

Change-Id: I2140c4ff97e0351d627ec7b0f7306e0158fb95ca
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Burak Hancerli <burak.hancerli@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2023-06-26 07:40:20 +00:00
Marco Bubke
57c4316e54 UnitTests: Fix dependencies
Change-Id: Ia5e3968aea4ae724f7554c2f7fa7223953236816
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Burak Hancerli <burak.hancerli@qt.io>
2023-06-26 07:40:10 +00:00
Tim Jenssen
846f8dba92 Merge remote-tracking branch 'origin/11.0' into qds/dev
Conflicts: src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.cpp
  src/plugins/qmldesigner/components/stateseditornew/stateseditorwidget.cpp
  tests/unit/unittest/qmlprojectmanager/projectitem-test.cpp

Change-Id: Icdb63851ec0162d82217e85b3beb0b6f9f12899e
2023-06-22 14:50:56 +00:00
Marco Bubke
44565bc39b GoogleTest: Hard wire google tests
There were problems with older google test versions which were found
instead. Now the google test version is always the same and there cannot
be "strange" compile bugs.

Change-Id: Ib3dc74d1abbe369fb37a4ee5616011d8e3696c01
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-06-22 10:19:50 +00:00