From 37bb3586eaee91eb0b1e6f202888e0ed196e0e75 Mon Sep 17 00:00:00 2001 From: Alexander Ivash Date: Tue, 13 Nov 2018 19:05:16 +0530 Subject: [PATCH] show spinbox suffix in separate control to: disallow editing it & allow to pass validator --- .../resources/qml/controlsUit/SpinBox.qml | 27 ++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/interface/resources/qml/controlsUit/SpinBox.qml b/interface/resources/qml/controlsUit/SpinBox.qml index d24c7c5e8c..34794d80c7 100644 --- a/interface/resources/qml/controlsUit/SpinBox.qml +++ b/interface/resources/qml/controlsUit/SpinBox.qml @@ -83,8 +83,10 @@ SpinBox { } validator: DoubleValidator { - bottom: Math.min(spinBox.from, spinBox.to) - top: Math.max(spinBox.from, spinBox.to) + decimals: spinBox.decimals + bottom: Math.min(spinBox.realFrom, spinBox.realTo) + top: Math.max(spinBox.realFrom, spinBox.realTo) + notation: DoubleValidator.StandardNotation } textFromValue: function(value, locale) { @@ -97,20 +99,37 @@ SpinBox { contentItem: TextInput { + id: spinboxText z: 2 color: isLightColorScheme ? (spinBox.activeFocus ? hifi.colors.black : hifi.colors.lightGray) : (spinBox.activeFocus ? hifi.colors.white : hifi.colors.lightGrayText) selectedTextColor: hifi.colors.black selectionColor: hifi.colors.primaryHighlight - text: spinBox.textFromValue(spinBox.value, spinBox.locale) + suffix + text: spinBox.textFromValue(spinBox.value, spinBox.locale) inputMethodHints: spinBox.inputMethodHints validator: spinBox.validator verticalAlignment: Qt.AlignVCenter leftPadding: spinBoxLabelInside.visible ? 30 : hifi.dimensions.textPadding - //rightPadding: hifi.dimensions.spinnerSize width: spinBox.width - hifi.dimensions.spinnerSize onEditingFinished: spinBox.editingFinished() + + Text { + id: suffixText + x: metrics.advanceWidth(spinboxText.text + '*') + height: spinboxText.height + + FontMetrics { + id: metrics + font: spinboxText.font + } + + color: isLightColorScheme + ? (spinBox.activeFocus ? hifi.colors.black : hifi.colors.lightGray) + : (spinBox.activeFocus ? hifi.colors.white : hifi.colors.lightGrayText) + text: suffix + verticalAlignment: Qt.AlignVCenter + } } up.indicator: Item {