diff options
author | J-P Nurmi <jpnurmi@theqtcompany.com> | 2016-02-15 12:49:37 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@theqtcompany.com> | 2016-02-15 12:54:49 +0000 |
commit | f066fce2bb2aba6b94b44008877ac8e03b5b1f82 (patch) | |
tree | 07956ecc8b0206c47f63c27f65338154b700c67d | |
parent | ec21d974f16a03d3ba0056dac0db7f458704611c (diff) |
SpinBox: fix JS callback access
Avoid calling an uninitialized JS callback. This is a regression caused
by lazy creation of the JS callbacks in 1f146d9.
Change-Id: I1816b491ada0509c5664cffbcaa32ca987095b31
Task-number: QTBUG-51114
Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
-rw-r--r-- | src/templates/qquickspinbox.cpp | 2 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_spinbox.qml | 21 |
2 files changed, 22 insertions, 1 deletions
diff --git a/src/templates/qquickspinbox.cpp b/src/templates/qquickspinbox.cpp index bda955d0..255715e1 100644 --- a/src/templates/qquickspinbox.cpp +++ b/src/templates/qquickspinbox.cpp @@ -133,7 +133,7 @@ void QQuickSpinBoxPrivate::updateValue() if (text.isValid()) { QV4::ExecutionEngine *v4 = QQmlEnginePrivate::getV4Engine(qmlEngine(q)); QJSValue loc(v4, QQmlLocale::wrap(v4, locale)); - QJSValue val = valueFromText.call(QJSValueList() << text.toString() << loc); + QJSValue val = q->valueFromText().call(QJSValueList() << text.toString() << loc); q->setValue(val.toInt()); } } diff --git a/tests/auto/controls/data/tst_spinbox.qml b/tests/auto/controls/data/tst_spinbox.qml index a2ab5a4a..cdea8b66 100644 --- a/tests/auto/controls/data/tst_spinbox.qml +++ b/tests/auto/controls/data/tst_spinbox.qml @@ -305,4 +305,25 @@ TestCase { compare(control.baselineOffset, control.contentItem.y + control.contentItem.baselineOffset) control.destroy() } + + function test_focus() { + var control = spinBox.createObject(testCase, {from: 10, to: 1000, value: 100, focus: true}) + verify(control) + + control.forceActiveFocus() + compare(control.activeFocus, true) + + compare(control.from, 10) + compare(control.to, 1000) + compare(control.value, 100) + + control.focus = false + compare(control.activeFocus, false) + + compare(control.from, 10) + compare(control.to, 1000) + compare(control.value, 100) + + control.destroy() + } } |