Commit Graph

7515 Commits

Author SHA1 Message Date
Henning Gruendl
6d5ceadccf QmlDesigner: Improve type selection
* Disable custom item in Connection Editor type selection
* Rename Unknown to Custom

Change-Id: I9fa8c9ab6284503d5ccc61813454b9d10f291a06
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2023-09-15 11:33:49 +00:00
Tim Jenssen
a603b65f18 Merge remote-tracking branch 'origin/11.0' into qds/dev
Change-Id: I2bf1a2a72d9765d9b4088840414b4933644db47a
2023-09-14 12:23:01 +00:00
Thomas Hartmann
54b0c2d435 QmlDesigner: Add another test to ConnectionEditor
This covers field expressions with more then two members.

Change-Id: Idccfac607f72ff9aa78ed3b8da560f7d7a8e694d
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Ali Kianian <ali.kianian@qt.io>
2023-09-11 11:04:28 +00:00
Marco Bubke
37c0737844 UnitTest: Fix or disable some flacky tests
If we get better tools we can come back and look again into it.

Change-Id: I8ded8f9831b0c46c09e15d283a6298ad09aaaeb6
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-09-06 16:38:26 +00:00
Marco Bubke
250b2cd7bd Sqlite: Introduce implicit transaction
Sqlite adds an implicit transaction if no transaction is used. That can
be problematic if you use multiple statements but it is okay for one
read statement.

Write and read write statements should use immediate transactions
because the acquire the write lock. Otherwise the write lock is only
acquired as you try to write. From there it is much harder to recover.

Change-Id: I04b0be7447f2b82b6921738d789c33cbbaa8de6e
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
2023-09-06 10:28:43 +00:00
Miikka Heikkinen
6251730f8f QmlDesigner: Refactor 3D view background and grid color implementation
The new implementation doesn't require these colors to be stored in
external dependencies anymore, as auxiliary properties are used for
them instead.

Fixes: QDS-10496
Change-Id: Ie71408617259d1af73a45f327d4bdfa4f2fa3a2b
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2023-09-05 08:49:34 +00:00
Semih Yavuz
fd2d1ceeae Fix M16 warning restrictions
In case id is not ancestor, we cannot find that ID in m_idStack by
design. The ID of an uncle type could be either popped out or not pushed
in yet. The previous implementation, therefore, doesn't restrict M16
messages if non-ancestor ID is referred.

As a workaround, disable M16 warnings completely if the enclosing type
uses ImmediateProperties.

Amends 012f984c27

Task-number: QTCREATORBUG-28468
Change-Id: I47326e005753ff7b94057732602cfeb6dc525bbb
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2023-08-30 15:54:24 +00:00
Thomas Hartmann
03cb651627 QmlDesigner: Update tests for connection editor
Change-Id: I4b5e0e3cee269454089a3951e2d2d68eb162fa4b
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Ali Kianian <ali.kianian@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2023-08-30 08:30:54 +00:00
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
Tim Jenßen
0f05d7adb3 cleanup QMessageBox includes
Change-Id: I358a216c48b8fbf549af38360a93a073f03e3a98
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-22 16:56:50 +00:00
Ali Kianian
f018ea6d8b QmlDesigner: Implement Connection Editor Evaluator and Parser
An AST Visitor checks the correct structure for the connection editor
Statements are parsed as the result
Javascript statements could be resurrected
Some tests are added

Task-number: QDS-10257
Task-number: QDS-10288
Change-Id: Ia6e4f9c0f48678b6610941c977b7d7bed296ced0
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2023-08-22 10:48:58 +00:00
Christian Kandeler
e9b3cd548c CPlusPlus: Fix crash on weird-looking construct
This was misparsed as a function with an initializer (e.g. "= default"),
and then the empty id caused trouble later on.

Fixes: QTCREATORBUG-29386
Change-Id: I85a35db544e11ad85f50e3a15b1a071b36e79cd0
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-08-18 09:20:23 +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
Tim Jenssen
8812c1816b Merge remote-tracking branch 'origin/11.0' into qds/dev
Change-Id: I23063e42621b272bd4b04a06746955e6b5768b49
2023-08-15 12:32:47 +00:00
Marcus Tillmanns
324e924178 Utils: Fix FilePath::isRootPath()
Change-Id: I287bae74469ba501ecb03d51f04f7aaa5f4a7268
Reviewed-by: hjk <hjk@qt.io>
2023-08-15 10:50:24 +00:00
Robert Löhning
b366757502 SquishTests: Expect failure when renaming class
Task-number: QTCREATORBUG-29012
Change-Id: I3b6955d73c4908332c509d71a19afed60c2f42da
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2023-07-31 11:43:01 +00:00
Robert Löhning
178b490997 SquishTests: Adapt test of navigation tree
Extends b57f72e3c8 to another test.

Change-Id: I419ce4fb05667fd22a1e913ef7122b191e12a34a
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2023-07-28 12:34:36 +00:00
Christian Stenger
6b39020295 SquishTests: Fix expected proposals
Change-Id: Id835185e621fac6adba3e1db15d1a3d782b571df
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
2023-07-28 11:26:08 +00:00
Robert Löhning
b95aba56b5 SquishTests: Don't use lists of dicts
...when that doesn't have any advantages.

Change-Id: I0c58e30ae0b9e278e3336646332279f6243719d0
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2023-07-27 11:52:25 +00:00
Christian Stenger
b57f72e3c8 SquishTests: Adapt test of navigation tree
Explicitly disable loading ClangCodeModel plugin to avoid slowing
down the load and parse of the projects by the indexer as we are
measuring the time for these.
Beside this adapt the expected tree for macOS - there are a couple
of files and subtrees that are present only conditionally.

Change-Id: Ibc000d0908e652700820f8eee4b17effdf48f637
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
2023-07-27 11:48:26 +00:00
Robert Löhning
a521114519 SquishTests: Don't initialize an entire list for reading one item
The point of Python3 returning objects instead of lists is that
it will iterate just as far as items are actually being used.

Change-Id: If4d9742bb47aa9cac1166a0ff6f10d211829fd85
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2023-07-27 11:41:40 +00:00
Christian Stenger
4a8c08a349 SquishTests: Skip too old Qt on Windows
When creating a command line project from wizard we end up
with code that is not compilable on Windows when using too
old Qt versions. Explicitly do not use the older Qt versions
as this fails to build and the whole tests would need to get
adapted to handle this appropriate instead.

Change-Id: Ia8a253a0c5d8d20ea181dd33dc8d31cb83cb31c3
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
2023-07-27 10:37:50 +00:00
Christian Stenger
488f1b3d11 SquishTests: Adapt cmake based speedcrunch test
Change-Id: Ic4c22311828f2c0364cbc514b98d2cb4e7d1b86a
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
2023-07-27 10:29:43 +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
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
Tim Jenssen
8cde647972 Merge remote-tracking branch 'origin/11.0' into qds/dev
Conflicts:
  doc/qtdesignstudio/src/views/qtquick-designer.qdoc
  src/plugins/studiowelcome/stylemodel.cpp

Change-Id: I13c9e4e9404619d7ba649eae160774aafc042610
2023-07-20 22:18:47 +02: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
Christian Stenger
cd971160c3 SquishTests: Adapt to different ui approach
Using the window title property on macOS is not reliable
as message boxes do not get any there. Use the expected
text of the message box instead.

Change-Id: I36dc865dcce6ba98643f0174887de12c197b3222
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
2023-07-20 08:14:38 +00:00
Christian Stenger
d53a743262 SquishTests: Fix used short cut on macOS
Modify used short cut on macOS again. This tends to break
depending on OS version, underlying keyboard layout and
maybe even more causes.

Change-Id: I79b0e281128b8f779307782038aa9fb42510b633
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
2023-07-20 08:14:29 +00:00
Christian Stenger
b44a7817b8 SquishTests: Handle codec problems
Reading files depends on the system encoding and will
return a bytes object instead of a str even for text files
on some Windows setups.
Handle this by explcitly converting to str if needed.
Handle possible decoding issues by falling back to UTF8
encoding when running into decoding error while decoding
on Windows.

Change-Id: I8c1f24ff052710e4b1927399d54e321088e3b171
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
2023-07-20 08:14:10 +00:00
Christian Stenger
182104e013 SquishTests: Adapt to different texts on macOS
Change-Id: Ie97003fd7de907d1a0f3ac71d6244dd68e2bf833
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
2023-07-19 13:44:16 +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
Christian Stenger
6614abe549 SquishTests: Adapt to Python 3
A dict's values object is not a list as it had been in Python 2.
Explicitly convert it.

Change-Id: Iab54a5833b77c6890b108065657da3ff73c96f7f
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
2023-07-19 08:57:08 +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
Christian Stenger
a86356ce8a Squish: Fix menu handling on macOS
Some menus inside QC have special numbering - but this only
applies to Linux and Windows. On macOS we do not add this
special numbering.
Additionally this patch stabilizes the triggering of
submenus. When they get triggered it takes a split of a
second until the items inside the menu are usable.
Let squish wait until the sub menu is fully present before
trying to activate some of its items.

Change-Id: I32c688a937ada1da07506d4ebd22730e4f2bcaef
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
2023-07-18 13:23:15 +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