diff options
35 files changed, 224 insertions, 36 deletions
diff --git a/src/quickcontrols/basic/Button.qml b/src/quickcontrols/basic/Button.qml index cc02c2d7cd..e4f34613e3 100644 --- a/src/quickcontrols/basic/Button.qml +++ b/src/quickcontrols/basic/Button.qml @@ -40,7 +40,8 @@ T.Button { visible: !control.flat || control.down || control.checked || control.highlighted color: Color.blend(control.checked || control.highlighted ? control.palette.dark : control.palette.button, control.palette.mid, control.down ? 0.5 : 0.0) - border.color: control.palette.highlight - border.width: control.visualFocus ? 2 : 0 + border.color: control.visualFocus ? control.palette.highlight : control.palette.windowText + border.width: control.visualFocus ? 2 : + Qt.styleHints.accessibility.contrastPreference == Qt.HighContrast ? 1 : 0 } } diff --git a/src/quickcontrols/basic/CheckBox.qml b/src/quickcontrols/basic/CheckBox.qml index 3d71008b50..9d34d47a3c 100644 --- a/src/quickcontrols/basic/CheckBox.qml +++ b/src/quickcontrols/basic/CheckBox.qml @@ -27,7 +27,15 @@ T.CheckBox { color: control.down ? control.palette.light : control.palette.base border.width: control.visualFocus ? 2 : 1 - border.color: control.visualFocus ? control.palette.highlight : control.palette.mid + border.color: { + if (control.visualFocus) + return control.palette.highlight + else if (Qt.styleHints.accessibility.contrastPreference !== Qt.HighContrast) + return control.palette.mid + else + return Color.blend(control.palette.dark, control.palette.base, + control.enabled ? 0.0 : 0.5) + } ColorImage { x: (parent.width - width) / 2 diff --git a/src/quickcontrols/basic/CheckDelegate.qml b/src/quickcontrols/basic/CheckDelegate.qml index 59e1543265..0ce2510f08 100644 --- a/src/quickcontrols/basic/CheckDelegate.qml +++ b/src/quickcontrols/basic/CheckDelegate.qml @@ -46,7 +46,15 @@ T.CheckDelegate { color: control.down ? control.palette.light : control.palette.base border.width: control.visualFocus ? 2 : 1 - border.color: control.visualFocus ? control.palette.highlight : control.palette.mid + border.color: { + if (control.visualFocus) + return control.palette.highlight + else if (Qt.styleHints.accessibility.contrastPreference !== Qt.HighContrast) + return control.palette.mid + else + return Color.blend(control.palette.dark, control.palette.base, + control.enabled ? 0.0 : 0.5) + } ColorImage { x: (parent.width - width) / 2 diff --git a/src/quickcontrols/basic/ComboBox.qml b/src/quickcontrols/basic/ComboBox.qml index 91774afc42..f0eb5602e9 100644 --- a/src/quickcontrols/basic/ComboBox.qml +++ b/src/quickcontrols/basic/ComboBox.qml @@ -64,7 +64,9 @@ T.ComboBox { background: Rectangle { visible: control.enabled && control.editable && !control.flat border.width: parent && parent.activeFocus ? 2 : 1 - border.color: parent && parent.activeFocus ? control.palette.highlight : control.palette.button + border.color: parent && parent.activeFocus ? control.palette.highlight : + Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast ? + control.palette.buttonText : control.palette.button color: control.palette.base } } @@ -74,8 +76,9 @@ T.ComboBox { implicitHeight: 40 color: control.down ? control.palette.mid : control.palette.button - border.color: control.palette.highlight - border.width: !control.editable && control.visualFocus ? 2 : 0 + border.color: !control.editable && control.visualFocus ? control.palette.highlight : control.palette.buttonText + border.width: (!control.editable && control.visualFocus) ? 2 : + Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast ? 1 : 0 visible: !control.flat || control.down } @@ -102,6 +105,19 @@ T.ComboBox { border.color: control.palette.mid } + // Show a contour around the highlighted item in high contrast mode + Rectangle { + property Item highlightedItem: parent ? parent.itemAtIndex(control.highlightedIndex) : null + visible: Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast && highlightedItem + z: 11 + x: highlightedItem ? highlightedItem.x : 0 + y: highlightedItem ? highlightedItem.y : 0 + width: highlightedItem ? highlightedItem.width : 0 + height: highlightedItem ? highlightedItem.height : 0 + color: "transparent" + border.color: control.palette.dark + } + T.ScrollIndicator.vertical: ScrollIndicator { } } diff --git a/src/quickcontrols/basic/DayOfWeekRow.qml b/src/quickcontrols/basic/DayOfWeekRow.qml index 0de64264ba..ced2290940 100644 --- a/src/quickcontrols/basic/DayOfWeekRow.qml +++ b/src/quickcontrols/basic/DayOfWeekRow.qml @@ -21,6 +21,7 @@ T.AbstractDayOfWeekRow { delegate: Text { text: shortName font: control.font + color: control.palette.text horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter diff --git a/src/quickcontrols/basic/DelayButton.qml b/src/quickcontrols/basic/DelayButton.qml index 1be4450c69..9273ba958e 100644 --- a/src/quickcontrols/basic/DelayButton.qml +++ b/src/quickcontrols/basic/DelayButton.qml @@ -58,8 +58,9 @@ T.DelayButton { implicitWidth: 100 implicitHeight: 40 color: Color.blend(control.palette.button, control.palette.mid, control.down ? 0.5 : 0.0) - border.color: control.palette.highlight - border.width: control.visualFocus ? 2 : 0 + border.color: control.visualFocus ? control.palette.highlight : control.palette.windowText + border.width: control.visualFocus ? 2 : + Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast ? 1 : 0 PaddedRectangle { padding: control.visualFocus ? 2 : 0 diff --git a/src/quickcontrols/basic/Frame.qml b/src/quickcontrols/basic/Frame.qml index b299a5afee..4139ff6d95 100644 --- a/src/quickcontrols/basic/Frame.qml +++ b/src/quickcontrols/basic/Frame.qml @@ -17,6 +17,8 @@ T.Frame { background: Rectangle { color: "transparent" - border.color: control.palette.mid + border.color: Qt.styleHints.accessibility.contrastPreference !== Qt.HighContrast ? + control.palette.mid : Color.blend(control.palette.dark, control.palette.base, + enabled ? 0.0 : 0.5) } } diff --git a/src/quickcontrols/basic/GroupBox.qml b/src/quickcontrols/basic/GroupBox.qml index 03afd873ca..39bbefce9a 100644 --- a/src/quickcontrols/basic/GroupBox.qml +++ b/src/quickcontrols/basic/GroupBox.qml @@ -35,6 +35,8 @@ T.GroupBox { height: parent.height - control.topPadding + control.bottomPadding color: "transparent" - border.color: control.palette.mid + border.color: Qt.styleHints.accessibility.contrastPreference !== Qt.HighContrast ? + control.palette.mid : Color.blend(control.palette.dark, control.palette.base, + enabled ? 0.0 : 0.5) } } diff --git a/src/quickcontrols/basic/HorizontalHeaderViewDelegate.qml b/src/quickcontrols/basic/HorizontalHeaderViewDelegate.qml index 18d75752d9..7f9a0a7fcf 100644 --- a/src/quickcontrols/basic/HorizontalHeaderViewDelegate.qml +++ b/src/quickcontrols/basic/HorizontalHeaderViewDelegate.qml @@ -18,14 +18,15 @@ T.HeaderViewDelegate { highlighted: selected background: Rectangle { - border.color: "#e4e4e4" - color: "#f6f6f6" + border.color: Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast ? + control.palette.windowText : control.palette.midlight + color: control.palette.light } contentItem: Label { horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter - color: "#ff26282a" + color: control.palette.windowText text: control.model[control.headerView.textRole] } } diff --git a/src/quickcontrols/basic/ItemDelegate.qml b/src/quickcontrols/basic/ItemDelegate.qml index 7bef49d6d6..384fc70c0e 100644 --- a/src/quickcontrols/basic/ItemDelegate.qml +++ b/src/quickcontrols/basic/ItemDelegate.qml @@ -39,5 +39,7 @@ T.ItemDelegate { visible: control.down || control.highlighted || control.visualFocus color: Color.blend(control.down ? control.palette.midlight : control.palette.light, control.palette.highlight, control.visualFocus ? 0.15 : 0.0) + border.width: Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast ? 1 : 0 + border.color: control.highlighted ? control.palette.highlight : control.palette.text } } diff --git a/src/quickcontrols/basic/MenuBarItem.qml b/src/quickcontrols/basic/MenuBarItem.qml index 9362d26c15..2bdae45f9f 100644 --- a/src/quickcontrols/basic/MenuBarItem.qml +++ b/src/quickcontrols/basic/MenuBarItem.qml @@ -39,5 +39,8 @@ T.MenuBarItem { implicitWidth: 40 implicitHeight: 40 color: control.down || control.highlighted ? control.palette.mid : "transparent" + border.color: control.palette.dark + border.width: Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast && + control.highlighted ? 1 : 0 } } diff --git a/src/quickcontrols/basic/MenuItem.qml b/src/quickcontrols/basic/MenuItem.qml index ad50eacad9..9dd3c451ba 100644 --- a/src/quickcontrols/basic/MenuItem.qml +++ b/src/quickcontrols/basic/MenuItem.qml @@ -67,5 +67,7 @@ T.MenuItem { width: control.width - 2 height: control.height - 2 color: control.down ? control.palette.midlight : control.highlighted ? control.palette.light : "transparent" + border.color: control.palette.dark + border.width: Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast && control.highlighted ? 1 : 0 } } diff --git a/src/quickcontrols/basic/MenuSeparator.qml b/src/quickcontrols/basic/MenuSeparator.qml index ff7e79e784..083081c837 100644 --- a/src/quickcontrols/basic/MenuSeparator.qml +++ b/src/quickcontrols/basic/MenuSeparator.qml @@ -18,7 +18,7 @@ T.MenuSeparator { contentItem: Rectangle { implicitWidth: 188 - implicitHeight: 1 + implicitHeight: Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast ? 2 : 1 color: control.palette.mid } } diff --git a/src/quickcontrols/basic/MonthGrid.qml b/src/quickcontrols/basic/MonthGrid.qml index b8d2379bcf..eb45b2839c 100644 --- a/src/quickcontrols/basic/MonthGrid.qml +++ b/src/quickcontrols/basic/MonthGrid.qml @@ -21,6 +21,7 @@ T.AbstractMonthGrid { opacity: model.month === control.month ? 1 : 0 text: model.day font: control.font + color: control.palette.text required property var model } diff --git a/src/quickcontrols/basic/RadioButton.qml b/src/quickcontrols/basic/RadioButton.qml index 7b3f4063e1..8ae589d3c4 100644 --- a/src/quickcontrols/basic/RadioButton.qml +++ b/src/quickcontrols/basic/RadioButton.qml @@ -28,7 +28,15 @@ T.RadioButton { radius: width / 2 color: control.down ? control.palette.light : control.palette.base border.width: control.visualFocus ? 2 : 1 - border.color: control.visualFocus ? control.palette.highlight : control.palette.mid + border.color: { + if (control.visualFocus) + return control.palette.highlight + else if (Qt.styleHints.accessibility.contrastPreference !== Qt.HighContrast) + return control.palette.mid + else + return Color.blend(control.palette.dark, control.palette.base, + control.enabled ? 0.0 : 0.5) + } Rectangle { x: (parent.width - width) / 2 diff --git a/src/quickcontrols/basic/RadioDelegate.qml b/src/quickcontrols/basic/RadioDelegate.qml index 87e6e66b29..bcaf4f2b26 100644 --- a/src/quickcontrols/basic/RadioDelegate.qml +++ b/src/quickcontrols/basic/RadioDelegate.qml @@ -47,7 +47,15 @@ T.RadioDelegate { radius: width / 2 color: control.down ? control.palette.light : control.palette.base border.width: control.visualFocus ? 2 : 1 - border.color: control.visualFocus ? control.palette.highlight : control.palette.mid + border.color: { + if (control.visualFocus) + return control.palette.highlight + else if (Qt.styleHints.accessibility.contrastPreference !== Qt.HighContrast) + return control.palette.mid + else + return Color.blend(control.palette.dark, control.palette.base, + control.enabled ? 0.0 : 0.5) + } Rectangle { x: (parent.width - width) / 2 diff --git a/src/quickcontrols/basic/RangeSlider.qml b/src/quickcontrols/basic/RangeSlider.qml index 155807da8d..c2abb90e05 100644 --- a/src/quickcontrols/basic/RangeSlider.qml +++ b/src/quickcontrols/basic/RangeSlider.qml @@ -8,6 +8,15 @@ import QtQuick.Templates as T T.RangeSlider { id: control + readonly property color handleBorderColor: { + if (activeFocus) + return palette.highlight + else if (Qt.styleHints.accessibility.contrastPreference !== Qt.HighContrast) + return enabled ? palette.mid : palette.midlight + else + return enabled ? palette.windowText : palette.mid + } + implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, first.implicitHandleWidth + leftPadding + rightPadding, second.implicitHandleWidth + leftPadding + rightPadding) @@ -24,7 +33,7 @@ T.RangeSlider { implicitHeight: 28 radius: width / 2 border.width: activeFocus ? 2 : 1 - border.color: activeFocus ? control.palette.highlight : control.enabled ? control.palette.mid : control.palette.midlight + border.color: control.handleBorderColor color: control.first.pressed ? control.palette.light : control.palette.window } @@ -35,7 +44,7 @@ T.RangeSlider { implicitHeight: 28 radius: width / 2 border.width: activeFocus ? 2 : 1 - border.color: activeFocus ? control.palette.highlight : control.enabled ? control.palette.mid : control.palette.midlight + border.color: control.handleBorderColor color: control.second.pressed ? control.palette.light : control.palette.window } @@ -49,6 +58,8 @@ T.RangeSlider { radius: 3 color: control.palette.midlight scale: control.horizontal && control.mirrored ? -1 : 1 + border.width: Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast ? 1 : 0 + border.color: enabled ? control.palette.dark : control.palette.mid Rectangle { x: control.horizontal ? control.first.position * parent.width + 3 : 0 diff --git a/src/quickcontrols/basic/RoundButton.qml b/src/quickcontrols/basic/RoundButton.qml index 7e7bd039b0..8df88e415c 100644 --- a/src/quickcontrols/basic/RoundButton.qml +++ b/src/quickcontrols/basic/RoundButton.qml @@ -41,7 +41,16 @@ T.RoundButton { visible: !control.flat || control.down || control.checked || control.highlighted color: Color.blend(control.checked || control.highlighted ? control.palette.dark : control.palette.button, control.palette.mid, control.down ? 0.5 : 0.0) - border.color: control.palette.highlight - border.width: control.visualFocus ? 2 : 0 + border.color: { + if (control.visualFocus) + return control.palette.highlight + else if (Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast) + return Color.blend(control.palette.text, control.palette.dark, + control.enabled ? 0.0 : 0.3) + else + return control.palette.windowText + } + border.width: control.visualFocus ? 2 : + (Qt.styleHints.accessibility.contrastPreference == Qt.HighContrast) ? 1 : 0 } } diff --git a/src/quickcontrols/basic/ScrollBar.qml b/src/quickcontrols/basic/ScrollBar.qml index 8927a4f13f..c5c84a2882 100644 --- a/src/quickcontrols/basic/ScrollBar.qml +++ b/src/quickcontrols/basic/ScrollBar.qml @@ -22,7 +22,13 @@ T.ScrollBar { implicitHeight: control.interactive ? 6 : 2 radius: width / 2 - color: control.pressed ? control.palette.dark : control.palette.mid + color: { + if (Qt.styleHints.accessibility.contrastPreference !== Qt.HighContrast) + return pressed ? control.palette.dark : control.palette.mid + else + return Color.blend(control.palette.text, control.palette.mid, pressed ? 0.0 : 0.3) + } + opacity: 0.0 states: State { @@ -39,4 +45,10 @@ T.ScrollBar { } } } + + background: Rectangle { + visible: Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast + opacity: control.contentItem.opacity + color: control.palette.mid + } } diff --git a/src/quickcontrols/basic/ScrollIndicator.qml b/src/quickcontrols/basic/ScrollIndicator.qml index 8b1ca93c26..7fbd6e51c0 100644 --- a/src/quickcontrols/basic/ScrollIndicator.qml +++ b/src/quickcontrols/basic/ScrollIndicator.qml @@ -19,7 +19,8 @@ T.ScrollIndicator { implicitWidth: 2 implicitHeight: 2 - color: control.palette.mid + color: Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast ? + control.palette.text : control.palette.mid visible: control.size < 1.0 opacity: 0.0 @@ -39,4 +40,10 @@ T.ScrollIndicator { } ] } + + background: Rectangle { + visible: Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast + opacity: control.contentItem.opacity + color: control.palette.mid + } } diff --git a/src/quickcontrols/basic/Slider.qml b/src/quickcontrols/basic/Slider.qml index 7ca8e02bf1..3578537af4 100644 --- a/src/quickcontrols/basic/Slider.qml +++ b/src/quickcontrols/basic/Slider.qml @@ -23,7 +23,14 @@ T.Slider { radius: width / 2 color: control.pressed ? control.palette.light : control.palette.window border.width: control.visualFocus ? 2 : 1 - border.color: control.visualFocus ? control.palette.highlight : control.enabled ? control.palette.mid : control.palette.midlight + border.color: { + if (activeFocus) + return control.palette.highlight + else if (Qt.styleHints.accessibility.contrastPreference !== Qt.HighContrast) + return control.enabled ? control.palette.mid : control.palette.midlight + else + return control.enabled ? control.palette.windowText : control.palette.mid + } } background: Rectangle { @@ -36,6 +43,8 @@ T.Slider { radius: 3 color: control.palette.midlight scale: control.horizontal && control.mirrored ? -1 : 1 + border.width: Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast ? 1 : 0 + border.color: enabled ? control.palette.dark : control.palette.mid Rectangle { y: control.horizontal ? 0 : control.visualPosition * parent.height diff --git a/src/quickcontrols/basic/SpinBox.qml b/src/quickcontrols/basic/SpinBox.qml index cf4315e910..d873b6381d 100644 --- a/src/quickcontrols/basic/SpinBox.qml +++ b/src/quickcontrols/basic/SpinBox.qml @@ -57,6 +57,8 @@ T.SpinBox { implicitWidth: 40 implicitHeight: 40 color: control.up.pressed ? control.palette.mid : control.palette.button + border.color: enabled ? control.palette.text : control.palette.mid + border.width: Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast ? 1 : 0 Rectangle { x: (parent.width - width) / 2 @@ -80,6 +82,8 @@ T.SpinBox { implicitWidth: 40 implicitHeight: 40 color: control.down.pressed ? control.palette.mid : control.palette.button + border.color: enabled ? control.palette.text : control.palette.mid + border.width: Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast ? 1 : 0 Rectangle { x: (parent.width - width) / 2 @@ -93,6 +97,10 @@ T.SpinBox { background: Rectangle { implicitWidth: 140 color: enabled ? control.palette.base : control.palette.button - border.color: control.palette.button + border.color: { + if (Qt.styleHints.accessibility.contrastPreference !== Qt.HighContrast) + return control.palette.button + return enabled ? control.palette.text : control.palette.mid + } } } diff --git a/src/quickcontrols/basic/SplitView.qml b/src/quickcontrols/basic/SplitView.qml index 6d673b55b7..3d5a87a941 100644 --- a/src/quickcontrols/basic/SplitView.qml +++ b/src/quickcontrols/basic/SplitView.qml @@ -17,5 +17,7 @@ T.SplitView { implicitHeight: control.orientation === Qt.Horizontal ? control.height : 6 color: T.SplitHandle.pressed ? control.palette.mid : (T.SplitHandle.hovered ? control.palette.midlight : control.palette.button) + border.color: control.palette.dark + border.width: Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast ? 1 : 0 } } diff --git a/src/quickcontrols/basic/SwipeDelegate.qml b/src/quickcontrols/basic/SwipeDelegate.qml index 552f34dc01..48f3cb8e78 100644 --- a/src/quickcontrols/basic/SwipeDelegate.qml +++ b/src/quickcontrols/basic/SwipeDelegate.qml @@ -40,5 +40,11 @@ T.SwipeDelegate { implicitHeight: 40 color: Color.blend(control.down ? control.palette.midlight : control.palette.light, control.palette.highlight, control.visualFocus ? 0.15 : 0.0) + // The condition of (control.down || control.highlighted || control.visualFocus) + // came from the ItemDelegate.qml + border.width: Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast && + (control.down || control.highlighted || control.visualFocus) ? 1 : 0 + border.color: control.down || control.highlighted || control.visualFocus ? + control.palette.highlightedText : control.palette.text } } diff --git a/src/quickcontrols/basic/Switch.qml b/src/quickcontrols/basic/Switch.qml index d299ea3748..c57037127b 100644 --- a/src/quickcontrols/basic/Switch.qml +++ b/src/quickcontrols/basic/Switch.qml @@ -29,6 +29,8 @@ T.Switch { rightPadding: 0 padding: (height - 16) / 2 color: control.checked ? control.palette.dark : control.palette.midlight + border.width: Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast ? 1 : 0 + border.color: Color.blend(control.palette.dark, control.palette.base, enabled ? 0.0 : 0.5) Rectangle { x: Math.max(0, Math.min(parent.width - width, control.visualPosition * parent.width - (width / 2))) @@ -38,7 +40,15 @@ T.Switch { radius: 16 color: control.down ? control.palette.light : control.palette.window border.width: control.visualFocus ? 2 : 1 - border.color: control.visualFocus ? control.palette.highlight : control.enabled ? control.palette.mid : control.palette.midlight + border.color: { + if (control.visualFocus) + return control.palette.highlight; + else if (Qt.styleHints.accessibility.contrastPreference !== Qt.HighContrast) + return control.enabled ? control.palette.mid : control.palette.midlight + else + return Color.blend(control.palette.dark, control.palette.base, + control.enabled ? 0.0 : 0.5) + } Behavior on x { enabled: !control.down diff --git a/src/quickcontrols/basic/SwitchDelegate.qml b/src/quickcontrols/basic/SwitchDelegate.qml index 98392557ad..10985a99ae 100644 --- a/src/quickcontrols/basic/SwitchDelegate.qml +++ b/src/quickcontrols/basic/SwitchDelegate.qml @@ -33,6 +33,8 @@ T.SwitchDelegate { rightPadding: 0 padding: (height - 16) / 2 color: control.checked ? control.palette.dark : control.palette.midlight + border.width: Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast ? 1 : 0 + border.color: Color.blend(control.palette.dark, control.palette.base, enabled ? 0.0 : 0.5) Rectangle { x: Math.max(0, Math.min(parent.width - width, control.visualPosition * parent.width - (width / 2))) @@ -42,7 +44,15 @@ T.SwitchDelegate { radius: 16 color: control.down ? control.palette.light : control.palette.window border.width: control.visualFocus ? 2 : 1 - border.color: control.visualFocus ? control.palette.highlight : control.enabled ? control.palette.mid : control.palette.midlight + border.color: { + if (control.visualFocus) + return control.palette.highlight; + else if (Qt.styleHints.accessibility.contrastPreference !== Qt.HighContrast) + return control.enabled ? control.palette.mid : control.palette.midlight + else + return Color.blend(control.palette.dark, control.palette.base, + control.enabled ? 0.0 : 0.5) + } Behavior on x { enabled: !control.down diff --git a/src/quickcontrols/basic/TabButton.qml b/src/quickcontrols/basic/TabButton.qml index 071048dce5..cffaff9ec3 100644 --- a/src/quickcontrols/basic/TabButton.qml +++ b/src/quickcontrols/basic/TabButton.qml @@ -35,5 +35,7 @@ T.TabButton { implicitHeight: 40 color: Color.blend(control.checked ? control.palette.window : control.palette.dark, control.palette.mid, control.down ? 0.5 : 0.0) + border.width: Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast ? 1 : 0 + border.color: control.palette.windowText } } diff --git a/src/quickcontrols/basic/TableViewDelegate.qml b/src/quickcontrols/basic/TableViewDelegate.qml index b560340a2d..b24c888f6d 100644 --- a/src/quickcontrols/basic/TableViewDelegate.qml +++ b/src/quickcontrols/basic/TableViewDelegate.qml @@ -22,8 +22,8 @@ T.TableViewDelegate { required property var model background: Rectangle { - border.width: control.current ? 2 : 0 - border.color: control.palette.highlight + border.width: control.current ? 2 : Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast ? 1 : 0 + border.color: control.current ? control.palette.highlight : control.palette.windowText color: control.highlighted ? control.palette.highlight : (control.tableView.alternatingRows && control.row % 2 !== 0 diff --git a/src/quickcontrols/basic/TextArea.qml b/src/quickcontrols/basic/TextArea.qml index 9a86c8ae66..62d3e5f3ab 100644 --- a/src/quickcontrols/basic/TextArea.qml +++ b/src/quickcontrols/basic/TextArea.qml @@ -28,6 +28,14 @@ T.TextArea { control: control } + background: Rectangle { + visible: Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast + color: "transparent" + border.width: control.activeFocus ? 2 : 1 + border.color: control.activeFocus ? control.palette.highlight : + control.enabled ? control.palette.mid : control.palette.midlight + } + PlaceholderText { id: placeholder x: control.leftPadding diff --git a/src/quickcontrols/basic/TextField.qml b/src/quickcontrols/basic/TextField.qml index 67f9533694..976c8ce70f 100644 --- a/src/quickcontrols/basic/TextField.qml +++ b/src/quickcontrols/basic/TextField.qml @@ -49,6 +49,14 @@ T.TextField { implicitHeight: 40 border.width: control.activeFocus ? 2 : 1 color: control.palette.base - border.color: control.activeFocus ? control.palette.highlight : control.palette.mid + border.color: { + if (control.activeFocus) + return control.palette.highlight + else if (Qt.styleHints.accessibility.contrastPreference !== Qt.HighContrast) + return control.palette.mid + else + return Color.blend(control.palette.text, control.palette.base, + control.enabled ? 0.0 : 0.5) + } } } diff --git a/src/quickcontrols/basic/ToolButton.qml b/src/quickcontrols/basic/ToolButton.qml index e4bc90d665..bca544dd3e 100644 --- a/src/quickcontrols/basic/ToolButton.qml +++ b/src/quickcontrols/basic/ToolButton.qml @@ -35,7 +35,19 @@ T.ToolButton { implicitWidth: 40 implicitHeight: 40 - opacity: control.down ? 1.0 : 0.5 + opacity: Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast || control.down ? 1.0 : 0.5 color: control.down || control.checked || control.highlighted ? control.palette.mid : control.palette.button + + border.color: { + if (control.visualFocus) + return control.palette.highlight + else if (Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast) + return Color.blend(control.palette.buttonText, control.palette.button, + control.enabled ? 0.0 : 0.8) + else + return control.palette.windowText + } + border.width: control.visualFocus ? 2 : + Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast ? 1 : 0 } } diff --git a/src/quickcontrols/basic/ToolSeparator.qml b/src/quickcontrols/basic/ToolSeparator.qml index 2d2cefcdf4..2708c1f3ea 100644 --- a/src/quickcontrols/basic/ToolSeparator.qml +++ b/src/quickcontrols/basic/ToolSeparator.qml @@ -17,8 +17,8 @@ T.ToolSeparator { verticalPadding: vertical ? 2 : 6 contentItem: Rectangle { - implicitWidth: control.vertical ? 1 : 30 - implicitHeight: control.vertical ? 30 : 1 + implicitWidth: control.vertical ? (Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast ? 2 : 1) : 30 + implicitHeight: control.vertical ? 30 : (Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast ? 2 : 1) color: control.palette.mid } } diff --git a/src/quickcontrols/basic/TreeViewDelegate.qml b/src/quickcontrols/basic/TreeViewDelegate.qml index f1cf265467..8197794e4c 100644 --- a/src/quickcontrols/basic/TreeViewDelegate.qml +++ b/src/quickcontrols/basic/TreeViewDelegate.qml @@ -48,6 +48,9 @@ T.TreeViewDelegate { background: Rectangle { implicitHeight: 40 // same as Button.qml + border.color: control.current ? control.palette.highlight : control.palette.windowText + border.width: Qt.styleHints.accessibility.contrastPreference !== Qt.HighContrast ? 0 : + control.current ? 2 : 1 color: control.highlighted ? control.palette.highlight : (control.treeView.alternatingRows && control.row % 2 !== 0 diff --git a/src/quickcontrols/basic/Tumbler.qml b/src/quickcontrols/basic/Tumbler.qml index 4bd5c5fed2..44ce8bff60 100644 --- a/src/quickcontrols/basic/Tumbler.qml +++ b/src/quickcontrols/basic/Tumbler.qml @@ -45,4 +45,10 @@ T.Tumbler { } } } + + background: Rectangle { + visible: Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast + border.color: control.visualFocus ? control.palette.highlight : control.palette.windowText + border.width: control.visualFocus ? 2 : 1 + } } diff --git a/src/quickcontrols/basic/VerticalHeaderViewDelegate.qml b/src/quickcontrols/basic/VerticalHeaderViewDelegate.qml index 18d75752d9..7f9a0a7fcf 100644 --- a/src/quickcontrols/basic/VerticalHeaderViewDelegate.qml +++ b/src/quickcontrols/basic/VerticalHeaderViewDelegate.qml @@ -18,14 +18,15 @@ T.HeaderViewDelegate { highlighted: selected background: Rectangle { - border.color: "#e4e4e4" - color: "#f6f6f6" + border.color: Qt.styleHints.accessibility.contrastPreference === Qt.HighContrast ? + control.palette.windowText : control.palette.midlight + color: control.palette.light } contentItem: Label { horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter - color: "#ff26282a" + color: control.palette.windowText text: control.model[control.headerView.textRole] } } |
