From ebe36ea115795af79f10310aa624b57b25ea694a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Arve=20S=C3=A6ther?= Date: Wed, 22 Sep 2021 14:03:17 +0200 Subject: Do not override font size by default Font overriding should be a style-specific behavior. For instance, macos style cannot use a different font size than the default. Therefore, this patch moves the font overriding over to the macos style. This prevented font size to be inherited from the parent control Fixes autotests Popup::test_font() and ComboBox::test_font() on Windows style. Task-number: QTBUG-95679 Change-Id: Ic24de04a517a8a8710f916e70117729c41c1534e Reviewed-by: Richard Moe Gustavsen (cherry picked from commit 43eca45b061fe965fe2a6f1876d4a35a58e3a9e4) Reviewed-by: Qt Cherry-pick Bot --- src/quickcontrols2/macos/Button.qml | 2 ++ src/quickcontrols2/macos/CheckBox.qml | 3 +++ src/quickcontrols2/macos/ComboBox.qml | 1 + src/quickcontrols2/macos/Dial.qml | 2 ++ src/quickcontrols2/macos/GroupBox.qml | 1 + src/quickcontrols2/macos/ProgressBar.qml | 2 ++ src/quickcontrols2/macos/RadioButton.qml | 2 ++ src/quickcontrols2/macos/ScrollBar.qml | 1 + src/quickcontrols2/macos/Slider.qml | 1 + src/quickcontrols2/macos/SpinBox.qml | 2 +- src/quickcontrols2/macos/TextField.qml | 1 + src/quickcontrols2/windows/CheckBox.qml | 2 -- src/quickcontrols2/windows/ComboBox.qml | 2 -- src/quicknativestyle/controls/DefaultButton.qml | 2 -- src/quicknativestyle/controls/DefaultCheckBox.qml | 2 -- src/quicknativestyle/controls/DefaultComboBox.qml | 2 -- src/quicknativestyle/controls/DefaultDial.qml | 2 -- src/quicknativestyle/controls/DefaultGroupBox.qml | 2 -- src/quicknativestyle/controls/DefaultProgressBar.qml | 2 -- src/quicknativestyle/controls/DefaultRadioButton.qml | 2 -- src/quicknativestyle/controls/DefaultScrollBar.qml | 2 -- src/quicknativestyle/controls/DefaultSlider.qml | 4 ---- src/quicknativestyle/controls/DefaultSpinBox.qml | 2 -- src/quicknativestyle/controls/DefaultTextField.qml | 2 -- tests/auto/quickcontrols2/controls/windows/BLACKLIST | 4 ---- 25 files changed, 17 insertions(+), 33 deletions(-) diff --git a/src/quickcontrols2/macos/Button.qml b/src/quickcontrols2/macos/Button.qml index 58658c526f..bddaa89ca4 100644 --- a/src/quickcontrols2/macos/Button.qml +++ b/src/quickcontrols2/macos/Button.qml @@ -40,4 +40,6 @@ import QtQuick.NativeStyle as NativeStyle NativeStyle.DefaultButton { id: control readonly property Item __focusFrameTarget: control + + font.pixelSize: background.styleFont(control).pixelSize } diff --git a/src/quickcontrols2/macos/CheckBox.qml b/src/quickcontrols2/macos/CheckBox.qml index 23ad442634..71c880a72e 100644 --- a/src/quickcontrols2/macos/CheckBox.qml +++ b/src/quickcontrols2/macos/CheckBox.qml @@ -38,6 +38,9 @@ import QtQuick import QtQuick.NativeStyle as NativeStyle NativeStyle.DefaultCheckBox { + id: control readonly property Item __focusFrameTarget: indicator readonly property Item __focusFrameStyleItem: indicator + + font.pixelSize: indicator.styleFont(control).pixelSize } diff --git a/src/quickcontrols2/macos/ComboBox.qml b/src/quickcontrols2/macos/ComboBox.qml index 53baabf8b6..798148e65f 100644 --- a/src/quickcontrols2/macos/ComboBox.qml +++ b/src/quickcontrols2/macos/ComboBox.qml @@ -41,6 +41,7 @@ import QtQuick.NativeStyle as NativeStyle NativeStyle.DefaultComboBox { id: control readonly property Item __focusFrameTarget: control + font.pixelSize: background.styleFont(control).pixelSize contentItem: T.TextField { implicitWidth: contentWidth diff --git a/src/quickcontrols2/macos/Dial.qml b/src/quickcontrols2/macos/Dial.qml index 2076a54ad6..1628bae633 100644 --- a/src/quickcontrols2/macos/Dial.qml +++ b/src/quickcontrols2/macos/Dial.qml @@ -38,4 +38,6 @@ import QtQuick import QtQuick.NativeStyle as NativeStyle NativeStyle.DefaultDial { + id: control + font.pixelSize: background.styleFont(control).pixelSize } diff --git a/src/quickcontrols2/macos/GroupBox.qml b/src/quickcontrols2/macos/GroupBox.qml index 142ddd15ed..c066a1577a 100644 --- a/src/quickcontrols2/macos/GroupBox.qml +++ b/src/quickcontrols2/macos/GroupBox.qml @@ -39,6 +39,7 @@ import QtQuick.NativeStyle as NativeStyle NativeStyle.DefaultGroupBox { id: control + font.pixelSize: background.styleFont(control).pixelSize label: Item { readonly property point labelPos : control.__nativeBackground ? background.labelPos diff --git a/src/quickcontrols2/macos/ProgressBar.qml b/src/quickcontrols2/macos/ProgressBar.qml index 59a1689dba..d9c5c02f4f 100644 --- a/src/quickcontrols2/macos/ProgressBar.qml +++ b/src/quickcontrols2/macos/ProgressBar.qml @@ -38,4 +38,6 @@ import QtQuick import QtQuick.NativeStyle as NativeStyle NativeStyle.DefaultProgressBar { + id: control + font.pixelSize: background.styleFont(control).pixelSize } diff --git a/src/quickcontrols2/macos/RadioButton.qml b/src/quickcontrols2/macos/RadioButton.qml index c9cdf9850c..38aabae7f5 100644 --- a/src/quickcontrols2/macos/RadioButton.qml +++ b/src/quickcontrols2/macos/RadioButton.qml @@ -38,6 +38,8 @@ import QtQuick import QtQuick.NativeStyle as NativeStyle NativeStyle.DefaultRadioButton { + id: control readonly property Item __focusFrameTarget: indicator readonly property Item __focusFrameStyleItem: indicator + font.pixelSize: indicator.styleFont(control).pixelSize } diff --git a/src/quickcontrols2/macos/ScrollBar.qml b/src/quickcontrols2/macos/ScrollBar.qml index 4a9f764b2a..64992346b7 100644 --- a/src/quickcontrols2/macos/ScrollBar.qml +++ b/src/quickcontrols2/macos/ScrollBar.qml @@ -39,6 +39,7 @@ import QtQuick.NativeStyle as NativeStyle NativeStyle.DefaultScrollBar { id: controlRoot + font.pixelSize: background.styleFont(controlRoot).pixelSize contentItem: NativeStyle.ScrollBar { control: controlRoot diff --git a/src/quickcontrols2/macos/Slider.qml b/src/quickcontrols2/macos/Slider.qml index 77543577d6..c4c1a8aa36 100644 --- a/src/quickcontrols2/macos/Slider.qml +++ b/src/quickcontrols2/macos/Slider.qml @@ -41,6 +41,7 @@ NativeStyle.DefaultSlider { id: control readonly property Item __focusFrameTarget: handle readonly property Item __focusFrameStyleItem: handle + font.pixelSize: background.styleFont(control).pixelSize background: NativeStyle.Slider { control: control diff --git a/src/quickcontrols2/macos/SpinBox.qml b/src/quickcontrols2/macos/SpinBox.qml index 5928d37eb5..8816d0ce67 100644 --- a/src/quickcontrols2/macos/SpinBox.qml +++ b/src/quickcontrols2/macos/SpinBox.qml @@ -45,7 +45,7 @@ T.SpinBox { property bool nativeIndicators: up.indicator.hasOwnProperty("_qt_default") && down.indicator.hasOwnProperty("_qt_default") - font.pixelSize: __nativeBackground ? background.styleFont(control).pixelSize : undefined + font.pixelSize: background.styleFont(control).pixelSize implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, 90 /* minimum */ ) diff --git a/src/quickcontrols2/macos/TextField.qml b/src/quickcontrols2/macos/TextField.qml index f3a748f604..36567616c1 100644 --- a/src/quickcontrols2/macos/TextField.qml +++ b/src/quickcontrols2/macos/TextField.qml @@ -40,4 +40,5 @@ import QtQuick.NativeStyle as NativeStyle NativeStyle.DefaultTextField { id: control readonly property Item __focusFrameTarget: control + font.pixelSize: background.styleFont(control).pixelSize } diff --git a/src/quickcontrols2/windows/CheckBox.qml b/src/quickcontrols2/windows/CheckBox.qml index 13fde0e656..eaf70a3f35 100644 --- a/src/quickcontrols2/windows/CheckBox.qml +++ b/src/quickcontrols2/windows/CheckBox.qml @@ -51,8 +51,6 @@ T.CheckBox { implicitContentHeight + topPadding + bottomPadding, implicitIndicatorHeight + topPadding + bottomPadding) - font.pixelSize: nativeIndicator ? indicator.styleFont(control).pixelSize : undefined - spacing: nativeIndicator ? 0 : 6 padding: nativeIndicator ? 0 : 6 diff --git a/src/quickcontrols2/windows/ComboBox.qml b/src/quickcontrols2/windows/ComboBox.qml index 237d90b592..13fa844dae 100644 --- a/src/quickcontrols2/windows/ComboBox.qml +++ b/src/quickcontrols2/windows/ComboBox.qml @@ -53,8 +53,6 @@ T.ComboBox { implicitContentHeight + topPadding + bottomPadding, implicitIndicatorHeight + topPadding + bottomPadding) - font.pixelSize: __nativeBackground ? background.styleFont(control).pixelSize : undefined - leftPadding: __nativeBackground ? background.contentPadding.left : 5 rightPadding: __nativeBackground ? background.contentPadding.right : 5 topPadding: __nativeBackground ? background.contentPadding.top : 5 diff --git a/src/quicknativestyle/controls/DefaultButton.qml b/src/quicknativestyle/controls/DefaultButton.qml index 064cd13db6..9ab4437bcb 100644 --- a/src/quicknativestyle/controls/DefaultButton.qml +++ b/src/quicknativestyle/controls/DefaultButton.qml @@ -51,8 +51,6 @@ T.Button { implicitWidth: implicitBackgroundWidth + leftInset + rightInset implicitHeight: implicitBackgroundHeight + topInset + bottomInset - font.pixelSize: __nativeBackground ? background.styleFont(control).pixelSize : undefined - leftPadding: __nativeBackground ? background.contentPadding.left : 5 rightPadding: __nativeBackground ? background.contentPadding.right : 5 topPadding: __nativeBackground ? background.contentPadding.top : 5 diff --git a/src/quicknativestyle/controls/DefaultCheckBox.qml b/src/quicknativestyle/controls/DefaultCheckBox.qml index 09166820de..45e4988958 100644 --- a/src/quicknativestyle/controls/DefaultCheckBox.qml +++ b/src/quicknativestyle/controls/DefaultCheckBox.qml @@ -51,8 +51,6 @@ T.CheckBox { implicitContentHeight + topPadding + bottomPadding, implicitIndicatorHeight + topPadding + bottomPadding) - font.pixelSize: nativeIndicator ? indicator.styleFont(control).pixelSize : undefined - spacing: nativeIndicator ? 0 : 6 padding: nativeIndicator ? 0 : 6 diff --git a/src/quicknativestyle/controls/DefaultComboBox.qml b/src/quicknativestyle/controls/DefaultComboBox.qml index 7b286a1ebc..d3f168d567 100644 --- a/src/quicknativestyle/controls/DefaultComboBox.qml +++ b/src/quicknativestyle/controls/DefaultComboBox.qml @@ -53,8 +53,6 @@ T.ComboBox { implicitContentHeight + topPadding + bottomPadding, implicitIndicatorHeight + topPadding + bottomPadding) - font.pixelSize: __nativeBackground ? background.styleFont(control).pixelSize : undefined - leftPadding: __nativeBackground ? background.contentPadding.left : 5 rightPadding: __nativeBackground ? background.contentPadding.right : 5 topPadding: __nativeBackground ? background.contentPadding.top : 5 diff --git a/src/quicknativestyle/controls/DefaultDial.qml b/src/quicknativestyle/controls/DefaultDial.qml index b628ed0973..9ede707662 100644 --- a/src/quicknativestyle/controls/DefaultDial.qml +++ b/src/quicknativestyle/controls/DefaultDial.qml @@ -51,8 +51,6 @@ T.Dial { implicitContentHeight + topPadding + bottomPadding, 80 /* minimum */ ) - font.pixelSize: __nativeBackground ? background.styleFont(control).pixelSize : undefined - background: NativeStyle.Dial { control: control useNinePatchImage: false diff --git a/src/quicknativestyle/controls/DefaultGroupBox.qml b/src/quicknativestyle/controls/DefaultGroupBox.qml index 09db97b775..dcaeaaf8a9 100644 --- a/src/quicknativestyle/controls/DefaultGroupBox.qml +++ b/src/quicknativestyle/controls/DefaultGroupBox.qml @@ -50,8 +50,6 @@ T.GroupBox { implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, contentHeight + topPadding + bottomPadding) - font.pixelSize: __nativeBackground ? background.styleFont(control).pixelSize : undefined - label: Rectangle { color: control.palette.window property point labelPos : control.__nativeBackground diff --git a/src/quicknativestyle/controls/DefaultProgressBar.qml b/src/quicknativestyle/controls/DefaultProgressBar.qml index 037bdbaeea..77934b31c4 100644 --- a/src/quicknativestyle/controls/DefaultProgressBar.qml +++ b/src/quicknativestyle/controls/DefaultProgressBar.qml @@ -51,8 +51,6 @@ T.ProgressBar { implicitContentHeight + topPadding + bottomPadding, control.vertical ? 90 : 0 /* minimum */ ) - font.pixelSize: __nativeBackground ? background.styleFont(control).pixelSize : undefined - background: NativeStyle.ProgressBar { control: control useNinePatchImage: false diff --git a/src/quicknativestyle/controls/DefaultRadioButton.qml b/src/quicknativestyle/controls/DefaultRadioButton.qml index 29746ba7b0..91f340b716 100644 --- a/src/quicknativestyle/controls/DefaultRadioButton.qml +++ b/src/quicknativestyle/controls/DefaultRadioButton.qml @@ -51,8 +51,6 @@ T.RadioButton { implicitContentHeight + topPadding + bottomPadding, implicitIndicatorHeight + topPadding + bottomPadding) - font.pixelSize: nativeIndicator ? indicator.styleFont(control).pixelSize : undefined - spacing: nativeIndicator ? 0 : 6 padding: nativeIndicator ? 0 : 6 diff --git a/src/quicknativestyle/controls/DefaultScrollBar.qml b/src/quicknativestyle/controls/DefaultScrollBar.qml index b7b7873225..ef20f7016c 100644 --- a/src/quicknativestyle/controls/DefaultScrollBar.qml +++ b/src/quicknativestyle/controls/DefaultScrollBar.qml @@ -49,8 +49,6 @@ T.ScrollBar { implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, implicitContentHeight + topPadding + bottomPadding) - font.pixelSize: __nativeContentItem ? contentItem.styleFont(control).pixelSize : undefined - visible: policy === T.ScrollBar.AlwaysOn || (policy === T.ScrollBar.AsNeeded && size < 1.0) minimumSize: !__nativeContentItem ? 10 : orientation === Qt.Vertical ? contentItem.minimumSize.height / height : contentItem.minimumSize.width / width diff --git a/src/quicknativestyle/controls/DefaultSlider.qml b/src/quicknativestyle/controls/DefaultSlider.qml index ebc1c2652c..6d4521720c 100644 --- a/src/quicknativestyle/controls/DefaultSlider.qml +++ b/src/quicknativestyle/controls/DefaultSlider.qml @@ -42,8 +42,6 @@ import QtQuick.NativeStyle as NativeStyle T.Slider { id: control - readonly property bool __nativeBackground: background instanceof NativeStyle.StyleItem - implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, implicitHandleWidth + leftPadding + rightPadding, control.horizontal ? 90 : 0 /* minimum */ ) @@ -51,8 +49,6 @@ T.Slider { implicitHandleHeight + topPadding + bottomPadding, control.vertical ? 90 : 0 /* minimum */ ) - font.pixelSize: __nativeBackground ? background.styleFont(control).pixelSize : undefined - background: NativeStyle.Slider { control: control subControl: NativeStyle.Slider.Groove diff --git a/src/quicknativestyle/controls/DefaultSpinBox.qml b/src/quicknativestyle/controls/DefaultSpinBox.qml index 869ff41153..640aab0020 100644 --- a/src/quicknativestyle/controls/DefaultSpinBox.qml +++ b/src/quicknativestyle/controls/DefaultSpinBox.qml @@ -50,8 +50,6 @@ T.SpinBox { implicitHeight: Math.max(implicitBackgroundHeight, up.implicitIndicatorHeight + down.implicitIndicatorHeight + (spacing * 3)) + topInset + bottomInset - font.pixelSize: __nativeBackground ? background.styleFont(control).pixelSize : undefined - spacing: 2 leftPadding: (__nativeBackground ? background.contentPadding.left: 0) diff --git a/src/quicknativestyle/controls/DefaultTextField.qml b/src/quicknativestyle/controls/DefaultTextField.qml index f9279974df..2e4e21e501 100644 --- a/src/quicknativestyle/controls/DefaultTextField.qml +++ b/src/quicknativestyle/controls/DefaultTextField.qml @@ -52,8 +52,6 @@ T.TextField { contentHeight + topPadding + bottomPadding, placeholder.implicitHeight + topPadding + bottomPadding) - font.pixelSize: __nativeBackground ? background.styleFont(control).pixelSize : undefined - leftPadding: __nativeBackground ? background.contentPadding.left: 7 rightPadding: __nativeBackground ? background.contentPadding.right: 7 topPadding: __nativeBackground ? background.contentPadding.top: 3 diff --git a/tests/auto/quickcontrols2/controls/windows/BLACKLIST b/tests/auto/quickcontrols2/controls/windows/BLACKLIST index c8f4eaceb6..7340db5909 100644 --- a/tests/auto/quickcontrols2/controls/windows/BLACKLIST +++ b/tests/auto/quickcontrols2/controls/windows/BLACKLIST @@ -15,7 +15,3 @@ * [ComboBox::test_defaults] * -[ComboBox::test_font] -* -[Popup::test_font] -* -- cgit v1.2.3