diff options
author | Risto Avila <risto.avila@digia.com> | 2014-03-11 12:04:52 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-03-12 11:15:27 +0100 |
commit | 405f1becac28ee324364df4e3df0446d951425e8 (patch) | |
tree | 1105dfb614a3ffcdadbb01d433f1a76e05f6bc8c /src/quick/items/qquicktextinput.cpp | |
parent | 1511dc39a62e9d14b6755d6c2335547c85331d49 (diff) |
Makes PasswordMaskDelay configurable through TextInput
Adds a new property to TextInput which can be used to override QPlatformTheme::PasswordMaskDelay.
The new property is TextInput.passwordMaskDelay and takes in delay (ms) which time character
is shown before masking it. This is only when echoMode is set to TextInput.Password
[ChangeLog][QtQuick][TextInput] Added passwordMaskDelay property
Change-Id: I52812b883db11fdd21b25154887c51df8a44f69c
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Diffstat (limited to 'src/quick/items/qquicktextinput.cpp')
-rw-r--r-- | src/quick/items/qquicktextinput.cpp | 38 |
1 files changed, 32 insertions, 6 deletions
diff --git a/src/quick/items/qquicktextinput.cpp b/src/quick/items/qquicktextinput.cpp index ad79f0eadf..26dda5db6b 100644 --- a/src/quick/items/qquicktextinput.cpp +++ b/src/quick/items/qquicktextinput.cpp @@ -2059,9 +2059,8 @@ void QQuickTextInput::insert(int position, const QString &text) { Q_D(QQuickTextInput); if (d->m_echoMode == QQuickTextInput::Password) { - int delay = qGuiApp->styleHints()->passwordMaskDelay(); - if (delay > 0) - d->m_passwordEchoTimer.start(delay, this); + if (d->m_passwordMaskDelay > 0) + d->m_passwordEchoTimer.start(d->m_passwordMaskDelay, this); } if (position < 0 || position > d->m_text.length()) return; @@ -2241,6 +2240,34 @@ void QQuickTextInput::setPasswordCharacter(const QString &str) } /*! + \qmlproperty int QtQuick::TextInput::passwordMaskDelay + \since 5.4 + + Sets the delay before visible character is masked with password character, in milliseconds. + + The reset method will be called by assigning undefined. +*/ +int QQuickTextInput::passwordMaskDelay() const +{ + Q_D(const QQuickTextInput); + return d->m_passwordMaskDelay; +} + +void QQuickTextInput::setPasswordMaskDelay(int delay) +{ + Q_D(QQuickTextInput); + if (d->m_passwordMaskDelay != delay) { + d->m_passwordMaskDelay = delay; + emit passwordMaskDelayChanged(delay); + } +} + +void QQuickTextInput::resetPasswordMaskDelay() +{ + setPasswordMaskDelay(qGuiApp->styleHints()->passwordMaskDelay()); +} + +/*! \qmlproperty string QtQuick::TextInput::displayText This is the text displayed in the TextInput. @@ -3478,9 +3505,8 @@ void QQuickTextInputPrivate::internalInsert(const QString &s) { Q_Q(QQuickTextInput); if (m_echoMode == QQuickTextInput::Password) { - int delay = qGuiApp->styleHints()->passwordMaskDelay(); - if (delay > 0) - m_passwordEchoTimer.start(delay, q); + if (m_passwordMaskDelay > 0) + m_passwordEchoTimer.start(m_passwordMaskDelay, q); } Q_ASSERT(!hasSelectedText()); // insert(), processInputMethodEvent() call removeSelectedText() first. if (m_maskData) { |