diff options
author | Andrew den Exter <andrew.den-exter@nokia.com> | 2012-01-10 16:51:22 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-01-12 09:33:32 +0100 |
commit | 0cafd920cced1f726a8b6422b6fb496ecf846f34 (patch) | |
tree | 894d968257397737786f8408bc46aaf499de5a23 /src | |
parent | 9d73bf289e2719d781670baad1733989a56d7f40 (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.cpp | 8 | ||||
-rw-r--r-- | src/quick/items/qquicktextinput_p_p.h | 2 |
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; |