From 1b21b73e89942d567c90a17a3bf7a7ecae3de258 Mon Sep 17 00:00:00 2001 From: Andy Shaw Date: Tue, 25 Jul 2017 12:48:33 +0200 Subject: QQuickTextInput: Allow going from an Acceptable to an Intermediate state When editing text with a validator set then it can happen that it would no longer be in the acceptable state. This ensures that it does not prevent editing the text when an input mask is used to go back to an Intermediate state. Change-Id: I6da533d18035e9da468939c28a961bc8f2f3090b Reviewed-by: Robin Burchell Reviewed-by: Mitch Curtis --- src/quick/items/qquicktextinput.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/quick/items/qquicktextinput.cpp') diff --git a/src/quick/items/qquicktextinput.cpp b/src/quick/items/qquicktextinput.cpp index 43899ba457..28b089da49 100644 --- a/src/quick/items/qquicktextinput.cpp +++ b/src/quick/items/qquicktextinput.cpp @@ -3545,18 +3545,23 @@ bool QQuickTextInputPrivate::finishChange(int validateFromState, bool update, bo #endif if (m_maskData) { + m_validInput = true; if (m_text.length() != m_maxLength) { + m_validInput = false; m_acceptableInput = false; } else { for (int i = 0; i < m_maxLength; ++i) { if (m_maskData[i].separator) { if (m_text.at(i) != m_maskData[i].maskChar) { + m_validInput = false; m_acceptableInput = false; break; } } else { if (!isValidInput(m_text.at(i), m_maskData[i].maskChar)) { m_acceptableInput = false; + if (m_text.at(i) != m_blank) + m_validInput = false; break; } } -- cgit v1.2.3