aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndrew den Exter <andrew.den-exter@nokia.com>2012-06-21 16:44:30 +1000
committerQt by Nokia <qt-info@nokia.com>2012-07-04 03:35:18 +0200
commita1ea8f59e650c6be3e14274b36b1197245e96067 (patch)
tree6672ec00f4a5ca00588a7cd054189ccfe979f482 /src
parentf18b66ac6cfc734d217ec9d44876774f25e5d900 (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.cpp18
-rw-r--r--src/quick/items/qquicktextinput_p.h4
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;