From bd5e078e5b908dc647b5395f9a772074ce206670 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Thu, 6 Oct 2016 16:06:32 +0200 Subject: Make hoverEnabled propagate to children Hover effects can be sometimes a bit disturbing. This change makes it possible to conveniently disable hover effects for a tree of controls in one go. For example, to disable hover effects for a page including its header, footer, and all list items: Page { hoverEnabled: false header: ... footer: ... ListView { delegate: ... } } [ChangeLog][Controls][Important Behavior Changes] Control::hoverEnabled has been made to inherit to children, to make it possible to disable hover effects for a tree of controls in one place. Change-Id: Ia87144f2cc04957a32f89d3313816b91d97db635 Reviewed-by: Qt CI Bot Reviewed-by: J-P Nurmi Reviewed-by: Mitch Curtis --- src/imports/controls/material/Button.qml | 2 -- src/imports/controls/material/CheckBox.qml | 2 -- src/imports/controls/material/CheckDelegate.qml | 2 -- src/imports/controls/material/ComboBox.qml | 2 -- src/imports/controls/material/Dial.qml | 2 -- src/imports/controls/material/ItemDelegate.qml | 2 -- src/imports/controls/material/MenuItem.qml | 2 -- src/imports/controls/material/RadioButton.qml | 2 -- src/imports/controls/material/RadioDelegate.qml | 2 -- src/imports/controls/material/RangeSlider.qml | 2 -- src/imports/controls/material/RoundButton.qml | 2 -- src/imports/controls/material/ScrollBar.qml | 2 -- src/imports/controls/material/Slider.qml | 2 -- src/imports/controls/material/SpinBox.qml | 2 -- src/imports/controls/material/SwipeDelegate.qml | 2 -- src/imports/controls/material/Switch.qml | 2 -- src/imports/controls/material/SwitchDelegate.qml | 2 -- src/imports/controls/material/TabButton.qml | 2 -- src/imports/controls/material/TextArea.qml | 2 -- src/imports/controls/material/TextField.qml | 2 -- src/imports/controls/material/ToolButton.qml | 2 -- 21 files changed, 42 deletions(-) (limited to 'src/imports/controls/material') diff --git a/src/imports/controls/material/Button.qml b/src/imports/controls/material/Button.qml index 971992ab..8842f0ac 100644 --- a/src/imports/controls/material/Button.qml +++ b/src/imports/controls/material/Button.qml @@ -53,8 +53,6 @@ T.Button { leftPadding: padding - 4 rightPadding: padding - 4 - hoverEnabled: Qt.styleHints.useHoverEffects - Material.elevation: flat ? control.down || control.hovered ? 2 : 0 : control.down ? 8 : 2 Material.background: flat ? "transparent" : undefined diff --git a/src/imports/controls/material/CheckBox.qml b/src/imports/controls/material/CheckBox.qml index 60b23004..bb760bbd 100644 --- a/src/imports/controls/material/CheckBox.qml +++ b/src/imports/controls/material/CheckBox.qml @@ -54,8 +54,6 @@ T.CheckBox { topPadding: padding + 7 bottomPadding: padding + 7 - hoverEnabled: Qt.styleHints.useHoverEffects - indicator: CheckIndicator { x: text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2 y: control.topPadding + (control.availableHeight - height) / 2 diff --git a/src/imports/controls/material/CheckDelegate.qml b/src/imports/controls/material/CheckDelegate.qml index c932b69e..e77e0a9c 100644 --- a/src/imports/controls/material/CheckDelegate.qml +++ b/src/imports/controls/material/CheckDelegate.qml @@ -54,8 +54,6 @@ T.CheckDelegate { bottomPadding: 14 spacing: 16 - hoverEnabled: Qt.styleHints.useHoverEffects - indicator: CheckIndicator { x: text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2 y: control.topPadding + (control.availableHeight - height) / 2 diff --git a/src/imports/controls/material/ComboBox.qml b/src/imports/controls/material/ComboBox.qml index 6847ba6a..a87b5a86 100644 --- a/src/imports/controls/material/ComboBox.qml +++ b/src/imports/controls/material/ComboBox.qml @@ -54,8 +54,6 @@ T.ComboBox { spacing: 6 padding: 16 - hoverEnabled: Qt.styleHints.useHoverEffects - Material.elevation: flat ? control.pressed || control.hovered ? 2 : 0 : control.pressed ? 8 : 2 Material.background: flat ? "transparent" : undefined diff --git a/src/imports/controls/material/Dial.qml b/src/imports/controls/material/Dial.qml index 9f5d88c3..ce76c2a7 100644 --- a/src/imports/controls/material/Dial.qml +++ b/src/imports/controls/material/Dial.qml @@ -45,8 +45,6 @@ T.Dial { implicitWidth: 100 implicitHeight: 100 - hoverEnabled: Qt.styleHints.useHoverEffects - background: Rectangle { x: control.width / 2 - width / 2 y: control.height / 2 - height / 2 diff --git a/src/imports/controls/material/ItemDelegate.qml b/src/imports/controls/material/ItemDelegate.qml index ec03b129..ad9604fd 100644 --- a/src/imports/controls/material/ItemDelegate.qml +++ b/src/imports/controls/material/ItemDelegate.qml @@ -52,8 +52,6 @@ T.ItemDelegate { padding: 16 spacing: 16 - hoverEnabled: Qt.styleHints.useHoverEffects - contentItem: Text { leftPadding: control.checkable && !control.mirrored ? (control.indicator ? control.indicator.width : 0) + control.spacing : 0 rightPadding: control.checkable && control.mirrored ? (control.indicator ? control.indicator.width : 0) + control.spacing : 0 diff --git a/src/imports/controls/material/MenuItem.qml b/src/imports/controls/material/MenuItem.qml index 09a9909c..15c2d392 100644 --- a/src/imports/controls/material/MenuItem.qml +++ b/src/imports/controls/material/MenuItem.qml @@ -54,8 +54,6 @@ T.MenuItem { bottomPadding: 12 spacing: 16 - hoverEnabled: Qt.styleHints.useHoverEffects - indicator: CheckIndicator { x: text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2 y: control.topPadding + (control.availableHeight - height) / 2 diff --git a/src/imports/controls/material/RadioButton.qml b/src/imports/controls/material/RadioButton.qml index c3afbfd9..6faf1caa 100644 --- a/src/imports/controls/material/RadioButton.qml +++ b/src/imports/controls/material/RadioButton.qml @@ -54,8 +54,6 @@ T.RadioButton { topPadding: padding + 6 bottomPadding: padding + 6 - hoverEnabled: Qt.styleHints.useHoverEffects - indicator: RadioIndicator { x: text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2 y: control.topPadding + (control.availableHeight - height) / 2 diff --git a/src/imports/controls/material/RadioDelegate.qml b/src/imports/controls/material/RadioDelegate.qml index 150d72ae..4b7af82a 100644 --- a/src/imports/controls/material/RadioDelegate.qml +++ b/src/imports/controls/material/RadioDelegate.qml @@ -54,8 +54,6 @@ T.RadioDelegate { bottomPadding: 8 spacing: 16 - hoverEnabled: Qt.styleHints.useHoverEffects - indicator: RadioIndicator { x: text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2 y: control.topPadding + (control.availableHeight - height) / 2 diff --git a/src/imports/controls/material/RangeSlider.qml b/src/imports/controls/material/RangeSlider.qml index 641c00f1..4381fd41 100644 --- a/src/imports/controls/material/RangeSlider.qml +++ b/src/imports/controls/material/RangeSlider.qml @@ -51,8 +51,6 @@ T.RangeSlider { padding: 6 - hoverEnabled: Qt.styleHints.useHoverEffects - first.handle: SliderHandle { x: control.leftPadding + (horizontal ? control.first.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2) y: control.topPadding + (horizontal ? (control.availableHeight - height) / 2 : control.first.visualPosition * (control.availableHeight - height)) diff --git a/src/imports/controls/material/RoundButton.qml b/src/imports/controls/material/RoundButton.qml index c020db74..e385ac1b 100644 --- a/src/imports/controls/material/RoundButton.qml +++ b/src/imports/controls/material/RoundButton.qml @@ -51,8 +51,6 @@ T.RoundButton { // external vertical padding is 6 (to increase touch area) padding: 12 - hoverEnabled: Qt.styleHints.useHoverEffects - Material.elevation: flat ? control.down || control.hovered ? 2 : 0 : control.down ? 8 : 2 Material.background: flat ? "transparent" : undefined diff --git a/src/imports/controls/material/ScrollBar.qml b/src/imports/controls/material/ScrollBar.qml index afc30723..2874f125 100644 --- a/src/imports/controls/material/ScrollBar.qml +++ b/src/imports/controls/material/ScrollBar.qml @@ -48,8 +48,6 @@ T.ScrollBar { padding: 1 - hoverEnabled: Qt.styleHints.useHoverEffects - contentItem: Rectangle { id: handle diff --git a/src/imports/controls/material/Slider.qml b/src/imports/controls/material/Slider.qml index 1c915b32..7cf858e7 100644 --- a/src/imports/controls/material/Slider.qml +++ b/src/imports/controls/material/Slider.qml @@ -49,8 +49,6 @@ T.Slider { padding: 6 - hoverEnabled: Qt.styleHints.useHoverEffects - handle: SliderHandle { x: control.leftPadding + (horizontal ? control.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2) y: control.topPadding + (horizontal ? (control.availableHeight - height) / 2 : control.visualPosition * (control.availableHeight - height)) diff --git a/src/imports/controls/material/SpinBox.qml b/src/imports/controls/material/SpinBox.qml index 257e9bf2..b371f714 100644 --- a/src/imports/controls/material/SpinBox.qml +++ b/src/imports/controls/material/SpinBox.qml @@ -58,8 +58,6 @@ T.SpinBox { leftPadding: (control.mirrored ? (up.indicator ? up.indicator.width : 0) : (down.indicator ? down.indicator.width : 0)) rightPadding: (control.mirrored ? (down.indicator ? down.indicator.width : 0) : (up.indicator ? up.indicator.width : 0)) - hoverEnabled: Qt.styleHints.useHoverEffects - validator: IntValidator { locale: control.locale.name bottom: Math.min(control.from, control.to) diff --git a/src/imports/controls/material/SwipeDelegate.qml b/src/imports/controls/material/SwipeDelegate.qml index 6f614833..23db44fd 100644 --- a/src/imports/controls/material/SwipeDelegate.qml +++ b/src/imports/controls/material/SwipeDelegate.qml @@ -54,8 +54,6 @@ T.SwipeDelegate { bottomPadding: 8 spacing: 16 - hoverEnabled: Qt.styleHints.useHoverEffects - contentItem: Text { leftPadding: !control.mirrored ? (control.indicator ? control.indicator.width + control.spacing : 0) : 0 rightPadding: control.mirrored ? (control.indicator ? control.indicator.width + control.spacing : 0) : 0 diff --git a/src/imports/controls/material/Switch.qml b/src/imports/controls/material/Switch.qml index b833fbbf..3c9fbe51 100644 --- a/src/imports/controls/material/Switch.qml +++ b/src/imports/controls/material/Switch.qml @@ -52,8 +52,6 @@ T.Switch { padding: 8 spacing: 8 - hoverEnabled: Qt.styleHints.useHoverEffects - indicator: SwitchIndicator { x: text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2 y: control.topPadding + (control.availableHeight - height) / 2 diff --git a/src/imports/controls/material/SwitchDelegate.qml b/src/imports/controls/material/SwitchDelegate.qml index da084168..1a590774 100644 --- a/src/imports/controls/material/SwitchDelegate.qml +++ b/src/imports/controls/material/SwitchDelegate.qml @@ -54,8 +54,6 @@ T.SwitchDelegate { bottomPadding: 8 spacing: 16 - hoverEnabled: Qt.styleHints.useHoverEffects - indicator: SwitchIndicator { x: text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2 y: control.topPadding + (control.availableHeight - height) / 2 diff --git a/src/imports/controls/material/TabButton.qml b/src/imports/controls/material/TabButton.qml index 0fb16e63..a900747a 100644 --- a/src/imports/controls/material/TabButton.qml +++ b/src/imports/controls/material/TabButton.qml @@ -50,8 +50,6 @@ T.TabButton { padding: 12 - hoverEnabled: Qt.styleHints.useHoverEffects - contentItem: Text { text: control.text font: control.font diff --git a/src/imports/controls/material/TextArea.qml b/src/imports/controls/material/TextArea.qml index 3f30af00..8fdead60 100644 --- a/src/imports/controls/material/TextArea.qml +++ b/src/imports/controls/material/TextArea.qml @@ -51,8 +51,6 @@ T.TextArea { topPadding: 8 bottomPadding: 16 - hoverEnabled: Qt.styleHints.useHoverEffects - color: enabled ? Material.primaryTextColor : Material.hintTextColor selectionColor: Material.accentColor selectedTextColor: Material.primaryHighlightedTextColor diff --git a/src/imports/controls/material/TextField.qml b/src/imports/controls/material/TextField.qml index edab2385..be51fd13 100644 --- a/src/imports/controls/material/TextField.qml +++ b/src/imports/controls/material/TextField.qml @@ -51,8 +51,6 @@ T.TextField { topPadding: 8 bottomPadding: 16 - hoverEnabled: Qt.styleHints.useHoverEffects - color: enabled ? Material.primaryTextColor : Material.hintTextColor selectionColor: Material.accentColor selectedTextColor: Material.primaryHighlightedTextColor diff --git a/src/imports/controls/material/ToolButton.qml b/src/imports/controls/material/ToolButton.qml index dbeb7a05..d11e41ae 100644 --- a/src/imports/controls/material/ToolButton.qml +++ b/src/imports/controls/material/ToolButton.qml @@ -50,8 +50,6 @@ T.ToolButton { padding: 6 - hoverEnabled: Qt.styleHints.useHoverEffects - contentItem: Text { text: control.text font: control.font -- cgit v1.2.3