diff options
author | Liang Qi <liang.qi@theqtcompany.com> | 2016-01-13 12:55:46 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@theqtcompany.com> | 2016-01-19 05:53:00 +0000 |
commit | b923553bea186e5d50b94ee8875f4d5ff6f0446a (patch) | |
tree | 4389108bca6dc81bd20ccc61daa904a46a2fa805 /src/quick/items | |
parent | f644f86c84287065535fbd8c3478a5b2550437ac (diff) |
QQuickTextInput: added clear() method
Task-number: QTBUG-50428
Change-Id: I394c2cf1bc397dcbf6d82d3211a6b39519d7582b
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Diffstat (limited to 'src/quick/items')
-rw-r--r-- | src/quick/items/qquicktextinput.cpp | 29 | ||||
-rw-r--r-- | src/quick/items/qquicktextinput_p.h | 1 | ||||
-rw-r--r-- | src/quick/items/qquicktextinput_p_p.h | 1 |
3 files changed, 31 insertions, 0 deletions
diff --git a/src/quick/items/qquicktextinput.cpp b/src/quick/items/qquicktextinput.cpp index 6d4be60131..1cc5d4d75d 100644 --- a/src/quick/items/qquicktextinput.cpp +++ b/src/quick/items/qquicktextinput.cpp @@ -118,6 +118,8 @@ void QQuickTextInput::componentComplete() \qmlproperty string QtQuick::TextInput::text The text in the TextInput. + + \sa clear() */ QString QQuickTextInput::text() const { @@ -1932,6 +1934,7 @@ void QQuickTextInput::undo() { Q_D(QQuickTextInput); if (!d->m_readOnly) { + d->resetInputMethod(); d->internalUndo(); d->finishChange(-1, true); } @@ -1947,6 +1950,7 @@ void QQuickTextInput::redo() { Q_D(QQuickTextInput); if (!d->m_readOnly) { + d->resetInputMethod(); d->internalRedo(); d->finishChange(); } @@ -2569,6 +2573,13 @@ void QQuickTextInputPrivate::init() } } +void QQuickTextInputPrivate::resetInputMethod() +{ + Q_Q(QQuickTextInput); + if (!m_readOnly && q->hasActiveFocus() && qGuiApp) + QGuiApplication::inputMethod()->reset(); +} + void QQuickTextInput::updateCursorRectangle(bool scroll) { Q_D(QQuickTextInput); @@ -4474,6 +4485,24 @@ void QQuickTextInput::ensureVisible(int position) } /*! + \qmlmethod QtQuick::TextInput::clear() + \since 5.7 + + Clears the contents of the text input + and resets partial text input from an input method. + + Use this method instead of setting the \l text property to an empty string. + + \sa QInputMethod::reset() +*/ +void QQuickTextInput::clear() +{ + Q_D(QQuickTextInput); + d->resetInputMethod(); + d->clear(); +} + +/*! \since 5.6 \qmlproperty real QtQuick::TextInput::padding \qmlproperty real QtQuick::TextInput::topPadding diff --git a/src/quick/items/qquicktextinput_p.h b/src/quick/items/qquicktextinput_p.h index 2dcc67a856..365d9685ce 100644 --- a/src/quick/items/qquicktextinput_p.h +++ b/src/quick/items/qquicktextinput_p.h @@ -388,6 +388,7 @@ public Q_SLOTS: void insert(int position, const QString &text); void remove(int start, int end); Q_REVISION(3) void ensureVisible(int position); + Q_REVISION(7) void clear(); private Q_SLOTS: void selectionChanged(); diff --git a/src/quick/items/qquicktextinput_p_p.h b/src/quick/items/qquicktextinput_p_p.h index 6aaa630839..4222ad5f76 100644 --- a/src/quick/items/qquicktextinput_p_p.h +++ b/src/quick/items/qquicktextinput_p_p.h @@ -160,6 +160,7 @@ public: } void init(); + void resetInputMethod(); void startCreatingCursor(); void ensureVisible(int position, int preeditCursor = 0, int preeditLength = 0); void updateHorizontalScroll(); |