summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* QmlDesigner: Disable value type alias testqmlprojectstorageMarco Bubke2022-06-091-1/+1
| | | | | | | Can be enabled when we added dependency tracking for value type aliases. Change-Id: I54c13a822f77fd7a39fa27873dc26f6f22b8d630 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* QmlDesigner: Add environment variable to activate project storageMarco Bubke2022-06-091-14/+19
| | | | | | | QDS_ACTIVATE_PROJECT_STORAGE has to enable project storage updates. Change-Id: Ifc108b60ee248bb44b84247b3acf79fdfa0dd0ea Reviewed-by: Marco Bubke <marco.bubke@qt.io>
* QmlDesigner: Skip JavaScript functionsMarco Bubke2022-06-091-0/+3
| | | | | | | | | Something wrent wrong because the test was already added in an other patch. Task-number: QDS-6946 Change-Id: Ib4fb040ae9d5329eb4670c20350953d7e25697ba Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* QmlDesigner: Support user defined list propertiesMarco Bubke2022-06-092-9/+103
| | | | | | | | | | | | Item{ property list<Foo> foos } It is now a property of type Foo and a list trait. Task-number: QDS-7121 Change-Id: Ic230b531c3264da6f5794f7523ebbd1a101a511a Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* QmlDesigner: Skip Qt5CompatMarco Bubke2022-06-091-1/+2
| | | | | | | It is referencing SourceContext which is not anymore defined. Change-Id: Ibf32b308b83f223dc41e5af6e7b5bbdb927163df Reviewed-by: Marco Bubke <marco.bubke@qt.io>
* Sqlite: Disable QmlDesigner plugin for Qt 5 based buildsMarco Bubke2022-06-091-0/+1
| | | | | | | | Sqlite is only used by the qmldesigner plugin. Because the qmldesigner is disabled for older Qt version Sqlite should not be built too. Change-Id: I7cdf2c1705f22ba07daea747858cd56b4dcb0437 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* QmlDesigner: Improve alias property name supportMarco Bubke2022-06-092-4/+38
| | | | | | | | Use aliasPropertyNameTail member in updater. Task-number: QDS-7117 Change-Id: Ic77f220de3d144af4dc870979d3287b66a32949f Reviewed-by: Marco Bubke <marco.bubke@qt.io>
* QmlDesigner: Support alias on value types in project storageMarco Bubke2022-06-095-16/+667
| | | | | | | | | | There can be an alias on value types like font.size. For that case there is an alias stem and an alias tail. This patch is introducing support for it but still not implementing all of the dependency management. Task-number: QDS-7116 Change-Id: I83d570c5b954cc0378f25ce91609d809bb41a963 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* QmlDesigner: Alias support in the QmlDocumentParserMarco Bubke2022-06-092-9/+116
| | | | | | | | | | | | | | | | We have to adjust the storage to support indirect alias like: Item { property alias textSize: foo.text.size Text{ id: foo } } Task-number: QDS-7117 Change-Id: I0cf915ed710800dfa46ceff5d823e48ef45ec906 Change-Id: I11df6077ebbda208114b5e6f9c4eece611740096 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* QmlDesigner: Add support for implicit import "."Marco Bubke2022-06-092-37/+58
| | | | | | Task-number: QDS-6780 Change-Id: Idd8b58a04203f56296e72dd3bbb73f720eb02277 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* QmlDesigner: Use qmltypes source id for builtin qmltypesMarco Bubke2022-06-092-4/+4
| | | | | | | | The builtin qmltypes have no qmldir. So we use the qmltypes source id as project source id. Change-Id: Ied9c74e93c1d329f3bdfc7f3a0960d8e7f7b51c5 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* QmlDesigner: Support optional imports in qmldirMarco Bubke2022-05-252-3/+42
| | | | | | | | optional import Foo Task-number: QDS-6945 Change-Id: Ib1136f4ffb3b7883bf50532dc7fd7cbd1fe04508 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* QmlDesigner: Add skip list for unsupported modulesMarco Bubke2022-05-251-2/+23
| | | | | | Task-number: QDS-6943 Change-Id: I59284c9482815e67a58c042b2e95b3b857ef9397 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* QmlDesigner: Improve printing of project storage typesMarco Bubke2022-05-251-6/+37
| | | | | Change-Id: Icb2f59c334cc597544899887e4fc98896d62decc Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* QmlDesigner: Add more fake qml componentsMarco Bubke2022-05-251-0/+55
| | | | | Change-Id: I6123ad4710278cdedef74ee62d72dc58a030aeaf Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* QmlDesigner: Improve exported importsMarco Bubke2022-05-252-2/+37
| | | | | | | | | Fix the qualified import name lockup for exported imports. Maybe we have to rewrite it complitly. Task-number: QDS-6827 Change-Id: I6359cda22b0534a8e9fc7725e204985a80737b7a Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* Sqlite: Upgrade to 3.38.5Marco Bubke2022-05-253-3941/+6233
| | | | | Change-Id: I977c33fb0584404206df02c53db1cc589575009c Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* QmlDesigner: Adapt to QmlDom changesMarco Bubke2022-05-258-93/+194
| | | | | | Task-number: QDS-6799 Change-Id: Ic37d8549c9a6fd8bca770b07b0dcb0f84892841b Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* Utils: Add std::wstring constructor to SmallStringMarco Bubke2022-05-251-0/+4
| | | | | Change-Id: Ie316a554cd63558399246dd4263f7096829a51f9 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* QmlDesigner: Extend project storage printingMarco Bubke2022-05-251-0/+7
| | | | | Change-Id: I1df39d1aaeb90be5eff7bd2bca92dad0bc2add69 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* QmlDesigner: Inject fake components into builtin moduleMarco Bubke2022-05-252-0/+289
| | | | | | | | | There are missing components in the qml types file. The fake.qmltypes file provides them as a workaround. Task-number: QDS-6763 Change-Id: I01a1727731517a9597e85019a8199375c001faef Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* QmlDesigner: Use TypeNameString instead of Utils::SmallStringMarco Bubke2022-05-242-25/+26
| | | | | | | | | | | It increases the small string optimization area. Many of the type names are longer than the SSO area of Utils::SmallString so we use a custom String for types which has a larger SSO area. So there a much less mallocs. This should improve performance a little but but uses a little bit more memory. Change-Id: I6a2225f21fb16afc8379868f3f18f38ae6ad0cd8 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* QmlDesigner: Ignore properties without typeMarco Bubke2022-04-212-0/+23
| | | | | | Task-number: QDS-6775 Change-Id: I6c280200348058de4d2ee64e5eee3856fa77da50 Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
* QmlDesigner: Improve alias enumeration referencing in propertiesMarco Bubke2022-04-212-2/+42
| | | | | | | | | If an alias enumeration is referenced in properties it should be fully qualified too. Task-number: QDS-6768 Change-Id: I9fa739b43315c761ae1d026eb6d3ddce386d7ddc Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
* QmlDesigner: Support enumeration aliases in qmltypesMarco Bubke2022-04-212-15/+146
| | | | | | Task-number: QDS-6768 Change-Id: I93de3c336cf1dacd0789526945929d10011a9132 Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
* QmlDesigner: Workaround missing qualifications in parameter typesMarco Bubke2022-04-212-28/+160
| | | | | | Task-number: QDS-6767 Change-Id: Ic1a34c206a7c4f6ec2be5bf5fbd25ead591fd008 Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
* QmlDesigner: Add project storage printing functionsMarco Bubke2022-04-212-0/+56
| | | | | Change-Id: Id4bd7ffd2913bd8023d5fde467cdd9acf1d21e50 Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
* QmlDesigner: Handle signal overloadsMarco Bubke2022-04-212-12/+79
| | | | | | | | | Signals can be overloaded and we should handle that case. Task-number: QDS-6669 Change-Id: I70272d90aff11c7705de70f1ed55676813c8b5ff Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
* QmlDesigner: Handle function overloadsMarco Bubke2022-04-212-15/+87
| | | | | | | | | Functions can be overloaded and we should handle that case. Task-number: QDS-6669 Change-Id: Id4ea197032a61bcba6c30f13d27619768689aff9 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
* QmlDesigner: Distinguish between dependency and import reexportsMarco Bubke2022-02-183-5/+46
| | | | | | | | | Sometimes there can be the same import from a dependency and an import. It will be needed for later updates of the reexports too. Change-Id: I18cf7d5a03ccbfa3857b54b7d5a5148b6797e718 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* QmlDesigner: Fix ModuleExportedImportsMarco Bubke2022-02-172-9/+14
| | | | | | | | There are Qml modules and C++ modules. For reexports a Qml import should reference only a Qml reexport but not a C++ reexport. Change-Id: I79f50f2b29334c46f915884b7db2155064a3550a Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* QmlDesigner: Filter colliding imports to dependenciesMarco Bubke2022-02-162-2/+42
| | | | | | | | Imports from qmldir are added as dependencies too. In the case as a import is the same as a dependency it has do be filtered out. Change-Id: Ibecc505ccf7c001d3267665ee4fe2e374bea8a7d Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* QmlDesigner: Distinguish between different import kindsMarco Bubke2022-02-162-0/+33
| | | | | | | | There can be normal imports, module dependencies and imports from reexported imports. Change-Id: I67e28f0676eb0b0d04fea1406954c9f2d4032e28 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* QmlDesigner: Handle double entries in qmldir filesMarco Bubke2022-02-162-8/+101
| | | | | | | There can be double entries for dependencies or imports. Change-Id: Id2ef9b1bd17ca6f179208215bb782b8b9931e66b Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* QmlDesigner: Add moduleExportedImportId to project storageMarco Bubke2022-02-162-26/+101
| | | | | | | | | | | | | If prevents collisions between the same import from different import statements. For example if there are to imports which are importing Qml in their qmldir file you get an collision. So we add this id to prevent it. Change-Id: I3a6a2331a350146ad1f90c0a95bd73f3bac4807a 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>
* QmlDesigner: Add support for import statement in qmldirsMarco Bubke2022-02-152-0/+102
| | | | | | | | Qmldir files can import and reexport modules. Task-number: QDS-6242 Change-Id: I3d2186dd13e6357281dfa3ac8435e80250f2491b Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* QmlDesigner: Support builtins qmltypesMarco Bubke2022-02-151-3/+19
| | | | | | Task-number: QDS-6094 Change-Id: I1c3084b911b2918a9d185321dceb5ac409a8d438 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* QmlDesigner: Support qmldir dependenciesMarco Bubke2022-02-153-1/+68
| | | | | | Task-number: QDS-6090 Change-Id: Iaca42e4ec314720629148911c8a0f93854572adc Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* QmlDesigner: Improve enumeration support in the qml document parserMarco Bubke2022-02-152-2/+35
| | | | | | | | | An enumeration like a qualified type contains a '.' too. So this has to be differentiated. Task-number: QDS-6191 Change-Id: If094abaaa29c5a0079a3c3855534d9b53b2bc94d Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* QmlDesigner: Don't export enumerations as qml typesMarco Bubke2022-02-152-30/+26
| | | | | | | | | | Qml types can be derived. So we have to use a different mechnanism because otherwise we have to export a enumeration type for every derived class too. Task-number: QDS-6182 Change-Id: Ib3ab3629328511e932f4d8cd360cbe3b01369d8f Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* QmlDesigner: Support qualified property types in the qml document parserMarco Bubke2022-02-152-16/+32
| | | | | | | Task-number: QDS-6191 Change-Id: Ia5672c0b15c70a24177b9db3e4060ade43b83769 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* QmlDesigner: Support qualified prototypes in the qml document parserMarco Bubke2022-02-152-20/+78
| | | | | | | Task-number: QDS-6191 Change-Id: I459d09df4ed0ba901fd4f214dd3de81556ee7896 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* QmlDesigner: Export enumerations as types tooMarco Bubke2022-02-153-24/+176
| | | | | | | | | Enumeration can be used as types so we export them as types too. Task-number: QDS-6182 Change-Id: Ia3b72917b06153d9acd44f420168251b583710c8 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Utils: Optimize SmallString allocationMarco Bubke2022-02-151-3/+23
| | | | | | | | | | | QStringEncoder returns a much higher size than normally need. Because allocations are not cheap the string is now copied to an temporary array on the stack if the required size is propably smaller than the small string optimization. The size is then computed from the transcoded string and used for the allocation. Change-Id: I1e1ef40094ad3040557bc5dd098a0b89006174c5 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* QmlDesigner: Add ModuleExportedImportsMarco Bubke2022-02-156-44/+462
| | | | | | | | | | | Since Qt6 there is an import statement in qmldir. This patch is synchronizing them and then injecting document imports. In a later patch this has to be extended to a synchronization too but so far it is enough for a first try. Task-number: QDS-6155 Change-Id: I1b5760f928ab0e2ce46b3620d8df237598c82574 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* QmlDesigner: Use to_underlying to get the underlying enum typeMarco Bubke2022-02-151-10/+23
| | | | | | | | | | There is now std::to_underlying in C++ 23 to prevent cast bugs for enumerations. Because we cannot use it and it is easy to have our own implementation we can use that so far and use std::to_underlying if we can use C++ 23. Change-Id: Iafc9163d659a98422d7aa8605d69d741d44d1052 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* QmlDesigner: Remove ProjectStorage::deleteDocumentImportsForDeletedDocumentsMarco Bubke2022-02-151-21/+0
| | | | | | | | | ProjectStorage::synchronizeDocumentImports will delete them too. So we don't need this step anymore. Change-Id: I53b550dc397af471e663ba7b0eb7f4f388768643 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* QmlDesigner: Support module dependenciesMarco Bubke2022-02-155-50/+86
| | | | | | | | | | | There is the possibility to add dependencies in the qmldir file. We call them module dependencies. The are implemented as imports too but the synchronize mechanism has to distingish between both. So we added a flag to import so we can update them separately. Task-number: QDS-6154 Change-Id: I3b96688f3d2ce10326c38f26e20abe3c1dc9ef66 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* QmlDesigner: Improve handling of native cpp typesMarco Bubke2022-02-155-37/+60
| | | | | | | | | | | | | In qmltypes files there are references to other cpp types. We handle them with the introduction of a ExportName-cppnative module name. This is done to prevent the pollution of the normal module namespace with C++ type names. Task-number: QDS-6090 Change-Id: I2c420e2e92235f4a9b94cf7bb3bd7d282a0199ed 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>
* QmlDesigner: Remove last left overs from NativeTypeMarco Bubke2022-02-157-47/+15
| | | | | | | | | | Because we don't use NativeType anymore but use ImportedType with an special import (has the appendix "-cppnative") we don't need it anymore. Change-Id: I56077ec964aa2686085e15db27125c4c88438dfa Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>