aboutsummaryrefslogtreecommitdiffstats
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
...
| | * | | | | | | | tst_qquickmenubar: don't use scoped pointers for objects created from QMLRichard Moe Gustavsen2024-02-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QScopedPointer will delete the object pointed to when it goes out of scope. But the object pointed to in this case is created from QML, and should therefore not be deleted this way. Change-Id: I6f2660a9cef85dd00e0627b6401c58991f9a137a Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| | * | | | | | | | Menu: fix native checkable MenuItems (without an Action) not checkingMitch Curtis2024-02-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not only do we need to ensure that the checked state changes so that syncing the MenuItem to the native menu item works, but we should also emit the same signals that would be emitted if the user had actually interacted with the MenuItem. Task-number: QTBUG-69558 Change-Id: I0ac1d16c0f84da1d9f6639b724ba47ea124da59a Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| | * | | | | | | | tst_qquickmenu: move native menu support check to runtimeMitch Curtis2024-02-121-43/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's clear that the build time check doesn't work, and since we can't easily check which platform plugin we're using (and maintaining such a check could be fragile), just check if we can create a platform menu. Task-number: QTBUG-69558 Change-Id: I2d8057f4012a4762d9d323ddc7127824811229a6 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| | * | | | | | | | Menu: support adding MenuItem to native menuMitch Curtis2024-02-123-17/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Originally the plan was to revert to a non-native menu when MenuItem was used, but now that we always create the non-native items regardless, we shouldn't need to do that. Checkable MenuItems do not currently work. This will be implemented in a follow-up commit. Task-number: QTBUG-69558 Change-Id: I7238dad89e478f7cc664738fb6036787e0193dab Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| | * | | | | | | | Menu: allow setting (but not always respecting) requestNativeMitch Curtis2024-02-123-25/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We can allow this to be set while the menu is a sub-menu and/or visible, and instead wait until it is re-opened to take the change into effect. Task-number: QTBUG-69558 Change-Id: Ie79819609950c2f6432e55c09d21dce7e8d9b220 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| | * | | | | | | | Merge tst_nativemenus into tst_qquickmenuMitch Curtis2024-02-128-509/+398
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that we also run the tests on platforms without native menu support. Doing so exposed an issue with requestNative and sub-menus, so this commit fixes that and, as a consequence, delays creation of native menus until component completion. Task-number: QTBUG-69558 Change-Id: I94e459708fa87783b0e79710f6c8ce2a03e0d789 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| | * | | | | | | | Menu: respect requestNative changesMitch Curtis2024-02-123-24/+144
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch ensures that a native menu is created (or destroyed) when requestNative is set, if possible. Task-number: QTBUG-69558 Change-Id: Ic7f8826bf4def66e66932618767a81ad19e114f0 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| | * | | | | | | | Implement native menu separatorMitch Curtis2024-02-123-2/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-69558 Change-Id: I3da4509a722ec5ee4620111fc9482e6d688fdd9d Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| | * | | | | | | | tst_nativemenus: build on all platformsMitch Curtis2024-02-122-12/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since we will eventually support falling back to non-native menus. Task-number: QTBUG-69558 Change-Id: I45a6cfa91fad7e47e59047291486ff84365f908c Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| | * | | | | | | | Unconditionally create delegates when using native menusMitch Curtis2024-02-121-12/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Initially I was trying to avoid creating MenuItem delegates when using a native menu, but there are several reasons why this is not ideal: - It makes managing indices of contentModel vs nativeItems complicated and error-prone. - It complicates the code. - It introduces differences between native and non-native execution for the same app's codebase. Users relying on code to be executed in e.g. Component.onCompleted of Menu's delegate would see that that code isn't executed when using a native menu. The disadvantage of the approach in this patch is that we're creating full MenuItem instances that will never be rendered. Although far from ideal, this is unlikely to have a noticeable impact on performance on most platforms where we support native menus. Task-number: QTBUG-69558 Change-Id: Ibd0c01654ff8ee40087d5472cf9f9233dea78bf3 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| | * | | | | | | | Merge remote-tracking branch 'origin/dev' into nativemenusRichard Moe Gustavsen2024-02-0841-174/+604
| | |\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Ibfe20ded0cfd30cadf1447533781043758435cac
| | * | | | | | | | | QQuickMenuBar: don't set parent item when incubating a MenuBarItemRichard Moe Gustavsen2024-02-081-0/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we incubate a MenuBarItem, we currently set the parent item already from QQuickMenuBarPrivate::beginCreateItem(). This is unfortunate, since doing so will end up in a call to QQuickContainerPrivate::itemChildAdded() before the MenuBarItem has finished incubating, which is not safe. Moreover, this will also add the new MenuBarItem to the back of all the other existing container items, which is not what we want if the construction was done as a result of calling MenuBar.insertMenu(index, menu). Setting the parent item this early is anyway not needed, since QQuickContainer will make sure to set the correct parent item in the follow up call to QQuickContainer::insertItem(). So, just remove the explicit setting of the parent item from the beginCreateItem. This will make sure that calls such as MenuBar.insertMenu(0, menu) will work. Change-Id: Ie2b759cfdd1b7a15be0ff646d6d9c6bf0c4c8328 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| | * | | | | | | | | QQuickMenuBar: add createNativeMenuBar() and removeNativeMenuBar()Richard Moe Gustavsen2024-02-082-1/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, the native menubar is (partially) created as a side-effect of calling nativeHandle(). Since calling this function can be done from many places (also from outside of QQuickMenuBar), it gives an unpredictable construction phase that can change as a result of code changing outside of QQuickMenuBar. To gain a better and more deterministic control over when, and how, we create and delete the native menubar, this patch will add three new functions: createNativeMenuBar(), removeNativeMenuBar(), and syncNativeMenuBarVisible(). Using them will simplify the code, and make the visibility state of the native menubar easier to debug and maintain. Change-Id: Ifaf9783a2edffccdbfc94ed7688581d971e92d83 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| | * | | | | | | | | QQuickMenuBarPrivate: add functions insertMenu and takeMenuRichard Moe Gustavsen2024-02-061-3/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are many ways to add menus to a menuBar; You can declare them as children explicitly from QML, or indirect as children of MenuBarItems, or dynamically by callng addMenu or insertMenu. Funnel all ways of adding and removing menus into QQuickMenuBarPrivate::insertMenu() and QQuickMenuBarPrivate::takeMenu() to ensure that we implement the same logic regardless of how the menus are added and removed. This change detected some memory management bugs in the addRemove auto test, where a QScopedPointer was used to store a menuBar resolved from a QML file. This should not be done, as the menubar is owned by the QML engine, and should not be destroyed by the scoped pointer when it goes out of scope. The same with the menus; they are owned by the menubar, and should not be destroyed from the outside without calling "takeMenu()" first (which the test already checks). Change-Id: I3f818c3d76dd7c3fa9e1eaa3025597f015b69ce8 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| | * | | | | | | | | Merge remote-tracking branch 'origin/dev' into nativemenusRichard Moe Gustavsen2024-02-0680-196/+2920
| | |\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I9ff3fa2117c0770dd118cbe938b3e2512dba267e
| | * | | | | | | | | | QQuickMenuPrivate: add function useNativeMenu()Richard Moe Gustavsen2024-01-233-7/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A Menu that is inside a native MenuBar needs to be native as well, regardless of whether requestNative is false or not. This patch will add a function that takes the requestNative state of a parent MenuBar into account. Change-Id: I3e77e773576d2527475c4bbb706a3e00683a3c5a Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| | * | | | | | | | | | QQuickMenuBar: implement addMenu(), insertMenu(), and removeMenu()Richard Moe Gustavsen2024-01-233-5/+125
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Let insertMenu() create native menus when requestNative is set. And call addMenu() from contentData_append. Change-Id: Ife7a7d34534973679827c688d63c7ebce67c16e1 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| | * | | | | | | | | | Merge "Merge remote-tracking branch 'origin/dev' into nativemenus"Richard Moe Gustavsen2024-01-22139-1346/+4239
| | |\ \ \ \ \ \ \ \ \ \
| | | * \ \ \ \ \ \ \ \ \ Merge remote-tracking branch 'origin/dev' into nativemenusRichard Moe Gustavsen2024-01-22139-1346/+4239
| | | |\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I54bfced2ff9d5d897027dc81e6d5234d317b9b48
| | * | | | | | | | | | | | Add disabled Actions to menus manual testMitch Curtis2024-01-221-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-69558 Change-Id: I6517a679a3fb80cda577971425e582c8bab5eba6 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| | * | | | | | | | | | | | Add checkable Actions to menus manual testMitch Curtis2024-01-221-7/+16
| | |/ / / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This can't reliably be auto-tested because we can't interact with menu items with the mouse, and there's no way to know if a native menu is focused in order to interact with it via keyboard. Task-number: QTBUG-69558 Change-Id: I21134743ccc64ca1bf99f085f09c00d66a3ca3dc Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| | * | | | | | | | | | | QQuickMenuBar: add property 'requestNative'Richard Moe Gustavsen2024-01-191-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a new property to QQuickMenuBar called 'requestNative'. This can be set to request that the menubar should be native. It will be 'false' by default for now until the implementation is complete. Change-Id: Ib12c750f89a7fe9ebc3eae1da8db13a0996b945b Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| | * | | | | | | | | | | Menu: get native sub-menus workingMitch Curtis2024-01-173-21/+166
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-69558 Change-Id: Iee7393a00bcaf4f25f579ec60ebfecf7ef357761 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| | * | | | | | | | | | | Add menus manual testMitch Curtis2024-01-176-0/+280
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This gives us a convenient way to manually test native menus, which can't be fully auto-tested. Task-number: QTBUG-69558 Change-Id: I045eef8d30eb8f130f6e4ba4787a9d0ad84c109f Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| | * | | | | | | | | | | Add beginnings of native Menu backendMitch Curtis2024-01-166-0/+338
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch gets the basic functionality and initial API in place so that work on MenuBar can begin. Task-number: QTBUG-69558 Change-Id: I94df848f771d38cd1cabb964b695d383f66240f2 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | | | | | | | | | | | | Curve renderer: avoid unnecessary re-triangulationEirik Aavitsland4 days1-0/+214
|/ / / / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changes in gradient and filltransform only require the uniform block to be updated. Clean up and improve the uniform updating in the pathdata and fill nodes, avoiding redundant recomputations and reallocations. Fixes: QTBUG-125403 Change-Id: I3cf3e8524e9386618cb8cc34a1097e27454da527 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* | | | | | | | | | | | Don't update transform if it hasn't changedEskil Abrahamsen Blomfeldt5 days2-0/+182
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Updating the transform marks it as dirty and causes rebatching. Since we were doing this even when nothing had changed, we were essentially rebatching every time there was any update to the shape. We should leave it to the node to decide if it has been updated. This adds two tests that verify that rebatching still happens when changing the color/gradient of the shape. Pick-to: 6.7 Change-Id: Iefb7a21a89ac2c31053e473cf689fa06e34a40d5 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* | | | | | | | | | | | Clean up some includesUlf Hermann5 days3-35/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In particular, don't include qqmllocale_p.h, qqmlbind_p.h and qv4sequenceobject_p.h where we don't need them. Also, don't qualify private includes by their module name so that we can move them to other modules more easily. Change-Id: Ic13592cef574424498ce9e7708d6fbaa681b81f3 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* | | | | | | | | | | | qt_add_qml_module: Create qt.conf in build dirFabian Kosmale5 days3-7/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To ease development with multiple QML modules, we'll collect the set of dependencies (if they were set with the TARGET syntax), and write their import paths into a qt.conf file. This allows users to work on multi-module projects, without having to manually fiddle with the engines import path when locally runnig their executables or tests. This is especially useful in the case of tests, where there normally isn't a separate deploy step (which could take care of setting up the import paths). There is (currently) no way to provide two different configurations to two binaries in the same directories, as we can only have one qt.conf file in any given place. Resolve this by merging the import paths. To enable this, we safe the list of dependency targets as a directory property, and do a deferred write-out of the qt.conf file. The feature is currently limited to direct dependencies This feature requires CMake 3.19, as we otherwise can't set directory properties on the build directory. [ChangeLog][QML][qt_add_qml_module] When using CMake >= 3.19, qt_add_qml_module now creates a qt.conf file in the build directory next to each binary. This sets up import paths for targets passed to DEPENDENCIES and IMPORTS with the new TARGET option. Fixes: QTBUG-122987 Change-Id: Ic30e6ae2b58c6c5916978ca200d5f24564314e7e Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | | | | | | | | | | | QQmlImportDataBase: Add all import paths from qt.confFabian Kosmale5 days3-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will allow the build system to set multiple import paths, which is desirable to support more complex build setups with multiple folders. Fixes: QTBUG-124009 Change-Id: I5d93fa0aa12f29f1a496599f110678fdd21e9780 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | | | | | | | | | | | Add new Fluent style for Qt Quick ControlsDoris Verria5 days6-0/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add new Fluent style based on Windows UI3 and Fluent style. Style is largely image-based using Figma designs and the qqcstylegenerator tool for generation from Figma. The generated Config.qml contains all the geometry, layouting, and image path information for each control and state as seen in the Figma templates. Custom adjustments are added in QML. Availability: Style is made availalbe on all platforms. It should use platform palette read from the system when on Windows 11+ (to be added) and use hardcoded values from the style guidelines when on other platforms. Palette support: Being image-based the style currently offers palette support only for text-related roles. Accent color support per-control is to be added in follow-up commits. Font: The style uses the Segoe UI Variable font if available. Controls: This initial commit starts by adding ApplicationWindow, Button, CheckBox, RadioButton, Switch, Slider, RangeSlider. To be addressed in follow-up commits: - More controls - Add focus frame for focused controls - Use of platform palette on Windows 11+ platforms - Accent color support - Documentation [ChangeLog][QtQuick][Controls] Introduction of Windows11 style for Qt Quick Controls. Task-number: QTBUG-125279 Change-Id: I30adc142f39d12017bdbcb47cab417115b25a959 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | | | | | | | | | | | QML tooling: populate import path with dependency locationFabian Kosmale6 days17-0/+316
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that we can pass targets to DEPENDENCIES/IMPORTS, we can extract their output location, and pass it on in the CMake API. This is currently only possible with non-imported targets, and thus is only helpful for the case where multiple modules are build as part of a project, but not for the deployment use case. The testcase is based on Mitch's example from QTBUG-122986. Task-number: QTBUG-122986 Change-Id: Ibe264bc3b877a1fe65ef0655fbea5b8ea188cda6 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | | | | | | | | | | | QtQml: Optimize QV4::Sequence's shift() methodUlf Hermann7 days2-0/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Most of the time we have a native shift() operation. Fixes: QTBUG-123882 Change-Id: I1bc50f98f29918a56b5fc70d1644eb99542a3073 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* | | | | | | | | | | | QtQml: Document and uphold precondition of metaTypeFromJS()Ulf Hermann7 days4-0/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The value needs to be a default-constructed instance. Otherwise a number of branches in this method produce unwanted effects, such as appending to an already existing array rather than creating a new one. Amends commit 1b89c1edcae68351632c2755e5408410c2ff98e3. Pick-to: 6.7 6.5 Fixes: QTBUG-125429 Change-Id: If175a02b3a794573abc03df206fbddd41f2855b4 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* | | | | | | | | | | | V4: Store the sign bit of NaNs in QV4::StaticValueUlf Hermann7 days1-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have a bit for this, which is already used on UMinus. We should also use it when directly encoding a double. This makes some ECMAScript tests pass. Pick-to: 6.7 6.5 Change-Id: Ie90c7ae9ce57064d14db0ed719a08d5858b47cd4 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* | | | | | | | | | | | QtQml: Properly handle someObject as someValueTypeUlf Hermann7 days1-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This should return undefined, not null. Amends commit 71e259837967f1eee50c057229094c2a971a1a61. Change-Id: I750b674f03b35d3a5493bbc40625e37d651c73fe Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* | | | | | | | | | | | QtQml: Restore as-casting of incompatible type to value typeUlf Hermann7 days3-0/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This used to (mistakenly) return null, which is much better than constructing the value type. Amends commit 71e259837967f1eee50c057229094c2a971a1a61. Change-Id: I3da9d0a765d118dc8d85d7c5dde91936855bbf67 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* | | | | | | | | | | | Compiler: Record statistics about aot compilationOlivier De Cannière7 days6-0/+160
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch introduces the collection of statistics about the ahead-of-time compilation of functions and bindings to Cpp by qmlcachegen. This is done by having qmlcachegen save an aotstats file for every qml file it compiles. This file contains, for every function and binding, whether the Cpp codegen was successful, its duration and a potential error message Task-number: QTBUG-124667 Change-Id: Iba9a72be04f6642688533a3ae12ea687296c85e1 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* | | | | | | | | | | | Update manual test for row and column reordering in the table viewSanthosh Kumar7 days1-2/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The quick table view enhanced with row and column reordering feature (as part of patch 332385ffbf51a9abb03b3abdde1db2a62b6fe25a). This patch updates the manual test of table view to accommodate row and column reordering change. Task-number: QTBUG-100440 Change-Id: I06e19b0a2b39434245133e148534eb3079e1e77f Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | | | | | | | | | | | tst_font::font(): Use correct platform name for macOSTor Arne Vestbø8 days1-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The fact that we've been running this test with the wrong product type check for a long time indicates that the test isn't actually crashing on macOS, but that's something to investigate separately. Task-number: QTBUG-70063 Change-Id: I231d6101f2aac56bd495c3c2e76bad6d084ff2fa Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* | | | | | | | | | | | Texture fill for shapesEskil Abrahamsen Blomfeldt8 days1-0/+177
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This introduces a "fillItem" property to ShapePath. Similar to gradient, this enables filling a shape with any texture provider item, such as an image, a ShaderEffectSource or a layer-enabled item. Fixes: QTBUG-104121 Change-Id: I8748a90c825e8eb4655a4ac90648c6ae74420527 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* | | | | | | | | | | | Support drag and drop section reordering in the table viewSanthosh Kumar8 days1-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The new drag handler (QQuickTableViewDragHandler) in the header view allows the user to drag and drop row or column at the required index. At any point in time, there can be only one active handler, and depending on the type of operation, the corresponding handler consumes the pointer events. The user can customize the delegate using the new property 'containsDrag' when any corresponding drop section is activated while dragging a column or row. [ChangeLog][QtQuick][TableView] Added new property 'containsDrag' for the delegate, and it is set when a user drags a column or row on top of another delegate. This property is applicable only for HorizontalHeaderView and VerticalHeaderView. Task-number: QTBUG-100440 Change-Id: I52b1079559192f406e295aa34ca1d86acef61a6d Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | | | | | | | | | | | Update auto test for row and column reordering in quick table viewSanthosh Kumar8 days2-0/+289
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The auto test for quick table view was updated to verify new and existing public APIs. Task-number: QTBUG-100440 Change-Id: I86789f6b5e821dfc2ab059824d068b3e28eb3e10 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | | | | | | | | | | | qmlls: rename files when renaming qml componentsSami Shalayel8 days11-1/+152
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use the newly introduced helper classes and structs to pass information about file renaming operation to the client. Add some tests. For Qml Components who are renamed via qmldir: rename all of their usages but do not rename the defining qml file. Fixes: QTBUG-114993 Change-Id: Id5a1d87eac5adad8bbdaf9cbae70da129bb8d695 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | | | | | | | | | | | qqmllsutils: encapsulate usages and renamesSami Shalayel8 days1-90/+123
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prepare for QTBUG-114993 by encapsulating usages and renames into their own class instead of using lists everywhere. Implement equality testing for the tests, getters, automatic sorting in the constructor and append methods in those structs. Adapt usages and tests to the new classes. Also introduce a struct that models a file rename operation. Task-number: QTBUG-114993 Change-Id: I18320b0f0ef4132c714cc7a6da9ed2742d8a3ce0 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | | | | | | | | | | | make QQmlLSUtils a namespace instead of a classSami Shalayel8 days2-317/+466
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace the QQmlLSUtils class with a QQmlLSUtils namespace: the class had no members and only static members, so a namespace is actually better suited for it. Drop the QQmlLSUtils-prefix from all the structs and enums and move them into the QQmlLSUtils namespace. Adapt all usages and tests, and add qualifiers to DomItem where the compiler complained. Change-Id: Ib14234e77d96773c73177ca17bc038870710e77b Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* | | | | | | | | | | | Add PathRectangle, a PathElement for optionally rounded rectanglesEirik Aavitsland9 days2-0/+254
| |_|_|_|_|_|_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This new path element type is particularly useful for QuickShapes, where it can be used to mimic a Rectangle item. It provides the same API for specifying common and/or individual corner radii. [ChangeLog][QtQuick] Add PathRectangle, a PathElement for optionally rounded rectangles Fixes: QTBUG-123913 Change-Id: Ia0de252f70c665bd70f63aa31e3010584cc9cd8c Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* | | | | | | | | | | TypedArray: Preserve exact NaN bit pattern on fill()Ulf Hermann10 days1-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... as required by ECMAScript. Pick-to: 6.7 6.5 Change-Id: I31bc7e6a87e404a8e6d314c99f163f82208e13a1 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* | | | | | | | | | | QmlCompiler: Explicitly cast operations that result in QStringUlf Hermann10 days5-1/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We may be using QStringBuilder, and that can be stored in QVariant (and possibly other places). Fixes: QTBUG-125576 Change-Id: Ib31e31591a3333e51f1d5594ee05fdb8f0744714 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* | | | | | | | | | | QQuickAbstractButton: setAction will share its Accessible objectAleix Pol11 days4-2/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In cases where a button acts as a view for an action, provide the Action's accessibility information into the visual component so that it can convey the action's information into the accessibility infrastructure. This is done by creating a Accessibility proxy object in the button that will communicate the information from the action's accessibility as part of the button. If the properties of the Accessibility object in the button are modified, these values will prevail. Fixes: QTBUG-123123 Change-Id: Ibeddcc918616d717bb1704177d482ff88bfe99ef Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>