aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquicktextinput.cpp
diff options
context:
space:
mode:
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();