aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMitch Curtis <mitch.curtis@qt.io>2023-03-13 11:37:04 +0800
committerMitch Curtis <mitch.curtis@qt.io>2023-03-21 05:11:56 +0000
commit6dd877bdca883a3c7945862f311ec93a6759c765 (patch)
tree6516c7391c85319ac6bf847d667df5652f649685
parenteea1cf9e4f4660e47ff0a64f4ea9f7d11b8fb620 (diff)
Update Material ComboBox to Material 3
Fixes: QTBUG-111887 Change-Id: I9a518ce4fb3ebc03a792d8bff0f89b2c4bce3a0f Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> (cherry picked from commit 846a4ebf26c58ef3fcdaedc85e1d04e7d4ee974f) Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
-rw-r--r--src/quickcontrols/material/ComboBox.qml54
-rw-r--r--tests/auto/quickcontrols/qquickmaterialstyle/data/tst_material.qml1
2 files changed, 16 insertions, 39 deletions
diff --git a/src/quickcontrols/material/ComboBox.qml b/src/quickcontrols/material/ComboBox.qml
index 30222c4180..4febbb9326 100644
--- a/src/quickcontrols/material/ComboBox.qml
+++ b/src/quickcontrols/material/ComboBox.qml
@@ -23,8 +23,6 @@ T.ComboBox {
leftPadding: padding + (!control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing)
rightPadding: padding + (control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing)
- Material.elevation: flat ? control.pressed || (enabled && control.hovered) ? 2 : 0
- : control.pressed ? 8 : 2
Material.background: flat ? "transparent" : undefined
Material.foreground: flat ? undefined : Material.primaryTextColor
@@ -44,9 +42,9 @@ T.ComboBox {
}
contentItem: T.TextField {
- padding: 6
- leftPadding: control.editable ? 2 : control.mirrored ? 0 : 12
- rightPadding: control.editable ? 2 : control.mirrored ? 12 : 0
+ leftPadding: Material.textFieldHorizontalPadding
+ topPadding: Material.textFieldVerticalPadding
+ bottomPadding: Material.textFieldVerticalPadding
text: control.editable ? control.editText : control.displayText
@@ -65,46 +63,25 @@ T.ComboBox {
cursorDelegate: CursorDelegate { }
}
- background: Rectangle {
+ background: MaterialTextContainer {
implicitWidth: 120
- implicitHeight: control.Material.buttonHeight
+ implicitHeight: control.Material.textFieldHeight
- radius: control.flat ? 0 : 2
- color: !control.editable ? control.Material.dialogColor : "transparent"
-
- layer.enabled: control.enabled && !control.editable && control.Material.background.a > 0
- layer.effect: ElevationEffect {
- elevation: control.Material.elevation
- }
-
- Rectangle {
- visible: control.editable
- y: parent.y + control.baselineOffset
- width: parent.width
- height: control.activeFocus ? 2 : 1
- color: control.editable && control.activeFocus ? control.Material.accentColor : control.Material.hintTextColor
- }
-
- Ripple {
- clip: control.flat
- clipRadius: control.flat ? 0 : 2
- x: control.editable && control.indicator ? control.indicator.x : 0
- width: control.editable && control.indicator ? control.indicator.width : parent.width
- height: parent.height
- pressed: control.pressed
- anchor: control.editable && control.indicator ? control.indicator : control
- active: enabled && (control.pressed || control.visualFocus || control.hovered)
- color: control.Material.rippleColor
- }
+ outlineColor: (enabled && control.hovered) ? control.Material.primaryTextColor : control.Material.hintTextColor
+ focusedOutlineColor: control.Material.accentColor
+ controlHasActiveFocus: control.activeFocus
+ controlHasText: true
+ horizontalPadding: control.Material.textFieldHorizontalPadding
}
popup: T.Popup {
y: control.editable ? control.height - 5 : 0
width: control.width
- height: Math.min(contentItem.implicitHeight, control.Window.height - topMargin - bottomMargin)
+ height: Math.min(contentItem.implicitHeight + verticalPadding * 2, control.Window.height - topMargin - bottomMargin)
transformOrigin: Item.Top
topMargin: 12
bottomMargin: 12
+ verticalPadding: 8
Material.theme: control.Material.theme
Material.accent: control.Material.accent
@@ -133,12 +110,13 @@ T.ComboBox {
}
background: Rectangle {
- radius: 2
+ radius: 4
color: parent.Material.dialogColor
layer.enabled: control.enabled
- layer.effect: ElevationEffect {
- elevation: 8
+ layer.effect: RoundedElevationEffect {
+ elevation: 4
+ roundedScale: Material.ExtraSmallScale
}
}
}
diff --git a/tests/auto/quickcontrols/qquickmaterialstyle/data/tst_material.qml b/tests/auto/quickcontrols/qquickmaterialstyle/data/tst_material.qml
index 46dd5b42d0..d85ddc7a44 100644
--- a/tests/auto/quickcontrols/qquickmaterialstyle/data/tst_material.qml
+++ b/tests/auto/quickcontrols/qquickmaterialstyle/data/tst_material.qml
@@ -747,7 +747,6 @@ TestCase {
function test_background_data() {
return [
{ tag: "button", inherit: false, wait: 400 },
- { tag: "combobox", inherit: false, wait: 400 },
{ tag: "drawer", inherit: true },
{ tag: "groupbox", inherit: true },
{ tag: "frame", inherit: true },