aboutsummaryrefslogtreecommitdiffstats
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* Don't return too early from QQuickMenu::setVisible() when parentItem is nullOliver Eftevaag4 days2-2/+44
| | | | | | | | | | | | | | | | | | | | QQuickPopup::componentComplete() will automatically search for a parentItem in case there's no explicit binding on parent. Since componentComplete() also calls d->transitionManager.transitionEnter() in case visible was set to true via the visible property, it would make sense to simply set the visible member variable to true on a QQuickMenu::setVisible(true) call, and delay calling transitionEnter() on the transition manager until componentComplete() is called. If for whatever reason the parentItem is explicitly set to nullptr after componentComplete(), we can still prevent the menu from opening. I don't see any potential issues with having the safeguard in QQuickPopup::setVisible(), instead of QQuickMenu::setVisible(). Fixes: QTBUG-138193 Pick-to: 6.11 6.10 6.8 Change-Id: I869c81a6dc6977a4c7e1d88e2507ade08b84dabd Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Fix some translatable messagesFriedemann Kleint4 days1-2/+2
| | | | | | | Pick-to: 6.11 Change-Id: I16d586f1a793206daa00c5a7d14b1fdac33f516d Reviewed-by: Robert Löhning <robert.loehning@qt.io> Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
* Add asynchronousShapes option to QML generator, VectorImage and svgtoqmlEirik Aavitsland4 days3-0/+51
| | | | | | | | ...as well as to the cmake command to run svgtoqml at build time. Pick-to: 6.11 Change-Id: Ib9c2115f7ac34285cc5c9d67c64e2d2ebbcd738a Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* QQmlImportInstance: Avoid URI confusionFabian Kosmale4 days3-0/+33
| | | | | | | | | | | | | | | | | QQmlImportInstance::resolveType is meant to resolve a type name to a type in the import represented by the instance. It should not find the QQmlType of a type sharing the same name in a different import. However. to find types defined in C++, it has to use QQmlMetaType::qmlType. It passes its URI to that function to filter out unrelated types. However, a directory import without a qmldir will have an empty URI. QQmlMetaType::qmlType will interpret this as "find the type in any module", which is obviously not what we want. Fixes: QTBUG-142407 Pick-to: 6.11 6.10 6.8 6.5 Change-Id: I45bcf1c764d7e7cf9d479283970587a4e6519ce4 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* qqmldomastcreator: remove Q_UNREACHABLE that gets hitSami Shalayel5 days2-0/+7
| | | | | | | | | | It seems that Q_UNREACHABLE triggers UB at runtime when hit in a release build, so remove it and log an error instead. Ignore the invalid part. Pick-to: 6.11 6.10 6.8 Fixes: QTBUG-142711 Change-Id: I445e46a6964f072a939cd6666c15c8d1ff5a0966 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* qmlls: don't crash on unknown idSami Shalayel5 days3-3/+34
| | | | | | | | | | | | | | | It seems that we recognize "anchors" from PropertyChanges { anchors.topMargin: 12 } as an id, which might sometimes not exist. Adapt the highlighting code to not crash if the id does not exist, and highlight it as unknown so the user sees that its "bad". Pick-to: 6.10 6.11 Fixes: QTBUG-142574 Change-Id: I00fcea8bfb3d16a95d40af024c4273dae19ce747 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* qmlls: slim down .qmlls.ini filesSami Shalayel5 days1-17/+9
| | | | | | | | | | | | | | | | We only need .qmlls.ini files to contain the path to the build folder, and the cmake-calls option (when used by the user). Remove the outdated import path, and the documentation directory, from the .qmlls.ini file: instead, it should be read from the .qmlls.build.ini (which is found by qmlls with help of the .qmlls.ini file). Replace add_custom_command with a file(CONFIGURE), now that we don't need to execute qtpaths anymore for the .qmlls.ini generation. Change-Id: I2d5e7b164d68e8e092c4995916025fd04d199f12 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* qmllint: dont assert on grouped property function definitionSami Shalayel5 days1-0/+4
| | | | | | | | | | | | | | | | Add an if-condition to avoid triggering the assert inside of qmllint. The runtime does not register this function declaration and therefore does not trigger the assert. QTBUG-142091 will make qmllint warn about the invalid function definition. Amends 009ef40c8c3a2c85860b4b309077a4dac90ad7a5. Pick-to: 6.10 6.11 Fixes: QTBUG-142468 Change-Id: I2077908fdc83fd31bdda67a11f0e8a6949a102ae Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* quicklintplugin: don't warn on Action not being ActionsSami Shalayel5 days3-0/+18
| | | | | | | | | | | | It seems we forgot to add Action to the list of allowed types when the warning was changed to include Action in 7bdeea2c309150c8b49558b135232926d6a89c50. Pick-to: 6.8 6.10 6.11 Fixes: QTBUG-142549 Change-Id: I52e0ec0110e4d3915f36e3a54843d25b86d21a16 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* qmllint: reword warning about fall-throughsSami Shalayel5 days1-19/+78
| | | | | | | | | The current warning is a bit confusing, reword it to make it clearer and actually actionable. Task-number: QTBUG-138532 Change-Id: I1862fc9dd68135500a1b64f1440c770a97f47c02 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* cmake: fix warning in manual testTim Blechmann5 days1-3/+3
| | | | | | | | | | | | | | | cmake complains: The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. the custom command is triggered whenever the target is built, so extra dependencies make no real sense. however copy_if_different might be a little friendlier Pick-to: 6.11 6.10 Change-Id: I66d0619c39b0c6354d7e6dba5797cdd4b6a116cc Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Android: update Qt Quick for Android examples to SDK 36Rami Potinkara6 days1-2/+2
| | | | | | | | | | | This patch updates qtdeclarative examples to use SDK 36 as a target and compile version SDK. Task-number: QTBUG-138552 Task-number: QTBUG-138549 Pick-to: 6.11 6.10 6.8 Change-Id: If655c6654790b4be3704325aceca6df4947362d4 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io>
* tst_qquickdeliveryagent: increase timeoutTim Blechmann8 days1-1/+1
| | | | | | | | | | | | | | in a local build: ``` FAIL! : tst_qquickdeliveryagent::mouseMoveHoverEfficiency() The computed value is expected to be less than the baseline, but is not Computed (QQuickItemPrivate::itemToParentTransform_counter): 11806 Baseline (11000ull) : 11000 ``` Change-Id: I3fe69235c09023d9a59fabe02b0d9fadcd204d98 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* VectorImage: Support CSS easing curvesHatem ElKharashy8 days2-0/+82
| | | | | | | | | | | | Supports linear and any cubic bezier based easing curves supported by Qt Svg. For the current time being, whenever the easing curve is set to a step function in Qt Svg, we revert to the default value which is the "ease" keyword in CSS. Pick-to: 6.11 Task-number: QTBUG-142333 Change-Id: Ifb6b3a2dfe955b5a247399e201efe0d7877bf235 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* QtQml: Do not load resolved CompilationUnits from other enginesUlf Hermann8 days5-5/+44
| | | | | | | | | | | | | | | | | | | | | If the type loader doesn't have a QQmlDataBlob in its cache, then this engine hasn't ever loaded and resolved the respective compilation unit. We can't skip the type resolution then because the current engine may have different URL interceptors, import paths, plugin paths etc than the one that previously loaded the CU. This leads to different type resolutions. This should not re-open QTBUG-134398 since now the base compilation units are not shared between engines anymore, despite still being stored in the type registry. Amends commit 27c2c989a3d10557da15de3d45bb5bd7b96d14e8. Amends commit 6468df7657f6af4de8727363c7f7d97b680b1867. Pick-to: 6.11 6.10 6.8 Fixes: QTBUG-142658 Change-Id: I10139492c38b4a943ecca41928ec96097cd8bfbe Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* TableView: fix initial topRow/bottomRow/leftColumn/rightColumn signalsMiika Pernu8 days1-4/+4
| | | | | | | | | | Property changed signals weren't correctly emitted due to comparison against old values that were incorrect. When constructing the view for the first time, the properties have initial value of -1 and not 0. Fixes: QTBUG-142067 Change-Id: I86bde8abd65e6f135a9f03f35913da914d762d26 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Remove hideLine flag from QQuickEllipseShapeAlexey Zerkin12 days2-6/+2
| | | | | | | | | After migration from QML version hideLine flag became useless in EllipseShape Task-number: QTBUG-142557 Pick-to: 6.11 Change-Id: I95b6407908385e4a406a15d3f36d5049e2725314 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* Fix typo EllipseShape.Outised -> EllipseShape.OutsideJan Arve Sæther13 days1-1/+1
| | | | | | Pick-to: 6.11 Change-Id: I88b25f6fa2e98fefb3f0e353804ba997e4709290 Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
* QmlCompiler: Get length from strings wrapped in QJSPrimitiveValueUlf Hermann13 days2-0/+9
| | | | | | | | | | | | We need to consider the original type of the value in order to see what we can do with it and we need to convert it (back) to string where necessary. Pick-to: 6.11 6.10 Fixes: QTBUG-142550 Change-Id: Ic0eb2c7a22636cfb2d97297421b911555bd32bb1 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* Change order tst_palette::comboBoxPopup to ensure theme is not fixedFrédéric Lefebvre13 days1-2/+2
| | | | | | | | | | | | | | Tst_palette::comboBoxPopupWithThemDefault fails on its first run because tst_palette:comboBoxPopup sets a theme beforehand. It always passes on its second run, as no theme as been fixed yet. Change the order of the two tests ensuring that comboBoxPopupWithThemDefault is passing on its first run. This is a workaround to prevent the theme being fixed before the test. Change-Id: I902f6b0cff9f35305cb5534d1318395677fa2748 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
* Qt.createQmlObject: Trim compilation unitsFabian Kosmale13 days2-0/+29
| | | | | | | | | | | | | | | | | | | | | | | When we call createQmlObject, a completely new compilation unit is created. If an object is stil in use, that compilation is obviously needed. However, if code is using createQmlObject repeatedly with the same URL, there's a good chance that the object was only temporarily needed. To avoid unbounded memory usage in that case, we call trimCompilationUnitsForUrl, to remove the no longer needed CUs. Note that this does not help if the URL is also changing dynamically, but we don't want to trim all caches, including ones the user might actually want to hold on. To handle such cases, we should rather 1. integrate the trimming logic with the gc 2. give it a separate, configurable "high water mark" 3. Use some proper caching system for CUs, e.g. LRU That is however out of scope for this commit. Pick-to: 6.11 6.10 6.8 Fixes: QTBUG-142555 Change-Id: I7ebb63abd9bb99531b6b6b2cf1f98b35b1e652e2 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Properly blacklist Switch mouse/touch tests on macOS 26Tor Arne Vestbø13 days1-2/+2
| | | | | | | | Amends 023cad2c2c815c3237fdd4636213084db63fdcb1. Task-number: QTBUG-142189 Change-Id: I4aac13fb790578ea69fb856e41ffc265f2330a01 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* tst_QQMLTypeLoader: use TestHTTPServer::url() instead of ::urlString()Ahmad Samir14 days1-2/+2
| | | | | | | | Avoids converting QUrl -> QString -> QUrl. Pick-to: 6.11 Change-Id: I80ddd4b5c7e25679eda4f235fe2a367afd7901f8 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* test: Run qquickvectorimage test even on non-developer buildsEskil Abrahamsen Blomfeldt2025-12-091-3/+1
| | | | | | | | | | The equivalent test is run on Lottie without developer build set, so it should be fine to do this. The condition here was just cargo culted from other CMakeLists and is not needed. Pick-to: 6.10 6.11 Change-Id: Ib05c586b6ca8481eee312afbae7f003f51a389ce Reviewed-by: Hatem ElKharashy <hatem.elkharashy@qt.io>
* Stabilize tst_QQuickContextMenu::iOS::textControlsMenuKeyShawn Rutledge2025-12-091-2/+2
| | | | | | | | | | Avoid positioning items at fractional positions and then testing with a QContextMenuEvent at 0, 0 relative to the item: it may be outside the item by a fraction of a pixel and fail to "hit" during delivery. Pick-to: 6.11 Change-Id: I0f1f98a7ae88a23356026d2c6c7eeb4bf2a72a92 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Port Q_{ENUMS,FLAGS} to Q_{ENUM,FLAG}Ahmad Samir2025-12-085-28/+35
| | | | | | | | | | | | | | | | | | Q_{ENUM,FLAG} does what Q_{ENUMS,FLAGS} did plus declaring two friend functions, so the behavior should be the same. For enums that are declared as flags (with Q_DECLARE_FLAGS(Es, E)), use Q_FLAG(Es) which will register each enum value with the meta-object system. Q_FLAGS usage in tests/auto/qml/qmlcppcodegen/data/enumproblems.h is testing Q_FLAGS itself. Q_ENUMS/Q_FLAGS have been deprecated since at least Qt 6. Pick-to: 6.11 6.10 6.8 6.5 Change-Id: Id21b6e3205a786b3a5fa04bd09dfee2a6c1c2a86 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* tst_qmltyperegistrar: Fix metaObjectHash regular expressionUlf Hermann2025-12-081-1/+2
| | | | | | | | | We've added a version to the hash. Fixes: QTBUG-142529 Pick-to: 6.11 Change-Id: Idba7608708db938c3cf958e98bb6ea0ea3bd7bdc Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
* Update default values for {Ellipse,Star,Rectangle,RegularPolygon}ShapeAlexey Zerkin2025-12-064-8/+11
| | | | | | | | | Set the same width, height, fillColor, strokeColor and strokeWidth values for rectangle, star, ellipse and regular polygon shapes Task-number: QTBUG-142450 Change-Id: I1920d22e80944ee4f220b927b4c1fcbbe2bb077a Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
* qmlls: use resource files from CMake for the DOMSami Shalayel2025-12-055-6/+65
| | | | | | | | | | | | We can use the resource files from the .qmlls.build.ini also when constructing the DOM, instead of iterating over the build and import folders. Fix and rename a test in tst_qmldomitem. Task-number: QTBUG-141707 Change-Id: I9dcbd4cd307aba251e5de1d8c00c97b22dd87eb4 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* qmlls: read resource files from .qmlls.build.ini filesSami Shalayel2025-12-051-2/+10
| | | | | | | | | | | | | | | | | We can't find resource files by iterating on the build folder without causing QTBUG-141707, therefore implement reading resource files from the .qmlls.build.ini files. A later commit will make CMake add the resource file information in the generated .qmlls.build.ini files. A separate commit will take care of usages of resourceFilesFromBuildFolders() in the dom. Keep a fallback for projects without resource files, for example projects targeting qt < 6.11. Task-number: QTBUG-141707 Change-Id: I279d193aa6a2849526c2f56c6a40e83492050f74 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* qmlls: don't use build directories as import pathsSami Shalayel2025-12-052-58/+82
| | | | | | | | | | | | | | | | | | | | Don't mix build and import paths in qmlls. Use build paths for build path operation (finding .qmlls.build.ini, eventually resource files, CMake invocations, ...) and the import paths for imports (when linting and constructing the DOM). Only use build paths as import paths as a fallback, for projects running on Qt < 6.10. It turns out that our tests were making heavy use of "build folders are import paths". Modernize the tst_qmlls_modules tests to write a .qmlls.build.ini file in the build folder which contains the import paths. Also don't read the import path twice from the qmlls.build.ini file, and read it from the QQmlCodeModelManager, not the QQmlCodeModel. Add a test for importPathsForFileUrl() that used to duplicate the import paths. Task-number: QTBUG-141707 Change-Id: I9eceb743bf37bc0f743954a0e7b1e5831f1989fa Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* tst_qmlls_modules: dont segfault on test failureSami Shalayel2025-12-051-0/+5
| | | | | | | | Fix the cleanup method to disconnect the signals in m_server, otherwise m_server might use an outdated m_protocol in a later test case. Change-Id: I4ae3b02bc0ed5cae585dc637c037e56bc4976adf Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QtQml: Invalidate fallback lookups after each call from AOT codeUlf Hermann2025-12-054-0/+91
| | | | | | | | | | Fallback property lookups are created for completely dynamic metaobjects. Anything about them may change between any two calls. Pick-to: 6.10 6.8 6.5 Fixes: QTBUG-142331 Change-Id: Ib732c37a6f27ab8105bea0eeae000af7eb9c36d7 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* QML: Pipe objects' metaObjectHash to qqmljsscope through the qmltypesOlivier De Cannière2025-12-052-0/+31
| | | | | | | | | | It gets added to the json output of moc for every object. Include it in the object's qmltypes representation too and add it to the corresponding qqmljsscope when parsing them. Task-number: QTBUG-142186 Change-Id: Id551a4edb1284018dee8d9afbe3b7189660478b8 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* tst_qqmlpropertycache: Adapt to metaobject layout changeOlivier De Cannière2025-12-051-3/+11
| | | | | | | | | | | | | It now stores one additional string relative to before, namely the class def's content hash. And the header has increased by 1 to store that string's index into the string table. Also, keep handling revision 13 temporarily to allow for a smoother transition and remove that version asap. Task-number: QTBUG-142186 Change-Id: I2b190f3a4b6bdd9cd95ac00b65359957860c8187 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QQmlPropertyCache expand Override Semantics. QML pathDmitrii Akshintsev2025-12-053-2/+320
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This path focuses on the actual expansion of Override Semantics with regard to newly added virtual and override keywords. Since Override Semantics is central to the way PropertyCache is being populated, expanding it requires additional care. To ensure smooth and reliable iteration, this patch isolates data-flows: within this patch adding properties from MetaObject stay "unaffected" by the expansion, as well as the paths adding Methods and Signals from the IR. This is done with the help of 3 things: 1. Separating logging logic from the Override logic 2. Extracting Override Semantics into it's own namespace 3. Adding a nob to control the set of rules To facilitate and separate testing of the logging logic and override semantics, the principle of dependency injection is being used, allowing us to easily Fake handling of override semantics, simplifying testing of PropertyCache::appendPropertyAttr Logging logic (messages) is kept on the side of QQmlPropertyCache mostly because this entity logically has more context to do proper logging. Taking into account how the class name and name of the property are handled, those are kept to be "requested on demand", a.k.a. query them only in cases when the logging indeed needs to be performed. Multiple append* methods have been moved to the private section to avoid invalidation of caches. See comment above QQmlPropertyCache. As a workaround to enable unit-testing of some methods, tst_qqmlpropertycache has been added as a friend class. This patch updates tests/auto/quick/qquicklistview/data/negativeDisplayMargin.qml to remove an unintended override of ListView’s built-in count property. The test declared its own count property, which implicitly shadowed ListView.count. The newly introduced validation correctly flagged this conflict, so the test has been adjusted accordingly. Change-Id: I809e58e421fa50f5ee7f21b31edbf926ad472736 Task-number: QTBUG-98320 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* tests: Suppress QJSValue::isVariant() deprecation warningsLu YaNing2025-12-051-0/+3
| | | | | | | | | | | | | | | | Add QT_WARNING_DISABLE_DEPRECATED around the newVariant() test function to suppress deprecation warnings for QJSValue::isVariant() which was deprecated in Qt 6.9. The isVariant() method returns rather unexpected results and is only true in very limited cases. While the test still validates the API behavior, the deprecation warnings are suppressed to keep the build clean. Amends eaad950651c237708c26f3931963c633077ace01 Change-Id: I7b27375fa2c6f6a77aed43cfc4d752db5395824a Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Add test for menu navigation, when using popup windowsOliver Eftevaag2025-12-052-0/+210
| | | | | | | | | | | | | | | | Keyboard navigation between the MenuBar, MenuBarItems, Menus and MenuItems broke, when we introduced popup windows. Since then, we've added various patches (e.g. 2393c588bc9a5368c013952a4fb195c5b4017543) to gradually fix key event handling. Add a test, to verify that menubar navigation now works. Task-number: QTBUG-121363 Pick-to: 6.8 Change-Id: I64d720a07fc300040ce1670082f9628befb73f5b Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Replace QSequentialIterable with QMetaSequence::IterableUlf Hermann2025-12-052-7/+7
| | | | | | | | QSequentialIterable is deprecated. Task-number: QTBUG-140181 Change-Id: I797c18fa5c319e5c1a0114448d98a38aad33ae04 Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
* qmlls: use 1 job for background buildsSami Shalayel2025-12-041-0/+32
| | | | | | | | | | | | | | | Control the numbers of jobs to be used in Qmlls in background builds via the "-j" argument of CMake. Set the default to 1: a background build should not eat up all the CPU/RAM available of the users computer. [ChangeLog][qmlls] The number of CMake jobs can be set with a command line option, an environment variables, and a .ini setting option. The default was changed from using all available cores to 1. You can restore the previous behavior by passing "max" as number of CMake jobs. Task-number: QTBUG-142352 Change-Id: Icc8573906632272773c0a2812febbf06aa6b3079 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* CMake: write qrc file paths to .qmlls.build.iniSami Shalayel2025-12-049-13/+123
| | | | | | | | | | Write qrc file paths to the .qmlls.build.ini. This ensures that qmlls doesn't pick up other modules .qrc files to avoid situations like QTBUG-141707. Fixes: QTBUG-141707 Change-Id: I4ea6756af7b12bf00e2f3f3338c0d5bfd792dc77 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* tst_qmlls_qqmlcodemodel: silence import path warningsSami Shalayel2025-12-042-5/+12
| | | | | | | | Add missing import paths where needed to silence all the import path warnings from tst_qmlls_qqmlcodemodel. Change-Id: Ia667a381ca01c8b1dc32387e1b1e5bb633ef54e6 Reviewed-by: Semih Yavuz <semih.yavuz@qt.io>
* QQmlCodeModel: avoid calling methods in wrong threadSami Shalayel2025-12-041-3/+10
| | | | | | | | | | | | | | | | | | | | Add some asserts to avoid calling methods from the wrong thread (this only seems to happen in the tst_qmlls_qqmlcodemodel tests, not in qmlls itself). Also make the methods private to avoid this from happening again. Adapt the tests to call the right methods, and to wait for the QQmlCodeModel file loading thread to finish (by waiting on the newly added openUpdateThreadFinished signal). This fixes the flakines from tst_qmlls_qqmlcodemodel reloadLotsOfFiles, where a data race, caused by the test calling one of QQmlCodeModels function in the wrong thread, was making the test flaky. Pick-to: 6.10 Fixes: QTBUG-142264 Change-Id: I6d6b89674344f271e94e6e558a34dd6900cfe703 Reviewed-by: Semih Yavuz <semih.yavuz@qt.io>
* QQmlPropertyData add doesOverride and isVirtual flagsDmitrii Akshintsev2025-12-041-0/+22
| | | | | | | | | | | | Currently Override semantics evaluation is based on the flags of QQmlPropertyData. Therefore adding this flags is necessary. On a bigger picture this patch focuses on the data flow from the IR to QQmlPropertyData (property cache) Change-Id: I206ee46a075675e37c35e4c72c74c68e132d2ef2 Task-number: QTBUG-98320 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Qml IR: add support for virtual and override keywordsDmitrii Akshintsev2025-12-045-60/+112
| | | | | | | | | | | | | | | This patch adds two new fields, IsVirtual and IsOverride, to CompiledData::Property. These fields will later be used to populate QQmlPropertyData and to handle property override semantics. At a high level, this change focuses on the data flow from the AST to the IR, laying the groundwork for future semantic resolution. Also moves test helper Syntax namespace to the quicktestutils Task-number: QTBUG-98320 Change-Id: Ic2a2e28df08d53c8752c49304bd5f7ff46916d08 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* qmlls: add completion for virtual and overrideDmitrii Akshintsev2025-12-042-7/+75
| | | | | | | | This patch adds support for the completions of newly introduced keywords and corresponding valid combinations. Change-Id: I9c3b008405ac4fd45d7393013838df0813426358 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* semantic highlight: support virtual and override keywordsDmitrii Akshintsev2025-12-042-0/+24
| | | | | | | | | This patch introduces corresponding QmlVirtualProperty and QmlOverrideProperty modifiers and expands the highlight of the PropertyDefinition Task-number: QTBUG-98320 Change-Id: If1cd98b9958ed3be5fd67e02abb71ca6fa68da6b Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
* qmlformat: add support for virtual and override keywordsDmitrii Akshintsev2025-12-044-0/+117
| | | | | | | | | | | | | | | | | | | This patch adds corresponding - VirtualKeywordRegion and OverrideKeywordRegion - isVirtual and isOverride members to Dom::PropertyDefinition adjusts the corresponding PropertyDefinition::writeOut method and introduces a test for the PropertyDefinition structure, currently covering / focusing only on the functionality relevant to the scope of this patch Note: maybe it is a good idea from now on to use newly added tests/auto/qmldom/elements directory for the tests covering qqmldomelements_p.h Task-number: QTBUG-98320 Change-Id: Ifac60d3e52900605778afaf3819a9af46c97954a Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* Add support for feMergeEskil Abrahamsen Blomfeldt2025-12-044-24/+45
| | | | | | | | We support merging up to 8 effects for now. Task-number: QTBUG-121541 Change-Id: Ic60400f054700e4ff44452870770b2175834dd85 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* VectorImage: Post processing effect chainingEskil Abrahamsen Blomfeldt2025-12-043-4/+266
| | | | | | | | | | This introduces chaining post-processing effects, and the feComposite and feBlend nodes to allow compositing these. Task-number: QTBUG-121541 Change-Id: Ib2aa99139869814a575a2bf9d9e6319b31828285 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> Reviewed-by: Hatem ElKharashy <hatem.elkharashy@qt.io>