From 1a4346d11224243b39da991585738d74fd03a98f Mon Sep 17 00:00:00 2001 From: Liang Qi Date: Wed, 30 Dec 2015 10:43:22 +0100 Subject: QQuickTextInput: added preeditText property Task-number: QTBUG-49503 Change-Id: I803c9fc3bddba81d08e1dd450bc5a5f8a5605720 Reviewed-by: J-P Nurmi --- src/quick/items/qquicktextinput.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/quick/items/qquicktextinput.cpp') diff --git a/src/quick/items/qquicktextinput.cpp b/src/quick/items/qquicktextinput.cpp index 37b8b12fdd..6d4be60131 100644 --- a/src/quick/items/qquicktextinput.cpp +++ b/src/quick/items/qquicktextinput.cpp @@ -2184,6 +2184,7 @@ void QQuickTextInput::resetPasswordMaskDelay() partial text input from an input method. \readonly + \sa preeditText */ QString QQuickTextInput::displayText() const { @@ -2191,6 +2192,21 @@ QString QQuickTextInput::displayText() const return d->m_textLayout.text().insert(d->m_textLayout.preeditAreaPosition(), d->m_textLayout.preeditAreaText()); } +/*! + \qmlproperty string QtQuick::TextInput::preeditText + \readonly + \since 5.7 + + This property contains partial text input from an input method. + + \sa displayText +*/ +QString QQuickTextInput::preeditText() const +{ + Q_D(const QQuickTextInput); + return d->m_textLayout.preeditAreaText(); +} + /*! \qmlproperty bool QtQuick::TextInput::selectByMouse @@ -3263,7 +3279,10 @@ void QQuickTextInputPrivate::processInputMethodEvent(QInputMethodEvent *event) cursorPositionChanged = true; } } + QString oldPreeditString = m_textLayout.preeditAreaText(); m_textLayout.setPreeditArea(m_cursor, event->preeditString()); + if (oldPreeditString != m_textLayout.preeditAreaText()) + emit q->preeditTextChanged(); const int oldPreeditCursor = m_preeditCursor; m_preeditCursor = event->preeditString().length(); hasImState = !event->preeditString().isEmpty(); -- cgit v1.2.3