diff options
author | Jarkko Koivikko <jarkko.koivikko@code-q.fi> | 2017-05-29 22:23:44 +0300 |
---|---|---|
committer | Jarkko Koivikko <jarkko.koivikko@code-q.fi> | 2017-07-08 19:28:26 +0000 |
commit | a82fd907ad378a412efdb39aff39f5b6d41996f4 (patch) | |
tree | 3b03e259f8f0acdc97ed8ba5a3a2c3d2255dd638 /src/virtualkeyboard | |
parent | 7f780a44c0d5ccc65880666dcf388ed6bd3769a8 (diff) |
Add support for Traditional Chinese handwriting (T9 Write CJK)
This change adds handwriting support for Traditional Chinese.
Change-Id: Ic358bf81795a3c88234b5e9c85635223ebf1c0d7
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/virtualkeyboard')
-rw-r--r-- | src/virtualkeyboard/content/layouts/zh_TW/handwriting.qml | 116 | ||||
-rw-r--r-- | src/virtualkeyboard/content/layouts/zh_TW/main.qml | 6 | ||||
-rw-r--r-- | src/virtualkeyboard/t9writeinputmethod.cpp | 2 | ||||
-rw-r--r-- | src/virtualkeyboard/virtualkeyboard.pro | 2 |
4 files changed, 126 insertions, 0 deletions
diff --git a/src/virtualkeyboard/content/layouts/zh_TW/handwriting.qml b/src/virtualkeyboard/content/layouts/zh_TW/handwriting.qml new file mode 100644 index 00000000..598980d1 --- /dev/null +++ b/src/virtualkeyboard/content/layouts/zh_TW/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.ChineseHandwriting + } + + KeyboardRow { + Layout.preferredHeight: 3 + KeyboardColumn { + Layout.preferredWidth: bottomRow.width - hideKeyboardKey.width + KeyboardRow { + TraceInputKey { + objectName: "hwrInputArea" + patternRecognitionMode: InputEngine.HandwritingRecoginition + horizontalRulers: + InputContext.inputEngine.inputMode !== InputEngine.ChineseHandwriting ? [] : + [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/zh_TW/main.qml b/src/virtualkeyboard/content/layouts/zh_TW/main.qml index 25108389..2aa36ed2 100644 --- a/src/virtualkeyboard/content/layouts/zh_TW/main.qml +++ b/src/virtualkeyboard/content/layouts/zh_TW/main.qml @@ -197,6 +197,9 @@ KeyboardLayoutLoader { ChangeLanguageKey { weight: 154 } + HandwritingModeKey { + weight: 154 + } InputModeKey { visible: InputContext.inputEngine.inputModes.indexOf(InputEngine.Zhuyin) !== -1 } @@ -420,6 +423,9 @@ KeyboardLayoutLoader { ChangeLanguageKey { weight: 154 } + HandwritingModeKey { + weight: 154 + } InputModeKey { visible: InputContext.inputEngine.inputModes.indexOf(InputEngine.Cangjie) !== -1 } diff --git a/src/virtualkeyboard/t9writeinputmethod.cpp b/src/virtualkeyboard/t9writeinputmethod.cpp index 3028d7d0..ee69d49d 100644 --- a/src/virtualkeyboard/t9writeinputmethod.cpp +++ b/src/virtualkeyboard/t9writeinputmethod.cpp @@ -616,6 +616,8 @@ public: if (language == DECUMA_LANG_PRC) { if (inputMode != InputEngine::ChineseHandwriting) language = DECUMA_LANG_EN; + else if (locale.script() == QLocale::TraditionalChineseScript) + language = (locale.country() == QLocale::HongKong) ? DECUMA_LANG_HK : DECUMA_LANG_TW; } return language; diff --git a/src/virtualkeyboard/virtualkeyboard.pro b/src/virtualkeyboard/virtualkeyboard.pro index e16eaba9..cfbd55c7 100644 --- a/src/virtualkeyboard/virtualkeyboard.pro +++ b/src/virtualkeyboard/virtualkeyboard.pro @@ -202,6 +202,8 @@ contains(CONFIG, lang-zh(_TW)?) { LAYOUT_FILES += \ content/layouts/zh_TW/main.qml \ content/layouts/zh_TW/symbols.qml +t9write-cjk: LAYOUT_FILES += \ + content/layouts/zh_TW/handwriting.qml } retro-style { |