aboutsummaryrefslogtreecommitdiffstats
path: root/src/quickcontrols/universal
Commit message (Collapse)AuthorAgeFilesLines
* QuickControls: Add vertical and horizontal header view delegatesMohammadHossein Qanbari2025-03-065-50/+76
| | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]>
* 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 <[email protected]> Reviewed-by: Joerg Bornemann <[email protected]> Reviewed-by: Alexey Edelev <[email protected]>
* ContextMenu: add to text editing controlsMitch Curtis2025-02-289-0/+92
| | | | | | | | | | | [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 <[email protected]>
* 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 <[email protected]> Reviewed-by: Mitch Curtis <[email protected]>
* 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 <[email protected]>
* Take safe areas into account for Qt Quick Controls ToolBar and MenuBarTor Arne Vestbø2024-12-192-0/+10
| | | | | | | | | | | | | | | 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 <[email protected]>
* Compute implicitSize based on implicitContentSize in Container and subclassesTor Arne Vestbø2024-12-182-4/+4
| | | | | | | | | | | | 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 <[email protected]> Reviewed-by: Richard Moe Gustavsen <[email protected]>
* 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 <[email protected]>
* Universal: update style theme when system theme is changedMitch Curtis2024-09-205-10/+105
| | | | | | | | | | Does what b45629207ee32a3d80b6ea6553e8762eec8a86da did with the Material style with the Universal style. Fixes: QTBUG-128444 Pick-to: 6.8 Change-Id: I7bb10f2852f91d2c4a21dc30170220e1528387be Reviewed-by: Santhosh Kumar <[email protected]>
* 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 <[email protected]>
* Tumbler: fix warnings when swapping contentItemMitch Curtis2024-06-121-2/+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 <[email protected]> Reviewed-by: Vladimir Belyavsky <[email protected]> Reviewed-by: Richard Moe Gustavsen <[email protected]>
* 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 <[email protected]>
* Look up Segoe UI presence without triggering font aliasesTor Arne Vestbø2024-03-141-3/+4
| | | | | | Pick-to: 6.7 Change-Id: I5f594adda733336e1209bdca011da9b2e5709a00 Reviewed-by: Eskil Abrahamsen Blomfeldt <[email protected]>
* Dialogs: Depend on controls styles in QuickDialogs2QuickImplUlf Hermann2024-02-094-9/+19
| | | | | | | | | | | 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 <[email protected]>
* 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 <[email protected]> Reviewed-by: Mitch Curtis <[email protected]> Reviewed-by: Alexey Edelev <[email protected]> Reviewed-by: Qt CI Bot <[email protected]>
* tst_dialogbuttonbox: fail on warningsVladimir Belyavsky2023-11-291-1/+1
| | | | | | | | | | | | | | | | Enable fail on warnings for all tests in init() method. Fix the warning in DialogButtonBox::test_contentItemDeletionOrder() "DialogButtonBox.qml:14: TypeError: Cannot read property 'contentWidth' of null". With fc4ee77116624c784d8c42f2b8e5dbf2f78b6d89 we can use now the optional chaining for this. Also, as a drive-by change, replace 'var' with 'let' Task-number: QTBUG-98718 Change-Id: I9daf41fb76e297f7a1b8114b0e82c60e396ac7b3 Reviewed-by: Mitch Curtis <[email protected]>
* 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 <[email protected]>
* Remove all QML_DECLARE_TYPE from src and toolsUlf Hermann2023-11-182-4/+0
| | | | | | | | They are generally not useful for anything. Change-Id: I12e959ce9338e6eb7465633496c7921fa09a3fe8 Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: Fabian Kosmale <[email protected]>
* 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 <[email protected]>
* Controls: Improve various delegatesUlf Hermann2023-03-273-6/+23
| | | | | | | | | Their internal components should be bound, they should use required properties, and they should prefer IDs over the "parent" property. Change-Id: Iac61a4d7b9daf34928a1b41a29658e491e3ac39f Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: Mitch Curtis <[email protected]>
* Controls: Remove the model/modelData workaroundsUlf Hermann2023-03-273-7/+3
| | | | | | | | Now that model has modelData as anonymous property and also has useful properties for list models, we can remove the workarounds. Change-Id: I744247821fba3c14e5bfff125daeeb7a3128f3b5 Reviewed-by: Mitch Curtis <[email protected]>
* Fix build with -no-feature-settingsTasuku Suzuki2023-03-031-0/+2
| | | | | | Pick-to: 6.5 Change-Id: I3667e087b13fba6f9804b76d2d0bed2ffefbddbe Reviewed-by: Volker Hilsheimer <[email protected]>
* DialogButtonBox: Fix contentWidth warningsSze Howe Koh2023-02-211-2/+2
| | | | | | | | | | Warning: Property "contentWidth" not found on type "QQuickItem" Task-number: QTBUG-110934 Change-Id: I5c64ebbe1400e02d4a853a2cb69874c0b3ba3252 Pick-to: 6.5 6.4 Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: Mitch Curtis <[email protected]>
* QtQuickControls: Disambiguate static constantsFriedemann Kleint2023-02-071-11/+11
| | | | | | | | | | They cause clashes in CMake Unity (Jumbo) builds. Pick-to: 6.5 Task-number: QTBUG-109394 Change-Id: I6e7fbb1d3f33eda50f55257b6df5aaf47170eb57 Reviewed-by: Fabian Kosmale <[email protected]> Reviewed-by: Mitch Curtis <[email protected]>
* HeaderView: Use Label instead of Text in the delegatesRichard Moe Gustavsen2023-01-132-2/+2
| | | | | | | | | | | | | | The Text item will not follow the application font. So rather than using Text inside the delegates, use Label. HeaderView doesn't currently have a font property that can be set by the application, but using Label will at least ensure that it ends up using the same font set on a parent control (e.g ApplicationWindow, at the very least). Pick-to: 6.5 6.4 Change-Id: I9b10a7b9ac74e6f67f0644f3a2376f13e3da2c8d Reviewed-by: Mitch Curtis <[email protected]>
* HeaderView: ensure that the implicit size is greater than zeroRichard Moe Gustavsen2023-01-122-2/+12
| | | | | | | | | | | | | | | | | | | HorizontalHeaderView should have the same implicit height as the delegate items it contains. And this height is reflected by contentHeight. The problem is that the content height is zero at start-up, before the view gets populated with delegate items. The result is that the height of the view will then be zero at start-up, which can lead to TableView not loading any items at all. This patch will therefore ensure that the implicit height of HeaderView is 1 at start-up, so that the delegate items will be loaded. Once loaded, the implicit height of the view will be adjusted to the correct value. Pick-to: 6.5 Change-Id: I5181840665f648275e28dd8fe943e759797388fa Reviewed-by: Mitch Curtis <[email protected]>
* Spinbox: clip contentItemRichard Moe Gustavsen2022-12-191-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the text in a SpinBox is larger than its text field, then the text is drawn outside of the SpinBox covering the spinbox buttons. This patch will set a clip on the SpinBoxes, to ensure that the text is not drawn outside the bounds of the content item. The SpinBox implementation differs a bit from one style to the next, which means that some styles will only need to set a clip, while others will need a bit more change. Especially the Basic style will need to expand the size of the content item to make room for the focus rect (which the other styles don't have, or implement differently). There are also two versions of the SpinBox; One that has the up and down indicators placed on each side of the content item, and another that has them collected on only one side. It seems like the latter implementations has done a copy/paste of the padding from the former, and thereby has set a too large padding. This has also been fixed, as it's related to the clipping bug. Fixes: QTBUG-98355 Pick-to: 6.5 6.4 Change-Id: I2c1ce6d477cf809e2187fd80aecbc9edeb8e0c2d Reviewed-by: Mitch Curtis <[email protected]>
* Remove "2" from Qt Quick Controls directoriesMitch Curtis2022-12-0184-0/+4373
Qt Quick Controls 2 was named that way because it was a follow-up to Qt Quick Controls 1.x. Now that Qt Quick Controls 1 is no longer supported, we don't need to have "2" in the name. Work on this was already started for the documentation in 1abdfe5d5a052f2298b7bf657513dfa7e0c66a56. By doing this renaming a few weeks before feature freeze, it won't affect the release but still results in as little time possible spent manually fixing conflicts in cherry-picks from non-LTS releases as a result of the renaming. This patch does the following: - Renames directories. - Adapts CMakeLists.txt and other files to account for the new paths. A follow-up patch will handle documentation. It does not touch library names or other user-facing stuff, as that will have to be done in Qt 7. Task-number: QTBUG-95413 Change-Id: I170d8db19033ee71e495ff0c5c1a517a41ed7634 Reviewed-by: Mitch Curtis <[email protected]>