diff options
author | Pekka Vuorela <pekka.ta.vuorela@nokia.com> | 2011-11-07 11:52:56 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-11-10 13:07:20 +0100 |
commit | 1dbfbf4c66187e7522888c19d78024cfceaea570 (patch) | |
tree | 84eb001b1078eb29cc7589115ce87b278ca365ae /src | |
parent | 77082cd7c91905aaffcf341ab55adb07839aa33e (diff) |
Implement partial tentativeCommit support in QTextEdit
Available on plain text for now, html support still pending.
Change-Id: I0818b97874e80c8c1b33a9127aa7bb3330a8761d
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/widgets/widgets/qtextedit.cpp | 15 | ||||
-rw-r--r-- | src/widgets/widgets/qtextedit.h | 6 | ||||
-rw-r--r-- | src/widgets/widgets/qwidgettextcontrol.cpp | 18 | ||||
-rw-r--r-- | src/widgets/widgets/qwidgettextcontrol_p.h | 6 | ||||
-rw-r--r-- | src/widgets/widgets/qwidgettextcontrol_p_p.h | 1 |
5 files changed, 36 insertions, 10 deletions
diff --git a/src/widgets/widgets/qtextedit.cpp b/src/widgets/widgets/qtextedit.cpp index f345cb2f7c..73d78171db 100644 --- a/src/widgets/widgets/qtextedit.cpp +++ b/src/widgets/widgets/qtextedit.cpp @@ -1099,13 +1099,17 @@ void QTextEdit::setPlainText(const QString &text) } /*! - \fn QString QTextEdit::toPlainText() const + QString QTextEdit::toPlainText() const Returns the text of the text edit as plain text. \sa QTextEdit::setPlainText() */ - +QString QTextEdit::toPlainText() const +{ + Q_D(const QTextEdit); + return d->control->toPlainText(); +} /*! \property QTextEdit::html @@ -1135,8 +1139,15 @@ void QTextEdit::setHtml(const QString &text) d->control->setHtml(text); d->preferRichText = true; } + +QString QTextEdit::toHtml() const +{ + Q_D(const QTextEdit); + return d->control->toHtml(); +} #endif + /*! \reimp */ void QTextEdit::keyPressEvent(QKeyEvent *e) diff --git a/src/widgets/widgets/qtextedit.h b/src/widgets/widgets/qtextedit.h index 1fcf87cdf7..ae9865977f 100644 --- a/src/widgets/widgets/qtextedit.h +++ b/src/widgets/widgets/qtextedit.h @@ -162,11 +162,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 void ensureCursorVisible(); diff --git a/src/widgets/widgets/qwidgettextcontrol.cpp b/src/widgets/widgets/qwidgettextcontrol.cpp index d48ee9a2ae..b6432ee53f 100644 --- a/src/widgets/widgets/qwidgettextcontrol.cpp +++ b/src/widgets/widgets/qwidgettextcontrol.cpp @@ -1991,7 +1991,10 @@ void QWidgetTextControlPrivate::inputMethodEvent(QInputMethodEvent *e) } } layout->setAdditionalFormats(overrides); + tentativeCommit = e->tentativeCommitString(); + cursor.endEditBlock(); + if (cursor.d) cursor.d->setX(); if (oldPreeditCursor != preeditCursor) @@ -2909,7 +2912,22 @@ bool QWidgetTextControl::find(const QString &exp, QTextDocument::FindFlags optio return true; } +QString QWidgetTextControl::toPlainText() const +{ + Q_D(const QWidgetTextControl); + QString plainText = document()->toPlainText(); + if (!d->tentativeCommit.isEmpty()) + plainText.insert(textCursor().position(), d->tentativeCommit); + return plainText; +} +#ifndef QT_NO_TEXTHTMLPARSER +QString QWidgetTextControl::toHtml() const +{ + // note: currently not including tentative commit + return document()->toHtml(); +} +#endif void QWidgetTextControlPrivate::append(const QString &text, Qt::TextFormat format) { diff --git a/src/widgets/widgets/qwidgettextcontrol_p.h b/src/widgets/widgets/qwidgettextcontrol_p.h index f1ac09d459..1550959ebe 100644 --- a/src/widgets/widgets/qwidgettextcontrol_p.h +++ b/src/widgets/widgets/qwidgettextcontrol_p.h @@ -114,11 +114,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/widgets/widgets/qwidgettextcontrol_p_p.h b/src/widgets/widgets/qwidgettextcontrol_p_p.h index 613d1a6097..f53e0808b8 100644 --- a/src/widgets/widgets/qwidgettextcontrol_p_p.h +++ b/src/widgets/widgets/qwidgettextcontrol_p_p.h @@ -208,6 +208,7 @@ public: int preeditCursor; bool hideCursor; // used to hide the cursor in the preedit area + QString tentativeCommit; QVector<QAbstractTextDocumentLayout::Selection> extraSelections; |