Commit 04c5ea8d authored by Jens Bache-Wiig's avatar Jens Bache-Wiig Committed by The Qt Project
Browse files

Add missing focus rect to check box and radio button


Only mac style actually indicated focus as we depend on a
focus rect around the text label for other styles.

Bonus fix: When setting the width of the check box
we would still use the implicit width in the style which
meant that items would overlap incorrectly

Change-Id: Ibb4dc92633fbc5fb200a35d1c0b04a297c7f8f42
Reviewed-by: default avatarGabriel de Dietrich <gabriel.dedietrich@digia.com>
parent ed7d168c
6.2 5.10 5.11 5.12 5.12.1 5.12.10 5.12.11 5.12.12 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.13 5.13.0 5.13.1 5.13.2 5.14 5.14.0 5.14.1 5.14.2 5.15 5.15.0 5.15.1 5.15.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.9.8 dev old/5.1 old/5.2 wip/calendar wip/tizen v5.15.0-alpha1 v5.14.1 v5.14.0 v5.14.0-rc2 v5.14.0-rc1 v5.14.0-beta3 v5.14.0-beta2 v5.14.0-beta1 v5.14.0-alpha1 v5.13.2 v5.13.1 v5.13.0 v5.13.0-rc3 v5.13.0-rc2 v5.13.0-rc1 v5.13.0-beta4 v5.13.0-beta3 v5.13.0-beta2 v5.13.0-beta1 v5.13.0-alpha1 v5.12.7 v5.12.6 v5.12.5 v5.12.4 v5.12.3 v5.12.2 v5.12.1 v5.12.0 v5.12.0-rc2 v5.12.0-rc1 v5.12.0-beta4 v5.12.0-beta3 v5.12.0-beta2 v5.12.0-beta1 v5.12.0-alpha1 v5.11.3 v5.11.2 v5.11.1 v5.11.0 v5.11.0-rc2 v5.11.0-rc1 v5.11.0-beta4 v5.11.0-beta3 v5.11.0-beta2 v5.11.0-beta1 v5.11.0-alpha1 v5.10.1 v5.10.0 v5.10.0-rc3 v5.10.0-rc2 v5.10.0-rc1 v5.10.0-beta4 v5.10.0-beta3 v5.10.0-beta2 v5.10.0-beta1 v5.10.0-alpha1 v5.9.9 v5.9.8 v5.9.7 v5.9.6 v5.9.5 v5.9.4 v5.9.3 v5.9.2 v5.9.1 v5.9.0 v5.9.0-rc2 v5.9.0-rc1 v5.9.0-beta4 v5.9.0-beta3 v5.9.0-beta2 v5.9.0-beta1 v5.9.0-alpha1 v5.8.0 v5.8.0-rc1 v5.8.0-beta1 v5.8.0-alpha1 v5.7.1 v5.7.0 v5.7.0-rc1 v5.7.0-beta1 v5.7.0-alpha1 v5.6.3 v5.6.2 v5.6.1 v5.6.1-1 v5.6.0 v5.6.0-rc1 v5.6.0-beta1 v5.6.0-alpha1 v5.5.1 v5.5.0 v5.5.0-rc1 v5.5.0-beta1 v5.5.0-alpha1 v5.4.2 v5.4.1 v5.4.0 v5.4.0-rc1 v5.4.0-beta1 v5.4.0-alpha1 v5.3.2 v5.3.1 v5.3.0 v5.3.0-rc1 v5.3.0-beta1 v5.3.0-alpha1 v5.2.1 v5.2.0 v5.2.0-rc1 v5.2.0-beta1 v5.2.0-alpha1 v5.1.1 v5.1.0 v5.1.0-rc2 v5.1.0-rc1
No related merge requests found
Showing with 35 additions and 2 deletions
...@@ -357,6 +357,13 @@ void QQuickStyleItem::initStyleOption() ...@@ -357,6 +357,13 @@ void QQuickStyleItem::initStyleOption()
opt->midLineWidth = 1; opt->midLineWidth = 1;
} }
break; break;
case FocusRect: {
if (!m_styleoption)
m_styleoption = new QStyleOptionFocusRect();
// Needed on windows
m_styleoption->state |= QStyle::State_KeyboardFocusChange;
}
break;
case TabFrame: { case TabFrame: {
if (!m_styleoption) if (!m_styleoption)
m_styleoption = new QStyleOptionTabWidgetFrame(); m_styleoption = new QStyleOptionTabWidgetFrame();
...@@ -1043,6 +1050,8 @@ void QQuickStyleItem::setElementType(const QString &str) ...@@ -1043,6 +1050,8 @@ void QQuickStyleItem::setElementType(const QString &str)
m_itemType = Widget; m_itemType = Widget;
} else if (str == "focusframe") { } else if (str == "focusframe") {
m_itemType = FocusFrame; m_itemType = FocusFrame;
} else if (str == "focusrect") {
m_itemType = FocusRect;
} else if (str == "dial") { } else if (str == "dial") {
m_itemType = Dial; m_itemType = Dial;
} else if (str == "statusbar") { } else if (str == "statusbar") {
...@@ -1249,6 +1258,9 @@ void QQuickStyleItem::paint(QPainter *painter) ...@@ -1249,6 +1258,9 @@ void QQuickStyleItem::paint(QPainter *painter)
#endif #endif
qApp->style()->drawControl(QStyle::CE_FocusFrame, m_styleoption, painter); qApp->style()->drawControl(QStyle::CE_FocusFrame, m_styleoption, painter);
break; break;
case FocusRect:
qApp->style()->drawPrimitive(QStyle::PE_FrameFocusRect, m_styleoption, painter);
break;
case TabFrame: case TabFrame:
qApp->style()->drawPrimitive(QStyle::PE_FrameTabWidget, m_styleoption, painter); qApp->style()->drawPrimitive(QStyle::PE_FrameTabWidget, m_styleoption, painter);
break; break;
......
...@@ -99,6 +99,7 @@ public: ...@@ -99,6 +99,7 @@ public:
TabFrame, TabFrame,
Frame, Frame,
FocusFrame, FocusFrame,
FocusRect,
SpinBox, SpinBox,
Slider, Slider,
ScrollBar, ScrollBar,
......
...@@ -54,7 +54,7 @@ Style { ...@@ -54,7 +54,7 @@ Style {
on: control.checked || control.pressed on: control.checked || control.pressed
hover: control.__containsMouse hover: control.__containsMouse
enabled: control.enabled enabled: control.enabled
hasFocus: control.activeFocus hasFocus: control.activeFocus && styleitem.style == "mac"
hints: { hints: {
if (control.checkedState === Qt.PartiallyChecked) if (control.checkedState === Qt.PartiallyChecked)
control.styleHints.push("partiallyChecked"); control.styleHints.push("partiallyChecked");
...@@ -82,6 +82,16 @@ Style { ...@@ -82,6 +82,16 @@ Style {
elide: Text.ElideRight elide: Text.ElideRight
enabled: control.enabled enabled: control.enabled
color: __syspal.windowText color: __syspal.windowText
StyleItem {
elementType: "focusrect"
anchors.margins: -1
anchors.leftMargin: -2
anchors.top: parent.top
anchors.left: parent.left
anchors.bottom: parent.bottom
width: textitem.implicitWidth + 3
visible: control.activeFocus
}
} }
} }
} }
......
...@@ -58,7 +58,7 @@ Style { ...@@ -58,7 +58,7 @@ Style {
on: control.checked || control.pressed on: control.checked || control.pressed
hover: control.__containsMouse hover: control.__containsMouse
enabled: control.enabled enabled: control.enabled
hasFocus: control.activeFocus hasFocus: control.activeFocus && styleitem.style == "mac"
hints: control.styleHints hints: control.styleHints
contentHeight: textitem.implicitHeight contentHeight: textitem.implicitHeight
contentWidth: textitem.implicitWidth + indicatorWidth contentWidth: textitem.implicitWidth + indicatorWidth
...@@ -77,6 +77,16 @@ Style { ...@@ -77,6 +77,16 @@ Style {
elide: Text.ElideRight elide: Text.ElideRight
enabled: control.enabled enabled: control.enabled
color: __syspal.windowText color: __syspal.windowText
StyleItem {
elementType: "focusrect"
anchors.margins: -1
anchors.leftMargin: -2
anchors.top: parent.top
anchors.left: parent.left
anchors.bottom: parent.bottom
width: textitem.implicitWidth + 3
visible: control.activeFocus
}
} }
} }
} }
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment