aboutsummaryrefslogtreecommitdiffstats
path: root/src/quickcontrols/macos
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>
* SearchField: Prevent clipped search icon on macOS 26(Tahoe)Dilek Akcay3 days1-2/+1
| | | | | | | | | | | | | macOS 26 (Tahoe) changed NSSearchFieldCell: the magnifying glass icon is taller. Drawing it at the button's full rect causes the top to be clipped by the bezel, though the clear icon remains fine. To avoid this, we render the search icon at a fixed, smaller size to prevent upscaling and eliminate clipping after 26.0. Fixes: QTBUG-141776 Pick-to: 6.10 Change-Id: Ifb5f4476253e55e700b8b89e864afdbb2ceedd8f Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Set icon size for native stylesMitch Curtis14 days1-0/+3
| | | | | | | | Otherwise they use the implicit size of the image. Pick-to: 6.8 6.10 Change-Id: I29a57bd9339574e7107a5fe471f2d246d7f97b86 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
* Fix QQuickIconLabel action icon color being overridden by style defaultMitch Curtis14 days1-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Slider/RangeSlider: ensure empty groove has the correct lookRichard Moe Gustavsen2025-10-242-33/+17
| | | | | | | | | | | | | | | | | | | With Liquid Glass enabled, the groove of the Slider and RangeSlider had a border which made the groove look taller than the track/progress (which had no border). But looking more carefully at the native NSSlider in Xcode, it shows that the Slider groove (and track) should no longer have any border at all (which is different from how it looks in macOS 15). This patch will therefore draw the track without a border when running with Liquid Glass. Using nested rectangles in order to draw the slider in the macOS 15 style was also unnecessary, as we can achive the same look by using a single Rectangle. Pick-to: 6.10 6.9 6.8 6.5 Change-Id: I9d03a212f39857a448d103372636e9a12a7cbd3f Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* ProgressBar: ensure the groove resepect the width of the controlRichard Moe Gustavsen2025-10-241-2/+4
| | | | | | | | | | | | | | | As it stood, the progress bar groove would not be resized according to the size of the control, since it lacked at width binding. This patch will make sure to resize the groove correctly. It also fixes a binding loop warning related to the use of Loaders in combination with childrenRect in the same go. Fixes: QTBUG-141182 Pick-to: 6.10 6.9 6.8 6.5 Change-Id: I1aa87db339b04686ca521b486e4c7a05683a7679 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* mac style: update SwitchRichard Moe Gustavsen2025-10-082-72/+159
| | | | | | | | | | | | | | | | | | On macOS Tahoe 26, the native AppKit Switch has changed apparance to become wider, with a liquid glass effect on the handle. This patch will therefore update the Controls Switch to do the same. That is, change the Switch to be equally wider if the app is running with liquid glass, and change the appearance of the handle to look a bit closer to the native handle. Note that the Switch in Controls has always been drawn 'manually' with QML, so this change is not really fixing a regression, but is more of a style update. Task-number: QTBUG-138942 Change-Id: I1c7c9beb35845dac29c0fc67bd0813fffa313116 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* ScrollView: use padding if no rightPadding or bottomPadding is setMorteza Jamshidi2025-10-061-2/+6
| | | | | | | | | | | | | Because rightPadding and bottomPadding properties are set in the windows and macos ScrollView style implementation if the user try to set the padding property there will be no effect. So with this change we make sure that the padding property is used if rightPadding or bottomPadding aren't explicitly set by the user. Fixes: QTBUG-123631 Change-Id: I5078cec1774cef7b99e0735022ddb4ce84cd08df Pick-to: 6.10 6.8 6.7 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* mac style: update Slider and RangeSliderRichard Moe Gustavsen2025-09-234-44/+238
| | | | | | | | | | | | | | | | | | | | | | | | | | | On macOS Tahoe 26, the drawing of a Slider and RangeSlider using the mac style is broken. Nothing is drawn if we continue to use [NSView drawRect:], [NSView bitmapImageRepForCachingDisplayInRect:] or [CALayer renderInContext:] (and similar API) for drawing those controls, most likely since the handle has a liquid glass effect. This patch will therefore draw the mentioned controls using QML instead. The sliders and the switch used to share the same SwitchHandle.qml for drawing the handle, but their appearance has changed too much to justify that. So this patch will also add a new SliderHandle.qml that only Slider and RangeSlider will share. This handle will also mimic a liquid glass effect when running in an app with liquid glass enabled. As it stood, we also used to draw a Slider and a RangeSlider differently since there is no native RangeSlider in AppKit. To instead keep them aligned visually, and to also keep the code complexity down, we now always draw the Slider using QML, even when not running with liquid glass. Pick-to: 6.10 6.9 6.8 6.5 Task-number: QTBUG-138946 Task-number: QTBUG-138942 Change-Id: I21397268d6f62cbc8cd2ca24f81b63e5c80d1815 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Set explicit default security level of all files with default securityJan Arve Sæther2025-09-1743-0/+43
| | | | | | | | | | | | | | | | | | | | | | | | | 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>
* mac style: fall back to draw ProgressBar manually on macOS Tahoe 26Richard Moe Gustavsen2025-09-091-3/+89
| | | | | | | | | | | | | | | | | | On macOS Tahoe 26, the drawing of a ProgressBar using the mac style is broken. Nothing is drawn if we continue to use [NSView drawRect:], [NSView bitmapImageRepForCachingDisplayInRect:] or [CALayer renderInContext:] (and similar API) for drawing an NSProgressIndicator. This patch will therefore implement a fall back approach where we draw the ProgressBar manually when we detect that the current version of macOS is running with liquid glass support. Pick-to: 6.10 6.9 6.8 6.5 Task-number: QTBUG-138947 Task-number: QTBUG-138942 Change-Id: I26faea6e24d48bf0cb7bf2cd2b114d6ca2c2825f Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Add set_source_files_properties for SearchFieldDilek Akcay2025-08-061-0/+4
| | | | | | | | | | Added set_source_files_properties to configure build settings for SearchField in 6.10. Found in 6.10 QML API review, QTBUG-137478. Pick-to: 6.10 Change-Id: Ieff5ff3c737ee2c9ddd7a261333eea777d7ef03e Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* macOS style: Give Switch an outline when "Increase contrast" is enabledOliver Eftevaag2025-08-052-14/+26
| | | | | | | | | | | | | | | | | | | | | The Switch doesn't use any elements from the QuickNativeStyle module and thus won't automatically get an outlined pixmap to use as a background. In other words, we have to create the outline ourselves. Luckily, in 6.10, we have the necessary API to do just that. To make the Switch's look and feel be as similar to a native macOS switch as possible, we'll have to give both the background and the handle an outline. Since Rectangle renders its border inwards, I had to wrap the SwitchHandle's root Rectangle in a new, slightly larger Rectangle, which is normally invisible, unless "Increase contrast" is enabled. This was done, so that the borders for both the SwitchIndicator and the SwitchHandle will overlap, without causing the outline to look twice as thick. Pick-to: 6.10 Change-Id: Idc1f02a230894ccce4ce211ef9499c5e729d651c Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Add macOS style for SearchFieldDilek Akcay2025-06-032-0/+66
| | | | | | Pick-to: 6.10 Change-Id: I156efd2922c3ad613943ad5fec4eea035b991a6e Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Use platform theme's palette in macOS styleTor Arne Vestbø2025-04-221-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unlike most other styles the macOS style didn't initialize QQuickTheme with a style specific palette (either directly or via a custom theme class). Instead, we would indirectly pick up the platform theme palette when QQuickStylePlugin::createTheme called QQuickStylePrivate::readPalette to read palette settings, as we then default-constructed a QPalette, which picks up its colors from QGuiApplicationPrivate::app_pal, which in turn is based on platform theme palette, via QGuiApp's basePalette. However QQuickStylePlugin::createTheme only initialized the System palette of QQuickTheme, which meant that we failed to use any role specific palettes that the platform theme provided. In addition, because we only initialized the palette once, when creating the theme, we failed to pick up any changes to the platform theme's palette. To fix this we simply tell the QQuickTheme to prefer the platform theme for its palette, which means any query to the theme will go through the platform theme. This also means we don't need to hook into QtQuickControls2StylePlugin::updateTheme() to re-initialize the palette. Technically we do have the same problem with the theme's fonts, but for that we don't have a way to instruct the theme to use the platform theme. Pick-to: 6.9 6.8 6.5 Change-Id: I56eb278a80b184397114282839e958d61bd0028e Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Doris Verria <doris.verria@qt.io>
* CMake: Prevent creation of private modules without private headersAlexandru Croitor2025-04-071-0/+1
| | | | | | | | | | | | Add NO_PRIVATE_MODULE to the creation flags of module that don't have any private headers. There's no point in creating private modules for them. Amends e053cefe0894ef253764ce4a0771a9058c693e7b Task-number: QTBUG-132526 Change-Id: I16caacdbe2af297a1a8c980725b542dd20080041 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
* ContextMenu: add to text editing controlsMitch Curtis2025-02-289-0/+93
| | | | | | | | | | | [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>
* Compute implicitSize based on implicitContentSize in Popup and subclassesTor Arne Vestbø2024-12-192-4/+4
| | | | | | | | | | | | 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-191-4/+4
| | | | | | | | | | | | | | | 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-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 <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-181-2/+2
| | | | | | | | | | | 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>
* Set PAST_MAJOR_VERSIONS to 2 in macOS and Windows' impl modulesMitch Curtis2024-11-121-1/+1
| | | | | | | | | | | This is in line with the PAST_MAJOR_VERSIONS of the public modules and avoids duplicate entries in qmldirs, which cause issues in Design Studio. Fixes: QTBUG-130524 Pick-to: 6.5 6.8 Change-Id: I87e1b0d3ea6944851e4882601c15c2cf8ff4180c Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Adjust Menu shadow opacitiesKaj Grönholm2024-11-011-1/+1
| | | | | | | | | | Return menu shadow opacities to same they were before Qt 6.8.0. Task-number: QTBUG-130582 Pick-to: 6.8 Change-Id: Ic47732e7664b7fcdfef5153f3af3b9810a184a7d Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* macOS Dialog: Don't display title twice when using popup windowsOliver Eftevaag2024-09-201-1/+1
| | | | | | | | | | When setting popupType to Popup.Window, the title will appear inside the popup's window decoration. It will thus be redundant to also render the title as text inside the popup window's scene. Pick-to: 6.8 6.8.0 Change-Id: I2ae48096a21315c79eb1ce2e7a0ed48931800a24 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Menu: adjust shadowOffset after recent changes to MultiEffectRichard Moe Gustavsen2024-09-191-3/+3
| | | | | | | | | | | MultiEffect recently changed the implementation of shadowOffset. This means that the usage of it in Menu.qml needs to be updated as well on macOS and Windows, otherwise no drop-shadow will be visible. Pick-to: 6.8 6.8.0 Change-Id: Iafb51d6140e3319e458bb4af0051af27ab228d1f Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
* QQuickPopup: support popups with negative insetsRichard Moe Gustavsen2024-06-241-33/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A Popup can have negative insets. This means that the the background will be drawn outside the bounds of the popup. This is fine when the popup is an item in the scene, since items are allowed to draw out-of-bounds. But when placing the popup inside a window, this is no longer true; Since the window will be resized to the same size as the popup, the background will be clipped. Since we plan to make popup windows the default in Qt 6.8, this clipping will quickly be seen as a regression. This issue can be seen if opening a context menu in the Imagine style, since the menus in that style use negative insets to draw a drop-shadow outside the popup. In order to make sure that we end up drawing the whole popup also when using popup windows, this patch will ensure that we resize the window to also include the (negative) insets. By positioning the popupItem inside the window according to the insets, and at the same time, move the window a bit back and up accordingly, the whole popupItem will be visible and end up at the requested position. With this change, the menus in the Imagine style will be drawn correctly. So update the macOS and Windows styles as well so that they all implement shadows the same way. This also allowes us to remove some early changes done to QQuickPopupItem, like overriding the contains() function. Pick-to: 6.8 Change-Id: I7a0b597bc768d3c485a125c644139dfc7eb0b8ab Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Controls: replace Qt.styleHints with Application.styleHintsMitch Curtis2024-06-216-14/+14
| | | | | | | | | | | | | | As mentioned in QTBUG-95540, using the latter provides better type information for tooling, and avoids the "this property only exists on the object if Quick has been imported" issue. Replace QtQml import in Fluent style's Config.qml with QtQuick to provide access to the Application type. Fixes: QTBUG-126512 Pick-to: 6.5 6.7 6.8 Change-Id: I4aac22e54f3b522f74acafd467ce22139352c9dd Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QQuickMenuItem: add implicitTextPadding and textPaddingRichard Moe Gustavsen2024-05-291-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add the properties "implicitTextPadding" and "textPadding" to MenuItem. They can be used by the style to ensure that all MenuItems inside the same Menu end up left-aligned WRT text. Each MenuItem should set implicitTextPadding to be the needed space from the left edge of the contentItem to the text label. QQuickMenu will then iterate over all the MenuItems inside the same Menu, and set textPadding to be the maximum implicitTextPadding found. All MenuItems should then use textPadding (which will end up the same for all MenuItems) to position the text. This API is meant to solve the problem that MenuItems inside a single Menu can have different contents. Some can be checkable, some can have an icon, some are just plain text. And for several of our styles (e.g macOS and Windows), we want the text to be left-aligned regardless of that. Without this API, The checkmark inside a checkable MenuItem would be left-aligned with the text inside a plain MenuItem etc. [ChangeLog][Controls][MenuItem] A MenuItem now has two new properties (implicitTextPadding and textPadding) that can be used for aligning the text across all MenuItems inside a Menu. Change-Id: I1f2248b31c63d6b9780d8fc77229a8b902362f70 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
* Menu: add insets to the menus, to accommodate for drop shadowsRichard Moe Gustavsen2024-05-281-4/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | Several of the styles offers a Menu with a drop shadow. And the shadow is drawn on the outside of the Menu. This works fine when the menu is shown as an item in the scene, since Quick allows controls to draw out-of-bounds. But when we now place the Menus inside native windows, this will no longer be the case, as the windows will be resized to fit the Menus, shadows excluded. To solve this, this patch will make the Menus bigger, without touching the size of the background, so that they include the drop shadows. This is easily done by pushing the background items a bit in, using insets. The next issue is that when the application, or the MenuBar, requests a Menu to open at at specific position, we want the top left corner of the menu frame to be placed at this position. But since the Menu background is now shifted into the Menu, we need to teach QQuickPopup and and QQuickMenu to take insets into account when positioning a popup/menu. Taking the insets into account like this should be fine, since they're documented to be used for this exact purpose, of adding drop shadow effects. Change-Id: I2e5f0bcf14100d92dc4cd3c2cb7630601c0c1320 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Merge remote-tracking branch 'origin/dev' into nativemenusRichard Moe Gustavsen2024-05-261-2/+2
|\ | | | | | | Change-Id: I4dbf262105ab7bfd2ae9288acd0f9ef4306e8d48
| * CMake: Move add_subdirectory(impl) calls for styles to the frontAlexandru Croitor2024-05-231-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Otherwise in a static build on macOS we get the warnings below, which happen when a target references a dependency that has not been created yet. CMake Warning at qtbase/cmake/QtFindPackageHelpers.cmake:551 (message): Could not find target Qt6::QuickControls2MacOSStyleImpl to query its package name. Defaulting to package name Qt6QuickControls2MacOSStyleImpl. Consider re-arranging the project structure to ensure the target exists by this point. Call Stack (most recent call first): cmake/QtFindPackageHelpers.cmake:601 (qt_internal_get_package_name_of_target) cmake/QtTargetHelpers.cmake:240 (qt_register_target_dependencies) cmake/QtPluginHelpers.cmake:285 (qt_internal_extend_target) src/qml/Qt6QmlBuildInternals.cmake:216 (qt_internal_add_plugin) src/quickcontrols/macos/CMakeLists.txt:42 (qt_internal_add_qml_module) Pick-to: 6.7 Change-Id: I8759f21ee463765486908e49e996004f3b3e618c Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
* | macos style: add CheckIndicatorRichard Moe Gustavsen2024-04-297-1/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | The macOS style is currently falling back to use a CheckIndicator from the Fusion style. This doesn't look very native on macOS. This patch will therefore implement the missing CheckIndicator for the macOS style, and try to make it look as native as possible. Change-Id: I4c0a56de3972a92e4e3791852c043f08a2006eb1 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | macos style: Add Menu and MenuBar controlsRichard Moe Gustavsen2024-04-2910-0/+300
|/ | | | | | | | | | | | | The macOS style is currently falling back to use a MenuBar, MenuBarItem, MenuSeparator etc from the Fusion style. This doesn't look very native on macOS. This patch will therefore implement the missing MenuBar controls for the macOS style, and try to make them look as native as possible. Change-Id: I84f16b7765ec42504eb70a31eb0f649f3d2ecdcc Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Remove native style customization warnings for ItemDelegateMitch Curtis2024-04-151-1/+3
| | | | | | | | | It has no native visuals so customizing it is fine. Task-number: QTBUG-123773 Pick-to: 6.5 6.7 Change-Id: Iebac1231b096dbb5f9cde1d79ccda59688b25f09 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* SpinBox: fix warnings with macOS native styleVladimir Belyavsky2024-04-041-3/+3
| | | | | | | | Fixes: QTBUG-119756 Pick-to: 6.7 Change-Id: I706c8c49a2b2bf2bb1223edd38d011c6f27c61eb Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@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>
* Windows: add RadioDelegateMitch Curtis2023-11-011-62/+1
| | | | | | | Task-number: QTBUG-115165 Change-Id: I79181ff85d752c5dce1ce75165fb622d95d92499 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Windows: add ItemDelegateMitch Curtis2023-11-011-30/+1
| | | | | | Task-number: QTBUG-115165 Change-Id: Ibc4fd7b1f85a47a9bfec3a4900e351ea61bcc7ae Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Windows: add CheckDelegateMitch Curtis2023-11-012-28/+3
| | | | | | Task-number: QTBUG-115165 Change-Id: I7c55ba9062b08e1aefbaaf12a582ea8557eee7dd Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* macOS: add ItemDelegateMitch Curtis2023-11-012-0/+48
| | | | | | Task-number: QTBUG-115165 Change-Id: Ifcee1b26140938beeed420c75bf832019edea1f2 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* macOS: add RadioDelegateMitch Curtis2023-11-012-0/+68
| | | | | | Task-number: QTBUG-115165 Change-Id: I166c4d71e62d8340a37bb11803ad209a88e4764f Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* macOS: add CheckDelegateMitch Curtis2023-11-012-0/+62
| | | | | | Task-number: QTBUG-115165 Change-Id: Ie873592d74dcda4828ba753391c64929402736f8 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* macOS: add DelayButtonMitch Curtis2023-11-012-0/+70
| | | | | | | | | | In order to be consistent with Button's appearance without having to implement it entirely in QML (with no QStyle support), we draw the delay progress bar over the contentItem. Task-number: QTBUG-115165 Change-Id: Idc9bb9b5cf90f4b42268c0ccc17f454b1f7c3c9e Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* macOS: use accent palette role in Switch and RangeSliderMitch Curtis2023-09-082-30/+10
| | | | | | | | | | | Also take the opportunity to simplify SwitchIndicator, as it seems the gradient that was there doesn't really match with all accent colors/ themes. Task-number: QTBUG-115165 Change-Id: I30b0c24db8e1ad5ab05a35b555099fd0a533c9cc Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* macOS: add RangeSliderMitch Curtis2023-09-084-8/+112
| | | | | | | | Also ensure that RangeSlider warns about customization of its handles. Task-number: QTBUG-115165 Change-Id: Ia4993713e7273d0872c4538ff7d1200cad9bc7ed Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
* macOS: add SwitchDelegateMitch Curtis2023-09-082-0/+51
| | | | | | Task-number: QTBUG-115165 Change-Id: Ie7e968ea45627d590f34d469e7ed567b4d13658d Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* macOS: add SwitchMitch Curtis2023-09-085-11/+211
| | | | | | | | | | | | | | This adds a QML-based implementation of Switch for the macOS style. Switch doesn't exist in widgets, so there is no QStyle support for this control. __isDefaultDelegate was renamed to __focusFrameRadius and turned into a qreal so that QML types can have control over the size of the focus frame radius. No QML types were using __isDefaultDelegate. Task-number: QTBUG-115165 Change-Id: I4f6c961ab809ba7c5c9bfccb3218d33316dd72c2 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* macOS: add BusyIndicatorMitch Curtis2023-09-088-0/+49
| | | | | | Task-number: QTBUG-115165 Change-Id: I5cdab9ba8560573a75b08d6b362dfe60b574a64a Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Allow customization of native Dialog and DialogButtonBoxMitch Curtis2023-08-092-14/+0
| | | | | | | | | | | | | | | There's no harm in customizing these, and especially the contentItem and footer need to be customizable, as that's where the content and any customized OK/Cancel/etc. buttons go. This fixes warnings in the testbench manual test. Currently only the macOS styles has implementations of these controls. Pick-to: 6.5 6.6 Change-Id: I09678c777088786961583724d68dc2c3f6d90895 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>