aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndrew den Exter <andrew.den-exter@nokia.com>2012-01-10 16:51:22 +1000
committerQt by Nokia <qt-info@nokia.com>2012-01-12 09:33:32 +0100
commit0cafd920cced1f726a8b6422b6fb496ecf846f34 (patch)
tree894d968257397737786f8408bc46aaf499de5a23 /src
parent9d73bf289e2719d781670baad1733989a56d7f40 (diff)
Fix validators not allowing backspace or delete.
TextInput will allow non-valid changes to already invalid text, when a validator is changed update the current validity so changes can be made to bring the text back to a valid state. Task-number: QTBUG-22080 Change-Id: I501961b473f58c317bce474b1df8d91fd1f967d4 Reviewed-by: Martin Jones <martin.jones@nokia.com>
Diffstat (limited to 'src')
-rw-r--r--src/quick/items/qquicktextinput.cpp8
-rw-r--r--src/quick/items/qquicktextinput_p_p.h2
2 files changed, 6 insertions, 4 deletions
diff --git a/src/quick/items/qquicktextinput.cpp b/src/quick/items/qquicktextinput.cpp
index df536f4f59..12f02d8374 100644
--- a/src/quick/items/qquicktextinput.cpp
+++ b/src/quick/items/qquicktextinput.cpp
@@ -931,7 +931,12 @@ void QQuickTextInput::setValidator(QValidator* v)
d->m_validator = v;
if (!d->hasAcceptableInput(d->m_text)) {
- d->oldValidity = false;
+ if (d->m_validInput) {
+ d->m_validInput = false;
+ emit acceptableInputChanged();
+ }
+ } else if (!d->m_validInput) {
+ d->m_validInput = true;
emit acceptableInputChanged();
}
@@ -2345,7 +2350,6 @@ void QQuickTextInputPrivate::init()
q, SLOT(q_canPasteChanged()));
#endif // QT_NO_CLIPBOARD
- oldValidity = hasAcceptableInput(m_text);
lastSelectionStart = 0;
lastSelectionEnd = 0;
selectedTextColor = m_palette.color(QPalette::HighlightedText);
diff --git a/src/quick/items/qquicktextinput_p_p.h b/src/quick/items/qquicktextinput_p_p.h
index 03d825d108..44df9f25e2 100644
--- a/src/quick/items/qquicktextinput_p_p.h
+++ b/src/quick/items/qquicktextinput_p_p.h
@@ -105,7 +105,6 @@ public:
, inputMethodHints(Qt::ImhNone)
, m_layoutDirection(Qt::LayoutDirectionAuto)
, m_passwordCharacter(QLatin1Char('*'))
- , oldValidity(false)
, focused(false)
, focusOnPress(true)
, cursorVisible(false)
@@ -231,7 +230,6 @@ public:
QChar m_blank;
QChar m_passwordCharacter;
- bool oldValidity:1;
bool focused:1;
bool focusOnPress:1;
bool cursorVisible:1;