From 6c9ba0eb17e28719c50eef00c69f812aa2deba0a Mon Sep 17 00:00:00 2001 From: J-P Nurmi <jpnurmi@theqtcompany.com> Date: Sun, 9 Nov 2014 13:12:21 +0100 Subject: [PATCH] Android/SwitchStyle: use TextMetrics instead of FontMetrics Ensures that the thumb text width is correctly calculated regardless of QML's arbitrary binding evaluation order. Change-Id: I71526db963fec6d54ad717f46382537591268e37 Reviewed-by: Mitch Curtis <mitch.curtis@digia.com> Reviewed-by: Caroline Chao <caroline.chao@theqtcompany.com> --- src/controls/Styles/Android/SwitchStyle.qml | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/controls/Styles/Android/SwitchStyle.qml b/src/controls/Styles/Android/SwitchStyle.qml index 4c36c918e..8401d3535 100644 --- a/src/controls/Styles/Android/SwitchStyle.qml +++ b/src/controls/Styles/Android/SwitchStyle.qml @@ -81,16 +81,22 @@ SwitchStyle { x: control.checked ? max : min - FontMetrics { - id: metrics + TextMetrics { + id: onMetrics font: label.font + text: panel.styleDef.Switch_textOn } - readonly property real maxTextWidth: Math.max(metrics.boundingRect(panel.styleDef.Switch_textOn).width, - metrics.boundingRect(panel.styleDef.Switch_textOff).width) + TextMetrics { + id: offMetrics + font: label.font + text: panel.styleDef.Switch_textOff + } + + readonly property real maxTextWidth: Math.max(onMetrics.width, offMetrics.width) implicitWidth: Math.max(loader.implicitWidth, maxTextWidth + 2 * panel.styleDef.Switch_thumbTextPadding) - implicitHeight: Math.max(loader.implicitHeight, metrics.height) + implicitHeight: Math.max(loader.implicitHeight, onMetrics.height, offMetrics.height) anchors.top: parent.top anchors.bottom: parent.bottom -- GitLab