aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2016-01-13 13:54:15 +0100
committerLiang Qi <liang.qi@theqtcompany.com>2016-01-19 05:53:03 +0000
commit9876f7ac8bd3679a9ed0e617aaadad032403a88f (patch)
tree9b43c21ee5b4988ed893b7c4dbcd0b40b5a82184 /src/quick
parentb923553bea186e5d50b94ee8875f4d5ff6f0446a (diff)
QQuickTextEdit: added clear() method
Task-number: QTBUG-50428 Change-Id: Id618616f8d8d50c2a2eba79a2bf6969662e727b8 Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Diffstat (limited to 'src/quick')
-rw-r--r--src/quick/items/qquicktextcontrol.cpp7
-rw-r--r--src/quick/items/qquicktextcontrol_p.h1
-rw-r--r--src/quick/items/qquicktextedit.cpp27
-rw-r--r--src/quick/items/qquicktextedit_p.h1
-rw-r--r--src/quick/items/qquicktextedit_p_p.h1
5 files changed, 37 insertions, 0 deletions
diff --git a/src/quick/items/qquicktextcontrol.cpp b/src/quick/items/qquicktextcontrol.cpp
index d3e858c67f..f87601dfe1 100644
--- a/src/quick/items/qquicktextcontrol.cpp
+++ b/src/quick/items/qquicktextcontrol.cpp
@@ -577,6 +577,13 @@ void QQuickTextControl::redo()
updateCursorRectangle(true);
}
+void QQuickTextControl::clear()
+{
+ Q_D(QQuickTextControl);
+ d->cursor.select(QTextCursor::Document);
+ d->cursor.removeSelectedText();
+}
+
QQuickTextControl::QQuickTextControl(QTextDocument *doc, QObject *parent)
: QObject(*new QQuickTextControlPrivate, parent)
{
diff --git a/src/quick/items/qquicktextcontrol_p.h b/src/quick/items/qquicktextcontrol_p.h
index 146201eb70..06a1ee4f19 100644
--- a/src/quick/items/qquicktextcontrol_p.h
+++ b/src/quick/items/qquicktextcontrol_p.h
@@ -128,6 +128,7 @@ public Q_SLOTS:
void undo();
void redo();
+ void clear();
void selectAll();
diff --git a/src/quick/items/qquicktextedit.cpp b/src/quick/items/qquicktextedit.cpp
index 0535bc4e6b..75eab3f2fe 100644
--- a/src/quick/items/qquicktextedit.cpp
+++ b/src/quick/items/qquicktextedit.cpp
@@ -328,6 +328,8 @@ QString QQuickTextEdit::text() const
insert() and remove() methods provide more fine-grained control and
remarkably better performance for modifying especially large rich text
content.
+
+ \sa clear()
*/
void QQuickTextEdit::setText(const QString &text)
{
@@ -2197,6 +2199,13 @@ void QQuickTextEditPrivate::init()
q->updateSize();
}
+void QQuickTextEditPrivate::resetInputMethod()
+{
+ Q_Q(QQuickTextEdit);
+ if (!q->isReadOnly() && q->hasActiveFocus() && qGuiApp)
+ QGuiApplication::inputMethod()->reset();
+}
+
void QQuickTextEdit::q_textChanged()
{
Q_D(QQuickTextEdit);
@@ -2952,4 +2961,22 @@ void QQuickTextEdit::resetBottomPadding()
d->setBottomPadding(0, true);
}
+/*!
+ \qmlmethod QtQuick::TextEdit::clear()
+ \since 5.7
+
+ Clears the contents of the text edit
+ 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 QQuickTextEdit::clear()
+{
+ Q_D(QQuickTextEdit);
+ d->resetInputMethod();
+ d->control->clear();
+}
+
QT_END_NAMESPACE
diff --git a/src/quick/items/qquicktextedit_p.h b/src/quick/items/qquicktextedit_p.h
index e222f497e3..0e12c68582 100644
--- a/src/quick/items/qquicktextedit_p.h
+++ b/src/quick/items/qquicktextedit_p.h
@@ -346,6 +346,7 @@ public Q_SLOTS:
void insert(int position, const QString &text);
void remove(int start, int end);
Q_REVISION(2) void append(const QString &text);
+ Q_REVISION(7) void clear();
private Q_SLOTS:
void q_textChanged();
diff --git a/src/quick/items/qquicktextedit_p_p.h b/src/quick/items/qquicktextedit_p_p.h
index a2b4c1ab99..5059675541 100644
--- a/src/quick/items/qquicktextedit_p_p.h
+++ b/src/quick/items/qquicktextedit_p_p.h
@@ -135,6 +135,7 @@ public:
void init();
+ void resetInputMethod();
void updateDefaultTextOption();
void relayoutDocument();
bool determineHorizontalAlignment();