aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2016-01-13 12:55:46 +0100
committerLiang Qi <liang.qi@theqtcompany.com>2016-01-19 05:53:00 +0000
commitb923553bea186e5d50b94ee8875f4d5ff6f0446a (patch)
tree4389108bca6dc81bd20ccc61daa904a46a2fa805 /src/quick/items
parentf644f86c84287065535fbd8c3478a5b2550437ac (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.cpp29
-rw-r--r--src/quick/items/qquicktextinput_p.h1
-rw-r--r--src/quick/items/qquicktextinput_p_p.h1
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();