From 0a17cbefec6bc58360fff42192e3e7aa413189a0 Mon Sep 17 00:00:00 2001 From: Angela Mazzurco Date: Mon, 3 Jul 2017 17:03:03 +0200 Subject: [PATCH] Support for preedit text on predictive keyboards --- retroshare-qml-app/src/ChatView.qml | 31 +++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/retroshare-qml-app/src/ChatView.qml b/retroshare-qml-app/src/ChatView.qml index d12294bb4..5e14e82c3 100644 --- a/retroshare-qml-app/src/ChatView.qml +++ b/retroshare-qml-app/src/ChatView.qml @@ -229,11 +229,13 @@ Item onTextChanged: { - if (msgField.length == 0) + var msgLenght = (msgField.preeditText)? msgField.preeditText.length : msgField.length + + if (msgLenght == 0) { sendButton.state = "" } - else if (msgField.length > 0) + else if (msgLenght > 0 ) { sendButton.state = "SENDBTN" } @@ -263,6 +265,10 @@ Item shiftPressed = false } } + function reset () + { + Qt.inputMethod.reset() + } } } } @@ -365,9 +371,26 @@ Item function sendMessage () { if (emojiPicker.state == "EMOJI_SHOWN") emojiPicker.state = "EMOJI_HIDDEN" - var jsonData = {"chat_id":chatView.chatId, "msg":msgField.text} + + var msgText = getCompleteMessageText() + + var jsonData = {"chat_id":chatView.chatId, "msg":msgText} rsApi.request( "/chat/send_message", JSON.stringify(jsonData), - function(par) { msgField.text = ""; } ) + function(par) + { + msgField.text = "" + msgField.reset(); + }) + } + + // This function is needed for the compatibility with auto predictive keyboards + function getCompleteMessageText (){ + var completeMsg + if (msgField.preeditText) completeMsg = msgField.text + msgField.preeditText + else completeMsg = msgField.text + return completeMsg + + } }