diff options
author | Andrew den Exter <andrew.den-exter@nokia.com> | 2012-06-21 16:44:30 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-07-04 03:35:18 +0200 |
commit | a1ea8f59e650c6be3e14274b36b1197245e96067 (patch) | |
tree | 6672ec00f4a5ca00588a7cd054189ccfe979f482 /src | |
parent | f18b66ac6cfc734d217ec9d44876774f25e5d900 (diff) |
Refresh the TextInput.acceptableInput property when validator changes.
Task-number: QTBUG-26260
Change-Id: I404640d9a2f000976887dcc2119f971c17a71c7e
Reviewed-by: Martin Jones <martin.jones@nokia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/quick/items/qquicktextinput.cpp | 18 | ||||
-rw-r--r-- | src/quick/items/qquicktextinput_p.h | 4 |
2 files changed, 22 insertions, 0 deletions
diff --git a/src/quick/items/qquicktextinput.cpp b/src/quick/items/qquicktextinput.cpp index c1e30a95ea..ce2492d07a 100644 --- a/src/quick/items/qquicktextinput.cpp +++ b/src/quick/items/qquicktextinput.cpp @@ -1053,14 +1053,32 @@ void QQuickTextInput::setValidator(QValidator* v) if (d->m_validator == v) return; + if (d->m_validator) { + qmlobject_disconnect( + d->m_validator, QValidator, SIGNAL(changed()), + this, QQuickTextInput, SLOT(q_validatorChanged())); + } + d->m_validator = v; + if (d->m_validator) { + qmlobject_connect( + d->m_validator, QValidator, SIGNAL(changed()), + this, QQuickTextInput, SLOT(q_validatorChanged())); + } + if (isComponentComplete()) d->checkIsValid(); emit validatorChanged(); } +void QQuickTextInput::q_validatorChanged() +{ + Q_D(QQuickTextInput); + d->checkIsValid(); +} + #endif // QT_NO_VALIDATOR void QQuickTextInputPrivate::checkIsValid() diff --git a/src/quick/items/qquicktextinput_p.h b/src/quick/items/qquicktextinput_p.h index fb21eb910b..16faa01fc8 100644 --- a/src/quick/items/qquicktextinput_p.h +++ b/src/quick/items/qquicktextinput_p.h @@ -340,6 +340,10 @@ private Q_SLOTS: void q_updateAlignment(); void triggerPreprocess(); +#ifndef QT_NO_VALIDATOR + void q_validatorChanged(); +#endif + private: friend class QQuickTextUtil; |