From f36bdfabafb5cae85ee7883181e88b39de8af779 Mon Sep 17 00:00:00 2001 From: Jarkko Koivikko Date: Wed, 7 Jun 2017 00:05:42 +0300 Subject: Add support for Japanese handwriting (T9 Write CJK) This change adds handwriting support for Japanese. Change-Id: Ifc8f0e32c8b3211c13aee8be5cb2e05fae09d3b7 Reviewed-by: Mitch Curtis --- .../content/components/InputModeKey.qml | 1 + .../content/layouts/ja_JP/handwriting.qml | 116 +++++++++++++++++++++ src/virtualkeyboard/content/layouts/ja_JP/main.qml | 10 +- .../content/styles/default/style.qml | 2 + src/virtualkeyboard/content/styles/retro/style.qml | 2 + 5 files changed, 127 insertions(+), 4 deletions(-) create mode 100644 src/virtualkeyboard/content/layouts/ja_JP/handwriting.qml (limited to 'src/virtualkeyboard/content') diff --git a/src/virtualkeyboard/content/components/InputModeKey.qml b/src/virtualkeyboard/content/components/InputModeKey.qml index 141413e8..dc4c8266 100644 --- a/src/virtualkeyboard/content/components/InputModeKey.qml +++ b/src/virtualkeyboard/content/components/InputModeKey.qml @@ -69,6 +69,7 @@ Key { "カ", // InputEngine.Katakana "全角", // InputEngine.FullwidthLatin "中文", // InputEngine.ChineseHandwriting + "日本語", // InputEngine.JapaneseHandwriting "한국어", // InputEngine.KoreanHandwriting ] diff --git a/src/virtualkeyboard/content/layouts/ja_JP/handwriting.qml b/src/virtualkeyboard/content/layouts/ja_JP/handwriting.qml new file mode 100644 index 00000000..0820cbbc --- /dev/null +++ b/src/virtualkeyboard/content/layouts/ja_JP/handwriting.qml @@ -0,0 +1,116 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt Virtual Keyboard module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 or (at your option) any later version +** approved by the KDE Free Qt Foundation. The licenses are as published by +** the Free Software Foundation and appearing in the file LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtQuick.Layouts 1.0 +import QtQuick.VirtualKeyboard 2.3 + +KeyboardLayout { + function createInputMethod() { + return Qt.createQmlObject('import QtQuick 2.0; import QtQuick.VirtualKeyboard 2.3; HandwritingInputMethod {}', parent) + } + sharedLayouts: ['symbols'] + inputMode: preferredInputMode() + + Connections { + target: InputContext + onInputMethodHintsChanged: { + var newInputMode = preferredInputMode() + if (InputContext.inputEngine.inputModes.indexOf(newInputMode) !== -1) + InputContext.inputEngine.inputMode = newInputMode + } + } + + function preferredInputMode() { + return InputContext.inputMethodHints & + (Qt.ImhPreferLatin | Qt.ImhEmailCharactersOnly | Qt.ImhUrlCharactersOnly | + Qt.ImhLatinOnly) ? InputEngine.Latin : InputEngine.JapaneseHandwriting + } + + KeyboardRow { + Layout.preferredHeight: 3 + KeyboardColumn { + Layout.preferredWidth: bottomRow.width - hideKeyboardKey.width + KeyboardRow { + TraceInputKey { + objectName: "hwrInputArea" + patternRecognitionMode: InputEngine.HandwritingRecoginition + horizontalRulers: + InputContext.inputEngine.inputMode !== InputEngine.JapaneseHandwriting ? [] : + [Math.round(boundingBox.height / 4), Math.round(boundingBox.height / 4) * 2, Math.round(boundingBox.height / 4) * 3] + + } + } + } + KeyboardColumn { + Layout.preferredWidth: hideKeyboardKey.width + KeyboardRow { + BackspaceKey {} + } + KeyboardRow { + EnterKey {} + } + KeyboardRow { + ShiftKey { } + } + } + } + KeyboardRow { + id: bottomRow + Layout.preferredHeight: 1 + keyWeight: 154 + InputModeKey { + weight: 217 + } + ChangeLanguageKey { + weight: 154 + customLayoutsOnly: true + } + HandwritingModeKey { + weight: 154 + } + SpaceKey { + weight: 864 + } + Key { + key: Qt.Key_Apostrophe + text: "‘" + alternativeKeys: "《》〈〉•…々〆‘’“”「」¥" + } + Key { + key: Qt.Key_Period + text: "." + alternativeKeys: ":;,.、。?!" + } + HideKeyboardKey { + id: hideKeyboardKey + weight: 204 + } + } +} diff --git a/src/virtualkeyboard/content/layouts/ja_JP/main.qml b/src/virtualkeyboard/content/layouts/ja_JP/main.qml index 772702af..06d8fd0b 100644 --- a/src/virtualkeyboard/content/layouts/ja_JP/main.qml +++ b/src/virtualkeyboard/content/layouts/ja_JP/main.qml @@ -189,10 +189,11 @@ KeyboardLayoutLoader { KeyboardRow { keyWeight: 154 SymbolModeKey { - weight: 217 + weight: 194 } ChangeLanguageKey { - weight: 174 + } + HandwritingModeKey { } Key { key: Qt.Key_Left @@ -378,10 +379,11 @@ KeyboardLayoutLoader { KeyboardRow { keyWeight: 154 SymbolModeKey { - weight: 217 + weight: 194 } ChangeLanguageKey { - weight: 174 + } + HandwritingModeKey { } Key { key: Qt.Key_Left diff --git a/src/virtualkeyboard/content/styles/default/style.qml b/src/virtualkeyboard/content/styles/default/style.qml index e759616e..b4848f68 100644 --- a/src/virtualkeyboard/content/styles/default/style.qml +++ b/src/virtualkeyboard/content/styles/default/style.qml @@ -764,6 +764,8 @@ KeyboardStyle { return "123" case InputEngine.ChineseHandwriting: return "中文" + case InputEngine.JapaneseHandwriting: + return "日本語" case InputEngine.KoreanHandwriting: return "한국어" default: diff --git a/src/virtualkeyboard/content/styles/retro/style.qml b/src/virtualkeyboard/content/styles/retro/style.qml index 68905852..26def327 100644 --- a/src/virtualkeyboard/content/styles/retro/style.qml +++ b/src/virtualkeyboard/content/styles/retro/style.qml @@ -878,6 +878,8 @@ KeyboardStyle { return "123" case InputEngine.ChineseHandwriting: return "中文" + case InputEngine.JapaneseHandwriting: + return "日本語" case InputEngine.KoreanHandwriting: return "한국어" default: -- cgit v1.2.3