aboutsummaryrefslogtreecommitdiffstats
path: root/src/quickcontrols/fusion
Commit message (Collapse)AuthorAgeFilesLines
* QuickControls: Fix linkage of controls stylesUlf Hermann3 days1-0/+1
| | | | | | | | | | | | They need to link the styles they import so that the dependencies are clarified (and also they'll in fact need the linkage if we ever compile them in direct mode). Pick-to: 6.10 Task-number: QTBUG-137440 Change-Id: I6edaba4390dce4f9cc2b95586f28331192cc01ff Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix QQuickIconLabel action icon color being overridden by style defaultMitch Curtis14 days2-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Styles need a way to set the default icon color for controls. Until now, that was done like this: icon.color: "tomato" contentItem: IconLabel { icon: control.icon } This breaks the use case of e.g. an Action that sets its own icon.color, because the icon property of the control always takes precedence (see 146bc9517c56feda4eba34282d3cc53bd47b6267). This patch adds a defaultIconColor property to IconLabel, which allows styles to specify a color without overriding any potential action's icon: contentItem: IconLabel { icon: control.icon defaultIconColor: "tomato } If icon.color was explicitly set, it is used instead. This does mean that overriding the contentItem will result in the icon color being lost, but that is already the case for style customizations in general. All controls that set icon.color and using IconLabel to display their icon are affected and are therefore adapted: Button, CheckDelegate, DelayButton, ItemDelegate, MenuBarItem, MenuItem, RadioDelegate, RoundButton, SwipeDelegate, SwitchDelegate, TabButton, ToolButton. Add FlowPane to the shared folder of the baseline test and use it in the tests that we touch. This fixes two issues: - Using Pane as the background fixes text being invisible for some styles. - Using Flow provides the most space-efficient layouting of items now that we have more than would fit in the old layout. Task-number: QTBUG-87459 Change-Id: I455ce7202a46b7cfa7545650574e48ad72796675 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
* Context menus: rename control to editorMitch Curtis2025-11-123-8/+8
| | | | | | | | | | | | | | This better reflects what it is and avoids naming conflicts with the controls themselves. Pick down to 6.9 (where QQuickContextMenu was introduced) to avoid future cherry-pick conflicts. Task-number: QTBUG-133556 Task-number: QTBUG-134903 Pick-to: 6.9 6.10 Change-Id: If0af26c5f16ee56cc909fcc66d1421109786343e Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
* Change PopupType of textEditingContextMenu for Popup.Item on WaylandFrederic Lefebvre2025-10-311-1/+1
| | | | | | | | | | | | | | | | Use Popup.Item popupType when test is run on Wayland. Remove the need for a transient parent on Wayland that was causing several tests of tst_QQuickTextField to consistently fail. Fix the following failing tests on Ubuntu 24.04 wayland tst_QQuickTextField::contextMenuCopy, contextMenuCut, contextMenuDelete, contextMenuPaste, contextMenySelectAll, releaseAfterPressAndHold, touchscreenDoesNotSelect. Pick-to: 6.10 Change-Id: I5a411dae63ae36361ed83055a1eb4c87de17acae Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Fusion Button & RoundButton: bind icon.color to a palette colorOliver Eftevaag2025-10-082-0/+4
| | | | | | | | | | | | | | | The icon's color would adapt poorly to theme changes. A good example is the QML media player in qtmultimedia, with has a few buttons with icons and no text. When changing between a light and dark theme, the icon would still have the same color, and there would barely be any contrast between the icon and the button's background when using a dark theme. The binding created in this patch is taken from the Basic style. Pick-to: 6.10 6.8 Change-Id: I922823a9109fd252c5a4ed84aba1c0a36adec263 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Set explicit default security level of all files with default securityJan Arve Sæther2025-09-1777-0/+77
| | | | | | | | | | | | | | | | | | | | | | | | | The files (folders) already processed are listed in each issue in epic QTBUG-134547 These files were processed half a year ago. In order to make it clear that all of these files are already processed, mark them with an explicit default security header. For the record, this was generated with this script: find -E . -regex ".*\.(cpp|h|hpp|mm|qml|js)$" | xargs python3 ~/bin/add-cra-header.py in the folders listed in each subtask of QTBUG-134547 (add-cra-header.py only exist at my desktop, but it simply adds the default security header if it doesn't already have any existing security header) QUIP: 23 Fixes: QTBUG-134547 Pick-to: 6.10 6.9 6.8 Change-Id: Ieb8c78ea6561fdbdd27c7b13185ece853eedf80f Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
* Fusion: give TextArea a backgroundMitch Curtis2025-09-094-26/+42
| | | | | | | | | | | | | This is the same background as TextField. This will cause the implicitWidth for TextArea to be the same as TextField - i.e. a bit wider - whereas before it was only as wide as the text + padding. This fixes it not being visible, especially without placeholder text. Fixes: QTBUG-139715 Pick-to: 6.9 6.10 Change-Id: Ia736c2e282497f0a40bf8726adcc2838082ea5b4 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
* Fusion: Add missing revision to SearchFieldUlf Hermann2025-09-051-0/+3
| | | | | | | | Found during API review. Pick-to: 6.10 Change-Id: Ibac11d84f2adb2a8d051cdbbb5540bf2a54dbb59 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* QuickControls: Add revision to new property of FusionUlf Hermann2025-09-051-2/+2
| | | | | | | | | Found during API review. Pick-to: 6.10 Change-Id: I5bf0afacfb00d21b706890206169db8bbed335db Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Fusion ScrollBar: Use stronger colors in high contrast modeOliver Eftevaag2025-08-301-1/+6
| | | | | | | | | | | | The ScrollBar's handle would either use palette.dark or palette.mid. Using the outline colors instead should create more contrast between the background and the ScrollBar's handle, which is what we want for high contrast mode. Task-number: QTBUG-134971 Pick-to: 6.10 Change-Id: I3527f57f498415463016e3c8ec42b6081922a688 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Fusion Dialog [ButtonBox]: Add strong outline for high contrast modeOliver Eftevaag2025-08-272-13/+29
| | | | | | | | | | | The DialogButtonBox lacked an outline, which it should probably have, when a high contrast setting is enabled. The Dialog had a subtle outline, which we can make stronger. Task-number: QTBUG-134971 Pick-to: 6.10 Change-Id: I56a9032161c6fe7d21d0e1d4ccdd1edbdc8bfb70 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Fusion SplitView: Give the handle more contrast in high contrast modeOliver Eftevaag2025-08-261-2/+8
| | | | | | | | | | | The handle was using palette colors such as midlight, mid and dark. We probably want to use more polarizing colors, for better contrast between the background and the handle. Task-number: QTBUG-134971 Pick-to: 6.10 Change-Id: I79e2b5ba4750da2d662d815480a1ecc4923f37db Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Fusion RadioButton indicator: Improve contrast in high contrast modeOliver Eftevaag2025-08-261-0/+2
| | | | | | | | | | | | | | | The indicator's outer border has an somewhat arbitrary value that's calculated from the palette.window color. This border looks more subtle than most of the other controls outlines. If the system is running in high contrast mode, let's use the standard outline color instead for consistency and more contrast between the background and the indicator. Task-number: QTBUG-134971 Pick-to: 6.10 Change-Id: Ifcd82a24f3d763f34a4c8ae386f05fb6c05d175f Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Fusion: Give the Tumbler an outline in high contrast modeOliver Eftevaag2025-08-261-0/+7
| | | | | | | | | | | The Tumbler previously didn't have a background. Now it's a simple transparent Rectangle, with a border in case a high contrast system setting is enabled. Task-number: QTBUG-134971 Pick-to: 6.10 Change-Id: Idc6eb43795e0ce1128f19ad5e95ad618a18ae65c Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Fusion Popup: Give the border more contrast in high contrast modeOliver Eftevaag2025-08-261-1/+1
| | | | | | | Task-number: QTBUG-134971 Pick-to: 6.10 Change-Id: I12a8051997113c37a7d700438be783f5af28c594 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Fusion ProgressBar: Make the border more noticable in high contrast modeOliver Eftevaag2025-08-261-1/+1
| | | | | | | | | | | | In dark mode, the ProgressBar's contentItem would have a dark border, while the background's border would be light. I think it looks better when the border has a consistent color. Use Fusion.outline to achieve this in high contrast mode. Task-number: QTBUG-134971 Pick-to: 6.10 Change-Id: Id79bd34fa1a9a2e3303cefd3b1253375e70a06f0 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Fusion MenuSeparator: Make it stronger and wider in high contrast modeOliver Eftevaag2025-08-261-2/+2
| | | | | | | | | | | | | | The MenuSeparator used a subtle color based on the darkShade color from the Fusion singleton. In high contrast mode, we want it to have more contrast from the Menu's background. And, while subjective, I personally think it could be wider too, in order to emphesize the separation of MenuItems. Task-number: QTBUG-134971 Pick-to: 6.10 Change-Id: Ifa3e178831dafbf8b1d74e00da8e81d733efbe33 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Fusion style: Make [highlight] outline color stronger in high contrastOliver Eftevaag2025-08-252-1/+23
| | | | | | | | | | | | | | | | The outline color is used by buttons background delegate. It makes sense to emphasize the background's border more when a high contrast system setting is enabled. In addition, add property QQuickFusionStyle::highContrast for convenience. This can replace the long Application.styleHints.accessibility.contrastPreference === Qt.HighContrast bindings. Task-number: QTBUG-134971 Pick-to: 6.10 Change-Id: I81b1c29e4eb6ec8acfe98a5c43957b747ec59956 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* SearchField: Use highlightedIndex instead of currentIndex in stylesDilek Akcay2025-08-111-2/+2
| | | | | | | | | | As highlightedIndex property is added to SearchField, relevant style implementations that previously relied on currentIndex have been updated to use highlightedIndex. Pick-to: 6.10 Change-Id: Ib8bc065c92aa95a1ea5ea3cd5c3825bbd15c2f2d Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* VerticalHeaderViewDelegate: set 6.10 with set_source_files_propertiesMohammadHossein Qanbari2025-08-081-0/+3
| | | | | | | | | | | | Found in 6.10 QML API review amend 9601b74dabed53e93a7a5144d4c1fadb7876db18 Task-number: QTBUG-137478 Pick-to: 6.10 Change-Id: I3a26307f304277dfd259da3736d1069a43c0cd03 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* HorizontalHeaderViewDelegate: set 6.10 with set_source_files_propertiesMohammadHossein Qanbari2025-08-081-0/+3
| | | | | | | | | | | | Found in 6.10 QML API review amend 9601b74dabed53e93a7a5144d4c1fadb7876db18 Task-number: QTBUG-137478 Pick-to: 6.10 Change-Id: I11fcf5317add4c07e211cff70d3b2e86bd470000 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Add Fusion style for SearchFieldDilek Akcay2025-07-0212-0/+167
| | | | | | | Task-number: QTBUG-137318 Pick-to: 6.10 Change-Id: I01112d5c37e49a2423249fb4065be91c6f7964f3 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* QuickControls: Add vertical and horizontal header view delegatesMohammadHossein Qanbari2025-03-065-67/+86
| | | | | | | | | | | | | | | | | | | | | | Implement QQuickHeaderViewDelegate as the base class for header view delegates, introducing 'headerView' and 'orientation' properties. Separate previous delegate settings into HorizontalHeaderViewDelegate and VerticalHeaderViewDelegate components for Basic, Fusion, and Imagine styles. This change improves the modularity and reusability of header view delegates across different styles. It also allows for more consistent behavior and easier customization of header views. A test suite has been added to verify default property settings and ensure the new components work without warnings. [ChangeLog][QtQuickControls][HeaderView] Add dedicated delegate components for vertical and horizontal header views. Task-number: QTBUG-70326 Change-Id: I8831e77f6909bdae13c3a7262145ab156f63a59a Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* CMake: Avoid leaking Private dependencies for style pluginsAlexandru Croitor2025-02-281-2/+2
| | | | | | | | | | | | | | | Use qt_internal_extend_target instead of target_link_libraries for the Qt Quick style plugins. This wraps their private module dependencies in BUILD_INTERFACE genexes. It avoids leaking the deps to consumers of the style plugins in a static build, where the private modules are not in scope by default. Pick-to: 6.8 6.9 Change-Id: Iac4b9d97c112fa829a60170d7fdad60f97e43f1f Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
* ContextMenu: add to text editing controlsMitch Curtis2025-02-289-0/+90
| | | | | | | | | | | [ChangeLog][Controls] TextField and TextArea now provide a ContextMenu by default. If you already have a custom context menu for these types, ContextMenu will not open its own on e.g. right click. Fixes: QTBUG-35598 Pick-to: 6.9 Change-Id: I0897a7ba5e1b5b6d5425c80cbc6f2550c904605b Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Take safe areas into account for Qt Quick Controls DrawerTor Arne Vestbø2024-12-191-4/+4
| | | | | | | | | | | When the drawer is pulled in from the side we want it keep its content away from the non-safe areas, while still drawing the background edge to edge. Pick-to: 6.9 Change-Id: Iff145df719f5746cbdb1d3c13494967c5993c6e6 Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Compute implicitSize based on implicitContentSize in Popup and subclassesTor Arne Vestbø2024-12-195-10/+10
| | | | | | | | | | | | Popup uses a Pane as its popup item, so now that Pane reflects its explicitly set contentWidth/Height through implicitContentWidth/Height we can use the same expression for implicit width/height as regular controls, which hooks us into the safe area binding loop detection as well. Pick-to: 6.9 Change-Id: I3709978dae0271d7daf44fc6988f09f03df15b1f Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Take safe areas into account for Qt Quick Controls ToolBar and MenuBarTor Arne Vestbø2024-12-192-3/+12
| | | | | | | | | | | | | | | A ToolBar and MenuBar is commonly placed in the header/footer/menuBar of an ApplicationWindow, where we don't do any automatic padding to account for the safe area. By adding the safe area margins as padding to the controls, we ensure that the control's background flows into the non-safe area, while the content item of the control (the toolbar or menu bar content) is kept within the safe area. Pick-to: 6.9 Change-Id: I5fad7394beaa01ae8ed142e4e2e42c5bffaab9fa Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Compute implicitSize based on implicitContentSize in Container and subclassesTor Arne Vestbø2024-12-183-6/+6
| | | | | | | | | | | | Now that Container reflects its explicitly set contentWidth/Height through implicitContentWidth/Height we can use the same expression for implicit width/height as regular controls, which hooks us into the safe area binding loop detection as well. Pick-to: 6.9 Change-Id: If0a710a5eb4a35c91d02d7170b5e03e457e6bc12 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Compute implicitSize based on implicitContentSize in Pane and subclassesTor Arne Vestbø2024-12-186-12/+12
| | | | | | | | | | | Now that Pane reflects its explicitly set contentWidth/Height through implicitContentWidth/Height we can use the same expression for implicit width/height as regular controls, which hooks us into the safe area binding loop detection as well. Pick-to: 6.9 Change-Id: Ie31b740a1e405341fc5f0ed9673b213292e4afd9 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
* Fix BusyIndicator being hidden when running is changed quicklyMitch Curtis2024-10-022-2/+11
| | | | | | | | | | | | | | | | If running is set to false and then true within a short period, BusyIndicatorImpl's OpacityAnimator cancels the 1 => 0 animation (which was for running being set to false), setting opacity to 0 and hence visible to false. This happens _after_ setRunning(true) was called, because the properties were set synchronously but the animation is asynchronous. To account for this situation, we only hide ourselves if we're not running by storing and checking our running state. Fixes: QTBUG-85860 Pick-to: 6.5 6.7 6.8 Change-Id: I220dfb78f00028e4a12a92fc14082006e1844002 Reviewed-by: Doris Verria <doris.verria@qt.io>
* Fusion: remove unnecessary QtQuick.Window import in SwitchIndicator.qmlMitch Curtis2024-07-091-1/+0
| | | | | | | | | | | | As discussed in the 6.8 QML API review: https://codereview.qt-project.org/c/qt/qtdeclarative/+/565442/1/qml-api-review/QtQuick/Controls/Fusion/impl/SwitchIndicator.qml#5 Amends 683293c019b149191feed50fb6ebcb4975a27592. Pick-to: 6.8 Change-Id: I8546f1b0d70a6077e7eae78bf038f9e0b1a7e5b3 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* Dialog: Hide title if inside a popup windowOliver Eftevaag2024-06-211-1/+1
| | | | | | | | | | | | Popup windows with the Qt::Dialog flag, will display the title in its window decoration. Because of this, it's redundant to also display the title inside the dialog. Pick-to: 6.8 Change-Id: Ib052a950216248c889983361063c8e46f4cffdfa Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Adjust the checkbox and radio button to be lighter for fusion-styleSanthosh Kumar2024-06-193-2/+5
| | | | | | | | | | | | | The checkbox and radio button for fusion style use palette base color which makes it hardly visible when dark mode is used in the application. This patch updates the color of the checkbox and radio button indicators to be lighter aesthetically. Fixes: QTBUG-123527 Pick-to: 6.5 6.7 6.8 Change-Id: I570db5f44cb6f6dc83a8e0ba7586ee8d36a874da Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Tumbler: fix warnings when swapping contentItemMitch Curtis2024-06-121-4/+4
| | | | | | | | | | | | | | | | | | | Referring to the contentItem property of Tumbler from within the contentItem itself was a way to avoid using ids (which prevent deferred execution). However, the new contentItem may not have a delegateHeight property, so we move the declaration up to the Tumbler itself to ensure that it's always available. Until QTBUG-11984 is implemented, we have to use the "__" prefix to mark the property as "private" and (hopefully) lessen the chance that it will show up in auto-completion within users' IDEs, since it's not part of the public API (this is also why we've historically avoided declaring properties here). Fixes: QTBUG-119647 Pick-to: 6.5 6.7 Change-Id: Ie8646e605b0c7b1e804a6c4da4046613f958e51d Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> Reviewed-by: Vladimir Belyavsky <belyavskyv@gmail.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Remove the use of GENERATE_CPP_EXPORTS argumentAlexey Edelev2024-06-111-1/+0
| | | | | | | | | The behavior that argument was enabling is the default one now. Pick-to: 6.8 Task-number: QTBUG-90492 Change-Id: I11711d4c794f0b22169abb595b8ffad2eeb1300d Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* ComboBox: fix popup palette inheritance, part twoMitch Curtis2024-06-061-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 0ad15c4101889a22bf9ff761e7d20ec515f46514 fixed the colors of ComboBox's popup, but as a drive-by, tried to simplify several bindings to palette properties. For example: background: Rectangle { color: control.palette.window } became: background: Rectangle { color: palette.window } I'm guessing I thought that the standard Item palette propagation would kick in there and so the "control" part wasn't necessary. If ComboBox.qml's popup had a line like this palette.window: "red" then it would work, because the role is explicitly set. By setting a role in QML, QQuickPaletteColorProvider::m_requestedPalette is set for that item (Popup, in the example above). Just having palette: control.palette isn't enough, because no role has been set and hence m_requestedPalette won't be allocated and it will use the default values. This patch restores the previous code to fix the regression. Fixes: QTBUG-125529 Pick-to: 6.5 6.7 6.8 Change-Id: I2103b81a34d9e7f17992d0355befb8b904134db1 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* ComboBox: fix popup palette inheritanceMitch Curtis2024-05-081-3/+4
| | | | | | | | | | | | | 54a2a35f17d5e5d1793af63b76993a583e10ab41 fixed the theme/accent/primary inheritance of the Material and Universal style's ComboBox popups. This patch makes an equivalent fix for styles that use palettes. Now the Basic and Fusion ComboBox popups will have the correct colors in both light and dark modes. Fixes: QTBUG-124474 Pick-to: 6.5 6.7 Change-Id: I3e3fcdc9d6fe75f195cc4f4707eac6d30413121f Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Fusion: Revert work-around for TabButton's y property not updatingOlivier De Cannière2024-04-181-9/+3
| | | | | | | | | | | | QTBUG-108807 described how the first button of a TabBar wouldn't update its y property on the Fusion style. This is because the binding would get removed. With the underlying issue (QTBUG-120033) now fixed by the previous commit, 3f6111588e0ab549607ae2eddb9880a87f34f022 which worked around the issue can be reverted. Pick-to: 6.7 6.5 Change-Id: I95687c8718b08b69897f4671e100fa4b9e61624f Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Make inactive gradient duller colored for checked Switch in Fusion styleØystein Heskestad2024-04-161-2/+5
| | | | | | | | | | | | Before this change it was hard to tell the state of the Switch in an inactive window using Fusion style in light mode. Make the gradient retain the color, but semi-transparent when inactive. This makes it darker if in DarkMode and paler if not. Fixes: QTBUG-123528 Change-Id: I14496519445fde4d4744002a59d07ed7b50252fd Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Dial: fix handle position in the Fusion styleMitch Curtis2024-03-201-1/+1
| | | | | | | | | | | The handle position has slightly changed, possibly as a result of the recent improvements in e.g. d93ca833f65893653071d7ba33fd129fe3db53dc. Account for that. Fixes: QTBUG-123394 Pick-to: 6.6 6.7 Change-Id: I30155a9aac286e02b5f91e09f48392b3156c18dc Reviewed-by: Matthias Rauter <matthias.rauter@qt.io>
* Dialogs: Depend on controls styles in QuickDialogs2QuickImplUlf Hermann2024-02-094-10/+21
| | | | | | | | | | | This forces them to be built before, making their qmltypes available to the subsequent build steps. Having the styles as linkable backing libraries also makes their C++ types available to qmlsc's direct mode. Pick-to: 6.7 6.6 Task-number: QTBUG-121643 Change-Id: I24688b325d27f16e7cc77219cf481b3b30ca52a3 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QuickControls: Link the impl libraries into the base modulesUlf Hermann2024-02-022-2/+2
| | | | | | | | | | | | | | | This forces the build system to build them before, making the qmltypes files available to the base modules' build steps. The linker might even actually link the libraries and avoid the excessivle plugin loading that way. To encourage that, also drop the pointless NO_PLUGIN_OPTIONAL. Pick-to: 6.7 6.6 Task-number: QTBUG-121643 Change-Id: Ifd9082a5927deac8c9d67edf4104338ddaa35aa5 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Fix BusyIndicator invisibility under Fusion styleTim Angus2023-12-211-2/+11
| | | | | | | | | | | | | | | | When an initially invisible BusyIndicator is first made visible under the Fusion style, it does not in actuality become visible. This is because the QQuickFusionBusyIndicator::itemChange() function ignores ItemVisibleHasChanged, so the appropriate actions don't take place. The fix is a partial copy and paste of QQuickMaterialBusyIndicator::itemChange's implementation which has identical logic except for calling the appropriate ::itemChange() super function. Task-number: QTBUG-108808 Pick-to: 6.7 6.6 6.5 Change-Id: Id92c62a1eef4fc278ab91097f04db5b41a5d2c8a Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Fusion style: Set topInset instead of y and height for the backgroundDoris Verria2023-12-121-3/+10
| | | | | | | | | | | | | | | | | | If the tab button is checked, we want the background to appear raised, and if not, we want it to appear recessed, with an offset of 2. To do that, we set y and height in the background delegate of the TabButton, and binded them to the checked property. We can do this by setting the topInset instead as it does exactly the same thing, and reevaluates the height for us, without the extra code. This is done to not only make the code cleaner, but also as a workaround to a bug in the evaluation of bindings when setting the y property in this case. Fixes: QTBUG-108807 Pick-to: 6.5 6.6 6.7 Change-Id: I7b3639deb1162c6bada81e377a36e090dc398654 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* tst_dial: fail on warningsVladimir Belyavsky2023-11-221-3/+4
| | | | | | | | | | | | | Enable fail on warnings for all tests in init() method. Also fix last warnings, like "tst_controls::Basic::Dial::test_nullHandle() qrc:/qt-project.org/imports/QtQuick/Controls/Basic/Dial.qml:43: TypeError: Cannot read property 'width' of null" And finally, as a drive-by change, replace 'var' with 'let' Task-number: QTBUG-98718 Pick-to: 6.6 6.5 Change-Id: I80d0a8319791182a1429e5541c80bdac1131d1c0 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Menu: fix contentItem's interactiveMohammadHossein Qanbari2023-11-161-2/+2
| | | | | | | | | | | | | | The interactive property of the Menu's contentItem depends on its Menu (control) when Window.window is valid. In the case of a fixed-height menu, even if the contentItem's height is smaller than Window.window.height, the interactive property of the contentItem would be false if the menu's height is smaller than the window's height and also smaller than its contentItem's height. Fixes: QTBUG-93856 Pick-to: 6.6 6.5 6.2 Change-Id: If95080250c3953d4293a9e1dbcc6225d21ee034f Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* TreeViewDelegate: don't use deprecated APIRichard Moe Gustavsen2023-08-151-3/+3
| | | | | | | | | | | | | | | | | TableView.modelIndex(column, row) was deprecated in Qt 6.4 (291d3ed0da) in favor of TableView.index(row, column). But the TreeViewDelegates are still using the deprecated API for the edit delegates (added in Qt 6.5, 21bf976a41), which will cause warning messages to be printed. This patch will rewrite the offending lines in the TreeViewDelegates to use TableView.index(row, column) instead. Pick-to: 6.6 6.5 Task-number: QTBUG-109542 Change-Id: I41c0c18934493611663b759c8eb3b4fed2510cc6 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Make properties in Qt Quick Controls FINALOliver Eftevaag2023-06-021-4/+4
| | | | | | | | | | | | | | | Without setting the FINAL flag, properties can be shadowed by users. This can both cause confusion for non-experienced users, and it causes issues with qmlsc. [ChangeLog][Important Behavior Changes][Controls][SplitView] The resizing property is now FINAL, meaning that it can no longer be shadowed by user declared properties. Task-number: QTBUG-108739 Change-Id: Ie5a223d28a135ff55b3f8861f0ac257ba5bbe0eb Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* BusyIndicator: stop animation when not visibleMitch Curtis2023-05-011-1/+1
| | | | | | | | | | | | | | | | | This prevents unnecessary CPU and GPU usage with the iOS and Fusion styles. It's not currently possible to test this without adding objectNames to each animation, which relies on us remembering to do so. Even then, not all styles use QML animations in their BusyIndicator implementations - some use e.g. QQuickAnimatedNode). Also, there is no QML API to find QObject children of a given type (animations) - I've created QTBUG-113264 to propose such an API. Task-number: QTBUG-50161 Pick-to: 6.5 Change-Id: Ieafb5f2f1a9703d4dc26e4f934dbcc86e2709445 Reviewed-by: Doris Verria <doris.verria@qt.io>