aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquicktextinput.cpp
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2015-12-30 10:43:22 +0100
committerLiang Qi <liang.qi@theqtcompany.com>2016-01-13 18:09:54 +0000
commit1a4346d11224243b39da991585738d74fd03a98f (patch)
tree966549ec2a3b283624898112b47710b2a52a903e /src/quick/items/qquicktextinput.cpp
parent1c5dd75ee6ef233aeb9b72596effced77d2a748a (diff)
QQuickTextInput: added preeditText property
Task-number: QTBUG-49503 Change-Id: I803c9fc3bddba81d08e1dd450bc5a5f8a5605720 Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Diffstat (limited to 'src/quick/items/qquicktextinput.cpp')
-rw-r--r--src/quick/items/qquicktextinput.cpp19
1 files changed, 19 insertions, 0 deletions
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
{
@@ -2192,6 +2193,21 @@ QString QQuickTextInput::displayText() const
}
/*!
+ \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
Defaults to false.
@@ -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();