diff options
author | Liang Qi <[email protected]> | 2016-01-13 13:54:15 +0100 |
---|---|---|
committer | Liang Qi <[email protected]> | 2016-01-19 05:53:03 +0000 |
commit | 9876f7ac8bd3679a9ed0e617aaadad032403a88f (patch) | |
tree | 9b43c21ee5b4988ed893b7c4dbcd0b40b5a82184 /src | |
parent | b923553bea186e5d50b94ee8875f4d5ff6f0446a (diff) |
QQuickTextEdit: added clear() method
Task-number: QTBUG-50428
Change-Id: Id618616f8d8d50c2a2eba79a2bf6969662e727b8
Reviewed-by: J-P Nurmi <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/quick/items/qquicktextcontrol.cpp | 7 | ||||
-rw-r--r-- | src/quick/items/qquicktextcontrol_p.h | 1 | ||||
-rw-r--r-- | src/quick/items/qquicktextedit.cpp | 27 | ||||
-rw-r--r-- | src/quick/items/qquicktextedit_p.h | 1 | ||||
-rw-r--r-- | src/quick/items/qquicktextedit_p_p.h | 1 |
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(); |