diff options
Diffstat (limited to 'src/quick')
-rw-r--r-- | src/quick/items/qquicktextcontrol.cpp | 19 | ||||
-rw-r--r-- | src/quick/items/qquicktextcontrol_p.h | 6 | ||||
-rw-r--r-- | src/quick/items/qquicktextcontrol_p_p.h | 1 | ||||
-rw-r--r-- | src/quick/items/qquicktextedit.cpp | 4 |
4 files changed, 24 insertions, 6 deletions
diff --git a/src/quick/items/qquicktextcontrol.cpp b/src/quick/items/qquicktextcontrol.cpp index cd4d853a88..436b6b7ae9 100644 --- a/src/quick/items/qquicktextcontrol.cpp +++ b/src/quick/items/qquicktextcontrol.cpp @@ -1869,7 +1869,10 @@ void QQuickTextControlPrivate::inputMethodEvent(QInputMethodEvent *e) } } layout->setAdditionalFormats(overrides); + tentativeCommit = e->tentativeCommitString(); + cursor.endEditBlock(); + QTextCursorPrivate *cursor_d = QTextCursorPrivate::getPrivate(&cursor); if (cursor_d) cursor_d->setX(); @@ -2696,6 +2699,22 @@ void QQuickTextControl::appendPlainText(const QString &text) d->append(text, Qt::PlainText); } +QString QQuickTextControl::toPlainText() const +{ + Q_D(const QQuickTextControl); + QString plainText = document()->toPlainText(); + if (!d->tentativeCommit.isEmpty()) + plainText.insert(textCursor().position(), d->tentativeCommit); + return plainText; +} + +#ifndef QT_NO_TEXTHTMLPARSER +QString QQuickTextControl::toHtml() const +{ + // note: currently not including tentative commit + return document()->toHtml(); +} +#endif void QQuickTextControl::ensureCursorVisible() { diff --git a/src/quick/items/qquicktextcontrol_p.h b/src/quick/items/qquicktextcontrol_p.h index e8bfe14766..2e42625fdc 100644 --- a/src/quick/items/qquicktextcontrol_p.h +++ b/src/quick/items/qquicktextcontrol_p.h @@ -115,11 +115,9 @@ public: bool find(const QString &exp, QTextDocument::FindFlags options = 0); - inline QString toPlainText() const - { return document()->toPlainText(); } + QString toPlainText() const; #ifndef QT_NO_TEXTHTMLPARSER - inline QString toHtml() const - { return document()->toHtml(); } + QString toHtml() const; #endif virtual void ensureCursorVisible(); diff --git a/src/quick/items/qquicktextcontrol_p_p.h b/src/quick/items/qquicktextcontrol_p_p.h index e75c53714a..8c06899e02 100644 --- a/src/quick/items/qquicktextcontrol_p_p.h +++ b/src/quick/items/qquicktextcontrol_p_p.h @@ -202,6 +202,7 @@ public: int preeditCursor; bool hideCursor; // used to hide the cursor in the preedit area + QString tentativeCommit; QVector<QAbstractTextDocumentLayout::Selection> extraSelections; diff --git a/src/quick/items/qquicktextedit.cpp b/src/quick/items/qquicktextedit.cpp index 91b0b0d90b..f0679c4861 100644 --- a/src/quick/items/qquicktextedit.cpp +++ b/src/quick/items/qquicktextedit.cpp @@ -129,10 +129,10 @@ QString QQuickTextEdit::text() const #ifndef QT_NO_TEXTHTMLPARSER if (d->richText) - return d->document->toHtml(); + return d->control->toHtml(); else #endif - return d->document->toPlainText(); + return d->control->toPlainText(); } /*! |