diff options
Diffstat (limited to 'src/layouts')
260 files changed, 18475 insertions, 0 deletions
diff --git a/src/layouts/CMakeLists.txt b/src/layouts/CMakeLists.txt new file mode 100644 index 00000000..33d1de9a --- /dev/null +++ b/src/layouts/CMakeLists.txt @@ -0,0 +1,357 @@ +qt_internal_add_qml_module(qtvkblayoutsplugin + URI "QtQuick.VirtualKeyboard.Layouts" + VERSION "${PROJECT_VERSION}" + PAST_MAJOR_VERSIONS 2 1 + PLUGIN_TARGET qtvkblayoutsplugin + NO_PLUGIN_OPTIONAL +) + +set(LAYOUT_FILES + fallback/dialpad.qml + fallback/digits.qml + fallback/main.qml + fallback/numbers.qml + fallback/symbols.qml +) +if (FEATURE_vkb_lang_en_GB) + list(APPEND LAYOUT_FILES + en_GB/dialpad.fallback + en_GB/digits.fallback + en_GB/main.fallback + en_GB/numbers.fallback + en_GB/symbols.fallback + ) +endif() +if(FEATURE_vkb_lang_en_US) + list(APPEND LAYOUT_FILES + en_US/dialpad.fallback + en_US/digits.fallback + en_US/main.fallback + en_US/numbers.fallback + en_US/symbols.fallback + ) +endif() +if(FEATURE_vkb_lang_ar_AR) + list(APPEND LAYOUT_FILES + ar_AR/dialpad.fallback + ar_AR/digits.qml + ar_AR/main.qml + ar_AR/numbers.qml + ar_AR/symbols.qml + ) +endif() +if(FEATURE_vkb_lang_bg_BG) + list(APPEND LAYOUT_FILES + bg_BG/dialpad.fallback + bg_BG/digits.fallback + bg_BG/main.qml + bg_BG/numbers.fallback + bg_BG/symbols.fallback + ) +endif() +if(FEATURE_vkb_lang_cs_CZ) + list(APPEND LAYOUT_FILES + cs_CZ/dialpad.fallback + cs_CZ/digits.fallback + cs_CZ/main.qml + cs_CZ/numbers.fallback + cs_CZ/symbols.fallback + ) +endif() +if(FEATURE_vkb_lang_da_DK) + list(APPEND LAYOUT_FILES + da_DK/dialpad.fallback + da_DK/digits.fallback + da_DK/main.qml + da_DK/numbers.fallback + da_DK/symbols.fallback + ) +endif() +if(FEATURE_vkb_lang_de_DE) + list(APPEND LAYOUT_FILES + de_DE/dialpad.fallback + de_DE/digits.fallback + de_DE/main.qml + de_DE/numbers.fallback + de_DE/symbols.fallback + ) +endif() +if(FEATURE_vkb_lang_el_GR) + list(APPEND LAYOUT_FILES + el_GR/dialpad.fallback + el_GR/digits.fallback + el_GR/main.qml + el_GR/numbers.fallback + el_GR/symbols.fallback + ) +endif() +if(FEATURE_vkb_lang_es_ES) + list(APPEND LAYOUT_FILES + es_ES/dialpad.fallback + es_ES/digits.fallback + es_ES/main.qml + es_ES/numbers.fallback + es_ES/symbols.qml + ) +endif() +if(FEATURE_vkb_lang_es_MX) + list(APPEND LAYOUT_FILES + es_MX/dialpad.fallback + es_MX/digits.fallback + es_MX/main.qml + es_MX/numbers.fallback + es_MX/symbols.qml + ) +endif() +if(FEATURE_vkb_lang_et_EE) + list(APPEND LAYOUT_FILES + et_EE/dialpad.fallback + et_EE/digits.fallback + et_EE/main.qml + et_EE/numbers.fallback + et_EE/symbols.fallback + ) +endif() +if(FEATURE_vkb_lang_fa_FA) + list(APPEND LAYOUT_FILES + fa_FA/dialpad.fallback + fa_FA/digits.qml + fa_FA/main.qml + fa_FA/numbers.qml + fa_FA/symbols.qml + ) +endif() +if(FEATURE_vkb_lang_fi_FI) + list(APPEND LAYOUT_FILES + fi_FI/dialpad.fallback + fi_FI/digits.fallback + fi_FI/main.qml + fi_FI/numbers.fallback + fi_FI/symbols.fallback + ) +endif() +if(FEATURE_vkb_lang_fr_CA) + list(APPEND LAYOUT_FILES + fr_CA/dialpad.fallback + fr_CA/digits.fallback + fr_CA/main.qml + fr_CA/numbers.fallback + fr_CA/symbols.fallback + ) +endif() +if(FEATURE_vkb_lang_fr_FR) + list(APPEND LAYOUT_FILES + fr_FR/dialpad.fallback + fr_FR/digits.fallback + fr_FR/main.qml + fr_FR/numbers.fallback + fr_FR/symbols.fallback + ) +endif() +if(FEATURE_vkb_lang_he_IL) + list(APPEND LAYOUT_FILES + he_IL/dialpad.fallback + he_IL/digits.fallback + he_IL/main.qml + he_IL/numbers.fallback + he_IL/symbols.qml + ) +endif() +if(FEATURE_vkb_lang_hi_IN) + list(APPEND LAYOUT_FILES + hi_IN/dialpad.fallback + hi_IN/digits.fallback + hi_IN/main.qml + hi_IN/numbers.fallback + hi_IN/symbols.qml + ) +endif() +if(FEATURE_vkb_lang_hr_HR) + list(APPEND LAYOUT_FILES + hr_HR/dialpad.fallback + hr_HR/digits.fallback + hr_HR/main.qml + hr_HR/numbers.fallback + hr_HR/symbols.fallback + ) +endif() +if(FEATURE_vkb_lang_hu_HU) + list(APPEND LAYOUT_FILES + hu_HU/dialpad.fallback + hu_HU/digits.fallback + hu_HU/main.qml + hu_HU/numbers.fallback + hu_HU/symbols.fallback + ) +endif() +if(FEATURE_vkb_lang_id_ID) + list(APPEND LAYOUT_FILES + id_ID/dialpad.fallback + id_ID/digits.fallback + id_ID/main.fallback + id_ID/numbers.fallback + id_ID/symbols.fallback + ) +endif() +if(FEATURE_vkb_lang_it_IT) + list(APPEND LAYOUT_FILES + it_IT/dialpad.fallback + it_IT/digits.fallback + it_IT/main.qml + it_IT/numbers.fallback + it_IT/symbols.fallback + ) +endif() +if(FEATURE_vkb_lang_nb_NO) + list(APPEND LAYOUT_FILES + nb_NO/dialpad.fallback + nb_NO/digits.fallback + nb_NO/main.qml + nb_NO/numbers.fallback + nb_NO/symbols.fallback + ) +endif() +if(FEATURE_vkb_lang_ms_MY) + list(APPEND LAYOUT_FILES + ms_MY/dialpad.fallback + ms_MY/digits.fallback + ms_MY/main.fallback + ms_MY/numbers.fallback + ms_MY/symbols.fallback + ) +endif() +if(FEATURE_vkb_lang_nl_NL) + list(APPEND LAYOUT_FILES + nl_NL/dialpad.fallback + nl_NL/digits.fallback + nl_NL/main.fallback + nl_NL/numbers.fallback + nl_NL/symbols.fallback + ) +endif() +if(FEATURE_vkb_lang_pl_PL) + list(APPEND LAYOUT_FILES + pl_PL/dialpad.fallback + pl_PL/digits.fallback + pl_PL/main.qml + pl_PL/numbers.fallback + pl_PL/symbols.fallback + ) +endif() +if(FEATURE_vkb_lang_pt_BR) + list(APPEND LAYOUT_FILES + pt_BR/dialpad.fallback + pt_BR/digits.fallback + pt_BR/main.qml + pt_BR/numbers.fallback + pt_BR/symbols.fallback + ) +endif() +if(FEATURE_vkb_lang_pt_PT) + list(APPEND LAYOUT_FILES + pt_PT/dialpad.fallback + pt_PT/digits.fallback + pt_PT/main.qml + pt_PT/numbers.fallback + pt_PT/symbols.fallback + ) +endif() +if(FEATURE_vkb_lang_ro_RO) + list(APPEND LAYOUT_FILES + ro_RO/dialpad.fallback + ro_RO/digits.fallback + ro_RO/main.qml + ro_RO/numbers.fallback + ro_RO/symbols.fallback + ) +endif() +if(FEATURE_vkb_lang_ru_RU) + list(APPEND LAYOUT_FILES + ru_RU/dialpad.fallback + ru_RU/digits.fallback + ru_RU/main.qml + ru_RU/numbers.fallback + ru_RU/symbols.fallback + ) +endif() +if(FEATURE_vkb_lang_sk_SK) + list(APPEND LAYOUT_FILES + sk_SK/dialpad.fallback + sk_SK/digits.fallback + sk_SK/main.qml + sk_SK/numbers.fallback + sk_SK/symbols.fallback + ) +endif() +if(FEATURE_vkb_lang_sl_SI) + list(APPEND LAYOUT_FILES + sl_SI/dialpad.fallback + sl_SI/digits.fallback + sl_SI/main.qml + sl_SI/numbers.fallback + sl_SI/symbols.fallback + ) +endif() +if(FEATURE_vkb_lang_sq_AL) + list(APPEND LAYOUT_FILES + sq_AL/dialpad.fallback + sq_AL/digits.fallback + sq_AL/main.qml + sq_AL/numbers.fallback + sq_AL/symbols.fallback + ) +endif() +if(FEATURE_vkb_lang_sr_SP) + list(APPEND LAYOUT_FILES + sr_SP/dialpad.fallback + sr_SP/digits.fallback + sr_SP/main.qml + sr_SP/numbers.fallback + sr_SP/symbols.fallback + ) +endif() +if(FEATURE_vkb_lang_sv_SE) + list(APPEND LAYOUT_FILES + sv_SE/dialpad.fallback + sv_SE/digits.fallback + sv_SE/main.qml + sv_SE/numbers.fallback + sv_SE/symbols.fallback + ) +endif() +if(FEATURE_vkb_lang_tr_TR) + list(APPEND LAYOUT_FILES + tr_TR/dialpad.fallback + tr_TR/digits.fallback + tr_TR/main.qml + tr_TR/numbers.fallback + tr_TR/symbols.fallback + ) +endif() +if(FEATURE_vkb_lang_uk_UA) + list(APPEND LAYOUT_FILES + uk_UA/dialpad.fallback + uk_UA/digits.fallback + uk_UA/main.qml + uk_UA/numbers.fallback + uk_UA/symbols.fallback + ) +endif() +if(FEATURE_vkb_lang_vi_VN) + list(APPEND LAYOUT_FILES + vi_VN/dialpad.fallback + vi_VN/digits.fallback + vi_VN/main.qml + vi_VN/numbers.fallback + vi_VN/symbols.qml + ) +endif() + +if(QT_FEATURE_vkb_layouts) + qt_internal_add_resource(qtvkblayoutsplugin "qmake_virtualkeyboard_layouts" + PREFIX + "${VKB_LAYOUTS_PREFIX}" + FILES + ${LAYOUT_FILES} + ) +endif() diff --git a/src/layouts/ar_AR/dialpad.fallback b/src/layouts/ar_AR/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/ar_AR/dialpad.fallback diff --git a/src/layouts/ar_AR/digits.qml b/src/layouts/ar_AR/digits.qml new file mode 100644 index 00000000..9eb39ac8 --- /dev/null +++ b/src/layouts/ar_AR/digits.qml @@ -0,0 +1,123 @@ +/**************************************************************************** +** +** Copyright (C) 2016 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.VirtualKeyboard.Plugins + +KeyboardLayout { + inputMethod: PlainInputMethod {} + inputMode: InputEngine.InputMode.Numeric + + KeyboardColumn { + Layout.fillWidth: false + Layout.fillHeight: true + Layout.alignment: Qt.AlignHCenter + Layout.preferredWidth: height + KeyboardRow { + Key { + key: 0x0667 + text: "\u0667" + alternativeKeys: "\u06677" + } + Key { + key: 0x0668 + text: "\u0668" + alternativeKeys: "\u06688" + } + Key { + key: 0x0669 + text: "\u0669" + alternativeKeys: "\u06699" + } + BackspaceKey {} + } + KeyboardRow { + Key { + key: 0x0664 + text: "\u0664" + alternativeKeys: "\u06644" + } + Key { + key: 0x0665 + text: "\u0665" + alternativeKeys: "\u06655" + } + Key { + key: 0x0666 + text: "\u0666" + alternativeKeys: "\u06666" + } + Key { + text: " " + displayText: "\u2423" + repeat: true + showPreview: false + key: Qt.Key_Space + highlighted: true + } + } + KeyboardRow { + Key { + key: 0x0661 + text: "\u0661" + alternativeKeys: "\u06611" + } + Key { + key: 0x0662 + text: "\u0662" + alternativeKeys: "\u06622" + } + Key { + key: 0x0663 + text: "\u0663" + alternativeKeys: "\u06633" + } + HideKeyboardKey {} + } + KeyboardRow { + ChangeLanguageKey { + customLayoutsOnly: true + } + Key { + key: 0x0660 + text: "\u0660" + alternativeKeys: "\u06600" + } + Key { + key: Qt.Key_Comma + text: "\u066B" + alternativeKeys: "\u066B,." + } + EnterKey {} + } + } +} diff --git a/src/layouts/ar_AR/handwriting.qml b/src/layouts/ar_AR/handwriting.qml new file mode 100644 index 00000000..8002446b --- /dev/null +++ b/src/layouts/ar_AR/handwriting.qml @@ -0,0 +1,101 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayout { + function createInputMethod() { + return Qt.createQmlObject('import QtQuick; import QtQuick.VirtualKeyboard.Plugins; HandwritingInputMethod {}', parent) + } + sharedLayouts: ['symbols'] + inputMode: InputEngine.InputMode.Arabic + readonly property bool alphabeticInputMode: [InputEngine.InputMode.Latin, InputEngine.InputMode.Dialable].indexOf(InputContext.inputEngine.inputMode) !== -1 + + KeyboardRow { + Layout.preferredHeight: 3 + TraceInputKey { + objectName: "hwrInputArea" + patternRecognitionMode: InputEngine.PatternRecognitionMode.Handwriting + horizontalRulers: + alphabeticInputMode ? [] : + [Math.round(boundingBox.height / 4), Math.round(boundingBox.height / 4) * 2, Math.round(boundingBox.height / 4) * 3] + } + } + KeyboardRow { + id: bottomRow + Layout.preferredHeight: 1 + keyWeight: 160 + ShiftKey { + weight: 240 + } + InputModeKey { + inputModeNameList: [ + "ABC", // InputEngine.InputMode.Latin + "\u0660\u0661\u0662", // InputEngine.InputMode.Numeric + "123", // InputEngine.InputMode.Dialable + "", // InputEngine.InputMode.Pinyin + "", // InputEngine.InputMode.Cangjie + "", // InputEngine.InputMode.Zhuyin + "", // InputEngine.InputMode.Hangul + "", // InputEngine.InputMode.Hiragana + "", // InputEngine.InputMode.Katakana + "", // InputEngine.InputMode.FullwidthLatin + "", // InputEngine.InputMode.Greek + "", // InputEngine.InputMode.Cyrillic + "\u0623\u200C\u0628\u200C\u062C", // InputEngine.InputMode.Arabic + ] + } + Key { + key: Qt.Key_Comma + text: alphabeticInputMode ? "," : "\u060C" + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + weight: 10 * 160 - 4 * 160 - 2 * 240 + } + Key { + key: Qt.Key_Period + text: "." + alternativeKeys: alphabeticInputMode ? "#%&*/\\\"'=+-_:;,.?!<>()" : "#%&*/\\\"'=+-_:\u061B.\u061F!<>()" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + BackspaceKey { + } + EnterKey { + weight: 240 + } + } +} diff --git a/src/layouts/ar_AR/main.qml b/src/layouts/ar_AR/main.qml new file mode 100644 index 00000000..b7da450d --- /dev/null +++ b/src/layouts/ar_AR/main.qml @@ -0,0 +1,223 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayout { + inputMode: InputEngine.InputMode.Arabic + keyWeight: 160 + smallTextVisible: true + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + text: "\u0636" + alternativeKeys: "1\u0636\u0661" + } + Key { + id: normalKey + text: "\u0635" + alternativeKeys: "2\u0635\u0662" + } + Key { + text: "\u062B" + alternativeKeys: "3\u062B\u0663" + } + Key { + text: "\u0642" + alternativeKeys: "4\u0642\u0664" + } + Key { + text: "\u0641" + alternativeKeys: "5\u0641\u0665" + } + Key { + text: "\u063A" + alternativeKeys: "6\u063A\u0666" + } + Key { + text: "\u0639" + alternativeKeys: "7\u0639\u0667" + } + Key { + text: "\u0647" + alternativeKeys: "8\u0647\u0668" + } + Key { + text: "\u062E" + alternativeKeys: "9\u062E\u0669" + } + Key { + text: "\u062D" + alternativeKeys: "0\u062D\u0660" + } + Key { + text: "\u062C" + alternativeKeys: "\u062C\u0686" + } + Key { + text: "\u062F" + alternativeKeys: "\u062F\uFDFC" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + } + Key { + text: "\u0634" + weight: normalKeyWidth + Layout.fillWidth: false + } + } + Key { + text: "\u0633" + } + Key { + text: "\u064A" + } + Key { + text: "\u0628" + alternativeKeys: "\u0628\u067E" + } + Key { + text: "\u0644" + alternativeKeys: ["\u0644\u0623", "\u0644\u0622", "\u0644", "\u0644\u0627", "\u0644\u0625"] + } + Key { + text: "\u0627" + alternativeKeys: "\u0625\u0627\u0623\u0622" + } + Key { + text: "\u062A" + } + Key { + text: "\u0646" + } + Key { + text: "\u0645" + } + Key { + text: "\u0643" + alternativeKeys: "\u0643\u06AF" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + Key { + text: "\u0630" + weight: normalKeyWidth + Layout.fillWidth: false + } + FillerKey { + } + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + } + Key { + text: "\u0626" + weight: normalKeyWidth + Layout.fillWidth: false + } + } + Key { + text: "\u0621" + } + Key { + text: "\u0624" + } + Key { + text: "\u0631" + } + Key { + text: "\u0649" + } + Key { + text: "\u0629" + } + Key { + text: "\u0648" + } + Key { + text: "\u0632" + } + Key { + text: "\u0637" + } + Key { + text: "\u0638" + alternativeKeys: "\u064E\u064C\u0650\u064D\u0651\u0652\u0670\u0653\u0640\u0638\u064B\u064F" + smallText: "\u25CC\u0650 " + } + BackspaceKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + SymbolModeKey { + displayText: "\u0661\u0662\u0663\u061F" + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "\u060C" + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!,\u060C\u061B.\u061F" + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } +} diff --git a/src/layouts/ar_AR/numbers.qml b/src/layouts/ar_AR/numbers.qml new file mode 100644 index 00000000..8cd2c108 --- /dev/null +++ b/src/layouts/ar_AR/numbers.qml @@ -0,0 +1,196 @@ +/**************************************************************************** +** +** Copyright (C) 2016 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.VirtualKeyboard.Plugins + +KeyboardLayout { + inputMethod: PlainInputMethod {} + inputMode: InputEngine.InputMode.Numeric + + KeyboardRow { + Layout.fillWidth: false + Layout.fillHeight: true + Layout.alignment: Qt.AlignHCenter + KeyboardColumn { + Layout.fillWidth: false + Layout.fillHeight: true + Layout.preferredWidth: parent.height / 4 * 3 + KeyboardRow { + Key { + key: Qt.Key_ParenLeft + text: "(" + } + Key { + key: Qt.Key_ParenRight + text: ")" + } + Key { + key: Qt.Key_Period + text: "." + } + } + KeyboardRow { + Key { + key: Qt.Key_division + text: "\u00F7" + } + Key { + key: Qt.Key_multiply + text: "\u00D7" + } + Key { + key: Qt.Key_Plus + text: "+" + } + } + KeyboardRow { + Key { + key: Qt.Key_AsciiCircum + text: "^" + } + Key { + key: Qt.Key_Slash + text: "/" + } + Key { + key: Qt.Key_Minus + text: "-" + } + } + KeyboardRow { + Key { + key: 0x221A + text: "√" + } + Key { + key: Qt.Key_Percent + text: "%" + } + Key { + key: Qt.Key_Asterisk + text: "*" + } + } + } + KeyboardColumn { + Layout.fillWidth: false + Layout.fillHeight: true + Layout.preferredWidth: parent.height / 8 + KeyboardRow { + FillerKey {} + } + } + KeyboardColumn { + Layout.fillWidth: false + Layout.fillHeight: true + Layout.preferredWidth: parent.height + KeyboardRow { + Key { + key: 0x0667 + text: "\u0667" + alternativeKeys: "\u06677" + } + Key { + key: 0x0668 + text: "\u0668" + alternativeKeys: "\u06688" + } + Key { + key: 0x0669 + text: "\u0669" + alternativeKeys: "\u06699" + } + BackspaceKey {} + } + KeyboardRow { + Key { + key: 0x0664 + text: "\u0664" + alternativeKeys: "\u06644" + } + Key { + key: 0x0665 + text: "\u0665" + alternativeKeys: "\u06655" + } + Key { + key: 0x0666 + text: "\u0666" + alternativeKeys: "\u06666" + } + Key { + text: " " + displayText: "\u2423" + repeat: true + showPreview: false + key: Qt.Key_Space + highlighted: true + } + } + KeyboardRow { + Key { + key: 0x0661 + text: "\u0661" + alternativeKeys: "\u06611" + } + Key { + key: 0x0662 + text: "\u0662" + alternativeKeys: "\u06622" + } + Key { + key: 0x0663 + text: "\u0663" + alternativeKeys: "\u06633" + } + HideKeyboardKey {} + } + KeyboardRow { + ChangeLanguageKey { + customLayoutsOnly: true + } + Key { + key: 0x0660 + text: "\u0660" + alternativeKeys: "\u06600" + } + Key { + key: Qt.Key_Comma + text: "\u066B" + alternativeKeys: "\u066B,." + } + EnterKey {} + } + } + } +} diff --git a/src/layouts/ar_AR/symbols.qml b/src/layouts/ar_AR/symbols.qml new file mode 100644 index 00000000..fb424437 --- /dev/null +++ b/src/layouts/ar_AR/symbols.qml @@ -0,0 +1,383 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayoutLoader { + property bool secondPage + onVisibleChanged: if (!visible) secondPage = false + sourceComponent: secondPage ? page2 : page1 + Component { + id: page1 + KeyboardLayout { + keyWeight: 160 + smallTextVisible: true + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: 0x0661 + text: "\u0661" + alternativeKeys: "\u06611" + } + Key { + id: normalKey + key: 0x0662 + text: "\u0662" + alternativeKeys: "\u06622" + } + Key { + key: 0x0663 + text: "\u0663" + alternativeKeys: "\u06633" + } + Key { + key: 0x0664 + text: "\u0664" + alternativeKeys: "\u06644" + } + Key { + key: 0x0665 + text: "\u0665" + alternativeKeys: "\u06655" + } + Key { + key: 0x0666 + text: "\u0666" + alternativeKeys: "\u06666" + } + Key { + key: 0x0667 + text: "\u0667" + alternativeKeys: "\u06677" + } + Key { + key: 0x0668 + text: "\u0668" + alternativeKeys: "\u06688" + } + Key { + key: 0x0669 + text: "\u0669" + alternativeKeys: "\u06699" + } + Key { + key: 0x0660 + text: "\u0660" + alternativeKeys: "\u06600" + } + } + KeyboardRow { + Key { + key: Qt.Key_At + text: "@" + } + Key { + key: Qt.Key_NumberSign + text: "#" + } + Key { + key: Qt.Key_Percent + text: "%" + } + Key { + key: Qt.Key_Ampersand + text: "&" + } + Key { + key: Qt.Key_Asterisk + text: "*" + } + Key { + key: Qt.Key_Underscore + text: "_" + } + Key { + key: Qt.Key_Minus + text: "-" + } + Key { + key: Qt.Key_Plus + text: "+" + } + Key { + key: Qt.Key_ParenLeft + text: "(" + } + Key { + key: Qt.Key_ParenRight + text: ")" + } + } + KeyboardRow { + Key { + displayText: "1/2" + functionKey: true + onClicked: secondPage = !secondPage + highlighted: true + } + Key { + key: Qt.Key_QuoteDbl + text: '"' + } + Key { + key: Qt.Key_Less + text: "<" + } + Key { + key: Qt.Key_Greater + text: ">" + } + Key { + key: Qt.Key_Apostrophe + text: "'" + } + Key { + key: Qt.Key_Semicolon + text: "\u061B" + alternativeKeys: "\u061B;" + } + Key { + key: Qt.Key_Slash + text: "/" + } + Key { + key: Qt.Key_Exclam + text: "!" + } + Key { + key: Qt.Key_Question + text: "\u061F" + alternativeKeys: "\u061F?" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + displayText: "\u0623\u200C\u0628\u200C\u062C" + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "\u060C" + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!,\u060C." + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } + Component { + id: page2 + KeyboardLayout { + keyWeight: 160 + smallTextVisible: true + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_AsciiTilde + text: "~" + } + Key { + id: normalKey + key: Qt.Key_Agrave + text: "`" + } + Key { + key: Qt.Key_Bar + text: "|" + } + Key { + key: 0x7B + text: "·" + } + Key { + key: 0x221A + text: "√" + } + Key { + key: Qt.Key_division + text: "÷" + } + Key { + key: Qt.Key_multiply + text: "×" + } + Key { + key: Qt.Key_onehalf + text: "½" + alternativeKeys: "¼⅓½¾⅞" + } + Key { + key: Qt.Key_BraceLeft + text: "{" + } + Key { + key: Qt.Key_BraceRight + text: "}" + } + } + KeyboardRow { + Key { + key: Qt.Key_Dollar + text: "$" + } + Key { + key: 0x20AC + text: "€" + } + Key { + key: 0xC2 + text: "£" + } + Key { + key: 0xA2 + text: "¢" + } + Key { + key: 0xA5 + text: "¥" + } + Key { + key: Qt.Key_AsciiCircum + text: "^" + } + Key { + key: Qt.Key_Equal + text: "=" + } + Key { + key: Qt.Key_section + text: "§" + } + Key { + key: Qt.Key_BracketLeft + text: "[" + } + Key { + key: Qt.Key_BracketRight + text: "]" + } + } + KeyboardRow { + Key { + displayText: "2/2" + functionKey: true + onClicked: secondPage = !secondPage + highlighted: true + } + Key { + key: 0x2122 + text: '™' + } + Key { + key: 0x00AE + text: '®' + } + Key { + key: Qt.Key_guillemotleft + text: '«' + } + Key { + key: Qt.Key_guillemotright + text: '»' + } + Key { + key: Qt.Key_Colon + text: ":" + } + Key { + key: 0x201C + text: '“' + } + Key { + key: 0x201D + text: '”' + } + Key { + key: Qt.Key_Backslash + text: "\\" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + displayText: "\u0623\u200C\u0628\u200C\u062C" + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "\u060C" + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: 0x2026 + weight: normalKeyWidth + Layout.fillWidth: false + text: "\u2026" + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } +} diff --git a/src/layouts/bg_BG/dialpad.fallback b/src/layouts/bg_BG/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/bg_BG/dialpad.fallback diff --git a/src/layouts/bg_BG/digits.fallback b/src/layouts/bg_BG/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/bg_BG/digits.fallback diff --git a/src/layouts/bg_BG/handwriting.qml b/src/layouts/bg_BG/handwriting.qml new file mode 100644 index 00000000..092d746e --- /dev/null +++ b/src/layouts/bg_BG/handwriting.qml @@ -0,0 +1,84 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayout { + function createInputMethod() { + return Qt.createQmlObject('import QtQuick; import QtQuick.VirtualKeyboard.Plugins; HandwritingInputMethod {}', parent) + } + sharedLayouts: ['symbols'] + + KeyboardRow { + Layout.preferredHeight: 3 + TraceInputKey { + objectName: "hwrInputArea" + patternRecognitionMode: InputEngine.PatternRecognitionMode.Handwriting + horizontalRulers: + InputContext.inputEngine.inputMode !== InputEngine.InputMode.Cyrillic ? [] : + [Math.round(boundingBox.height / 4), Math.round(boundingBox.height / 4) * 2, Math.round(boundingBox.height / 4) * 3] + } + } + KeyboardRow { + id: bottomRow + Layout.preferredHeight: 1 + keyWeight: 160 + ShiftKey { + weight: 240 + } + InputModeKey { + } + Key { + key: Qt.Key_Comma + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + weight: 10 * 160 - 4 * 160 - 2 * 240 + } + Key { + key: Qt.Key_Period + text: "." + alternativeKeys: "<>()/\\\"'=+-_:;.?!" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + BackspaceKey { + } + EnterKey { + weight: 240 + } + } +} diff --git a/src/layouts/bg_BG/main.qml b/src/layouts/bg_BG/main.qml new file mode 100644 index 00000000..fd392d61 --- /dev/null +++ b/src/layouts/bg_BG/main.qml @@ -0,0 +1,383 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayoutLoader { + sharedLayouts: ['symbols'] + sourceComponent: InputContext.inputEngine.inputMode === InputEngine.InputMode.Cyrillic ? cyrillicLayout : latinLayout + Component { + id: cyrillicLayout + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + text: "я" + } + Key { + id: normalKey + text: "в" + } + Key { + text: "е" + } + Key { + text: "р" + } + Key { + text: "т" + } + Key { + text: "ъ" + } + Key { + text: "у" + } + Key { + text: "и" + } + Key { + text: "о" + } + Key { + text: "п" + } + Key { + text: "ч" + } + } + KeyboardRow { + Key { + text: "а" + } + Key { + text: "с" + } + Key { + text: "д" + } + Key { + text: "ф" + } + Key { + text: "г" + } + Key { + text: "х" + } + Key { + text: "й" + } + Key { + text: "к" + } + Key { + text: "л" + } + Key { + text: "ш" + } + Key { + text: "щ" + } + } + KeyboardRow { + ShiftKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + text: "з" + } + Key { + text: "ь" + } + Key { + text: "ц" + } + Key { + text: "ж" + } + Key { + text: "б" + } + Key { + text: "н" + } + Key { + text: "м" + } + Key { + text: "ю" + } + BackspaceKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + InputModeKey { + inputModes: [InputEngine.InputMode.Cyrillic, InputEngine.InputMode.Latin] + weight: normalKeyWidth + Layout.fillWidth: false + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } + Component { + id: latinLayout + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + id: normalKey + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_E + text: "e" + alternativeKeys: "êeëèé" + } + Key { + key: Qt.Key_R + text: "r" + alternativeKeys: "ŕrř" + } + Key { + key: Qt.Key_T + text: "t" + alternativeKeys: "ţtŧť" + } + Key { + key: Qt.Key_Y + text: "y" + alternativeKeys: "ÿyýŷ" + } + Key { + key: Qt.Key_U + text: "u" + alternativeKeys: "űūũûüuùú" + } + Key { + key: Qt.Key_I + text: "i" + alternativeKeys: "îïīĩiìí" + } + Key { + key: Qt.Key_O + text: "o" + alternativeKeys: "œøõôöòóo" + } + Key { + key: Qt.Key_P + text: "p" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + } + Key { + key: Qt.Key_A + text: "a" + alternativeKeys: (InputContext.inputMethodHints & (Qt.ImhEmailCharactersOnly | Qt.ImhUrlCharactersOnly)) ? "a@äåãâàá" : "aäåãâàá" + smallTextVisible: (InputContext.inputMethodHints & (Qt.ImhEmailCharactersOnly | Qt.ImhUrlCharactersOnly)) + weight: normalKeyWidth + Layout.fillWidth: false + } + } + Key { + key: Qt.Key_S + text: "s" + alternativeKeys: "šsşś" + } + Key { + key: Qt.Key_D + text: "d" + alternativeKeys: "dđď" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + alternativeKeys: "ġgģĝğ" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + Key { + key: Qt.Key_L + text: "l" + alternativeKeys: "ĺŀłļľl" + weight: normalKeyWidth + Layout.fillWidth: false + } + FillerKey { + } + } + } + KeyboardRow { + ShiftKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Z + text: "z" + alternativeKeys: "zžż" + } + Key { + key: Qt.Key_X + text: "x" + } + Key { + key: Qt.Key_C + text: "c" + alternativeKeys: "çcċčć" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + alternativeKeys: "ņńnň" + } + Key { + key: Qt.Key_M + text: "m" + } + BackspaceKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + InputModeKey { + enabled: !(InputContext.inputMethodHints & Qt.ImhLatinOnly) && inputModeCount > 1 + inputModes: [InputEngine.InputMode.Cyrillic, InputEngine.InputMode.Latin] + weight: normalKeyWidth + Layout.fillWidth: false + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } +} diff --git a/src/layouts/bg_BG/numbers.fallback b/src/layouts/bg_BG/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/bg_BG/numbers.fallback diff --git a/src/layouts/bg_BG/symbols.fallback b/src/layouts/bg_BG/symbols.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/bg_BG/symbols.fallback diff --git a/src/layouts/cs_CZ/dialpad.fallback b/src/layouts/cs_CZ/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/cs_CZ/dialpad.fallback diff --git a/src/layouts/cs_CZ/digits.fallback b/src/layouts/cs_CZ/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/cs_CZ/digits.fallback diff --git a/src/layouts/cs_CZ/handwriting.qml b/src/layouts/cs_CZ/handwriting.qml new file mode 100644 index 00000000..37b158c3 --- /dev/null +++ b/src/layouts/cs_CZ/handwriting.qml @@ -0,0 +1,82 @@ +/**************************************************************************** +** +** 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayout { + function createInputMethod() { + return Qt.createQmlObject('import QtQuick; import QtQuick.VirtualKeyboard.Plugins; HandwritingInputMethod {}', parent) + } + sharedLayouts: ['symbols'] + inputMode: InputEngine.InputMode.Latin + + KeyboardRow { + Layout.preferredHeight: 3 + TraceInputKey { + objectName: "hwrInputArea" + patternRecognitionMode: InputEngine.PatternRecognitionMode.Handwriting + } + } + KeyboardRow { + id: bottomRow + Layout.preferredHeight: 1 + keyWeight: 160 + ShiftKey { + weight: 240 + } + InputModeKey { + } + Key { + key: Qt.Key_Comma + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + weight: 10 * 160 - 4 * 160 - 2 * 240 + } + Key { + key: Qt.Key_Period + text: "." + alternativeKeys: "<>()/\\\"'=+-_:;.?!" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + BackspaceKey { + } + EnterKey { + weight: 240 + } + } +} diff --git a/src/layouts/cs_CZ/main.qml b/src/layouts/cs_CZ/main.qml new file mode 100644 index 00000000..989dc792 --- /dev/null +++ b/src/layouts/cs_CZ/main.qml @@ -0,0 +1,219 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayout { + inputMode: InputEngine.InputMode.Latin + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + id: normalKey + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_E + text: "e" + alternativeKeys: "eéě" + } + Key { + key: Qt.Key_R + text: "r" + alternativeKeys: "rř" + } + Key { + key: Qt.Key_T + text: "t" + alternativeKeys: "tť" + } + Key { + key: Qt.Key_Z + text: "z" + alternativeKeys: "zž" + } + Key { + key: Qt.Key_U + text: "u" + alternativeKeys: "uúů" + } + Key { + key: Qt.Key_I + text: "i" + alternativeKeys: "ií" + } + Key { + key: Qt.Key_O + text: "o" + alternativeKeys: "oóö" + } + Key { + key: Qt.Key_P + text: "p" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + } + Key { + key: Qt.Key_A + text: "a" + alternativeKeys: "aåäá" + weight: normalKeyWidth + Layout.fillWidth: false + } + } + Key { + key: Qt.Key_S + text: "s" + alternativeKeys: "sš" + } + Key { + key: Qt.Key_D + text: "d" + alternativeKeys: "dď" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + Key { + key: Qt.Key_L + text: "l" + weight: normalKeyWidth + Layout.fillWidth: false + } + FillerKey { + } + } + } + KeyboardRow { + ShiftKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Y + text: "y" + alternativeKeys: "yý" + } + Key { + key: Qt.Key_X + text: "x" + } + Key { + key: Qt.Key_C + text: "c" + alternativeKeys: "cćč" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + alternativeKeys: "nń" + } + Key { + key: Qt.Key_M + text: "m" + } + BackspaceKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } +} diff --git a/src/layouts/cs_CZ/numbers.fallback b/src/layouts/cs_CZ/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/cs_CZ/numbers.fallback diff --git a/src/layouts/cs_CZ/symbols.fallback b/src/layouts/cs_CZ/symbols.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/cs_CZ/symbols.fallback diff --git a/src/layouts/da_DK/dialpad.fallback b/src/layouts/da_DK/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/da_DK/dialpad.fallback diff --git a/src/layouts/da_DK/digits.fallback b/src/layouts/da_DK/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/da_DK/digits.fallback diff --git a/src/layouts/da_DK/handwriting.fallback b/src/layouts/da_DK/handwriting.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/da_DK/handwriting.fallback diff --git a/src/layouts/da_DK/main.qml b/src/layouts/da_DK/main.qml new file mode 100644 index 00000000..5d8a717d --- /dev/null +++ b/src/layouts/da_DK/main.qml @@ -0,0 +1,220 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayout { + inputMode: InputEngine.InputMode.Latin + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + id: normalKey + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_E + text: "e" + alternativeKeys: "eé" + } + Key { + key: Qt.Key_R + text: "r" + } + Key { + key: Qt.Key_T + text: "t" + } + Key { + key: Qt.Key_Y + text: "y" + } + Key { + key: Qt.Key_U + text: "u" + } + Key { + key: Qt.Key_I + text: "i" + alternativeKeys: "ií" + } + Key { + key: Qt.Key_O + text: "o" + alternativeKeys: "oó" + } + Key { + key: Qt.Key_P + text: "p" + } + Key { + key: Qt.Key_Aring + text: "å" + } + } + KeyboardRow { + Key { + key: Qt.Key_A + text: "a" + alternativeKeys: "aá" + } + Key { + key: Qt.Key_S + text: "s" + } + Key { + key: Qt.Key_D + text: "d" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + Key { + key: Qt.Key_L + text: "l" + } + Key { + key: Qt.Key_AE + text: "æ" + alternativeKeys: "æǽ" + } + Key { + key: Qt.Key_Ooblique + text: "ø" + alternativeKeys: "øǿ" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + ShiftKey { + weight: 240 + } + FillerKey { + weight: 80 + } + } + Key { + key: Qt.Key_Z + text: "z" + } + Key { + key: Qt.Key_X + text: "x" + } + Key { + key: Qt.Key_C + text: "c" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + } + Key { + key: Qt.Key_M + text: "m" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + weight: 80 + } + BackspaceKey { + weight: 240 + } + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } +} diff --git a/src/layouts/da_DK/numbers.fallback b/src/layouts/da_DK/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/da_DK/numbers.fallback diff --git a/src/layouts/da_DK/symbols.fallback b/src/layouts/da_DK/symbols.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/da_DK/symbols.fallback diff --git a/src/layouts/de_DE/dialpad.fallback b/src/layouts/de_DE/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/de_DE/dialpad.fallback diff --git a/src/layouts/de_DE/digits.fallback b/src/layouts/de_DE/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/de_DE/digits.fallback diff --git a/src/layouts/de_DE/handwriting.fallback b/src/layouts/de_DE/handwriting.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/de_DE/handwriting.fallback diff --git a/src/layouts/de_DE/main.qml b/src/layouts/de_DE/main.qml new file mode 100644 index 00000000..2e594fea --- /dev/null +++ b/src/layouts/de_DE/main.qml @@ -0,0 +1,215 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayout { + inputMode: InputEngine.InputMode.Latin + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + id: normalKey + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_E + text: "e" + } + Key { + key: Qt.Key_R + text: "r" + } + Key { + key: Qt.Key_T + text: "t" + } + Key { + key: Qt.Key_Z + text: "z" + } + Key { + key: Qt.Key_U + text: "u" + } + Key { + key: Qt.Key_I + text: "i" + } + Key { + key: Qt.Key_O + text: "o" + } + Key { + key: Qt.Key_P + text: "p" + } + Key { + key: Qt.Key_Udiaeresis + text: "ü" + } + } + KeyboardRow { + Key { + key: Qt.Key_A + text: "a" + } + Key { + key: Qt.Key_S + text: "s" + alternativeKeys: "sß" + } + Key { + key: Qt.Key_D + text: "d" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + Key { + key: Qt.Key_L + text: "l" + } + Key { + key: Qt.Key_Odiaeresis + text: "ö" + } + Key { + key: Qt.Key_Adiaeresis + text: "ä" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + ShiftKey { + weight: 240 + } + FillerKey { + weight: 80 + } + } + Key { + key: Qt.Key_Y + text: "y" + } + Key { + key: Qt.Key_X + text: "x" + } + Key { + key: Qt.Key_C + text: "c" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + } + Key { + key: Qt.Key_M + text: "m" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + weight: 80 + } + BackspaceKey { + weight: 240 + } + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } +} diff --git a/src/layouts/de_DE/numbers.fallback b/src/layouts/de_DE/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/de_DE/numbers.fallback diff --git a/src/layouts/de_DE/symbols.fallback b/src/layouts/de_DE/symbols.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/de_DE/symbols.fallback diff --git a/src/layouts/el_GR/dialpad.fallback b/src/layouts/el_GR/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/el_GR/dialpad.fallback diff --git a/src/layouts/el_GR/digits.fallback b/src/layouts/el_GR/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/el_GR/digits.fallback diff --git a/src/layouts/el_GR/handwriting.qml b/src/layouts/el_GR/handwriting.qml new file mode 100644 index 00000000..bdc065ff --- /dev/null +++ b/src/layouts/el_GR/handwriting.qml @@ -0,0 +1,84 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayout { + function createInputMethod() { + return Qt.createQmlObject('import QtQuick; import QtQuick.VirtualKeyboard.Plugins; HandwritingInputMethod {}', parent) + } + sharedLayouts: ['symbols'] + + KeyboardRow { + Layout.preferredHeight: 3 + TraceInputKey { + objectName: "hwrInputArea" + patternRecognitionMode: InputEngine.PatternRecognitionMode.Handwriting + horizontalRulers: + InputContext.inputEngine.inputMode !== InputEngine.InputMode.Greek ? [] : + [Math.round(boundingBox.height / 4), Math.round(boundingBox.height / 4) * 2, Math.round(boundingBox.height / 4) * 3] + } + } + KeyboardRow { + id: bottomRow + Layout.preferredHeight: 1 + keyWeight: 160 + ShiftKey { + weight: 240 + } + InputModeKey { + } + Key { + key: Qt.Key_Comma + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + weight: 10 * 160 - 4 * 160 - 2 * 240 + } + Key { + key: Qt.Key_Period + text: "." + alternativeKeys: "<>()/\\\"'=+-_:;.?!" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + BackspaceKey { + } + EnterKey { + weight: 240 + } + } +} diff --git a/src/layouts/el_GR/main.qml b/src/layouts/el_GR/main.qml new file mode 100644 index 00000000..32f2a717 --- /dev/null +++ b/src/layouts/el_GR/main.qml @@ -0,0 +1,393 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayoutLoader { + sharedLayouts: ['symbols'] + sourceComponent: InputContext.inputEngine.inputMode === InputEngine.InputMode.Greek ? greekLayout : latinLayout + Component { + id: greekLayout + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + text: "ς" + } + Key { + id: normalKey + text: "ε" + alternativeKeys: "εέ" + } + Key { + text: "ρ" + } + Key { + text: "τ" + } + Key { + text: "ψ" + } + Key { + text: "υ" + alternativeKeys: "υύϋΰ" + } + Key { + text: "θ" + } + Key { + text: "ι" + alternativeKeys: "ιίϊΐ" + } + Key { + text: "ο" + alternativeKeys: "οό" + } + Key { + text: "π" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + } + Key { + text: "α" + alternativeKeys: "αά" + weight: normalKeyWidth + Layout.fillWidth: false + } + } + Key { + text: "σ" + } + Key { + text: "δ" + } + Key { + text: "φ" + } + Key { + text: "γ" + } + Key { + text: "η" + alternativeKeys: "ηή" + } + Key { + text: "ξ" + } + Key { + text: "κ" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + Key { + text: "λ" + weight: normalKeyWidth + Layout.fillWidth: false + } + FillerKey { + } + } + } + KeyboardRow { + ShiftKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + text: "ζ" + } + Key { + text: "χ" + } + Key { + text: "ψ" + } + Key { + text: "ω" + alternativeKeys: "ωώ" + } + Key { + text: "β" + } + Key { + text: "ν" + } + Key { + text: "μ" + } + BackspaceKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + InputModeKey { + inputModes: [InputEngine.InputMode.Greek, InputEngine.InputMode.Latin] + weight: normalKeyWidth + Layout.fillWidth: false + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } + Component { + id: latinLayout + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + id: normalKey + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_E + text: "e" + alternativeKeys: "êeëèé" + } + Key { + key: Qt.Key_R + text: "r" + alternativeKeys: "ŕrř" + } + Key { + key: Qt.Key_T + text: "t" + alternativeKeys: "ţtŧť" + } + Key { + key: Qt.Key_Y + text: "y" + alternativeKeys: "ÿyýŷ" + } + Key { + key: Qt.Key_U + text: "u" + alternativeKeys: "űūũûüuùú" + } + Key { + key: Qt.Key_I + text: "i" + alternativeKeys: "îïīĩiìí" + } + Key { + key: Qt.Key_O + text: "o" + alternativeKeys: "œøõôöòóo" + } + Key { + key: Qt.Key_P + text: "p" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + } + Key { + key: Qt.Key_A + text: "a" + alternativeKeys: (InputContext.inputMethodHints & (Qt.ImhEmailCharactersOnly | Qt.ImhUrlCharactersOnly)) ? "a@äåãâàá" : "aäåãâàá" + smallTextVisible: (InputContext.inputMethodHints & (Qt.ImhEmailCharactersOnly | Qt.ImhUrlCharactersOnly)) + weight: normalKeyWidth + Layout.fillWidth: false + } + } + Key { + key: Qt.Key_S + text: "s" + alternativeKeys: "šsşś" + } + Key { + key: Qt.Key_D + text: "d" + alternativeKeys: "dđď" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + alternativeKeys: "ġgģĝğ" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + Key { + key: Qt.Key_L + text: "l" + alternativeKeys: "ĺŀłļľl" + weight: normalKeyWidth + Layout.fillWidth: false + } + FillerKey { + } + } + } + KeyboardRow { + ShiftKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Z + text: "z" + alternativeKeys: "zžż" + } + Key { + key: Qt.Key_X + text: "x" + } + Key { + key: Qt.Key_C + text: "c" + alternativeKeys: "çcċčć" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + alternativeKeys: "ņńnň" + } + Key { + key: Qt.Key_M + text: "m" + } + BackspaceKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + InputModeKey { + inputModes: [InputEngine.InputMode.Greek, InputEngine.InputMode.Latin] + weight: normalKeyWidth + Layout.fillWidth: false + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } +} diff --git a/src/layouts/el_GR/numbers.fallback b/src/layouts/el_GR/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/el_GR/numbers.fallback diff --git a/src/layouts/el_GR/symbols.fallback b/src/layouts/el_GR/symbols.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/el_GR/symbols.fallback diff --git a/src/layouts/en_GB/dialpad.fallback b/src/layouts/en_GB/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/en_GB/dialpad.fallback diff --git a/src/layouts/en_GB/digits.fallback b/src/layouts/en_GB/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/en_GB/digits.fallback diff --git a/src/layouts/en_GB/handwriting.fallback b/src/layouts/en_GB/handwriting.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/en_GB/handwriting.fallback diff --git a/src/layouts/en_GB/main.fallback b/src/layouts/en_GB/main.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/en_GB/main.fallback diff --git a/src/layouts/en_GB/numbers.fallback b/src/layouts/en_GB/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/en_GB/numbers.fallback diff --git a/src/layouts/en_GB/symbols.fallback b/src/layouts/en_GB/symbols.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/en_GB/symbols.fallback diff --git a/src/layouts/en_US/dialpad.fallback b/src/layouts/en_US/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/en_US/dialpad.fallback diff --git a/src/layouts/en_US/digits.fallback b/src/layouts/en_US/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/en_US/digits.fallback diff --git a/src/layouts/en_US/handwriting.fallback b/src/layouts/en_US/handwriting.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/en_US/handwriting.fallback diff --git a/src/layouts/en_US/main.fallback b/src/layouts/en_US/main.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/en_US/main.fallback diff --git a/src/layouts/en_US/numbers.fallback b/src/layouts/en_US/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/en_US/numbers.fallback diff --git a/src/layouts/en_US/symbols.fallback b/src/layouts/en_US/symbols.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/en_US/symbols.fallback diff --git a/src/layouts/es_ES/dialpad.fallback b/src/layouts/es_ES/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/es_ES/dialpad.fallback diff --git a/src/layouts/es_ES/digits.fallback b/src/layouts/es_ES/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/es_ES/digits.fallback diff --git a/src/layouts/es_ES/handwriting.qml b/src/layouts/es_ES/handwriting.qml new file mode 100644 index 00000000..4f212a18 --- /dev/null +++ b/src/layouts/es_ES/handwriting.qml @@ -0,0 +1,82 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayout { + function createInputMethod() { + return Qt.createQmlObject('import QtQuick; import QtQuick.VirtualKeyboard.Plugins; HandwritingInputMethod {}', parent) + } + sharedLayouts: ['symbols'] + inputMode: InputEngine.InputMode.Latin + + KeyboardRow { + Layout.preferredHeight: 3 + TraceInputKey { + objectName: "hwrInputArea" + patternRecognitionMode: InputEngine.PatternRecognitionMode.Handwriting + } + } + KeyboardRow { + id: bottomRow + Layout.preferredHeight: 1 + keyWeight: 160 + ShiftKey { + weight: 240 + } + InputModeKey { + } + Key { + key: Qt.Key_Comma + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + weight: 10 * 160 - 4 * 160 - 2 * 240 + } + Key { + key: Qt.Key_Period + text: "." + alternativeKeys: "<>()/\\\"'=+-_:;.¿?¡!" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + BackspaceKey { + } + EnterKey { + weight: 240 + } + } +} diff --git a/src/layouts/es_ES/main.qml b/src/layouts/es_ES/main.qml new file mode 100644 index 00000000..858f57fd --- /dev/null +++ b/src/layouts/es_ES/main.qml @@ -0,0 +1,204 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayout { + inputMode: InputEngine.InputMode.Latin + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + id: normalKey + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_E + text: "e" + alternativeKeys: "ēęėëeêèé" + } + Key { + key: Qt.Key_R + text: "r" + } + Key { + key: Qt.Key_T + text: "t" + } + Key { + key: Qt.Key_Y + text: "y" + } + Key { + key: Qt.Key_U + text: "u" + alternativeKeys: "üûuùú" + } + Key { + key: Qt.Key_I + text: "i" + alternativeKeys: "ïįîiìí" + } + Key { + key: Qt.Key_O + text: "o" + alternativeKeys: "öõôoòóº" + } + Key { + key: Qt.Key_P + text: "p" + } + } + KeyboardRow { + Key { + key: Qt.Key_A + text: "a" + alternativeKeys: "äãaâàáª" + weight: normalKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_S + text: "s" + } + Key { + key: Qt.Key_D + text: "d" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + Key { + key: Qt.Key_L + text: "l" + } + Key { + key: Qt.Key_Ntilde + text: "ñ" + weight: normalKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + ShiftKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Z + text: "z" + } + Key { + key: Qt.Key_X + text: "x" + } + Key { + key: Qt.Key_C + text: "c" + alternativeKeys: "čcçć" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + } + Key { + key: Qt.Key_M + text: "m" + } + BackspaceKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!¿¡.?" + smallText: "¡¿" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } +} diff --git a/src/layouts/es_ES/numbers.fallback b/src/layouts/es_ES/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/es_ES/numbers.fallback diff --git a/src/layouts/es_ES/symbols.qml b/src/layouts/es_ES/symbols.qml new file mode 100644 index 00000000..0f13dc0e --- /dev/null +++ b/src/layouts/es_ES/symbols.qml @@ -0,0 +1,370 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayoutLoader { + property bool secondPage + onVisibleChanged: if (!visible) secondPage = false + sourceComponent: secondPage ? page2 : page1 + Component { + id: page1 + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_1 + text: "1" + } + Key { + id: normalKey + key: Qt.Key_2 + text: "2" + } + Key { + key: Qt.Key_3 + text: "3" + } + Key { + key: Qt.Key_4 + text: "4" + } + Key { + key: Qt.Key_5 + text: "5" + } + Key { + key: Qt.Key_6 + text: "6" + } + Key { + key: Qt.Key_7 + text: "7" + } + Key { + key: Qt.Key_8 + text: "8" + } + Key { + key: Qt.Key_9 + text: "9" + } + Key { + key: Qt.Key_0 + text: "0" + } + } + KeyboardRow { + Key { + key: Qt.Key_At + text: "@" + } + Key { + key: Qt.Key_NumberSign + text: "#" + } + Key { + key: Qt.Key_Percent + text: "%" + } + Key { + key: Qt.Key_Ampersand + text: "&" + } + Key { + key: Qt.Key_Asterisk + text: "*" + } + Key { + key: Qt.Key_Underscore + text: "_" + } + Key { + key: Qt.Key_Minus + text: "-" + } + Key { + key: Qt.Key_Plus + text: "+" + } + Key { + key: Qt.Key_ParenLeft + text: "(" + } + Key { + key: Qt.Key_ParenRight + text: ")" + } + } + KeyboardRow { + Key { + displayText: "1/2" + functionKey: true + onClicked: secondPage = !secondPage + highlighted: true + } + Key { + key: Qt.Key_QuoteDbl + text: '"' + } + Key { + key: Qt.Key_Less + text: "<" + } + Key { + key: Qt.Key_Greater + text: ">" + } + Key { + key: Qt.Key_Apostrophe + text: "'" + } + Key { + key: Qt.Key_Colon + text: ":" + } + Key { + key: Qt.Key_Slash + text: "/" + } + Key { + key: Qt.Key_exclamdown + text: "¡" + alternativeKeys: "¡!" + } + Key { + key: Qt.Key_questiondown + text: "¿" + alternativeKeys: "¿?" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + displayText: "ABC" + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } + Component { + id: page2 + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_AsciiTilde + text: "~" + } + Key { + id: normalKey + key: Qt.Key_Agrave + text: "`" + } + Key { + key: Qt.Key_Bar + text: "|" + } + Key { + key: 0x7B + text: "·" + } + Key { + key: 0x221A + text: "√" + } + Key { + key: Qt.Key_division + text: "÷" + } + Key { + key: Qt.Key_multiply + text: "×" + } + Key { + key: Qt.Key_onehalf + text: "½" + alternativeKeys: "¼⅓½¾⅞" + } + Key { + key: Qt.Key_BraceLeft + text: "{" + } + Key { + key: Qt.Key_BraceRight + text: "}" + } + } + KeyboardRow { + Key { + key: Qt.Key_Dollar + text: "$" + } + Key { + key: 0x20AC + text: "€" + } + Key { + key: 0xC2 + text: "£" + } + Key { + key: 0xA2 + text: "¢" + } + Key { + key: 0xA5 + text: "¥" + } + Key { + key: Qt.Key_AsciiCircum + text: "^" + } + Key { + key: Qt.Key_Equal + text: "=" + } + Key { + key: Qt.Key_section + text: "§" + } + Key { + key: Qt.Key_BracketLeft + text: "[" + } + Key { + key: Qt.Key_BracketRight + text: "]" + } + } + KeyboardRow { + Key { + displayText: "2/2" + functionKey: true + onClicked: secondPage = !secondPage + highlighted: true + } + Key { + key: 0x2122 + text: '™' + } + Key { + key: 0x00AE + text: '®' + } + Key { + key: Qt.Key_guillemotleft + text: '«' + } + Key { + key: Qt.Key_guillemotright + text: '»' + } + Key { + key: Qt.Key_Semicolon + text: ";" + } + Key { + key: 0x201C + text: '“' + } + Key { + key: 0x201D + text: '”' + } + Key { + key: Qt.Key_Backslash + text: "\\" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + displayText: InputContext.inputEngine.inputMode === InputEngine.InputMode.Cyrillic ? "АБВ" : "ABC" + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: 0x2026 + weight: normalKeyWidth + Layout.fillWidth: false + text: "\u2026" + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } +} diff --git a/src/layouts/es_MX/dialpad.fallback b/src/layouts/es_MX/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/es_MX/dialpad.fallback diff --git a/src/layouts/es_MX/digits.fallback b/src/layouts/es_MX/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/es_MX/digits.fallback diff --git a/src/layouts/es_MX/handwriting.qml b/src/layouts/es_MX/handwriting.qml new file mode 100644 index 00000000..4f212a18 --- /dev/null +++ b/src/layouts/es_MX/handwriting.qml @@ -0,0 +1,82 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayout { + function createInputMethod() { + return Qt.createQmlObject('import QtQuick; import QtQuick.VirtualKeyboard.Plugins; HandwritingInputMethod {}', parent) + } + sharedLayouts: ['symbols'] + inputMode: InputEngine.InputMode.Latin + + KeyboardRow { + Layout.preferredHeight: 3 + TraceInputKey { + objectName: "hwrInputArea" + patternRecognitionMode: InputEngine.PatternRecognitionMode.Handwriting + } + } + KeyboardRow { + id: bottomRow + Layout.preferredHeight: 1 + keyWeight: 160 + ShiftKey { + weight: 240 + } + InputModeKey { + } + Key { + key: Qt.Key_Comma + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + weight: 10 * 160 - 4 * 160 - 2 * 240 + } + Key { + key: Qt.Key_Period + text: "." + alternativeKeys: "<>()/\\\"'=+-_:;.¿?¡!" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + BackspaceKey { + } + EnterKey { + weight: 240 + } + } +} diff --git a/src/layouts/es_MX/main.qml b/src/layouts/es_MX/main.qml new file mode 100644 index 00000000..858f57fd --- /dev/null +++ b/src/layouts/es_MX/main.qml @@ -0,0 +1,204 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayout { + inputMode: InputEngine.InputMode.Latin + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + id: normalKey + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_E + text: "e" + alternativeKeys: "ēęėëeêèé" + } + Key { + key: Qt.Key_R + text: "r" + } + Key { + key: Qt.Key_T + text: "t" + } + Key { + key: Qt.Key_Y + text: "y" + } + Key { + key: Qt.Key_U + text: "u" + alternativeKeys: "üûuùú" + } + Key { + key: Qt.Key_I + text: "i" + alternativeKeys: "ïįîiìí" + } + Key { + key: Qt.Key_O + text: "o" + alternativeKeys: "öõôoòóº" + } + Key { + key: Qt.Key_P + text: "p" + } + } + KeyboardRow { + Key { + key: Qt.Key_A + text: "a" + alternativeKeys: "äãaâàáª" + weight: normalKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_S + text: "s" + } + Key { + key: Qt.Key_D + text: "d" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + Key { + key: Qt.Key_L + text: "l" + } + Key { + key: Qt.Key_Ntilde + text: "ñ" + weight: normalKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + ShiftKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Z + text: "z" + } + Key { + key: Qt.Key_X + text: "x" + } + Key { + key: Qt.Key_C + text: "c" + alternativeKeys: "čcçć" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + } + Key { + key: Qt.Key_M + text: "m" + } + BackspaceKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!¿¡.?" + smallText: "¡¿" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } +} diff --git a/src/layouts/es_MX/numbers.fallback b/src/layouts/es_MX/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/es_MX/numbers.fallback diff --git a/src/layouts/es_MX/symbols.qml b/src/layouts/es_MX/symbols.qml new file mode 100644 index 00000000..b261242b --- /dev/null +++ b/src/layouts/es_MX/symbols.qml @@ -0,0 +1,370 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayoutLoader { + property bool secondPage + onVisibleChanged: if (!visible) secondPage = false + sourceComponent: secondPage ? page2 : page1 + Component { + id: page1 + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_1 + text: "1" + } + Key { + id: normalKey + key: Qt.Key_2 + text: "2" + } + Key { + key: Qt.Key_3 + text: "3" + } + Key { + key: Qt.Key_4 + text: "4" + } + Key { + key: Qt.Key_5 + text: "5" + } + Key { + key: Qt.Key_6 + text: "6" + } + Key { + key: Qt.Key_7 + text: "7" + } + Key { + key: Qt.Key_8 + text: "8" + } + Key { + key: Qt.Key_9 + text: "9" + } + Key { + key: Qt.Key_0 + text: "0" + } + } + KeyboardRow { + Key { + key: Qt.Key_At + text: "@" + } + Key { + key: Qt.Key_NumberSign + text: "#" + } + Key { + key: Qt.Key_Percent + text: "%" + } + Key { + key: Qt.Key_Ampersand + text: "&" + } + Key { + key: Qt.Key_Asterisk + text: "*" + } + Key { + key: Qt.Key_Underscore + text: "_" + } + Key { + key: Qt.Key_Minus + text: "-" + } + Key { + key: Qt.Key_Plus + text: "+" + } + Key { + key: Qt.Key_ParenLeft + text: "(" + } + Key { + key: Qt.Key_ParenRight + text: ")" + } + } + KeyboardRow { + Key { + displayText: "1/2" + functionKey: true + onClicked: secondPage = !secondPage + highlighted: true + } + Key { + key: Qt.Key_QuoteDbl + text: '"' + } + Key { + key: Qt.Key_Less + text: "<" + } + Key { + key: Qt.Key_Greater + text: ">" + } + Key { + key: Qt.Key_Apostrophe + text: "'" + } + Key { + key: Qt.Key_Colon + text: ":" + } + Key { + key: Qt.Key_Slash + text: "/" + } + Key { + key: Qt.Key_exclamdown + text: "¡" + alternativeKeys: "¡!" + } + Key { + key: Qt.Key_questiondown + text: "¿" + alternativeKeys: "¿?" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + displayText: "ABC" + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } + Component { + id: page2 + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_AsciiTilde + text: "~" + } + Key { + id: normalKey + key: Qt.Key_Agrave + text: "`" + } + Key { + key: Qt.Key_Bar + text: "|" + } + Key { + key: 0x7B + text: "·" + } + Key { + key: 0x221A + text: "√" + } + Key { + key: Qt.Key_division + text: "÷" + } + Key { + key: Qt.Key_multiply + text: "×" + } + Key { + key: Qt.Key_onehalf + text: "½" + alternativeKeys: "¼⅓½¾⅞" + } + Key { + key: Qt.Key_BraceLeft + text: "{" + } + Key { + key: Qt.Key_BraceRight + text: "}" + } + } + KeyboardRow { + Key { + key: Qt.Key_Dollar + text: "$" + } + Key { + key: 0x20AC + text: "€" + } + Key { + key: 0xC2 + text: "£" + } + Key { + key: 0xA2 + text: "¢" + } + Key { + key: 0xA5 + text: "¥" + } + Key { + key: Qt.Key_AsciiCircum + text: "^" + } + Key { + key: Qt.Key_Equal + text: "=" + } + Key { + key: Qt.Key_section + text: "§" + } + Key { + key: Qt.Key_BracketLeft + text: "[" + } + Key { + key: Qt.Key_BracketRight + text: "]" + } + } + KeyboardRow { + Key { + displayText: "2/2" + functionKey: true + onClicked: secondPage = !secondPage + highlighted: true + } + Key { + key: 0x2122 + text: '™' + } + Key { + key: 0x00AE + text: '®' + } + Key { + key: Qt.Key_guillemotleft + text: '«' + } + Key { + key: Qt.Key_guillemotright + text: '»' + } + Key { + key: Qt.Key_Semicolon + text: ";" + } + Key { + key: 0x201C + text: '“' + } + Key { + key: 0x201D + text: '”' + } + Key { + key: Qt.Key_Backslash + text: "\\" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + displayText: InputContext.inputEngine.inputMode === InputEngine.InputMode.Cyrillic ? "АБВ" : "ABC" + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: 0x2026 + weight: normalKeyWidth + Layout.fillWidth: false + text: "\u2026" + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } +} diff --git a/src/layouts/et_EE/dialpad.fallback b/src/layouts/et_EE/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/et_EE/dialpad.fallback diff --git a/src/layouts/et_EE/digits.fallback b/src/layouts/et_EE/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/et_EE/digits.fallback diff --git a/src/layouts/et_EE/handwriting.fallback b/src/layouts/et_EE/handwriting.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/et_EE/handwriting.fallback diff --git a/src/layouts/et_EE/main.qml b/src/layouts/et_EE/main.qml new file mode 100644 index 00000000..6d4f2822 --- /dev/null +++ b/src/layouts/et_EE/main.qml @@ -0,0 +1,217 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayout { + inputMode: InputEngine.InputMode.Latin + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + id: normalKey + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_E + text: "e" + } + Key { + key: Qt.Key_R + text: "r" + } + Key { + key: Qt.Key_T + text: "t" + } + Key { + key: Qt.Key_Y + text: "y" + } + Key { + key: Qt.Key_U + text: "u" + } + Key { + key: Qt.Key_I + text: "i" + } + Key { + key: Qt.Key_O + text: "o" + alternativeKeys: "óöo" + } + Key { + key: Qt.Key_P + text: "p" + } + Key { + key: Qt.Key_Udiaeresis + text: "ü" + } + } + KeyboardRow { + Key { + key: Qt.Key_A + text: "a" + } + Key { + key: Qt.Key_S + text: "s" + alternativeKeys: "sš" + } + Key { + key: Qt.Key_D + text: "d" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + Key { + key: Qt.Key_L + text: "l" + } + Key { + key: Qt.Key_Otilde + text: "õ" + } + Key { + key: Qt.Key_Adiaeresis + text: "ä" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + ShiftKey { + weight: 240 + } + FillerKey { + weight: 80 + } + } + Key { + key: Qt.Key_Z + text: "z" + alternativeKeys: "zž" + } + Key { + key: Qt.Key_X + text: "x" + } + Key { + key: Qt.Key_C + text: "c" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + } + Key { + key: Qt.Key_M + text: "m" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + weight: 80 + } + BackspaceKey { + weight: 240 + } + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } +} diff --git a/src/layouts/et_EE/numbers.fallback b/src/layouts/et_EE/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/et_EE/numbers.fallback diff --git a/src/layouts/et_EE/symbols.fallback b/src/layouts/et_EE/symbols.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/et_EE/symbols.fallback diff --git a/src/layouts/fa_FA/dialpad.fallback b/src/layouts/fa_FA/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/fa_FA/dialpad.fallback diff --git a/src/layouts/fa_FA/digits.qml b/src/layouts/fa_FA/digits.qml new file mode 100644 index 00000000..8d0940c0 --- /dev/null +++ b/src/layouts/fa_FA/digits.qml @@ -0,0 +1,113 @@ +/**************************************************************************** +** +** Copyright (C) 2016 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.VirtualKeyboard.Plugins + +KeyboardLayout { + inputMethod: PlainInputMethod {} + inputMode: InputEngine.InputMode.Numeric + + KeyboardColumn { + Layout.fillWidth: false + Layout.fillHeight: true + Layout.alignment: Qt.AlignHCenter + Layout.preferredWidth: height + KeyboardRow { + Key { + text: "\u06F7" + alternativeKeys: "\u06F77" + } + Key { + text: "\u06F8" + alternativeKeys: "\u06F88" + } + Key { + text: "\u06F9" + alternativeKeys: "\u06F99" + } + BackspaceKey {} + } + KeyboardRow { + Key { + text: "\u06F4" + alternativeKeys: "\u06F44" + } + Key { + text: "\u06F5" + alternativeKeys: "\u06F55" + } + Key { + text: "\u06F6" + alternativeKeys: "\u06F66" + } + Key { + text: " " + displayText: "\u2423" + repeat: true + showPreview: false + key: Qt.Key_Space + highlighted: true + } + } + KeyboardRow { + Key { + text: "\u06F1" + alternativeKeys: "\u06F11" + } + Key { + text: "\u06F2" + alternativeKeys: "\u06F22" + } + Key { + text: "\u06F3" + alternativeKeys: "\u06F33" + } + HideKeyboardKey {} + } + KeyboardRow { + ChangeLanguageKey { + customLayoutsOnly: true + } + Key { + text: "\u06F0" + alternativeKeys: "\u06F00" + } + Key { + key: Qt.Key_Comma + text: "\u066B" + alternativeKeys: "\u066B,." + } + EnterKey {} + } + } +} diff --git a/src/layouts/fa_FA/handwriting.qml b/src/layouts/fa_FA/handwriting.qml new file mode 100644 index 00000000..650a65a7 --- /dev/null +++ b/src/layouts/fa_FA/handwriting.qml @@ -0,0 +1,101 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayout { + function createInputMethod() { + return Qt.createQmlObject('import QtQuick; import QtQuick.VirtualKeyboard.Plugins; HandwritingInputMethod {}', parent) + } + sharedLayouts: ['symbols'] + inputMode: InputEngine.InputMode.Arabic + readonly property bool alphabeticInputMode: [InputEngine.InputMode.Latin, InputEngine.InputMode.Dialable].indexOf(InputContext.inputEngine.inputMode) !== -1 + + KeyboardRow { + Layout.preferredHeight: 3 + TraceInputKey { + objectName: "hwrInputArea" + patternRecognitionMode: InputEngine.PatternRecognitionMode.Handwriting + horizontalRulers: + alphabeticInputMode ? [] : + [Math.round(boundingBox.height / 4), Math.round(boundingBox.height / 4) * 2, Math.round(boundingBox.height / 4) * 3] + } + } + KeyboardRow { + id: bottomRow + Layout.preferredHeight: 1 + keyWeight: 160 + ShiftKey { + weight: 240 + } + InputModeKey { + inputModeNameList: [ + "ABC", // InputEngine.InputMode.Latin + "\u0660\u0661\u0662", // InputEngine.InputMode.Numeric + "123", // InputEngine.InputMode.Dialable + "", // InputEngine.InputMode.Pinyin + "", // InputEngine.InputMode.Cangjie + "", // InputEngine.InputMode.Zhuyin + "", // InputEngine.InputMode.Hangul + "", // InputEngine.InputMode.Hiragana + "", // InputEngine.InputMode.Katakana + "", // InputEngine.InputMode.FullwidthLatin + "", // InputEngine.InputMode.Greek + "", // InputEngine.InputMode.Cyrillic + "\u0627\u200C\u0628\u200C\u067E", // InputEngine.InputMode.Arabic + ] + } + Key { + key: Qt.Key_Comma + text: alphabeticInputMode ? "," : "\u060C" + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + weight: 10 * 160 - 4 * 160 - 2 * 240 + } + Key { + key: Qt.Key_Period + text: "." + alternativeKeys: alphabeticInputMode ? "#%&*/\\\"'=+-_:;,.?!<>()" : "#%&*/\\\"'=+-_:\u061B.\u061F!<>()" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + BackspaceKey { + } + EnterKey { + weight: 240 + } + } +} diff --git a/src/layouts/fa_FA/main.qml b/src/layouts/fa_FA/main.qml new file mode 100644 index 00000000..b33da21b --- /dev/null +++ b/src/layouts/fa_FA/main.qml @@ -0,0 +1,190 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayout { + inputMode: InputEngine.InputMode.Arabic + keyWeight: 160 + smallTextVisible: true + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + text: "\u0635" + alternativeKeys: "1\u0635\u0636\u0661" + smallText: "\u0636\u0661" + } + Key { + id: normalKey + text: "\u0642" + alternativeKeys: "2\u0642\u0662" + } + Key { + text: "\u0641" + alternativeKeys: "3\u0641\u0663" + } + Key { + text: "\u063A" + alternativeKeys: "4\u063A\u0664" + } + Key { + text: "\u0639" + alternativeKeys: "5\u0639\u0665" + } + Key { + text: "\u0647" + alternativeKeys: "6\u0647\u0666" + } + Key { + text: "\u062E" + alternativeKeys: "7\u062E\u0667" + } + Key { + text: "\u062D" + alternativeKeys: "8\u062D\u0668" + } + Key { + text: "\u062C" + alternativeKeys: "9\u062C\u0669" + } + Key { + text: "\u0686" + alternativeKeys: "0\u0686\u0660" + } + } + KeyboardRow { + Key { + text: "\u0634" + } + Key { + text: "\u0633" + } + Key { + text: "\u06CC" + } + Key { + text: "\u0628" + } + Key { + text: "\u0644" + } + Key { + text: "\u0627" + alternativeKeys: "\u0625\u0627\u0623\u0622" + } + Key { + text: "\u062A" + alternativeKeys: "\u062A\u062B" + } + Key { + text: "\u0646" + } + Key { + text: "\u0645" + } + Key { + text: "\u06A9" + } + } + KeyboardRow { + Key { + text: "\u200C" + alternativeKeys: "\u200C\u200D" + displayText: "\u25C2\u205E\u25B8" + displayAlternativeKeys: ["\u25B8\u205E\u25C2"] + highlighted: true + } + Key { + text: "\u064E" + alternativeKeys: "\u064C\u064E\u064F\u0652\u064B\u064D\u0640\u0651\u0650" + smallText: "\u25CC\u064F " + } + Key { + text: "\u0637" + alternativeKeys: "\u0637\u0638" + } + Key { + text: "\u0632" + alternativeKeys: "\u0632\u0698" + } + Key { + text: "\u0631" + } + Key { + text: "\u0630" + } + Key { + text: "\u062F" + } + Key { + text: "\u0648" + alternativeKeys: "\u0624\u0648\u0621" + } + Key { + text: "\u06AF" + alternativeKeys: "\u06AF\u067E" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + displayText: "\u0661\u0662\u0663\u061F" + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "\u060C" + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!,\u060C\u061B.\u061F" + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } +} diff --git a/src/layouts/fa_FA/numbers.qml b/src/layouts/fa_FA/numbers.qml new file mode 100644 index 00000000..6b4d00ad --- /dev/null +++ b/src/layouts/fa_FA/numbers.qml @@ -0,0 +1,186 @@ +/**************************************************************************** +** +** Copyright (C) 2016 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.VirtualKeyboard.Plugins + +KeyboardLayout { + inputMethod: PlainInputMethod {} + inputMode: InputEngine.InputMode.Numeric + + KeyboardRow { + Layout.fillWidth: false + Layout.fillHeight: true + Layout.alignment: Qt.AlignHCenter + KeyboardColumn { + Layout.fillWidth: false + Layout.fillHeight: true + Layout.preferredWidth: parent.height / 4 * 3 + KeyboardRow { + Key { + key: Qt.Key_ParenLeft + text: "(" + } + Key { + key: Qt.Key_ParenRight + text: ")" + } + Key { + key: Qt.Key_Period + text: "." + } + } + KeyboardRow { + Key { + key: Qt.Key_division + text: "\u00F7" + } + Key { + key: Qt.Key_multiply + text: "\u00D7" + } + Key { + key: Qt.Key_Plus + text: "+" + } + } + KeyboardRow { + Key { + key: Qt.Key_AsciiCircum + text: "^" + } + Key { + key: Qt.Key_Slash + text: "/" + } + Key { + key: Qt.Key_Minus + text: "-" + } + } + KeyboardRow { + Key { + key: 0x221A + text: "√" + } + Key { + key: Qt.Key_Percent + text: "%" + } + Key { + key: Qt.Key_Asterisk + text: "*" + } + } + } + KeyboardColumn { + Layout.fillWidth: false + Layout.fillHeight: true + Layout.preferredWidth: parent.height / 8 + KeyboardRow { + FillerKey {} + } + } + KeyboardColumn { + Layout.fillWidth: false + Layout.fillHeight: true + Layout.preferredWidth: parent.height + KeyboardRow { + Key { + text: "\u06F7" + alternativeKeys: "\u06F77" + } + Key { + text: "\u06F8" + alternativeKeys: "\u06F88" + } + Key { + text: "\u06F9" + alternativeKeys: "\u06F99" + } + BackspaceKey {} + } + KeyboardRow { + Key { + text: "\u06F4" + alternativeKeys: "\u06F44" + } + Key { + text: "\u06F5" + alternativeKeys: "\u06F55" + } + Key { + text: "\u06F6" + alternativeKeys: "\u06F66" + } + Key { + text: " " + displayText: "\u2423" + repeat: true + showPreview: false + key: Qt.Key_Space + highlighted: true + } + } + KeyboardRow { + Key { + text: "\u06F1" + alternativeKeys: "\u06F11" + } + Key { + text: "\u06F2" + alternativeKeys: "\u06F22" + } + Key { + text: "\u06F3" + alternativeKeys: "\u06F33" + } + HideKeyboardKey {} + } + KeyboardRow { + ChangeLanguageKey { + customLayoutsOnly: true + } + Key { + text: "\u06F0" + alternativeKeys: "\u06F00" + } + Key { + key: Qt.Key_Comma + text: "\u066B" + alternativeKeys: "\u066B,." + } + EnterKey {} + } + } + } +} diff --git a/src/layouts/fa_FA/symbols.qml b/src/layouts/fa_FA/symbols.qml new file mode 100644 index 00000000..13fab8fa --- /dev/null +++ b/src/layouts/fa_FA/symbols.qml @@ -0,0 +1,373 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayoutLoader { + property bool secondPage + onVisibleChanged: if (!visible) secondPage = false + sourceComponent: secondPage ? page2 : page1 + Component { + id: page1 + KeyboardLayout { + keyWeight: 160 + smallTextVisible: true + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + text: "\u06F1" + alternativeKeys: "\u06F11" + } + Key { + id: normalKey + text: "\u06F2" + alternativeKeys: "\u06F22" + } + Key { + text: "\u06F3" + alternativeKeys: "\u06F33" + } + Key { + text: "\u06F4" + alternativeKeys: "\u06F44" + } + Key { + text: "\u06F5" + alternativeKeys: "\u06F55" + } + Key { + text: "\u06F6" + alternativeKeys: "\u06F66" + } + Key { + text: "\u06F7" + alternativeKeys: "\u06F77" + } + Key { + text: "\u06F8" + alternativeKeys: "\u06F88" + } + Key { + text: "\u06F9" + alternativeKeys: "\u06F99" + } + Key { + text: "\u06F0" + alternativeKeys: "\u06F00" + } + } + KeyboardRow { + Key { + key: Qt.Key_At + text: "@" + } + Key { + key: Qt.Key_NumberSign + text: "#" + } + Key { + key: Qt.Key_Percent + text: "%" + } + Key { + key: Qt.Key_Ampersand + text: "&" + } + Key { + key: Qt.Key_Asterisk + text: "*" + } + Key { + key: Qt.Key_Underscore + text: "_" + } + Key { + key: Qt.Key_Minus + text: "-" + } + Key { + key: Qt.Key_Plus + text: "+" + } + Key { + key: Qt.Key_ParenLeft + text: "(" + } + Key { + key: Qt.Key_ParenRight + text: ")" + } + } + KeyboardRow { + Key { + displayText: "1/2" + functionKey: true + onClicked: secondPage = !secondPage + highlighted: true + } + Key { + key: Qt.Key_QuoteDbl + text: '"' + } + Key { + key: Qt.Key_Less + text: "<" + } + Key { + key: Qt.Key_Greater + text: ">" + } + Key { + key: Qt.Key_Apostrophe + text: "'" + } + Key { + key: Qt.Key_Semicolon + text: "\u061B" + alternativeKeys: "\u061B;" + } + Key { + key: Qt.Key_Slash + text: "/" + } + Key { + key: Qt.Key_Exclam + text: "!" + } + Key { + key: Qt.Key_Question + text: "\u061F" + alternativeKeys: "\u061F?" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + displayText: "\u0627\u200C\u0628\u200C\u067E" + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "\u060C" + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!,\u060C." + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } + Component { + id: page2 + KeyboardLayout { + keyWeight: 160 + smallTextVisible: true + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_AsciiTilde + text: "~" + } + Key { + id: normalKey + key: Qt.Key_Agrave + text: "`" + } + Key { + key: Qt.Key_Bar + text: "|" + } + Key { + key: 0x7B + text: "·" + } + Key { + key: 0x221A + text: "√" + } + Key { + key: Qt.Key_division + text: "÷" + } + Key { + key: Qt.Key_multiply + text: "×" + } + Key { + key: Qt.Key_onehalf + text: "½" + alternativeKeys: "¼⅓½¾⅞" + } + Key { + key: Qt.Key_BraceLeft + text: "{" + } + Key { + key: Qt.Key_BraceRight + text: "}" + } + } + KeyboardRow { + Key { + key: Qt.Key_Dollar + text: "$" + } + Key { + key: 0x20AC + text: "€" + } + Key { + key: 0xC2 + text: "£" + } + Key { + key: 0xA2 + text: "¢" + } + Key { + key: 0xFDFC + text: "\uFDFC" + } + Key { + key: Qt.Key_AsciiCircum + text: "^" + } + Key { + key: Qt.Key_Equal + text: "=" + } + Key { + key: Qt.Key_section + text: "§" + } + Key { + key: Qt.Key_BracketLeft + text: "[" + } + Key { + key: Qt.Key_BracketRight + text: "]" + } + } + KeyboardRow { + Key { + displayText: "2/2" + functionKey: true + onClicked: secondPage = !secondPage + highlighted: true + } + Key { + key: 0x2122 + text: '™' + } + Key { + key: 0x00AE + text: '®' + } + Key { + key: Qt.Key_guillemotleft + text: '«' + } + Key { + key: Qt.Key_guillemotright + text: '»' + } + Key { + key: Qt.Key_Colon + text: ":" + } + Key { + key: 0x201C + text: '“' + } + Key { + key: 0x201D + text: '”' + } + Key { + key: Qt.Key_Backslash + text: "\\" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + displayText: "\u0627\u200C\u0628\u200C\u067E" + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "\u060C" + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: 0x2026 + weight: normalKeyWidth + Layout.fillWidth: false + text: "\u2026" + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } +} diff --git a/src/layouts/fallback/dialpad.qml b/src/layouts/fallback/dialpad.qml new file mode 100644 index 00000000..c7eb8384 --- /dev/null +++ b/src/layouts/fallback/dialpad.qml @@ -0,0 +1,114 @@ +/**************************************************************************** +** +** Copyright (C) 2016 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.VirtualKeyboard.Plugins + +KeyboardLayout { + inputMethod: PlainInputMethod {} + inputMode: InputEngine.InputMode.Numeric + + KeyboardColumn { + Layout.fillWidth: false + Layout.fillHeight: true + Layout.alignment: Qt.AlignHCenter + Layout.preferredWidth: height + KeyboardRow { + Key { + key: Qt.Key_1 + text: "1" + } + Key { + key: Qt.Key_2 + text: "2" + } + Key { + key: Qt.Key_3 + text: "3" + } + BackspaceKey {} + } + KeyboardRow { + Key { + key: Qt.Key_4 + text: "4" + } + Key { + key: Qt.Key_5 + text: "5" + } + Key { + key: Qt.Key_6 + text: "6" + } + Key { + text: " " + displayText: "\u2423" + repeat: true + showPreview: false + key: Qt.Key_Space + highlighted: true + } + } + KeyboardRow { + Key { + key: Qt.Key_7 + text: "7" + } + Key { + key: Qt.Key_8 + text: "8" + } + Key { + key: Qt.Key_9 + text: "9" + } + HideKeyboardKey {} + } + KeyboardRow { + Key { + key: Qt.Key_Asterisk + text: "*" + alternativeKeys: "*+" + } + Key { + key: Qt.Key_0 + text: "0" + } + Key { + text: "#" + key: Qt.Key_NumberSign + } + EnterKey {} + } + } +} diff --git a/src/layouts/fallback/digits.qml b/src/layouts/fallback/digits.qml new file mode 100644 index 00000000..1c87f7f7 --- /dev/null +++ b/src/layouts/fallback/digits.qml @@ -0,0 +1,114 @@ +/**************************************************************************** +** +** Copyright (C) 2016 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.VirtualKeyboard.Plugins + +KeyboardLayout { + inputMethod: PlainInputMethod {} + inputMode: InputEngine.InputMode.Numeric + + KeyboardColumn { + Layout.fillWidth: false + Layout.fillHeight: true + Layout.alignment: Qt.AlignHCenter + Layout.preferredWidth: height + KeyboardRow { + Key { + key: Qt.Key_7 + text: "7" + } + Key { + key: Qt.Key_8 + text: "8" + } + Key { + key: Qt.Key_9 + text: "9" + } + BackspaceKey {} + } + KeyboardRow { + Key { + key: Qt.Key_4 + text: "4" + } + Key { + key: Qt.Key_5 + text: "5" + } + Key { + key: Qt.Key_6 + text: "6" + } + Key { + text: " " + displayText: "\u2423" + repeat: true + showPreview: false + key: Qt.Key_Space + highlighted: true + } + } + KeyboardRow { + Key { + key: Qt.Key_1 + text: "1" + } + Key { + key: Qt.Key_2 + text: "2" + } + Key { + key: Qt.Key_3 + text: "3" + } + HideKeyboardKey {} + } + KeyboardRow { + ChangeLanguageKey { + customLayoutsOnly: true + } + Key { + key: Qt.Key_0 + text: "0" + } + Key { + // The decimal key, if it is not "," then we fallback to + // "." in case it is an unhandled different result + key: Qt.locale().decimalPoint === "," ? Qt.Key_Comma : Qt.Key_Period + text: Qt.locale().decimalPoint === "," ? "," : "." + } + EnterKey {} + } + } +} diff --git a/src/layouts/fallback/handwriting.qml b/src/layouts/fallback/handwriting.qml new file mode 100644 index 00000000..660b40bc --- /dev/null +++ b/src/layouts/fallback/handwriting.qml @@ -0,0 +1,81 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayout { + function createInputMethod() { + return Qt.createQmlObject('import QtQuick; import QtQuick.VirtualKeyboard.Plugins; HandwritingInputMethod {}', parent) + } + sharedLayouts: ['symbols'] + + KeyboardRow { + Layout.preferredHeight: 3 + TraceInputKey { + objectName: "hwrInputArea" + patternRecognitionMode: InputEngine.PatternRecognitionMode.Handwriting + } + } + KeyboardRow { + id: bottomRow + Layout.preferredHeight: 1 + keyWeight: 160 + ShiftKey { + weight: 240 + } + InputModeKey { + } + Key { + key: Qt.Key_Comma + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + weight: 10 * 160 - 4 * 160 - 2 * 240 + } + Key { + key: Qt.Key_Period + text: "." + alternativeKeys: "<>()/\\\"'=+-_:;.?!" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + BackspaceKey { + } + EnterKey { + weight: 240 + } + } +} diff --git a/src/layouts/fallback/main.qml b/src/layouts/fallback/main.qml new file mode 100644 index 00000000..36e708b6 --- /dev/null +++ b/src/layouts/fallback/main.qml @@ -0,0 +1,221 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayout { + inputMode: InputEngine.InputMode.Latin + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + id: normalKey + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_E + text: "e" + alternativeKeys: "êeëèé" + } + Key { + key: Qt.Key_R + text: "r" + alternativeKeys: "ŕrř" + } + Key { + key: Qt.Key_T + text: "t" + alternativeKeys: "ţtŧť" + } + Key { + key: Qt.Key_Y + text: "y" + alternativeKeys: "ÿyýŷ" + } + Key { + key: Qt.Key_U + text: "u" + alternativeKeys: "űūũûüuùú" + } + Key { + key: Qt.Key_I + text: "i" + alternativeKeys: "îïīĩiìí" + } + Key { + key: Qt.Key_O + text: "o" + alternativeKeys: "œøõôöòóo" + } + Key { + key: Qt.Key_P + text: "p" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + } + Key { + key: Qt.Key_A + text: "a" + alternativeKeys: "aäåãâàá" + weight: normalKeyWidth + Layout.fillWidth: false + } + } + Key { + key: Qt.Key_S + text: "s" + alternativeKeys: "šsşś" + } + Key { + key: Qt.Key_D + text: "d" + alternativeKeys: "dđď" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + alternativeKeys: "ġgģĝğ" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + Key { + key: Qt.Key_L + text: "l" + alternativeKeys: "ĺŀłļľl" + weight: normalKeyWidth + Layout.fillWidth: false + } + FillerKey { + } + } + } + KeyboardRow { + ShiftKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Z + text: "z" + alternativeKeys: "zžż" + } + Key { + key: Qt.Key_X + text: "x" + } + Key { + key: Qt.Key_C + text: "c" + alternativeKeys: "çcċčć" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + alternativeKeys: "ņńnň" + } + Key { + key: Qt.Key_M + text: "m" + } + BackspaceKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } +} diff --git a/src/layouts/fallback/numbers.qml b/src/layouts/fallback/numbers.qml new file mode 100644 index 00000000..fddecb63 --- /dev/null +++ b/src/layouts/fallback/numbers.qml @@ -0,0 +1,186 @@ +/**************************************************************************** +** +** Copyright (C) 2016 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.VirtualKeyboard.Plugins + +KeyboardLayout { + inputMethod: PlainInputMethod {} + inputMode: InputEngine.InputMode.Numeric + + KeyboardRow { + Layout.fillWidth: false + Layout.fillHeight: true + Layout.alignment: Qt.AlignHCenter + KeyboardColumn { + Layout.fillWidth: false + Layout.fillHeight: true + Layout.preferredWidth: parent.height / 4 * 3 + KeyboardRow { + Key { + key: Qt.Key_ParenLeft + text: "(" + } + Key { + key: Qt.Key_ParenRight + text: ")" + } + Key { + key: Qt.Key_Comma + text: "," + } + } + KeyboardRow { + Key { + key: Qt.Key_division + text: "\u00F7" + } + Key { + key: Qt.Key_multiply + text: "\u00D7" + } + Key { + key: Qt.Key_Plus + text: "+" + } + } + KeyboardRow { + Key { + key: Qt.Key_AsciiCircum + text: "^" + } + Key { + key: Qt.Key_Slash + text: "/" + } + Key { + key: Qt.Key_Minus + text: "-" + } + } + KeyboardRow { + Key { + key: 0x221A + text: "√" + } + Key { + key: Qt.Key_Percent + text: "%" + } + Key { + key: Qt.Key_Asterisk + text: "*" + } + } + } + KeyboardColumn { + Layout.fillWidth: false + Layout.fillHeight: true + Layout.preferredWidth: parent.height / 8 + KeyboardRow { + FillerKey {} + } + } + KeyboardColumn { + Layout.fillWidth: false + Layout.fillHeight: true + Layout.preferredWidth: parent.height + KeyboardRow { + Key { + key: Qt.Key_7 + text: "7" + } + Key { + key: Qt.Key_8 + text: "8" + } + Key { + key: Qt.Key_9 + text: "9" + } + BackspaceKey {} + } + KeyboardRow { + Key { + key: Qt.Key_4 + text: "4" + } + Key { + key: Qt.Key_5 + text: "5" + } + Key { + key: Qt.Key_6 + text: "6" + } + Key { + text: " " + displayText: "\u2423" + repeat: true + showPreview: false + key: Qt.Key_Space + highlighted: true + } + } + KeyboardRow { + Key { + key: Qt.Key_1 + text: "1" + } + Key { + key: Qt.Key_2 + text: "2" + } + Key { + key: Qt.Key_3 + text: "3" + } + HideKeyboardKey {} + } + KeyboardRow { + ChangeLanguageKey { + customLayoutsOnly: true + } + Key { + key: Qt.Key_0 + text: "0" + } + Key { + key: Qt.Key_Period + text: "." + alternativeKeys: ".," + } + EnterKey {} + } + } + } +} diff --git a/src/layouts/fallback/symbols.qml b/src/layouts/fallback/symbols.qml new file mode 100644 index 00000000..41facf47 --- /dev/null +++ b/src/layouts/fallback/symbols.qml @@ -0,0 +1,368 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayoutLoader { + property bool secondPage + onVisibleChanged: if (!visible) secondPage = false + sourceComponent: secondPage ? page2 : page1 + Component { + id: page1 + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_1 + text: "1" + } + Key { + id: normalKey + key: Qt.Key_2 + text: "2" + } + Key { + key: Qt.Key_3 + text: "3" + } + Key { + key: Qt.Key_4 + text: "4" + } + Key { + key: Qt.Key_5 + text: "5" + } + Key { + key: Qt.Key_6 + text: "6" + } + Key { + key: Qt.Key_7 + text: "7" + } + Key { + key: Qt.Key_8 + text: "8" + } + Key { + key: Qt.Key_9 + text: "9" + } + Key { + key: Qt.Key_0 + text: "0" + } + } + KeyboardRow { + Key { + key: Qt.Key_At + text: "@" + } + Key { + key: Qt.Key_NumberSign + text: "#" + } + Key { + key: Qt.Key_Percent + text: "%" + } + Key { + key: Qt.Key_Ampersand + text: "&" + } + Key { + key: Qt.Key_Asterisk + text: "*" + } + Key { + key: Qt.Key_Underscore + text: "_" + } + Key { + key: Qt.Key_Minus + text: "-" + } + Key { + key: Qt.Key_Plus + text: "+" + } + Key { + key: Qt.Key_ParenLeft + text: "(" + } + Key { + key: Qt.Key_ParenRight + text: ")" + } + } + KeyboardRow { + Key { + displayText: "1/2" + functionKey: true + onClicked: secondPage = !secondPage + highlighted: true + } + Key { + key: Qt.Key_QuoteDbl + text: '"' + } + Key { + key: Qt.Key_Less + text: "<" + } + Key { + key: Qt.Key_Greater + text: ">" + } + Key { + key: Qt.Key_Apostrophe + text: "'" + } + Key { + key: Qt.Key_Colon + text: ":" + } + Key { + key: Qt.Key_Slash + text: "/" + } + Key { + key: Qt.Key_Exclam + text: "!" + } + Key { + key: Qt.Key_Question + text: "?" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + displayText: InputContext.inputEngine.inputMode === InputEngine.InputMode.Cyrillic ? "АБВ" : "ABC" + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } + Component { + id: page2 + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_AsciiTilde + text: "~" + } + Key { + id: normalKey + key: Qt.Key_Agrave + text: "`" + } + Key { + key: Qt.Key_Bar + text: "|" + } + Key { + key: 0x7B + text: "·" + } + Key { + key: 0x221A + text: "√" + } + Key { + key: Qt.Key_division + text: "÷" + } + Key { + key: Qt.Key_multiply + text: "×" + } + Key { + key: Qt.Key_onehalf + text: "½" + alternativeKeys: "¼⅓½¾⅞" + } + Key { + key: Qt.Key_BraceLeft + text: "{" + } + Key { + key: Qt.Key_BraceRight + text: "}" + } + } + KeyboardRow { + Key { + key: Qt.Key_Dollar + text: "$" + } + Key { + key: 0x20AC + text: "€" + } + Key { + key: 0xC2 + text: "£" + } + Key { + key: 0xA2 + text: "¢" + } + Key { + key: 0xA5 + text: "¥" + } + Key { + key: Qt.Key_AsciiCircum + text: "^" + } + Key { + key: Qt.Key_Equal + text: "=" + } + Key { + key: Qt.Key_section + text: "§" + } + Key { + key: Qt.Key_BracketLeft + text: "[" + } + Key { + key: Qt.Key_BracketRight + text: "]" + } + } + KeyboardRow { + Key { + displayText: "2/2" + functionKey: true + onClicked: secondPage = !secondPage + highlighted: true + } + Key { + key: 0x2122 + text: '™' + } + Key { + key: 0x00AE + text: '®' + } + Key { + key: Qt.Key_guillemotleft + text: '«' + } + Key { + key: Qt.Key_guillemotright + text: '»' + } + Key { + key: Qt.Key_Semicolon + text: ";" + } + Key { + key: 0x201C + text: '“' + } + Key { + key: 0x201D + text: '”' + } + Key { + key: Qt.Key_Backslash + text: "\\" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + displayText: InputContext.inputEngine.inputMode === InputEngine.InputMode.Cyrillic ? "АБВ" : "ABC" + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: 0x2026 + weight: normalKeyWidth + Layout.fillWidth: false + text: "\u2026" + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } +} diff --git a/src/layouts/fi_FI/dialpad.fallback b/src/layouts/fi_FI/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/fi_FI/dialpad.fallback diff --git a/src/layouts/fi_FI/digits.fallback b/src/layouts/fi_FI/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/fi_FI/digits.fallback diff --git a/src/layouts/fi_FI/handwriting.fallback b/src/layouts/fi_FI/handwriting.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/fi_FI/handwriting.fallback diff --git a/src/layouts/fi_FI/main.qml b/src/layouts/fi_FI/main.qml new file mode 100644 index 00000000..8d02cffb --- /dev/null +++ b/src/layouts/fi_FI/main.qml @@ -0,0 +1,214 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayout { + inputMode: InputEngine.InputMode.Latin + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + id: normalKey + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_E + text: "e" + } + Key { + key: Qt.Key_R + text: "r" + } + Key { + key: Qt.Key_T + text: "t" + } + Key { + key: Qt.Key_Y + text: "y" + } + Key { + key: Qt.Key_U + text: "u" + } + Key { + key: Qt.Key_I + text: "i" + } + Key { + key: Qt.Key_O + text: "o" + } + Key { + key: Qt.Key_P + text: "p" + } + Key { + key: Qt.Key_Aring + text: "å" + } + } + KeyboardRow { + Key { + key: Qt.Key_A + text: "a" + } + Key { + key: Qt.Key_S + text: "s" + } + Key { + key: Qt.Key_D + text: "d" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + Key { + key: Qt.Key_L + text: "l" + } + Key { + key: Qt.Key_Odiaeresis + text: "ö" + } + Key { + key: Qt.Key_Adiaeresis + text: "ä" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + ShiftKey { + weight: 240 + } + FillerKey { + weight: 80 + } + } + Key { + key: Qt.Key_Z + text: "z" + } + Key { + key: Qt.Key_X + text: "x" + } + Key { + key: Qt.Key_C + text: "c" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + } + Key { + key: Qt.Key_M + text: "m" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + weight: 80 + } + BackspaceKey { + weight: 240 + } + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } +} diff --git a/src/layouts/fi_FI/numbers.fallback b/src/layouts/fi_FI/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/fi_FI/numbers.fallback diff --git a/src/layouts/fi_FI/symbols.fallback b/src/layouts/fi_FI/symbols.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/fi_FI/symbols.fallback diff --git a/src/layouts/fr_CA/dialpad.fallback b/src/layouts/fr_CA/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/fr_CA/dialpad.fallback diff --git a/src/layouts/fr_CA/digits.fallback b/src/layouts/fr_CA/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/fr_CA/digits.fallback diff --git a/src/layouts/fr_CA/handwriting.fallback b/src/layouts/fr_CA/handwriting.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/fr_CA/handwriting.fallback diff --git a/src/layouts/fr_CA/main.qml b/src/layouts/fr_CA/main.qml new file mode 100644 index 00000000..0f29a8d9 --- /dev/null +++ b/src/layouts/fr_CA/main.qml @@ -0,0 +1,213 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayout { + inputMode: InputEngine.InputMode.Latin + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + id: normalKey + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_E + text: "e" + alternativeKeys: "éèeêë" + } + Key { + key: Qt.Key_R + text: "r" + } + Key { + key: Qt.Key_T + text: "t" + } + Key { + key: Qt.Key_Y + text: "y" + alternativeKeys: "yÿ" + } + Key { + key: Qt.Key_U + text: "u" + alternativeKeys: "ùuûü" + } + Key { + key: Qt.Key_I + text: "i" + alternativeKeys: "îiï" + } + Key { + key: Qt.Key_O + text: "o" + alternativeKeys: "ôoœ" + } + Key { + key: Qt.Key_P + text: "p" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + } + Key { + key: Qt.Key_A + text: "a" + alternativeKeys: "aàâæ" + weight: normalKeyWidth + Layout.fillWidth: false + } + } + Key { + key: Qt.Key_S + text: "s" + } + Key { + key: Qt.Key_D + text: "d" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + Key { + key: Qt.Key_L + text: "l" + weight: normalKeyWidth + Layout.fillWidth: false + } + FillerKey { + } + } + } + KeyboardRow { + ShiftKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Z + text: "z" + } + Key { + key: Qt.Key_X + text: "x" + } + Key { + key: Qt.Key_C + text: "c" + alternativeKeys: "cç" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + } + Key { + key: Qt.Key_M + text: "m" + } + BackspaceKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } +} diff --git a/src/layouts/fr_CA/numbers.fallback b/src/layouts/fr_CA/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/fr_CA/numbers.fallback diff --git a/src/layouts/fr_CA/symbols.fallback b/src/layouts/fr_CA/symbols.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/fr_CA/symbols.fallback diff --git a/src/layouts/fr_FR/dialpad.fallback b/src/layouts/fr_FR/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/fr_FR/dialpad.fallback diff --git a/src/layouts/fr_FR/digits.fallback b/src/layouts/fr_FR/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/fr_FR/digits.fallback diff --git a/src/layouts/fr_FR/handwriting.fallback b/src/layouts/fr_FR/handwriting.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/fr_FR/handwriting.fallback diff --git a/src/layouts/fr_FR/main.qml b/src/layouts/fr_FR/main.qml new file mode 100644 index 00000000..e3fd8a7f --- /dev/null +++ b/src/layouts/fr_FR/main.qml @@ -0,0 +1,201 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayout { + inputMode: InputEngine.InputMode.Latin + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_A + text: "a" + alternativeKeys: "aàâæ" + } + Key { + id: normalKey + key: Qt.Key_Z + text: "z" + } + Key { + key: Qt.Key_E + text: "e" + alternativeKeys: "éèeêë" + } + Key { + key: Qt.Key_R + text: "r" + } + Key { + key: Qt.Key_T + text: "t" + } + Key { + key: Qt.Key_Y + text: "y" + alternativeKeys: "yÿ" + } + Key { + key: Qt.Key_U + text: "u" + alternativeKeys: "ùuûü" + } + Key { + key: Qt.Key_I + text: "i" + alternativeKeys: "îiï" + } + Key { + key: Qt.Key_O + text: "o" + alternativeKeys: "ôoœ" + } + Key { + key: Qt.Key_P + text: "p" + } + } + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + key: Qt.Key_S + text: "s" + } + Key { + key: Qt.Key_D + text: "d" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + Key { + key: Qt.Key_L + text: "l" + } + Key { + key: Qt.Key_M + text: "m" + } + } + KeyboardRow { + ShiftKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_X + text: "x" + } + Key { + key: Qt.Key_C + text: "c" + alternativeKeys: "cç" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + } + Key { + key: Qt.Key_Apostrophe + text: "'" + } + BackspaceKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } +} diff --git a/src/layouts/fr_FR/numbers.fallback b/src/layouts/fr_FR/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/fr_FR/numbers.fallback diff --git a/src/layouts/fr_FR/symbols.fallback b/src/layouts/fr_FR/symbols.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/fr_FR/symbols.fallback diff --git a/src/layouts/he_IL/dialpad.fallback b/src/layouts/he_IL/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/he_IL/dialpad.fallback diff --git a/src/layouts/he_IL/digits.fallback b/src/layouts/he_IL/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/he_IL/digits.fallback diff --git a/src/layouts/he_IL/handwriting.qml b/src/layouts/he_IL/handwriting.qml new file mode 100644 index 00000000..aba7d6cb --- /dev/null +++ b/src/layouts/he_IL/handwriting.qml @@ -0,0 +1,84 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayout { + function createInputMethod() { + return Qt.createQmlObject('import QtQuick; import QtQuick.VirtualKeyboard.Plugins; HandwritingInputMethod {}', parent) + } + sharedLayouts: ['symbols'] + + KeyboardRow { + Layout.preferredHeight: 3 + TraceInputKey { + objectName: "hwrInputArea" + patternRecognitionMode: InputEngine.PatternRecognitionMode.Handwriting + horizontalRulers: + InputContext.inputEngine.inputMode !== InputEngine.InputMode.Hebrew ? [] : + [Math.round(boundingBox.height / 4), Math.round(boundingBox.height / 4) * 2, Math.round(boundingBox.height / 4) * 3] + } + } + KeyboardRow { + id: bottomRow + Layout.preferredHeight: 1 + keyWeight: 160 + ShiftKey { + weight: 240 + } + InputModeKey { + } + Key { + key: Qt.Key_Comma + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + weight: 10 * 160 - 4 * 160 - 2 * 240 + } + Key { + key: Qt.Key_Period + text: "." + alternativeKeys: "<>()/\\\"'=+-_:;.?!" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + BackspaceKey { + } + EnterKey { + weight: 240 + } + } +} diff --git a/src/layouts/he_IL/main.qml b/src/layouts/he_IL/main.qml new file mode 100644 index 00000000..8950a2ad --- /dev/null +++ b/src/layouts/he_IL/main.qml @@ -0,0 +1,402 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayoutLoader { + sharedLayouts: ['symbols'] + sourceComponent: InputContext.inputEngine.inputMode === InputEngine.InputMode.Hebrew ? hebrewLayout : latinLayout + Component { + id: hebrewLayout + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + } + Key { + key: Qt.Key_Apostrophe + text: "'" + alternativeKeys: "'\"" + weight: normalKeyWidth + Layout.fillWidth: false + } + } + Key { + text: "\u05E7" + alternativeKeys: "\u05B3\u05E7\u05B8\u05BB" + } + Key { + text: "\u05E8" + } + Key { + text: "\u05D0" + } + Key { + text: "\u05D8" + } + Key { + text: "\u05D5" + alternativeKeys: [ "\u05D5", "\u05D5\u05B9", "\u05D5\u05BC" ] + } + Key { + text: "\u05DF" + } + Key { + text: "\u05DD" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + Key { + text: "\u05E4" + alternativeKeys: "\u05B2\u05B7\u05E4" + weight: normalKeyWidth + Layout.fillWidth: false + } + FillerKey { + } + } + } + KeyboardRow { + Key { + text: "\u05E9" + alternativeKeys: [ "\u05E9", "\u05B0", "\u05E9\u05C2", "\u05E9\u05C1" ] + } + Key { + id: normalKey + text: "\u05D3" + alternativeKeys: "\u05D3\u05BC" + } + Key { + text: "\u05D2" + alternativeKeys: [ "\u05D2", "\u05D2\u05F3" ] + } + Key { + text: "\u05DB" + } + Key { + text: "\u05E2" + } + Key { + text: "\u05D9" + alternativeKeys: [ "\u05D9", "\u05F2\u05B7" ] + } + Key { + text: "\u05D7" + alternativeKeys: [ "\u05B9", "\u05D7", "\u05D7\u05F3", "\u05B4" ] + } + Key { + text: "\u05DC" + } + Key { + text: "\u05DA" + } + Key { + text: "\u05E3" + } + } + KeyboardRow { + Key { + text: "\u05D6" + alternativeKeys: [ "\u05D6", "\u05D6\u05F3" ] + } + Key { + text: "\u05E1" + alternativeKeys: "\u05E1\u05B6\u05B1" + } + Key { + text: "\u05D1" + } + Key { + text: "\u05D4" + } + Key { + text: "\u05E0" + } + Key { + text: "\u05DE" + } + Key { + text: "\u05E6" + alternativeKeys: [ "\u05E6", "\u05E6\u05F3", "\u05B5" ] + } + Key { + text: "\u05EA" + alternativeKeys: [ "\u05EA", "\u05EA\u05F3" ] + } + Key { + text: "\u05E5" + alternativeKeys: [ "\u05E5", "\u05E5\u05F3" ] + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + InputModeKey { + inputModes: [InputEngine.InputMode.Hebrew, InputEngine.InputMode.Latin] + weight: normalKeyWidth + Layout.fillWidth: false + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } + Component { + id: latinLayout + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + id: normalKey + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_E + text: "e" + alternativeKeys: "êeëèé" + } + Key { + key: Qt.Key_R + text: "r" + alternativeKeys: "ŕrř" + } + Key { + key: Qt.Key_T + text: "t" + alternativeKeys: "ţtŧť" + } + Key { + key: Qt.Key_Y + text: "y" + alternativeKeys: "ÿyýŷ" + } + Key { + key: Qt.Key_U + text: "u" + alternativeKeys: "űūũûüuùú" + } + Key { + key: Qt.Key_I + text: "i" + alternativeKeys: "îïīĩiìí" + } + Key { + key: Qt.Key_O + text: "o" + alternativeKeys: "œøõôöòóo" + } + Key { + key: Qt.Key_P + text: "p" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + } + Key { + key: Qt.Key_A + text: "a" + alternativeKeys: (InputContext.inputMethodHints & (Qt.ImhEmailCharactersOnly | Qt.ImhUrlCharactersOnly)) ? "a@äåãâàá" : "aäåãâàá" + smallTextVisible: (InputContext.inputMethodHints & (Qt.ImhEmailCharactersOnly | Qt.ImhUrlCharactersOnly)) + weight: normalKeyWidth + Layout.fillWidth: false + } + } + Key { + key: Qt.Key_S + text: "s" + alternativeKeys: "šsşś" + } + Key { + key: Qt.Key_D + text: "d" + alternativeKeys: "dđď" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + alternativeKeys: "ġgģĝğ" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + Key { + key: Qt.Key_L + text: "l" + alternativeKeys: "ĺŀłļľl" + weight: normalKeyWidth + Layout.fillWidth: false + } + FillerKey { + } + } + } + KeyboardRow { + ShiftKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Z + text: "z" + alternativeKeys: "zžż" + } + Key { + key: Qt.Key_X + text: "x" + } + Key { + key: Qt.Key_C + text: "c" + alternativeKeys: "çcċčć" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + alternativeKeys: "ņńnň" + } + Key { + key: Qt.Key_M + text: "m" + } + BackspaceKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + InputModeKey { + enabled: !(InputContext.inputMethodHints & Qt.ImhLatinOnly) && inputModeCount > 1 + inputModes: [InputEngine.InputMode.Hebrew, InputEngine.InputMode.Latin] + weight: normalKeyWidth + Layout.fillWidth: false + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } +} diff --git a/src/layouts/he_IL/numbers.fallback b/src/layouts/he_IL/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/he_IL/numbers.fallback diff --git a/src/layouts/he_IL/symbols.qml b/src/layouts/he_IL/symbols.qml new file mode 100644 index 00000000..a7c25afc --- /dev/null +++ b/src/layouts/he_IL/symbols.qml @@ -0,0 +1,368 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayoutLoader { + property bool secondPage + onVisibleChanged: if (!visible) secondPage = false + sourceComponent: secondPage ? page2 : page1 + Component { + id: page1 + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_1 + text: "1" + } + Key { + id: normalKey + key: Qt.Key_2 + text: "2" + } + Key { + key: Qt.Key_3 + text: "3" + } + Key { + key: Qt.Key_4 + text: "4" + } + Key { + key: Qt.Key_5 + text: "5" + } + Key { + key: Qt.Key_6 + text: "6" + } + Key { + key: Qt.Key_7 + text: "7" + } + Key { + key: Qt.Key_8 + text: "8" + } + Key { + key: Qt.Key_9 + text: "9" + } + Key { + key: Qt.Key_0 + text: "0" + } + } + KeyboardRow { + Key { + key: Qt.Key_At + text: "@" + } + Key { + key: Qt.Key_NumberSign + text: "#" + } + Key { + key: Qt.Key_Percent + text: "%" + } + Key { + key: Qt.Key_Ampersand + text: "&" + } + Key { + key: Qt.Key_Asterisk + text: "*" + } + Key { + key: Qt.Key_Underscore + text: "_" + } + Key { + key: Qt.Key_Minus + text: "-" + } + Key { + key: Qt.Key_Plus + text: "+" + } + Key { + key: Qt.Key_ParenLeft + text: "(" + } + Key { + key: Qt.Key_ParenRight + text: ")" + } + } + KeyboardRow { + Key { + displayText: "1/2" + functionKey: true + onClicked: secondPage = !secondPage + highlighted: true + } + Key { + key: Qt.Key_QuoteDbl + text: '"' + } + Key { + key: Qt.Key_Less + text: "<" + } + Key { + key: Qt.Key_Greater + text: ">" + } + Key { + key: Qt.Key_Apostrophe + text: "'" + } + Key { + key: Qt.Key_Colon + text: ":" + } + Key { + key: Qt.Key_Slash + text: "/" + } + Key { + key: Qt.Key_Exclam + text: "!" + } + Key { + key: Qt.Key_Question + text: "?" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + displayText: InputContext.inputEngine.inputMode === InputEngine.InputMode.Hebrew ? "\u05D0\u05D1\u05D2" : "ABC" + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } + Component { + id: page2 + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_AsciiTilde + text: "~" + } + Key { + id: normalKey + key: Qt.Key_Agrave + text: "`" + } + Key { + key: Qt.Key_Bar + text: "|" + } + Key { + key: 0x7B + text: "·" + } + Key { + key: 0x221A + text: "√" + } + Key { + key: Qt.Key_division + text: "÷" + } + Key { + key: Qt.Key_multiply + text: "×" + } + Key { + key: Qt.Key_onehalf + text: "½" + alternativeKeys: "¼⅓½¾⅞" + } + Key { + key: Qt.Key_BraceLeft + text: "{" + } + Key { + key: Qt.Key_BraceRight + text: "}" + } + } + KeyboardRow { + Key { + key: Qt.Key_Dollar + text: "$" + alternativeKeys: "$¢" + } + Key { + key: 0x20AC + text: "€" + } + Key { + key: 0xC2 + text: "£" + } + Key { + text: "₪" + } + Key { + key: 0xA5 + text: "¥" + } + Key { + key: Qt.Key_AsciiCircum + text: "^" + } + Key { + key: Qt.Key_Equal + text: "=" + } + Key { + key: Qt.Key_section + text: "§" + } + Key { + key: Qt.Key_BracketLeft + text: "[" + } + Key { + key: Qt.Key_BracketRight + text: "]" + } + } + KeyboardRow { + Key { + displayText: "2/2" + functionKey: true + onClicked: secondPage = !secondPage + highlighted: true + } + Key { + key: 0x2122 + text: '™' + } + Key { + key: 0x00AE + text: '®' + } + Key { + key: Qt.Key_guillemotleft + text: '«' + } + Key { + key: Qt.Key_guillemotright + text: '»' + } + Key { + key: Qt.Key_Semicolon + text: ";" + } + Key { + key: 0x201C + text: '“' + } + Key { + key: 0x201D + text: '”' + } + Key { + key: Qt.Key_Backslash + text: "\\" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + displayText: InputContext.inputEngine.inputMode === InputEngine.InputMode.Hebrew ? "\u05D0\u05D1\u05D2" : "ABC" + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: 0x2026 + weight: normalKeyWidth + Layout.fillWidth: false + text: "\u2026" + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } +} diff --git a/src/layouts/hi_IN/dialpad.fallback b/src/layouts/hi_IN/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/hi_IN/dialpad.fallback diff --git a/src/layouts/hi_IN/digits.fallback b/src/layouts/hi_IN/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/hi_IN/digits.fallback diff --git a/src/layouts/hi_IN/handwriting.qml b/src/layouts/hi_IN/handwriting.qml new file mode 100644 index 00000000..660b40bc --- /dev/null +++ b/src/layouts/hi_IN/handwriting.qml @@ -0,0 +1,81 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayout { + function createInputMethod() { + return Qt.createQmlObject('import QtQuick; import QtQuick.VirtualKeyboard.Plugins; HandwritingInputMethod {}', parent) + } + sharedLayouts: ['symbols'] + + KeyboardRow { + Layout.preferredHeight: 3 + TraceInputKey { + objectName: "hwrInputArea" + patternRecognitionMode: InputEngine.PatternRecognitionMode.Handwriting + } + } + KeyboardRow { + id: bottomRow + Layout.preferredHeight: 1 + keyWeight: 160 + ShiftKey { + weight: 240 + } + InputModeKey { + } + Key { + key: Qt.Key_Comma + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + weight: 10 * 160 - 4 * 160 - 2 * 240 + } + Key { + key: Qt.Key_Period + text: "." + alternativeKeys: "<>()/\\\"'=+-_:;.?!" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + BackspaceKey { + } + EnterKey { + weight: 240 + } + } +} diff --git a/src/layouts/hi_IN/main.qml b/src/layouts/hi_IN/main.qml new file mode 100644 index 00000000..9d125b0a --- /dev/null +++ b/src/layouts/hi_IN/main.qml @@ -0,0 +1,209 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayout { + inputMode: InputEngine.InputMode.Latin + keyWeight: 160 + smallTextVisible: true + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + text: "\u0914" + alternativeKeys: "\u0914\u094C\u0967" + } + Key { + id: normalKey + text: "\u0910" + alternativeKeys: "\u0910\u0948\u0968" + } + Key { + text: "\u0906" + alternativeKeys: "\u0906\u093E\u0969" + } + Key { + text: "\u0908" + alternativeKeys: "\u0908\u0940\u096A" + } + Key { + text: "\u090A" + alternativeKeys: "\u090A\u0942\u096B" + } + Key { + text: "\u092C" + alternativeKeys: "\u092C\u092D\u096C" + } + Key { + text: "\u0939" + alternativeKeys: "\u0939\u096D" + } + Key { + text: "\u0917" + alternativeKeys: "\u0917\u0918\u096E" + } + Key { + text: "\u0926" + alternativeKeys: "\u0926\u0927\u096F" + } + Key { + text: "\u091C" + alternativeKeys: "\u0966\u091E\u091D\u091C" + } + Key { + text: "\u0921" + alternativeKeys: "\u0921\u0922" + } + } + KeyboardRow { + Key { + text: "\u0913" + alternativeKeys: "\u0913\u094B" + } + Key { + text: "\u090F" + alternativeKeys: "\u090F\u0947" + } + Key { + text: "\u0905" + } + Key { + text: "\u0907" + alternativeKeys: "\u0907\u093F" + } + Key { + text: "\u0909" + alternativeKeys: "\u0909\u0941" + } + Key { + text: "\u092A" + alternativeKeys: "\u092A\u092B" + } + Key { + text: "\u0930" + alternativeKeys: "\u0930\u090B\u0943" + } + Key { + text: "\u0915" + alternativeKeys: "\u0915\u0916" + } + Key { + text: "\u0924" + alternativeKeys: ["\u0924", "\u0925", "\u0924\u094D\u0930"] + } + Key { + text: "\u091A" + alternativeKeys: "\u091A\u091B" + } + Key { + text: "\u091F" + alternativeKeys: "\u091F\u0920" + } + } + KeyboardRow { + Key { + text: "\u200C" + alternativeKeys: "\u200C\u200D" + displayText: "\u25C2\u205E\u25B8" + displayAlternativeKeys: ["\u25B8\u205E\u25C2"] + highlighted: true + } + Key { + text: "\u0911" + alternativeKeys: "\u0911\u0949" + } + Key { + text: "\u094D" + alternativeKeys: "\u094D\u0945\u090D" + } + Key { + text: "\u0902" + alternativeKeys: "\u093C\u0902\u0903\u0901\u093D" + } + Key { + text: "\u092E" + alternativeKeys: "\u092E\u0950" + } + Key { + text: "\u0928" + alternativeKeys: "\u0919\u0928\u0923\u091E" + } + Key { + text: "\u0935" + } + Key { + text: "\u0932" + alternativeKeys: "\u0932\u0933" + } + Key { + text: "\u0938" + alternativeKeys: ["\u0936\u094D\u0930", "\u0938", "\u0936", "\u0937"] + } + Key { + text: "\u092F" + alternativeKeys: "\u0943" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + displayText: "&\u0967\u0968\u0969" + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } +} diff --git a/src/layouts/hi_IN/numbers.fallback b/src/layouts/hi_IN/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/hi_IN/numbers.fallback diff --git a/src/layouts/hi_IN/symbols.qml b/src/layouts/hi_IN/symbols.qml new file mode 100644 index 00000000..7ca595a7 --- /dev/null +++ b/src/layouts/hi_IN/symbols.qml @@ -0,0 +1,378 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayoutLoader { + property bool secondPage + onVisibleChanged: if (!visible) secondPage = false + sourceComponent: secondPage ? page2 : page1 + Component { + id: page1 + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_1 + text: "\u0967" + alternativeKeys: "\u09671" + } + Key { + id: normalKey + key: Qt.Key_2 + text: "\u0968" + alternativeKeys: "\u09682" + } + Key { + key: Qt.Key_3 + text: "\u0969" + alternativeKeys: "\u09693" + } + Key { + key: Qt.Key_4 + text: "\u096A" + alternativeKeys: "\u096A4" + } + Key { + key: Qt.Key_5 + text: "\u096B" + alternativeKeys: "\u096B5" + } + Key { + key: Qt.Key_6 + text: "\u096C" + alternativeKeys: "\u096C6" + } + Key { + key: Qt.Key_7 + text: "\u096D" + alternativeKeys: "\u096D7" + } + Key { + key: Qt.Key_8 + text: "\u096E" + alternativeKeys: "\u096E8" + } + Key { + key: Qt.Key_9 + text: "\u096F" + alternativeKeys: "\u096F9" + } + Key { + key: Qt.Key_0 + text: "\u0966" + alternativeKeys: "\u09660" + } + } + KeyboardRow { + Key { + key: Qt.Key_At + text: "@" + } + Key { + key: Qt.Key_NumberSign + text: "#" + } + Key { + key: Qt.Key_Percent + text: "%" + } + Key { + key: Qt.Key_Ampersand + text: "&" + } + Key { + key: Qt.Key_Asterisk + text: "*" + } + Key { + key: Qt.Key_Underscore + text: "_" + } + Key { + key: Qt.Key_Minus + text: "-" + } + Key { + key: Qt.Key_Plus + text: "+" + } + Key { + key: Qt.Key_ParenLeft + text: "(" + } + Key { + key: Qt.Key_ParenRight + text: ")" + } + } + KeyboardRow { + Key { + displayText: "1/2" + functionKey: true + onClicked: secondPage = !secondPage + highlighted: true + } + Key { + key: Qt.Key_QuoteDbl + text: '"' + } + Key { + key: Qt.Key_Less + text: "<" + } + Key { + key: Qt.Key_Greater + text: ">" + } + Key { + key: Qt.Key_Apostrophe + text: "'" + } + Key { + key: Qt.Key_Colon + text: ":" + } + Key { + key: Qt.Key_Slash + text: "/" + } + Key { + key: Qt.Key_Exclam + text: "!" + } + Key { + key: Qt.Key_Question + text: "?" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + displayText: "\u0915\u0916\u0917" + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } + Component { + id: page2 + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_AsciiTilde + text: "~" + } + Key { + id: normalKey + key: Qt.Key_Agrave + text: "`" + } + Key { + key: Qt.Key_Bar + text: "|" + } + Key { + key: 0x7B + text: "·" + } + Key { + key: 0x221A + text: "√" + } + Key { + key: Qt.Key_division + text: "÷" + } + Key { + key: Qt.Key_multiply + text: "×" + } + Key { + key: Qt.Key_onehalf + text: "½" + alternativeKeys: "¼⅓½¾⅞" + } + Key { + key: Qt.Key_BraceLeft + text: "{" + } + Key { + key: Qt.Key_BraceRight + text: "}" + } + } + KeyboardRow { + Key { + key: Qt.Key_Dollar + text: "$" + } + Key { + key: 0x20AC + text: "€" + } + Key { + key: 0xC2 + text: "£" + } + Key { + key: 0xA2 + text: "¢" + } + Key { + key: 0x20B9 + text: "\u20B9" + } + Key { + key: Qt.Key_AsciiCircum + text: "^" + } + Key { + key: Qt.Key_Equal + text: "=" + } + Key { + key: Qt.Key_section + text: "§" + } + Key { + key: Qt.Key_BracketLeft + text: "[" + } + Key { + key: Qt.Key_BracketRight + text: "]" + } + } + KeyboardRow { + Key { + displayText: "2/2" + functionKey: true + onClicked: secondPage = !secondPage + highlighted: true + } + Key { + key: 0x2122 + text: '™' + } + Key { + key: 0x00AE + text: '®' + } + Key { + key: Qt.Key_guillemotleft + text: '«' + } + Key { + key: Qt.Key_guillemotright + text: '»' + } + Key { + key: Qt.Key_Semicolon + text: ";" + } + Key { + key: 0x201C + text: '“' + } + Key { + key: 0x201D + text: '”' + } + Key { + key: Qt.Key_Backslash + text: "\\" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + displayText: "\u0915\u0916\u0917" + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: 0x2026 + weight: normalKeyWidth + Layout.fillWidth: false + text: "\u2026" + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } +} diff --git a/src/layouts/hr_HR/dialpad.fallback b/src/layouts/hr_HR/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/hr_HR/dialpad.fallback diff --git a/src/layouts/hr_HR/digits.fallback b/src/layouts/hr_HR/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/hr_HR/digits.fallback diff --git a/src/layouts/hr_HR/handwriting.qml b/src/layouts/hr_HR/handwriting.qml new file mode 100644 index 00000000..80b6d45f --- /dev/null +++ b/src/layouts/hr_HR/handwriting.qml @@ -0,0 +1,82 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayout { + function createInputMethod() { + return Qt.createQmlObject('import QtQuick; import QtQuick.VirtualKeyboard.Plugins; HandwritingInputMethod {}', parent) + } + sharedLayouts: ['symbols'] + inputMode: InputEngine.InputMode.Latin + + KeyboardRow { + Layout.preferredHeight: 3 + TraceInputKey { + objectName: "hwrInputArea" + patternRecognitionMode: InputEngine.PatternRecognitionMode.Handwriting + } + } + KeyboardRow { + id: bottomRow + Layout.preferredHeight: 1 + keyWeight: 160 + ShiftKey { + weight: 240 + } + InputModeKey { + } + Key { + key: Qt.Key_Comma + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + weight: 10 * 160 - 4 * 160 - 2 * 240 + } + Key { + key: Qt.Key_Period + text: "." + alternativeKeys: "<>()/\\\"'=+-_:;.?!" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + BackspaceKey { + } + EnterKey { + weight: 240 + } + } +} diff --git a/src/layouts/hr_HR/main.qml b/src/layouts/hr_HR/main.qml new file mode 100644 index 00000000..6f52ed21 --- /dev/null +++ b/src/layouts/hr_HR/main.qml @@ -0,0 +1,208 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayout { + inputMode: InputEngine.InputMode.Latin + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + id: normalKey + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_E + text: "e" + } + Key { + key: Qt.Key_R + text: "r" + } + Key { + key: Qt.Key_T + text: "t" + } + Key { + key: Qt.Key_Z + text: "z" + } + Key { + key: Qt.Key_U + text: "u" + } + Key { + key: Qt.Key_I + text: "i" + } + Key { + key: Qt.Key_O + text: "o" + alternativeKeys: "oö" + } + Key { + key: Qt.Key_P + text: "p" + } + Key { + key: 0x160 + text: "š" + } + } + KeyboardRow { + Key { + key: Qt.Key_A + text: "a" + alternativeKeys: "aåä" + } + Key { + key: Qt.Key_S + text: "s" + } + Key { + key: Qt.Key_D + text: "d" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + Key { + key: Qt.Key_L + text: "l" + } + Key { + key: 0x10C + text: "č" + } + Key { + key: 0x106 + text: "ć" + } + } + KeyboardRow { + ShiftKey { + } + Key { + key: Qt.Key_Y + text: "y" + } + Key { + key: Qt.Key_X + text: "x" + } + Key { + key: Qt.Key_C + text: "c" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + } + Key { + key: Qt.Key_M + text: "m" + } + Key { + key: 0x110 + text: "đ" + } + Key { + key: 0x17D + text: "ž" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } +} diff --git a/src/layouts/hr_HR/numbers.fallback b/src/layouts/hr_HR/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/hr_HR/numbers.fallback diff --git a/src/layouts/hr_HR/symbols.fallback b/src/layouts/hr_HR/symbols.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/hr_HR/symbols.fallback diff --git a/src/layouts/hu_HU/dialpad.fallback b/src/layouts/hu_HU/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/hu_HU/dialpad.fallback diff --git a/src/layouts/hu_HU/digits.fallback b/src/layouts/hu_HU/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/hu_HU/digits.fallback diff --git a/src/layouts/hu_HU/handwriting.qml b/src/layouts/hu_HU/handwriting.qml new file mode 100644 index 00000000..80b6d45f --- /dev/null +++ b/src/layouts/hu_HU/handwriting.qml @@ -0,0 +1,82 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayout { + function createInputMethod() { + return Qt.createQmlObject('import QtQuick; import QtQuick.VirtualKeyboard.Plugins; HandwritingInputMethod {}', parent) + } + sharedLayouts: ['symbols'] + inputMode: InputEngine.InputMode.Latin + + KeyboardRow { + Layout.preferredHeight: 3 + TraceInputKey { + objectName: "hwrInputArea" + patternRecognitionMode: InputEngine.PatternRecognitionMode.Handwriting + } + } + KeyboardRow { + id: bottomRow + Layout.preferredHeight: 1 + keyWeight: 160 + ShiftKey { + weight: 240 + } + InputModeKey { + } + Key { + key: Qt.Key_Comma + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + weight: 10 * 160 - 4 * 160 - 2 * 240 + } + Key { + key: Qt.Key_Period + text: "." + alternativeKeys: "<>()/\\\"'=+-_:;.?!" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + BackspaceKey { + } + EnterKey { + weight: 240 + } + } +} diff --git a/src/layouts/hu_HU/main.qml b/src/layouts/hu_HU/main.qml new file mode 100644 index 00000000..cc3d2d6e --- /dev/null +++ b/src/layouts/hu_HU/main.qml @@ -0,0 +1,213 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayout { + inputMode: InputEngine.InputMode.Latin + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + id: normalKey + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_E + text: "e" + alternativeKeys: "eé" + } + Key { + key: Qt.Key_R + text: "r" + } + Key { + key: Qt.Key_T + text: "t" + } + Key { + key: Qt.Key_Z + text: "z" + alternativeKeys: "zž" + } + Key { + key: Qt.Key_U + text: "u" + alternativeKeys: "úűuü" + } + Key { + key: Qt.Key_I + text: "i" + alternativeKeys: "ií" + } + Key { + key: Qt.Key_O + text: "o" + alternativeKeys: "óőoö" + } + Key { + key: Qt.Key_P + text: "p" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + } + Key { + key: Qt.Key_A + text: "a" + alternativeKeys: "aåäá" + weight: normalKeyWidth + Layout.fillWidth: false + } + } + Key { + key: Qt.Key_S + text: "s" + alternativeKeys: "sš" + } + Key { + key: Qt.Key_D + text: "d" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + Key { + key: Qt.Key_L + text: "l" + weight: normalKeyWidth + Layout.fillWidth: false + } + FillerKey { + } + } + } + KeyboardRow { + ShiftKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Y + text: "y" + } + Key { + key: Qt.Key_X + text: "x" + } + Key { + key: Qt.Key_C + text: "c" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + } + Key { + key: Qt.Key_M + text: "m" + } + BackspaceKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } +} diff --git a/src/layouts/hu_HU/numbers.fallback b/src/layouts/hu_HU/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/hu_HU/numbers.fallback diff --git a/src/layouts/hu_HU/symbols.fallback b/src/layouts/hu_HU/symbols.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/hu_HU/symbols.fallback diff --git a/src/layouts/id_ID/dialpad.fallback b/src/layouts/id_ID/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/id_ID/dialpad.fallback diff --git a/src/layouts/id_ID/digits.fallback b/src/layouts/id_ID/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/id_ID/digits.fallback diff --git a/src/layouts/id_ID/handwriting.fallback b/src/layouts/id_ID/handwriting.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/id_ID/handwriting.fallback diff --git a/src/layouts/id_ID/main.fallback b/src/layouts/id_ID/main.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/id_ID/main.fallback diff --git a/src/layouts/id_ID/numbers.fallback b/src/layouts/id_ID/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/id_ID/numbers.fallback diff --git a/src/layouts/id_ID/symbols.fallback b/src/layouts/id_ID/symbols.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/id_ID/symbols.fallback diff --git a/src/layouts/it_IT/dialpad.fallback b/src/layouts/it_IT/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/it_IT/dialpad.fallback diff --git a/src/layouts/it_IT/digits.fallback b/src/layouts/it_IT/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/it_IT/digits.fallback diff --git a/src/layouts/it_IT/handwriting.fallback b/src/layouts/it_IT/handwriting.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/it_IT/handwriting.fallback diff --git a/src/layouts/it_IT/main.qml b/src/layouts/it_IT/main.qml new file mode 100644 index 00000000..97717da4 --- /dev/null +++ b/src/layouts/it_IT/main.qml @@ -0,0 +1,211 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayout { + inputMode: InputEngine.InputMode.Latin + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + id: normalKey + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_E + text: "e" + alternativeKeys: "eèé" + } + Key { + key: Qt.Key_R + text: "r" + } + Key { + key: Qt.Key_T + text: "t" + } + Key { + key: Qt.Key_Y + text: "y" + } + Key { + key: Qt.Key_U + text: "u" + alternativeKeys: "uùú" + } + Key { + key: Qt.Key_I + text: "i" + alternativeKeys: "iìí" + } + Key { + key: Qt.Key_O + text: "o" + alternativeKeys: "oòó" + } + Key { + key: Qt.Key_P + text: "p" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + } + Key { + key: Qt.Key_A + text: "a" + alternativeKeys: "aàá" + weight: normalKeyWidth + Layout.fillWidth: false + } + } + Key { + key: Qt.Key_S + text: "s" + } + Key { + key: Qt.Key_D + text: "d" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + Key { + key: Qt.Key_L + text: "l" + weight: normalKeyWidth + Layout.fillWidth: false + } + FillerKey { + } + } + } + KeyboardRow { + ShiftKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Z + text: "z" + } + Key { + key: Qt.Key_X + text: "x" + } + Key { + key: Qt.Key_C + text: "c" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + } + Key { + key: Qt.Key_M + text: "m" + } + BackspaceKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } +} diff --git a/src/layouts/it_IT/numbers.fallback b/src/layouts/it_IT/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/it_IT/numbers.fallback diff --git a/src/layouts/it_IT/symbols.fallback b/src/layouts/it_IT/symbols.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/it_IT/symbols.fallback diff --git a/src/layouts/ja_JP/dialpad.fallback b/src/layouts/ja_JP/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/ja_JP/dialpad.fallback diff --git a/src/layouts/ja_JP/digits.fallback b/src/layouts/ja_JP/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/ja_JP/digits.fallback diff --git a/src/layouts/ja_JP/handwriting.qml b/src/layouts/ja_JP/handwriting.qml new file mode 100644 index 00000000..0b193435 --- /dev/null +++ b/src/layouts/ja_JP/handwriting.qml @@ -0,0 +1,84 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayout { + function createInputMethod() { + return Qt.createQmlObject('import QtQuick; import QtQuick.VirtualKeyboard.Plugins; HandwritingInputMethod {}', parent) + } + sharedLayouts: ['symbols'] + + KeyboardRow { + Layout.preferredHeight: 3 + TraceInputKey { + objectName: "hwrInputArea" + patternRecognitionMode: InputEngine.PatternRecognitionMode.Handwriting + horizontalRulers: + InputContext.inputEngine.inputMode !== InputEngine.InputMode.JapaneseHandwriting ? [] : + [Math.round(boundingBox.height / 4), Math.round(boundingBox.height / 4) * 2, Math.round(boundingBox.height / 4) * 3] + } + } + KeyboardRow { + id: bottomRow + Layout.preferredHeight: 1 + keyWeight: 160 + ShiftKey { + weight: 240 + } + InputModeKey { + } + Key { + key: Qt.Key_Comma + text: "、" + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + weight: 10 * 160 - 4 * 160 - 2 * 240 + } + Key { + key: Qt.Key_Period + text: "." + alternativeKeys: "‘’“”~…—《》〈〉「」\",.:;。?!" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + BackspaceKey { + } + EnterKey { + weight: 240 + } + } +} diff --git a/src/layouts/ja_JP/main.qml b/src/layouts/ja_JP/main.qml new file mode 100644 index 00000000..577fd2cd --- /dev/null +++ b/src/layouts/ja_JP/main.qml @@ -0,0 +1,463 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayoutLoader { + function createInputMethod() { + return Qt.createQmlObject('import QtQuick; import QtQuick.VirtualKeyboard.Plugins; JapaneseInputMethod {}', parent, "japaneseInputMethod") + } + sharedLayouts: ['symbols'] + sourceComponent: InputContext.inputEngine.inputMode === InputEngine.InputMode.FullwidthLatin ? page2 : page1 + Component { + id: page1 + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + id: normalKey + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_E + text: "e" + } + Key { + key: Qt.Key_R + text: "r" + } + Key { + key: Qt.Key_T + text: "t" + } + Key { + key: Qt.Key_Y + text: "y" + } + Key { + key: Qt.Key_U + text: "u" + } + Key { + key: Qt.Key_I + text: "i" + } + Key { + key: Qt.Key_O + text: "o" + } + Key { + key: Qt.Key_P + text: "p" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + } + Key { + key: Qt.Key_A + text: "a" + Layout.preferredWidth: normalKeyWidth + Layout.fillWidth: false + } + } + Key { + key: Qt.Key_S + text: "s" + } + Key { + key: Qt.Key_D + text: "d" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + Key { + key: Qt.Key_L + text: "l" + Layout.preferredWidth: normalKeyWidth + Layout.fillWidth: false + } + FillerKey { + } + } + } + KeyboardRow { + ShiftKey { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Z + text: "z" + } + Key { + key: Qt.Key_X + text: "x" + } + Key { + key: Qt.Key_C + text: "c" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + } + Key { + key: Qt.Key_M + text: "m" + } + BackspaceKey { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + SymbolModeKey { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + Layout.preferredWidth: normalKeyWidth + Layout.fillWidth: false + text: "\u3001" + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + InputModeKey { + enabled: !(InputContext.inputMethodHints & Qt.ImhLatinOnly) && inputModeCount > 1 + Layout.preferredWidth: normalKeyWidth + Layout.fillWidth: false + inputModeNameList: [ + "半角", // InputEngine.InputMode.Latin + "", // InputEngine.InputMode.Numeric + "", // InputEngine.InputMode.Dialable + "", // InputEngine.InputMode.Pinyin + "", // InputEngine.InputMode.Cangjie + "", // InputEngine.InputMode.Zhuyin + "", // InputEngine.InputMode.Hangul + "あ", // InputEngine.InputMode.Hiragana + "カ", // InputEngine.InputMode.Katakana + "全角", // InputEngine.InputMode.FullwidthLatin + ] + } + SpaceKey { + } + Key { + key: Qt.Key_Left + Layout.preferredWidth: normalKeyWidth / 2 + Layout.fillWidth: false + displayText: "\u2190" + repeat: true + noModifier: true + functionKey: true + highlighted: true + } + Key { + key: Qt.Key_Right + Layout.preferredWidth: normalKeyWidth / 2 + Layout.fillWidth: false + displayText: "\u2192" + repeat: true + noModifier: true + functionKey: true + highlighted: true + } + Key { + key: Qt.Key_Period + Layout.preferredWidth: normalKeyWidth + Layout.fillWidth: false + text: "\u3002" + alternativeKeys: "\u3001\uFF01\u3002\uFF1F,.?!" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + } + } + } + } + Component { + id: page2 + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "\uFF51" + } + Key { + id: normalKey + key: Qt.Key_W + text: "\uFF57" + } + Key { + key: Qt.Key_E + text: "\uFF45" + } + Key { + key: Qt.Key_R + text: "\uFF52" + } + Key { + key: Qt.Key_T + text: "\uFF54" + } + Key { + key: Qt.Key_Y + text: "\uFF59" + } + Key { + key: Qt.Key_U + text: "\uFF55" + } + Key { + key: Qt.Key_I + text: "\uFF49" + } + Key { + key: Qt.Key_O + text: "\uFF4F" + } + Key { + key: Qt.Key_P + text: "\uFF50" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + } + Key { + key: Qt.Key_A + text: "\uFF41" + weight: normalKeyWidth + Layout.fillWidth: false + } + } + Key { + key: Qt.Key_S + text: "\uFF53" + } + Key { + key: Qt.Key_D + text: "\uFF44" + } + Key { + key: Qt.Key_F + text: "\uFF46" + } + Key { + key: Qt.Key_G + text: "\uFF47" + } + Key { + key: Qt.Key_H + text: "\uFF48" + } + Key { + key: Qt.Key_J + text: "\uFF4A" + } + Key { + key: Qt.Key_K + text: "\uFF4B" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + Key { + key: Qt.Key_L + text: "\uFF4C" + weight: normalKeyWidth + Layout.fillWidth: false + } + FillerKey { + } + } + } + KeyboardRow { + ShiftKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Z + text: "\uFF5A" + } + Key { + key: Qt.Key_X + text: "\uFF58" + } + Key { + key: Qt.Key_C + text: "\uFF43" + } + Key { + key: Qt.Key_V + text: "\uFF56" + } + Key { + key: Qt.Key_B + text: "\uFF42" + } + Key { + key: Qt.Key_N + text: "\uFF4E" + } + Key { + key: Qt.Key_M + text: "\uFF4D" + } + BackspaceKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "\u3001" + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + InputModeKey { + enabled: !(InputContext.inputMethodHints & Qt.ImhLatinOnly) && inputModeCount > 1 + weight: normalKeyWidth + Layout.fillWidth: false + inputModeNameList: [ + "半角", // InputEngine.InputMode.Latin + "", // InputEngine.InputMode.Numeric + "", // InputEngine.InputMode.Dialable + "", // InputEngine.InputMode.Pinyin + "", // InputEngine.InputMode.Cangjie + "", // InputEngine.InputMode.Zhuyin + "", // InputEngine.InputMode.Hangul + "あ", // InputEngine.InputMode.Hiragana + "カ", // InputEngine.InputMode.Katakana + "全角", // InputEngine.InputMode.FullwidthLatin + ] + } + SpaceKey { + } + Key { + key: Qt.Key_Left + weight: normalKeyWidth / 2 + Layout.fillWidth: false + displayText: "\u2190" + repeat: true + noModifier: true + functionKey: true + highlighted: true + } + Key { + key: Qt.Key_Right + weight: normalKeyWidth / 2 + Layout.fillWidth: false + displayText: "\u2192" + repeat: true + noModifier: true + functionKey: true + highlighted: true + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "\u3002" + alternativeKeys: "\u3001\uFF01\u3002\uFF1F,.?!" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } +} diff --git a/src/layouts/ja_JP/numbers.fallback b/src/layouts/ja_JP/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/ja_JP/numbers.fallback diff --git a/src/layouts/ja_JP/symbols.qml b/src/layouts/ja_JP/symbols.qml new file mode 100644 index 00000000..96f1f001 --- /dev/null +++ b/src/layouts/ja_JP/symbols.qml @@ -0,0 +1,488 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayoutLoader { + function createInputMethod() { + return Qt.createQmlObject('import QtQuick; import QtQuick.VirtualKeyboard.Plugins; JapaneseInputMethod {}', parent, "symbols.qml") + } + sharedLayouts: ['main'] + property int page + readonly property int numPages: 3 + readonly property string inputModeName: { + switch (InputContext.inputEngine.inputMode) { + case InputEngine.Katakana: + return "アイウ" + case InputEngine.Hiragana: + return "あいう" + default: + return "ABC" + } + } + sourceComponent: { + switch (page) { + case 2: return page3 + case 1: return page2 + default: return page1 + } + } + Component { + id: page1 + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_1 + text: "1" + } + Key { + id: normalKey + key: Qt.Key_2 + text: "2" + } + Key { + key: Qt.Key_3 + text: "3" + } + Key { + key: Qt.Key_4 + text: "4" + } + Key { + key: Qt.Key_5 + text: "5" + } + Key { + key: Qt.Key_6 + text: "6" + } + Key { + key: Qt.Key_7 + text: "7" + } + Key { + key: Qt.Key_8 + text: "8" + } + Key { + key: Qt.Key_9 + text: "9" + } + Key { + key: Qt.Key_0 + text: "0" + } + } + KeyboardRow { + Key { + key: Qt.Key_1 + text: "@" + } + Key { + key: Qt.Key_1 + text: "#" + } + Key { + key: Qt.Key_1 + text: "%" + } + Key { + key: Qt.Key_1 + text: "&" + } + Key { + key: Qt.Key_1 + text: "*" + } + Key { + key: Qt.Key_1 + text: "_" + } + Key { + key: Qt.Key_1 + text: "-" + } + Key { + key: Qt.Key_1 + text: "+" + } + Key { + key: Qt.Key_1 + text: "(" + } + Key { + key: Qt.Key_1 + text: ")" + } + } + KeyboardRow { + Key { + displayText: (page + 1) + "/" + numPages + functionKey: true + onClicked: page = (page + 1) % numPages + highlighted: true + } + Key { + text: "“" + } + Key { + text: "”" + } + Key { + text: "、" + } + Key { + text: ":" + } + Key { + text: ";" + } + Key { + text: "!" + } + Key { + text: "?" + } + Key { + text: "~" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + displayText: inputModeName + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "—" + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } + Component { + id: page2 + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + text: "½" + alternativeKeys: "½¼¾" + } + Key { + id: normalKey + text: "'" + } + Key { + text: "/" + } + Key { + text: "\\" + } + Key { + text: "|" + } + Key { + text: "[" + } + Key { + text: "]" + } + Key { + text: "{" + } + Key { + text: "}" + } + Key { + text: "·" + } + } + KeyboardRow { + Key { + text: "<" + } + Key { + text: ">" + } + Key { + text: "," + } + Key { + text: "." + } + Key { + text: ":" + } + Key { + text: ";" + } + Key { + text: "!" + } + Key { + text: "?" + } + Key { + text: "=" + } + Key { + text: "~" + } + } + KeyboardRow { + Key { + displayText: (page + 1) + "/" + numPages + functionKey: true + onClicked: page = (page + 1) % numPages + highlighted: true + } + Key { + text: "\"" + } + Key { + text: "§" + } + Key { + text: "^" + } + Key { + text: "$" + } + Key { + text: "¥" + } + Key { + text: "€" + } + Key { + text: "£" + } + Key { + text: "¢" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + displayText: inputModeName + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "。" + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } + Component { + id: page3 + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + text: "\" + } + Key { + id: normalKey + text: "/" + } + Key { + text: "(" + } + Key { + text: ")" + } + Key { + text: "〔" + } + Key { + text: "〕" + } + Key { + text: "〈" + } + Key { + text: "〉" + } + Key { + text: "《" + } + Key { + text: "》" + } + } + KeyboardRow { + Key { + text: "→" + } + Key { + text: "←" + } + Key { + text: "↑" + } + Key { + text: "↓" + } + Key { + text: "■" + } + Key { + text: "□" + } + Key { + text: "●" + } + Key { + text: "○" + } + Key { + text: "【" + } + Key { + text: "】" + } + } + KeyboardRow { + Key { + displayText: (page + 1) + "/" + numPages + functionKey: true + onClicked: page = (page + 1) % numPages + highlighted: true + } + Key { + text: "『" + } + Key { + text: "』" + } + Key { + text: "「" + } + Key { + text: "」" + } + Key { + text: "★" + } + Key { + text: "☆" + } + Key { + text: "◆" + } + Key { + text: "◇" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + displayText: inputModeName + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "…" + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } +} diff --git a/src/layouts/ko_KR/dialpad.fallback b/src/layouts/ko_KR/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/ko_KR/dialpad.fallback diff --git a/src/layouts/ko_KR/digits.fallback b/src/layouts/ko_KR/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/ko_KR/digits.fallback diff --git a/src/layouts/ko_KR/handwriting.qml b/src/layouts/ko_KR/handwriting.qml new file mode 100644 index 00000000..2af59703 --- /dev/null +++ b/src/layouts/ko_KR/handwriting.qml @@ -0,0 +1,100 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayout { + function createInputMethod() { + return Qt.createQmlObject('import QtQuick; import QtQuick.VirtualKeyboard.Plugins; HandwritingInputMethod {}', parent) + } + sharedLayouts: ['symbols'] + inputMode: preferredInputMode() + + Connections { + target: InputContext + function 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.InputMode.Latin : InputEngine.InputMode.KoreanHandwriting + } + + KeyboardRow { + Layout.preferredHeight: 3 + TraceInputKey { + objectName: "hwrInputArea" + patternRecognitionMode: InputEngine.PatternRecognitionMode.Handwriting + horizontalRulers: + InputContext.inputEngine.inputMode !== InputEngine.InputMode.KoreanHandwriting ? [] : + [Math.round(boundingBox.height / 4), Math.round(boundingBox.height / 4) * 2, Math.round(boundingBox.height / 4) * 3] + } + } + KeyboardRow { + id: bottomRow + Layout.preferredHeight: 1 + keyWeight: 160 + ShiftKey { + weight: 240 + } + InputModeKey { + } + Key { + key: Qt.Key_Comma + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + weight: 10 * 160 - 4 * 160 - 2 * 240 + } + Key { + key: Qt.Key_Period + text: "." + alternativeKeys: "<>()/\\\"'=+-_:;.?!" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + BackspaceKey { + } + EnterKey { + weight: 240 + } + } +} diff --git a/src/layouts/ko_KR/main.qml b/src/layouts/ko_KR/main.qml new file mode 100644 index 00000000..cb8fa3cc --- /dev/null +++ b/src/layouts/ko_KR/main.qml @@ -0,0 +1,344 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayoutLoader { + function createInputMethod() { + return Qt.createQmlObject('import QtQuick; import QtQuick.VirtualKeyboard.Plugins; HangulInputMethod {}', parent, "main.qml") + } + sourceComponent: InputContext.shiftActive ? page2 : page1 + sharedLayouts: ['symbols'] + Component { + id: page1 + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + text: "\u3142" + alternativeKeys: "\u3142\u3143" + } + Key { + id: normalKey + text: "\u3148" + alternativeKeys: "\u3148\u3149" + } + Key { + text: "\u3137" + alternativeKeys: "\u3137\u3138" + } + Key { + text: "\u3131" + alternativeKeys: "\u3131\u3132" + } + Key { + text: "\u3145" + alternativeKeys: "\u3145\u3146" + } + Key { + text: "\u315B" + } + Key { + text: "\u3155" + } + Key { + text: "\u3151" + } + Key { + text: "\u3150" + alternativeKeys: "\u3150\u3152" + } + Key { + text: "\u3154" + alternativeKeys: "\u3154\u3156" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + } + Key { + text: "\u3141" + weight: normalKeyWidth + Layout.fillWidth: false + } + } + Key { + text: "\u3134" + } + Key { + text: "\u3147" + } + Key { + text: "\u3139" + } + Key { + text: "\u314E" + } + Key { + text: "\u3157" + } + Key { + text: "\u3153" + } + Key { + text: "\u314F" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + Key { + text: "\u3163" + weight: normalKeyWidth + Layout.fillWidth: false + } + FillerKey { + } + } + } + KeyboardRow { + ShiftKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + text: "\u314B" + } + Key { + text: "\u314C" + } + Key { + text: "\u314A" + } + Key { + text: "\u314D" + } + Key { + text: "\u3160" + } + Key { + text: "\u315C" + } + Key { + text: "\u3161" + } + BackspaceKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } + Component { + id: page2 + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + text: "\u3143" + } + Key { + id: normalKey + text: "\u3149" + } + Key { + text: "\u3138" + } + Key { + text: "\u3132" + } + Key { + text: "\u3146" + } + Key { + text: "\u315B" + } + Key { + text: "\u3155" + } + Key { + text: "\u3151" + } + Key { + text: "\u3152" + } + Key { + text: "\u3156" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + } + Key { + text: "\u3141" + weight: normalKeyWidth + Layout.fillWidth: false + } + } + Key { + text: "\u3134" + } + Key { + text: "\u3147" + } + Key { + text: "\u3139" + } + Key { + text: "\u314E" + } + Key { + text: "\u3157" + } + Key { + text: "\u3153" + } + Key { + text: "\u314F" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + Key { + text: "\u3163" + weight: normalKeyWidth + Layout.fillWidth: false + } + FillerKey { + } + } + } + KeyboardRow { + ShiftKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + text: "\u314B" + } + Key { + text: "\u314C" + } + Key { + text: "\u314A" + } + Key { + text: "\u314D" + } + Key { + text: "\u3160" + } + Key { + text: "\u315C" + } + Key { + text: "\u3161" + } + BackspaceKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } +} diff --git a/src/layouts/ko_KR/numbers.fallback b/src/layouts/ko_KR/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/ko_KR/numbers.fallback diff --git a/src/layouts/ko_KR/symbols.qml b/src/layouts/ko_KR/symbols.qml new file mode 100644 index 00000000..fc0dfb2f --- /dev/null +++ b/src/layouts/ko_KR/symbols.qml @@ -0,0 +1,372 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayoutLoader { + function createInputMethod() { + return Qt.createQmlObject('import QtQuick; import QtQuick.VirtualKeyboard.Plugins; HangulInputMethod {}', parent, "symbols.qml") + } + sharedLayouts: ['main'] + property bool secondPage + onVisibleChanged: if (!visible) secondPage = false + sourceComponent: secondPage ? page2 : page1 + Component { + id: page1 + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_1 + text: "1" + } + Key { + id: normalKey + key: Qt.Key_2 + text: "2" + } + Key { + key: Qt.Key_3 + text: "3" + } + Key { + key: Qt.Key_4 + text: "4" + } + Key { + key: Qt.Key_5 + text: "5" + } + Key { + key: Qt.Key_6 + text: "6" + } + Key { + key: Qt.Key_7 + text: "7" + } + Key { + key: Qt.Key_8 + text: "8" + } + Key { + key: Qt.Key_9 + text: "9" + } + Key { + key: Qt.Key_0 + text: "0" + } + } + KeyboardRow { + Key { + key: Qt.Key_At + text: "@" + } + Key { + key: Qt.Key_NumberSign + text: "#" + } + Key { + key: Qt.Key_Percent + text: "%" + } + Key { + key: Qt.Key_Ampersand + text: "&" + } + Key { + key: Qt.Key_Asterisk + text: "*" + } + Key { + key: Qt.Key_Underscore + text: "_" + } + Key { + key: Qt.Key_Minus + text: "-" + } + Key { + key: Qt.Key_Plus + text: "+" + } + Key { + key: Qt.Key_ParenLeft + text: "(" + } + Key { + key: Qt.Key_ParenRight + text: ")" + } + } + KeyboardRow { + Key { + displayText: "1/2" + functionKey: true + onClicked: secondPage = !secondPage + highlighted: true + } + Key { + key: Qt.Key_QuoteDbl + text: '"' + } + Key { + key: Qt.Key_Less + text: "<" + } + Key { + key: Qt.Key_Greater + text: ">" + } + Key { + key: Qt.Key_Apostrophe + text: "'" + } + Key { + key: Qt.Key_Colon + text: ":" + } + Key { + key: Qt.Key_Slash + text: "/" + } + Key { + key: Qt.Key_Exclam + text: "!" + } + Key { + key: Qt.Key_Question + text: "?" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + displayText: "\uD55C\uAE00" + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } + Component { + id: page2 + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_AsciiTilde + text: "~" + } + Key { + id: normalKey + key: Qt.Key_Agrave + text: "`" + } + Key { + key: Qt.Key_Bar + text: "|" + } + Key { + key: 0x7B + text: "·" + } + Key { + key: 0x221A + text: "√" + } + Key { + key: Qt.Key_division + text: "÷" + } + Key { + key: Qt.Key_multiply + text: "×" + } + Key { + key: Qt.Key_onehalf + text: "½" + alternativeKeys: "¼⅓½¾⅞" + } + Key { + key: Qt.Key_BraceLeft + text: "{" + } + Key { + key: Qt.Key_BraceRight + text: "}" + } + } + KeyboardRow { + Key { + key: Qt.Key_Dollar + text: "$" + } + Key { + key: 0x20AC + text: "€" + } + Key { + key: 0xC2 + text: "£" + } + Key { + key: 0x20A9 + text: "\u20A9" + } + Key { + key: 0xA5 + text: "¥" + } + Key { + key: Qt.Key_AsciiCircum + text: "^" + } + Key { + key: Qt.Key_Equal + text: "=" + } + Key { + key: Qt.Key_section + text: "§" + } + Key { + key: Qt.Key_BracketLeft + text: "[" + } + Key { + key: Qt.Key_BracketRight + text: "]" + } + } + KeyboardRow { + Key { + displayText: "2/2" + functionKey: true + onClicked: secondPage = !secondPage + highlighted: true + } + Key { + key: 0x2122 + text: '™' + } + Key { + key: 0x00AE + text: '®' + } + Key { + key: Qt.Key_guillemotleft + text: '«' + } + Key { + key: Qt.Key_guillemotright + text: '»' + } + Key { + key: Qt.Key_Semicolon + text: ";" + } + Key { + key: 0x201C + text: '“' + } + Key { + key: 0x201D + text: '”' + } + Key { + key: Qt.Key_Backslash + text: "\\" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + displayText: "\uD55C\uAE00" + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: 0x2026 + weight: normalKeyWidth + Layout.fillWidth: false + text: "\u2026" + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } +} diff --git a/src/layouts/ms_MY/dialpad.fallback b/src/layouts/ms_MY/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/ms_MY/dialpad.fallback diff --git a/src/layouts/ms_MY/digits.fallback b/src/layouts/ms_MY/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/ms_MY/digits.fallback diff --git a/src/layouts/ms_MY/handwriting.fallback b/src/layouts/ms_MY/handwriting.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/ms_MY/handwriting.fallback diff --git a/src/layouts/ms_MY/main.fallback b/src/layouts/ms_MY/main.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/ms_MY/main.fallback diff --git a/src/layouts/ms_MY/numbers.fallback b/src/layouts/ms_MY/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/ms_MY/numbers.fallback diff --git a/src/layouts/ms_MY/symbols.fallback b/src/layouts/ms_MY/symbols.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/ms_MY/symbols.fallback diff --git a/src/layouts/nb_NO/dialpad.fallback b/src/layouts/nb_NO/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/nb_NO/dialpad.fallback diff --git a/src/layouts/nb_NO/digits.fallback b/src/layouts/nb_NO/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/nb_NO/digits.fallback diff --git a/src/layouts/nb_NO/handwriting.fallback b/src/layouts/nb_NO/handwriting.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/nb_NO/handwriting.fallback diff --git a/src/layouts/nb_NO/main.qml b/src/layouts/nb_NO/main.qml new file mode 100644 index 00000000..3c127710 --- /dev/null +++ b/src/layouts/nb_NO/main.qml @@ -0,0 +1,220 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayout { + inputMode: InputEngine.InputMode.Latin + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + id: normalKey + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_E + text: "e" + alternativeKeys: "eéèê" + } + Key { + key: Qt.Key_R + text: "r" + } + Key { + key: Qt.Key_T + text: "t" + } + Key { + key: Qt.Key_Y + text: "y" + } + Key { + key: Qt.Key_U + text: "u" + alternativeKeys: "uü" + } + Key { + key: Qt.Key_I + text: "i" + } + Key { + key: Qt.Key_O + text: "o" + alternativeKeys: "oöóòô" + } + Key { + key: Qt.Key_P + text: "p" + } + Key { + key: Qt.Key_Aring + text: "å" + } + } + KeyboardRow { + Key { + key: Qt.Key_A + text: "a" + alternativeKeys: "aäâá" + } + Key { + key: Qt.Key_S + text: "s" + } + Key { + key: Qt.Key_D + text: "d" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + Key { + key: Qt.Key_L + text: "l" + } + Key { + key: Qt.Key_Ooblique + text: "ø" + alternativeKeys: "øö" + } + Key { + key: Qt.Key_AE + text: "æ" + alternativeKeys: "æä" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + ShiftKey { + weight: 240 + } + FillerKey { + weight: 80 + } + } + Key { + key: Qt.Key_Z + text: "z" + } + Key { + key: Qt.Key_X + text: "x" + } + Key { + key: Qt.Key_C + text: "c" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + } + Key { + key: Qt.Key_M + text: "m" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + weight: 80 + } + BackspaceKey { + weight: 240 + } + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } +} diff --git a/src/layouts/nb_NO/numbers.fallback b/src/layouts/nb_NO/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/nb_NO/numbers.fallback diff --git a/src/layouts/nb_NO/symbols.fallback b/src/layouts/nb_NO/symbols.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/nb_NO/symbols.fallback diff --git a/src/layouts/nl_NL/dialpad.fallback b/src/layouts/nl_NL/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/nl_NL/dialpad.fallback diff --git a/src/layouts/nl_NL/digits.fallback b/src/layouts/nl_NL/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/nl_NL/digits.fallback diff --git a/src/layouts/nl_NL/handwriting.fallback b/src/layouts/nl_NL/handwriting.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/nl_NL/handwriting.fallback diff --git a/src/layouts/nl_NL/main.fallback b/src/layouts/nl_NL/main.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/nl_NL/main.fallback diff --git a/src/layouts/nl_NL/numbers.fallback b/src/layouts/nl_NL/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/nl_NL/numbers.fallback diff --git a/src/layouts/nl_NL/symbols.fallback b/src/layouts/nl_NL/symbols.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/nl_NL/symbols.fallback diff --git a/src/layouts/pl_PL/dialpad.fallback b/src/layouts/pl_PL/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/pl_PL/dialpad.fallback diff --git a/src/layouts/pl_PL/digits.fallback b/src/layouts/pl_PL/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/pl_PL/digits.fallback diff --git a/src/layouts/pl_PL/handwriting.fallback b/src/layouts/pl_PL/handwriting.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/pl_PL/handwriting.fallback diff --git a/src/layouts/pl_PL/main.qml b/src/layouts/pl_PL/main.qml new file mode 100644 index 00000000..cbf074fb --- /dev/null +++ b/src/layouts/pl_PL/main.qml @@ -0,0 +1,215 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayout { + inputMode: InputEngine.InputMode.Latin + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + id: normalKey + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_E + text: "e" + alternativeKeys: "eę" + } + Key { + key: Qt.Key_R + text: "r" + } + Key { + key: Qt.Key_T + text: "t" + } + Key { + key: Qt.Key_Y + text: "y" + } + Key { + key: Qt.Key_U + text: "u" + } + Key { + key: Qt.Key_I + text: "i" + } + Key { + key: Qt.Key_O + text: "o" + alternativeKeys: "oó" + } + Key { + key: Qt.Key_P + text: "p" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + } + Key { + key: Qt.Key_A + text: "a" + alternativeKeys: "aą" + weight: normalKeyWidth + Layout.fillWidth: false + } + } + Key { + key: Qt.Key_S + text: "s" + alternativeKeys: "sś" + } + Key { + key: Qt.Key_D + text: "d" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + Key { + key: Qt.Key_L + text: "l" + alternativeKeys: "lł" + weight: normalKeyWidth + Layout.fillWidth: false + } + FillerKey { + } + } + } + KeyboardRow { + ShiftKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Z + text: "z" + alternativeKeys: "zźż" + } + Key { + key: Qt.Key_X + text: "x" + alternativeKeys: "xź" + } + Key { + key: Qt.Key_C + text: "c" + alternativeKeys: "cć" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + alternativeKeys: "nń" + } + Key { + key: Qt.Key_M + text: "m" + } + BackspaceKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } +} diff --git a/src/layouts/pl_PL/numbers.fallback b/src/layouts/pl_PL/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/pl_PL/numbers.fallback diff --git a/src/layouts/pl_PL/symbols.fallback b/src/layouts/pl_PL/symbols.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/pl_PL/symbols.fallback diff --git a/src/layouts/pt_BR/dialpad.fallback b/src/layouts/pt_BR/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/pt_BR/dialpad.fallback diff --git a/src/layouts/pt_BR/digits.fallback b/src/layouts/pt_BR/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/pt_BR/digits.fallback diff --git a/src/layouts/pt_BR/handwriting.fallback b/src/layouts/pt_BR/handwriting.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/pt_BR/handwriting.fallback diff --git a/src/layouts/pt_BR/main.qml b/src/layouts/pt_BR/main.qml new file mode 100644 index 00000000..e5d2cb0d --- /dev/null +++ b/src/layouts/pt_BR/main.qml @@ -0,0 +1,200 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayout { + inputMode: InputEngine.InputMode.Latin + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + id: normalKey + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_E + text: "e" + alternativeKeys: "ēęėëeêèé" + } + Key { + key: Qt.Key_R + text: "r" + } + Key { + key: Qt.Key_T + text: "t" + } + Key { + key: Qt.Key_Y + text: "y" + } + Key { + key: Qt.Key_U + text: "u" + alternativeKeys: "üûuùú" + } + Key { + key: Qt.Key_I + text: "i" + alternativeKeys: "ïįîiìí" + } + Key { + key: Qt.Key_O + text: "o" + alternativeKeys: "öõôoòó" + } + Key { + key: Qt.Key_P + text: "p" + } + } + KeyboardRow { + Key { + key: Qt.Key_A + text: "a" + alternativeKeys: "äãaâàá" + } + Key { + key: Qt.Key_S + text: "s" + } + Key { + key: Qt.Key_D + text: "d" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + Key { + key: Qt.Key_L + text: "l" + } + Key { + key: Qt.Key_Ccedilla + text: "ç" + } + } + KeyboardRow { + ShiftKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Z + text: "z" + } + Key { + key: Qt.Key_X + text: "x" + } + Key { + key: Qt.Key_C + text: "c" + alternativeKeys: "čcć" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + } + Key { + key: Qt.Key_M + text: "m" + } + BackspaceKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } +} diff --git a/src/layouts/pt_BR/numbers.fallback b/src/layouts/pt_BR/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/pt_BR/numbers.fallback diff --git a/src/layouts/pt_BR/symbols.fallback b/src/layouts/pt_BR/symbols.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/pt_BR/symbols.fallback diff --git a/src/layouts/pt_PT/dialpad.fallback b/src/layouts/pt_PT/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/pt_PT/dialpad.fallback diff --git a/src/layouts/pt_PT/digits.fallback b/src/layouts/pt_PT/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/pt_PT/digits.fallback diff --git a/src/layouts/pt_PT/handwriting.fallback b/src/layouts/pt_PT/handwriting.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/pt_PT/handwriting.fallback diff --git a/src/layouts/pt_PT/main.qml b/src/layouts/pt_PT/main.qml new file mode 100644 index 00000000..e5d2cb0d --- /dev/null +++ b/src/layouts/pt_PT/main.qml @@ -0,0 +1,200 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayout { + inputMode: InputEngine.InputMode.Latin + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + id: normalKey + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_E + text: "e" + alternativeKeys: "ēęėëeêèé" + } + Key { + key: Qt.Key_R + text: "r" + } + Key { + key: Qt.Key_T + text: "t" + } + Key { + key: Qt.Key_Y + text: "y" + } + Key { + key: Qt.Key_U + text: "u" + alternativeKeys: "üûuùú" + } + Key { + key: Qt.Key_I + text: "i" + alternativeKeys: "ïįîiìí" + } + Key { + key: Qt.Key_O + text: "o" + alternativeKeys: "öõôoòó" + } + Key { + key: Qt.Key_P + text: "p" + } + } + KeyboardRow { + Key { + key: Qt.Key_A + text: "a" + alternativeKeys: "äãaâàá" + } + Key { + key: Qt.Key_S + text: "s" + } + Key { + key: Qt.Key_D + text: "d" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + Key { + key: Qt.Key_L + text: "l" + } + Key { + key: Qt.Key_Ccedilla + text: "ç" + } + } + KeyboardRow { + ShiftKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Z + text: "z" + } + Key { + key: Qt.Key_X + text: "x" + } + Key { + key: Qt.Key_C + text: "c" + alternativeKeys: "čcć" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + } + Key { + key: Qt.Key_M + text: "m" + } + BackspaceKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } +} diff --git a/src/layouts/pt_PT/numbers.fallback b/src/layouts/pt_PT/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/pt_PT/numbers.fallback diff --git a/src/layouts/pt_PT/symbols.fallback b/src/layouts/pt_PT/symbols.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/pt_PT/symbols.fallback diff --git a/src/layouts/ro_RO/dialpad.fallback b/src/layouts/ro_RO/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/ro_RO/dialpad.fallback diff --git a/src/layouts/ro_RO/digits.fallback b/src/layouts/ro_RO/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/ro_RO/digits.fallback diff --git a/src/layouts/ro_RO/handwriting.qml b/src/layouts/ro_RO/handwriting.qml new file mode 100644 index 00000000..80b6d45f --- /dev/null +++ b/src/layouts/ro_RO/handwriting.qml @@ -0,0 +1,82 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayout { + function createInputMethod() { + return Qt.createQmlObject('import QtQuick; import QtQuick.VirtualKeyboard.Plugins; HandwritingInputMethod {}', parent) + } + sharedLayouts: ['symbols'] + inputMode: InputEngine.InputMode.Latin + + KeyboardRow { + Layout.preferredHeight: 3 + TraceInputKey { + objectName: "hwrInputArea" + patternRecognitionMode: InputEngine.PatternRecognitionMode.Handwriting + } + } + KeyboardRow { + id: bottomRow + Layout.preferredHeight: 1 + keyWeight: 160 + ShiftKey { + weight: 240 + } + InputModeKey { + } + Key { + key: Qt.Key_Comma + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + weight: 10 * 160 - 4 * 160 - 2 * 240 + } + Key { + key: Qt.Key_Period + text: "." + alternativeKeys: "<>()/\\\"'=+-_:;.?!" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + BackspaceKey { + } + EnterKey { + weight: 240 + } + } +} diff --git a/src/layouts/ro_RO/main.qml b/src/layouts/ro_RO/main.qml new file mode 100644 index 00000000..4bb7478c --- /dev/null +++ b/src/layouts/ro_RO/main.qml @@ -0,0 +1,210 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayout { + inputMode: InputEngine.InputMode.Latin + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + id: normalKey + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_E + text: "e" + } + Key { + key: Qt.Key_R + text: "r" + } + Key { + key: Qt.Key_T + text: "t" + alternativeKeys: "tț" + } + Key { + key: Qt.Key_Y + text: "y" + } + Key { + key: Qt.Key_U + text: "u" + } + Key { + key: Qt.Key_I + text: "i" + alternativeKeys: "iî" + } + Key { + key: Qt.Key_O + text: "o" + } + Key { + key: Qt.Key_P + text: "p" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + } + Key { + key: Qt.Key_A + text: "a" + alternativeKeys: "aâă" + weight: normalKeyWidth + Layout.fillWidth: false + } + } + Key { + key: Qt.Key_S + text: "s" + alternativeKeys: "sș" + } + Key { + key: Qt.Key_D + text: "d" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + Key { + key: Qt.Key_L + text: "l" + weight: normalKeyWidth + Layout.fillWidth: false + } + FillerKey { + } + } + } + KeyboardRow { + ShiftKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Z + text: "z" + } + Key { + key: Qt.Key_X + text: "x" + } + Key { + key: Qt.Key_C + text: "c" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + } + Key { + key: Qt.Key_M + text: "m" + } + BackspaceKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } +} diff --git a/src/layouts/ro_RO/numbers.fallback b/src/layouts/ro_RO/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/ro_RO/numbers.fallback diff --git a/src/layouts/ro_RO/symbols.fallback b/src/layouts/ro_RO/symbols.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/ro_RO/symbols.fallback diff --git a/src/layouts/ru_RU/dialpad.fallback b/src/layouts/ru_RU/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/ru_RU/dialpad.fallback diff --git a/src/layouts/ru_RU/digits.fallback b/src/layouts/ru_RU/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/ru_RU/digits.fallback diff --git a/src/layouts/ru_RU/handwriting.qml b/src/layouts/ru_RU/handwriting.qml new file mode 100644 index 00000000..092d746e --- /dev/null +++ b/src/layouts/ru_RU/handwriting.qml @@ -0,0 +1,84 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayout { + function createInputMethod() { + return Qt.createQmlObject('import QtQuick; import QtQuick.VirtualKeyboard.Plugins; HandwritingInputMethod {}', parent) + } + sharedLayouts: ['symbols'] + + KeyboardRow { + Layout.preferredHeight: 3 + TraceInputKey { + objectName: "hwrInputArea" + patternRecognitionMode: InputEngine.PatternRecognitionMode.Handwriting + horizontalRulers: + InputContext.inputEngine.inputMode !== InputEngine.InputMode.Cyrillic ? [] : + [Math.round(boundingBox.height / 4), Math.round(boundingBox.height / 4) * 2, Math.round(boundingBox.height / 4) * 3] + } + } + KeyboardRow { + id: bottomRow + Layout.preferredHeight: 1 + keyWeight: 160 + ShiftKey { + weight: 240 + } + InputModeKey { + } + Key { + key: Qt.Key_Comma + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + weight: 10 * 160 - 4 * 160 - 2 * 240 + } + Key { + key: Qt.Key_Period + text: "." + alternativeKeys: "<>()/\\\"'=+-_:;.?!" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + BackspaceKey { + } + EnterKey { + weight: 240 + } + } +} diff --git a/src/layouts/ru_RU/main.qml b/src/layouts/ru_RU/main.qml new file mode 100644 index 00000000..91b0415a --- /dev/null +++ b/src/layouts/ru_RU/main.qml @@ -0,0 +1,414 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayoutLoader { + sharedLayouts: ['symbols'] + sourceComponent: InputContext.inputEngine.inputMode === InputEngine.InputMode.Cyrillic ? cyrillicLayout : latinLayout + Component { + id: cyrillicLayout + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: 0x0419 + text: "й" + } + Key { + id: normalKey + key: 0x0426 + text: "ц" + } + Key { + key: 0x0423 + text: "у" + } + Key { + key: 0x041A + text: "к" + } + Key { + key: 0x0415 + text: "е" + alternativeKeys: "её" + } + Key { + key: 0x041D + text: "н" + } + Key { + key: 0x0413 + text: "г" + } + Key { + key: 0x0428 + text: "ш" + } + Key { + key: 0x0429 + text: "щ" + } + Key { + key: 0x0417 + text: "з" + } + Key { + key: 0x0425 + text: "х" + } + } + KeyboardRow { + Key { + key: 0x0424 + text: "ф" + } + Key { + key: 0x042B + text: "ы" + } + Key { + key: 0x0412 + text: "в" + } + Key { + key: 0x0410 + text: "а" + } + Key { + key: 0x041F + text: "п" + } + Key { + key: 0x0420 + text: "р" + } + Key { + key: 0x041E + text: "о" + } + Key { + key: 0x041B + text: "л" + } + Key { + key: 0x0414 + text: "д" + } + Key { + key: 0x0416 + text: "ж" + } + Key { + key: 0x042D + text: "э" + } + } + KeyboardRow { + ShiftKey { + } + Key { + key: 0x042F + text: "я" + } + Key { + key: 0x0427 + text: "ч" + } + Key { + key: 0x0421 + text: "с" + } + Key { + key: 0x041C + text: "м" + } + Key { + key: 0x0418 + text: "и" + } + Key { + key: 0x0422 + text: "т" + } + Key { + key: 0x042C + text: "ь" + alternativeKeys: "ьъ" + } + Key { + key: 0x0411 + text: "б" + } + Key { + key: 0x042E + text: "ю" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + InputModeKey { + inputModes: [InputEngine.InputMode.Cyrillic, InputEngine.InputMode.Latin] + weight: normalKeyWidth + Layout.fillWidth: false + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } + Component { + id: latinLayout + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + id: normalKey + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_E + text: "e" + alternativeKeys: "êeëèé" + } + Key { + key: Qt.Key_R + text: "r" + alternativeKeys: "ŕrř" + } + Key { + key: Qt.Key_T + text: "t" + alternativeKeys: "ţtŧť" + } + Key { + key: Qt.Key_Z + text: "z" + alternativeKeys: "zž" + } + Key { + key: Qt.Key_U + text: "u" + alternativeKeys: "űūũûüuùú" + } + Key { + key: Qt.Key_I + text: "i" + alternativeKeys: "îïīĩiìí" + } + Key { + key: Qt.Key_O + text: "o" + alternativeKeys: "œøõôöòóo" + } + Key { + key: Qt.Key_P + text: "p" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + } + Key { + key: Qt.Key_A + text: "a" + alternativeKeys: (InputContext.inputMethodHints & (Qt.ImhEmailCharactersOnly | Qt.ImhUrlCharactersOnly)) ? "a@äåãâàá" : "aäåãâàá" + smallTextVisible: (InputContext.inputMethodHints & (Qt.ImhEmailCharactersOnly | Qt.ImhUrlCharactersOnly)) + weight: normalKeyWidth + Layout.fillWidth: false + } + } + Key { + key: Qt.Key_S + text: "s" + alternativeKeys: "šsşś" + } + Key { + key: Qt.Key_D + text: "d" + alternativeKeys: "dđď" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + alternativeKeys: "ġgģĝğ" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + Key { + key: Qt.Key_L + text: "l" + alternativeKeys: "ĺŀłļľl" + weight: normalKeyWidth + Layout.fillWidth: false + } + FillerKey { + } + } + } + KeyboardRow { + ShiftKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Y + text: "y" + } + Key { + key: Qt.Key_X + text: "x" + } + Key { + key: Qt.Key_C + text: "c" + alternativeKeys: "çcċčć" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + alternativeKeys: "ņńnň" + } + Key { + key: Qt.Key_M + text: "m" + } + BackspaceKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + InputModeKey { + enabled: !(InputContext.inputMethodHints & Qt.ImhLatinOnly) && inputModeCount > 1 + inputModes: [InputEngine.InputMode.Cyrillic, InputEngine.InputMode.Latin] + weight: normalKeyWidth + Layout.fillWidth: false + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } +} diff --git a/src/layouts/ru_RU/numbers.fallback b/src/layouts/ru_RU/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/ru_RU/numbers.fallback diff --git a/src/layouts/ru_RU/symbols.fallback b/src/layouts/ru_RU/symbols.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/ru_RU/symbols.fallback diff --git a/src/layouts/sk_SK/dialpad.fallback b/src/layouts/sk_SK/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/sk_SK/dialpad.fallback diff --git a/src/layouts/sk_SK/digits.fallback b/src/layouts/sk_SK/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/sk_SK/digits.fallback diff --git a/src/layouts/sk_SK/handwriting.fallback b/src/layouts/sk_SK/handwriting.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/sk_SK/handwriting.fallback diff --git a/src/layouts/sk_SK/main.qml b/src/layouts/sk_SK/main.qml new file mode 100644 index 00000000..7a4631bb --- /dev/null +++ b/src/layouts/sk_SK/main.qml @@ -0,0 +1,220 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayout { + inputMode: InputEngine.InputMode.Latin + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + id: normalKey + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_E + text: "e" + alternativeKeys: "eé" + } + Key { + key: Qt.Key_R + text: "r" + alternativeKeys: "rŕ" + } + Key { + key: Qt.Key_T + text: "t" + alternativeKeys: "tť" + } + Key { + key: Qt.Key_Z + text: "z" + alternativeKeys: "zž" + } + Key { + key: Qt.Key_U + text: "u" + alternativeKeys: "uú" + } + Key { + key: Qt.Key_I + text: "i" + alternativeKeys: "ií" + } + Key { + key: Qt.Key_O + text: "o" + alternativeKeys: "oóöô" + } + Key { + key: Qt.Key_P + text: "p" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + } + Key { + key: Qt.Key_A + text: "a" + alternativeKeys: "aåäá" + weight: normalKeyWidth + Layout.fillWidth: false + } + } + Key { + key: Qt.Key_S + text: "s" + alternativeKeys: "sš" + } + Key { + key: Qt.Key_D + text: "d" + alternativeKeys: "dď" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + Key { + key: Qt.Key_L + text: "l" + alternativeKeys: "lĺľ" + weight: normalKeyWidth + Layout.fillWidth: false + } + FillerKey { + } + } + } + KeyboardRow { + ShiftKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Y + text: "y" + alternativeKeys: "yý" + } + Key { + key: Qt.Key_X + text: "x" + } + Key { + key: Qt.Key_C + text: "c" + alternativeKeys: "cč" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + alternativeKeys: "nň" + } + Key { + key: Qt.Key_M + text: "m" + } + BackspaceKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } +} diff --git a/src/layouts/sk_SK/numbers.fallback b/src/layouts/sk_SK/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/sk_SK/numbers.fallback diff --git a/src/layouts/sk_SK/symbols.fallback b/src/layouts/sk_SK/symbols.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/sk_SK/symbols.fallback diff --git a/src/layouts/sl_SI/dialpad.fallback b/src/layouts/sl_SI/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/sl_SI/dialpad.fallback diff --git a/src/layouts/sl_SI/digits.fallback b/src/layouts/sl_SI/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/sl_SI/digits.fallback diff --git a/src/layouts/sl_SI/handwriting.fallback b/src/layouts/sl_SI/handwriting.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/sl_SI/handwriting.fallback diff --git a/src/layouts/sl_SI/main.qml b/src/layouts/sl_SI/main.qml new file mode 100644 index 00000000..d08dac49 --- /dev/null +++ b/src/layouts/sl_SI/main.qml @@ -0,0 +1,215 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayout { + inputMode: InputEngine.InputMode.Latin + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + id: normalKey + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_E + text: "e" + alternativeKeys: "eèêëé" + } + Key { + key: Qt.Key_R + text: "r" + } + Key { + key: Qt.Key_T + text: "t" + } + Key { + key: Qt.Key_Z + text: "z" + alternativeKeys: "zž" + } + Key { + key: Qt.Key_U + text: "u" + alternativeKeys: "uúü" + } + Key { + key: Qt.Key_I + text: "i" + alternativeKeys: "ií" + } + Key { + key: Qt.Key_O + text: "o" + alternativeKeys: "òôöoó" + } + Key { + key: Qt.Key_P + text: "p" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + } + Key { + key: Qt.Key_A + text: "a" + alternativeKeys: "aåäáà" + weight: normalKeyWidth + Layout.fillWidth: false + } + } + Key { + key: Qt.Key_S + text: "s" + alternativeKeys: "sš" + } + Key { + key: Qt.Key_D + text: "d" + alternativeKeys: "dđ" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + Key { + key: Qt.Key_L + text: "l" + weight: normalKeyWidth + Layout.fillWidth: false + } + FillerKey { + } + } + } + KeyboardRow { + ShiftKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Y + text: "y" + } + Key { + key: Qt.Key_X + text: "x" + } + Key { + key: Qt.Key_C + text: "c" + alternativeKeys: "cćč" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + } + Key { + key: Qt.Key_M + text: "m" + } + BackspaceKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } +} diff --git a/src/layouts/sl_SI/numbers.fallback b/src/layouts/sl_SI/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/sl_SI/numbers.fallback diff --git a/src/layouts/sl_SI/symbols.fallback b/src/layouts/sl_SI/symbols.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/sl_SI/symbols.fallback diff --git a/src/layouts/sq_AL/dialpad.fallback b/src/layouts/sq_AL/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/sq_AL/dialpad.fallback diff --git a/src/layouts/sq_AL/digits.fallback b/src/layouts/sq_AL/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/sq_AL/digits.fallback diff --git a/src/layouts/sq_AL/handwriting.fallback b/src/layouts/sq_AL/handwriting.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/sq_AL/handwriting.fallback diff --git a/src/layouts/sq_AL/main.qml b/src/layouts/sq_AL/main.qml new file mode 100644 index 00000000..4a00858d --- /dev/null +++ b/src/layouts/sq_AL/main.qml @@ -0,0 +1,227 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayout { + inputMode: InputEngine.InputMode.Latin + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + readonly property real functionKeyWidth2: mapFromItem(normalKey, normalKey.width, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + id: normalKey + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_E + text: "e" + } + Key { + key: Qt.Key_R + text: "r" + } + Key { + key: Qt.Key_T + text: "t" + } + Key { + key: Qt.Key_Z + text: "z" + } + Key { + key: Qt.Key_U + text: "u" + } + Key { + key: Qt.Key_I + text: "i" + } + Key { + key: Qt.Key_O + text: "o" + } + Key { + key: Qt.Key_P + text: "p" + } + Key { + key: Qt.Key_Ccedilla + text: "ç" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + } + Key { + key: Qt.Key_A + text: "a" + weight: normalKeyWidth + Layout.fillWidth: false + } + } + Key { + key: Qt.Key_S + text: "s" + } + Key { + key: Qt.Key_D + text: "d" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + Key { + key: Qt.Key_L + text: "l" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + Key { + key: Qt.Key_Ediaeresis + text: "ë" + weight: normalKeyWidth + Layout.fillWidth: false + } + FillerKey { + } + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth2 + Layout.fillWidth: false + ShiftKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + FillerKey { + } + } + Key { + key: Qt.Key_Y + text: "y" + } + Key { + key: Qt.Key_X + text: "x" + } + Key { + key: Qt.Key_C + text: "c" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + } + Key { + key: Qt.Key_M + text: "m" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth2 + Layout.fillWidth: false + FillerKey { + } + BackspaceKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } +} diff --git a/src/layouts/sq_AL/numbers.fallback b/src/layouts/sq_AL/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/sq_AL/numbers.fallback diff --git a/src/layouts/sq_AL/symbols.fallback b/src/layouts/sq_AL/symbols.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/sq_AL/symbols.fallback diff --git a/src/layouts/sr_SP/dialpad.fallback b/src/layouts/sr_SP/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/sr_SP/dialpad.fallback diff --git a/src/layouts/sr_SP/digits.fallback b/src/layouts/sr_SP/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/sr_SP/digits.fallback diff --git a/src/layouts/sr_SP/handwriting.qml b/src/layouts/sr_SP/handwriting.qml new file mode 100644 index 00000000..092d746e --- /dev/null +++ b/src/layouts/sr_SP/handwriting.qml @@ -0,0 +1,84 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayout { + function createInputMethod() { + return Qt.createQmlObject('import QtQuick; import QtQuick.VirtualKeyboard.Plugins; HandwritingInputMethod {}', parent) + } + sharedLayouts: ['symbols'] + + KeyboardRow { + Layout.preferredHeight: 3 + TraceInputKey { + objectName: "hwrInputArea" + patternRecognitionMode: InputEngine.PatternRecognitionMode.Handwriting + horizontalRulers: + InputContext.inputEngine.inputMode !== InputEngine.InputMode.Cyrillic ? [] : + [Math.round(boundingBox.height / 4), Math.round(boundingBox.height / 4) * 2, Math.round(boundingBox.height / 4) * 3] + } + } + KeyboardRow { + id: bottomRow + Layout.preferredHeight: 1 + keyWeight: 160 + ShiftKey { + weight: 240 + } + InputModeKey { + } + Key { + key: Qt.Key_Comma + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + weight: 10 * 160 - 4 * 160 - 2 * 240 + } + Key { + key: Qt.Key_Period + text: "." + alternativeKeys: "<>()/\\\"'=+-_:;.?!" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + BackspaceKey { + } + EnterKey { + weight: 240 + } + } +} diff --git a/src/layouts/sr_SP/main.qml b/src/layouts/sr_SP/main.qml new file mode 100644 index 00000000..461c426a --- /dev/null +++ b/src/layouts/sr_SP/main.qml @@ -0,0 +1,381 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayoutLoader { + sharedLayouts: ['symbols'] + sourceComponent: InputContext.inputEngine.inputMode === InputEngine.InputMode.Cyrillic ? cyrillicLayout : latinLayout + Component { + id: cyrillicLayout + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + text: "љ" + } + Key { + id: normalKey + text: "њ" + } + Key { + text: "е" + } + Key { + text: "р" + } + Key { + text: "т" + } + Key { + text: "з" + } + Key { + text: "у" + } + Key { + text: "и" + } + Key { + text: "о" + } + Key { + text: "п" + } + Key { + text: "ш" + } + } + KeyboardRow { + Key { + text: "а" + } + Key { + text: "с" + } + Key { + text: "д" + } + Key { + text: "ф" + } + Key { + text: "г" + } + Key { + text: "х" + } + Key { + text: "ј" + } + Key { + text: "к" + } + Key { + text: "л" + } + Key { + text: "ч" + } + Key { + text: "ћ" + } + } + KeyboardRow { + ShiftKey { + } + Key { + text: "ѕ" + } + Key { + text: "џ" + } + Key { + text: "ц" + } + Key { + text: "в" + } + Key { + text: "б" + } + Key { + text: "н" + } + Key { + text: "м" + } + Key { + text: "ђ" + } + Key { + text: "ж" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + InputModeKey { + inputModes: [InputEngine.InputMode.Cyrillic, InputEngine.InputMode.Latin] + weight: normalKeyWidth + Layout.fillWidth: false + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } + Component { + id: latinLayout + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + id: normalKey + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_E + text: "e" + alternativeKeys: "êeëèé" + } + Key { + key: Qt.Key_R + text: "r" + alternativeKeys: "ŕrř" + } + Key { + key: Qt.Key_T + text: "t" + alternativeKeys: "ţtŧť" + } + Key { + key: Qt.Key_Z + text: "z" + alternativeKeys: "zž" + } + Key { + key: Qt.Key_U + text: "u" + alternativeKeys: "űūũûüuùú" + } + Key { + key: Qt.Key_I + text: "i" + alternativeKeys: "îïīĩiìí" + } + Key { + key: Qt.Key_O + text: "o" + alternativeKeys: "œøõôöòóo" + } + Key { + key: Qt.Key_P + text: "p" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + } + Key { + key: Qt.Key_A + text: "a" + alternativeKeys: (InputContext.inputMethodHints & (Qt.ImhEmailCharactersOnly | Qt.ImhUrlCharactersOnly)) ? "a@äåãâàá" : "aäåãâàá" + smallTextVisible: (InputContext.inputMethodHints & (Qt.ImhEmailCharactersOnly | Qt.ImhUrlCharactersOnly)) + weight: normalKeyWidth + Layout.fillWidth: false + } + } + Key { + key: Qt.Key_S + text: "s" + alternativeKeys: "šsşś" + } + Key { + key: Qt.Key_D + text: "d" + alternativeKeys: "dđď" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + alternativeKeys: "ġgģĝğ" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + Key { + key: Qt.Key_L + text: "l" + alternativeKeys: "ĺŀłļľl" + weight: normalKeyWidth + Layout.fillWidth: false + } + FillerKey { + } + } + } + KeyboardRow { + ShiftKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Y + text: "y" + } + Key { + key: Qt.Key_X + text: "x" + } + Key { + key: Qt.Key_C + text: "c" + alternativeKeys: "çcċčć" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + alternativeKeys: "ņńnň" + } + Key { + key: Qt.Key_M + text: "m" + } + BackspaceKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + InputModeKey { + enabled: !(InputContext.inputMethodHints & Qt.ImhLatinOnly) && inputModeCount > 1 + inputModes: [InputEngine.InputMode.Cyrillic, InputEngine.InputMode.Latin] + weight: normalKeyWidth + Layout.fillWidth: false + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } +} diff --git a/src/layouts/sr_SP/numbers.fallback b/src/layouts/sr_SP/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/sr_SP/numbers.fallback diff --git a/src/layouts/sr_SP/symbols.fallback b/src/layouts/sr_SP/symbols.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/sr_SP/symbols.fallback diff --git a/src/layouts/sv_SE/dialpad.fallback b/src/layouts/sv_SE/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/sv_SE/dialpad.fallback diff --git a/src/layouts/sv_SE/digits.fallback b/src/layouts/sv_SE/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/sv_SE/digits.fallback diff --git a/src/layouts/sv_SE/handwriting.fallback b/src/layouts/sv_SE/handwriting.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/sv_SE/handwriting.fallback diff --git a/src/layouts/sv_SE/main.qml b/src/layouts/sv_SE/main.qml new file mode 100644 index 00000000..8d02cffb --- /dev/null +++ b/src/layouts/sv_SE/main.qml @@ -0,0 +1,214 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayout { + inputMode: InputEngine.InputMode.Latin + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + id: normalKey + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_E + text: "e" + } + Key { + key: Qt.Key_R + text: "r" + } + Key { + key: Qt.Key_T + text: "t" + } + Key { + key: Qt.Key_Y + text: "y" + } + Key { + key: Qt.Key_U + text: "u" + } + Key { + key: Qt.Key_I + text: "i" + } + Key { + key: Qt.Key_O + text: "o" + } + Key { + key: Qt.Key_P + text: "p" + } + Key { + key: Qt.Key_Aring + text: "å" + } + } + KeyboardRow { + Key { + key: Qt.Key_A + text: "a" + } + Key { + key: Qt.Key_S + text: "s" + } + Key { + key: Qt.Key_D + text: "d" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + Key { + key: Qt.Key_L + text: "l" + } + Key { + key: Qt.Key_Odiaeresis + text: "ö" + } + Key { + key: Qt.Key_Adiaeresis + text: "ä" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + ShiftKey { + weight: 240 + } + FillerKey { + weight: 80 + } + } + Key { + key: Qt.Key_Z + text: "z" + } + Key { + key: Qt.Key_X + text: "x" + } + Key { + key: Qt.Key_C + text: "c" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + } + Key { + key: Qt.Key_M + text: "m" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + weight: 80 + } + BackspaceKey { + weight: 240 + } + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } +} diff --git a/src/layouts/sv_SE/numbers.fallback b/src/layouts/sv_SE/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/sv_SE/numbers.fallback diff --git a/src/layouts/sv_SE/symbols.fallback b/src/layouts/sv_SE/symbols.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/sv_SE/symbols.fallback diff --git a/src/layouts/th_TH/dialpad.fallback b/src/layouts/th_TH/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/th_TH/dialpad.fallback diff --git a/src/layouts/th_TH/digits.fallback b/src/layouts/th_TH/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/th_TH/digits.fallback diff --git a/src/layouts/th_TH/handwriting.fallback b/src/layouts/th_TH/handwriting.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/th_TH/handwriting.fallback diff --git a/src/layouts/th_TH/handwriting.qml b/src/layouts/th_TH/handwriting.qml new file mode 100644 index 00000000..8cf4301c --- /dev/null +++ b/src/layouts/th_TH/handwriting.qml @@ -0,0 +1,84 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayout { + function createInputMethod() { + return Qt.createQmlObject('import QtQuick; import QtQuick.VirtualKeyboard.Plugins; HandwritingInputMethod {}', parent) + } + sharedLayouts: ['symbols'] + + KeyboardRow { + Layout.preferredHeight: 3 + TraceInputKey { + objectName: "hwrInputArea" + patternRecognitionMode: InputEngine.PatternRecognitionMode.Handwriting + horizontalRulers: + InputContext.inputEngine.inputMode !== InputEngine.InputMode.Thai ? [] : + [Math.round(boundingBox.height / 4), Math.round(boundingBox.height / 4) * 3] + } + } + KeyboardRow { + id: bottomRow + Layout.preferredHeight: 1 + keyWeight: 160 + ShiftKey { + weight: 240 + } + InputModeKey { + } + Key { + key: Qt.Key_Comma + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + weight: 10 * 160 - 4 * 160 - 2 * 240 + } + Key { + key: Qt.Key_Period + text: "." + alternativeKeys: "<>()/\\\"'=+-_:;.?!" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + BackspaceKey { + } + EnterKey { + weight: 240 + } + } +} diff --git a/src/layouts/th_TH/main.qml b/src/layouts/th_TH/main.qml new file mode 100644 index 00000000..41f104d3 --- /dev/null +++ b/src/layouts/th_TH/main.qml @@ -0,0 +1,485 @@ +/**************************************************************************** +** +** Copyright (C) 2018 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayoutLoader { + inputMode: InputEngine.InputMode.Latin + function createInputMethod() { + return Qt.createQmlObject('import QtQuick; import QtQuick.VirtualKeyboard.Plugins; ThaiInputMethod {}', parent, "main.qml") + } + sharedLayouts: [ "symbols" ] + sourceComponent: InputContext.shiftActive ? page2 : page1 + Component { + id: page1 + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Layout.preferredHeight: 3 + smallTextVisible: true + KeyboardColumn { + KeyboardRow { + Key { + text: "ๅ" + alternativeKeys: "ๅ1๑" + } + Key { + id: normalKey + text: "/" + alternativeKeys: "/2๒" + } + Key { + text: "_" + alternativeKeys: "_3๓" + } + Key { + text: "ภ" + alternativeKeys: "ภ4๔" + } + Key { + text: "ถ" + alternativeKeys: "ถ5๕" + } + Key { + text: "\u0E38" + displayText: " \u0E38" + alternativeKeys: [ "\u0E38", " \u0E39" ] + } + Key { + text: "\u0E36" + displayText: " \u0E36" + } + Key { + text: "ค" + alternativeKeys: "ค6๖" + } + Key { + text: "ต" + alternativeKeys: "ต7๗" + } + Key { + text: "จ" + alternativeKeys: "จ8๘" + } + Key { + text: "ข" + alternativeKeys: "๙ข9" + } + Key { + text: "ช" + alternativeKeys: "๐ช0" + } + } + KeyboardRow { + Key { + text: "ๆ" + } + Key { + text: "ไ" + alternativeKeys: "ไ\"" + } + Key { + text: " ำ" + alternativeKeys: " ำฎ" + } + Key { + text: "พ" + alternativeKeys: "พฑ" + } + Key { + text: "ะ" + alternativeKeys: "ะธ" + } + Key { + text: "\u0E31" + displayText: " \u0E31" + alternativeKeys: "\u0E31。" + } + Key { + text: "\u0E35" + displayText: " \u0E35" + alternativeKeys: [ "\u0E35", " \u0E4A" ] + } + Key { + text: "ร" + alternativeKeys: "รณ" + } + Key { + text: "น" + alternativeKeys: "นฯ" + } + Key { + text: "ย" + alternativeKeys: "ยญ" + } + Key { + text: "บ" + alternativeKeys: "บฐ" + } + Key { + text: "ล" + } + } + KeyboardRow { + Key { + text: "ฟ" + alternativeKeys: "ฟฤ" + } + Key { + text: "ห" + alternativeKeys: "หฆ" + } + Key { + text: "ก" + alternativeKeys: "กฏ" + } + Key { + text: "ด" + alternativeKeys: "ดโ" + } + Key { + text: "เ" + alternativeKeys: "เฌ" + } + Key { + text: "\u0E49" + displayText: " \u0E49" + alternativeKeys: [ "\u0E49", " \u0E47" ] + } + Key { + text: "\u0E48" + displayText: " \u0E48" + alternativeKeys: [ "\u0E48", " \u0E4B" ] + } + Key { + text: "า" + alternativeKeys: "าษ" + } + Key { + text: "ส" + alternativeKeys: "สศ" + } + Key { + text: "ว" + } + Key { + text: "ง" + } + Key { + text: "ซ" + } + } + KeyboardRow { + ShiftKey { + } + Key { + text: "ผ" + } + Key { + text: "ป" + } + Key { + text: "แ" + alternativeKeys: "แฉ" + } + Key { + text: "อ" + alternativeKeys: "อฮ" + } + Key { + text: "\u0E34" + displayText: " \u0E34" + alternativeKeys: [ "\u0E34", " \u0E3A" ] + } + Key { + text: "\u0E37" + displayText: " \u0E37" + alternativeKeys: [ "\u0E37", " \u0E4C" ] + } + Key { + text: "ท" + } + Key { + text: "ม" + alternativeKeys: "มฒ" + } + Key { + text: "ใ" + alternativeKeys: "ใฬ" + } + Key { + text: "ฝ" + alternativeKeys: "ฝฦ" + } + BackspaceKey { + } + } + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } + Component { + id: page2 + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Layout.preferredHeight: 3 + smallTextVisible: true + KeyboardColumn { + KeyboardRow { + Key { + text: "+" + } + Key { + id: normalKey + text: "๑" + } + Key { + text: "๒" + } + Key { + text: "๓" + } + Key { + text: "๔" + } + Key { + text: "\u0E39" + displayText: " \u0E39" + } + Key { + text: "฿" + } + Key { + text: "๕" + } + Key { + text: "๖" + } + Key { + text: "๗" + } + Key { + text: "๘" + } + Key { + text: "๙" + } + } + KeyboardRow { + Key { + text: "๐" + } + Key { + text: "\"" + } + Key { + text: "ฎ" + } + Key { + text: "ฑ" + } + Key { + text: "ธ" + } + Key { + text: "。" + } + Key { + text: "\u0E4A" + displayText: " \u0E4A" + } + Key { + text: "ณ" + } + Key { + text: "ฯ" + } + Key { + text: "ญ" + } + Key { + text: "ฐ" + } + Key { + text: "," + } + } + KeyboardRow { + Key { + text: "ฤ" + } + Key { + text: "ฆ" + } + Key { + text: "ฏ" + } + Key { + text: "โ" + } + Key { + text: "ฌ" + } + Key { + text: "\u0E47" + displayText: " \u0E47" + } + Key { + text: "\u0E4B" + displayText: " \u0E4B" + } + Key { + text: "ษ" + } + Key { + text: "ศ" + } + Key { + text: "ซ" + } + Key { + text: "." + } + Key { + text: "ฅ" + } + } + KeyboardRow { + ShiftKey { + } + Key { + text: "(" + } + Key { + text: ")" + } + Key { + text: "ฉ" + } + Key { + text: "ฮ" + } + Key { + text: "\u0E3A" + displayText: " \u0E3A" + } + Key { + text: "\u0E4C" + displayText: " \u0E4C" + } + Key { + text: "?" + } + Key { + text: "ฒ" + } + Key { + text: "ฬ" + } + Key { + text: "ฦ" + } + BackspaceKey { + } + } + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } +} diff --git a/src/layouts/th_TH/numbers.fallback b/src/layouts/th_TH/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/th_TH/numbers.fallback diff --git a/src/layouts/th_TH/symbols.qml b/src/layouts/th_TH/symbols.qml new file mode 100644 index 00000000..fbe3c801 --- /dev/null +++ b/src/layouts/th_TH/symbols.qml @@ -0,0 +1,368 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayoutLoader { + property bool secondPage + onVisibleChanged: if (!visible) secondPage = false + sourceComponent: secondPage ? page2 : page1 + Component { + id: page1 + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_1 + text: "1" + } + Key { + id: normalKey + key: Qt.Key_2 + text: "2" + } + Key { + key: Qt.Key_3 + text: "3" + } + Key { + key: Qt.Key_4 + text: "4" + } + Key { + key: Qt.Key_5 + text: "5" + } + Key { + key: Qt.Key_6 + text: "6" + } + Key { + key: Qt.Key_7 + text: "7" + } + Key { + key: Qt.Key_8 + text: "8" + } + Key { + key: Qt.Key_9 + text: "9" + } + Key { + key: Qt.Key_0 + text: "0" + } + } + KeyboardRow { + Key { + key: Qt.Key_At + text: "@" + } + Key { + key: Qt.Key_NumberSign + text: "#" + } + Key { + key: Qt.Key_Percent + text: "%" + } + Key { + key: Qt.Key_Ampersand + text: "&" + } + Key { + key: Qt.Key_Asterisk + text: "*" + } + Key { + key: Qt.Key_Underscore + text: "_" + } + Key { + key: Qt.Key_Minus + text: "-" + } + Key { + key: Qt.Key_Plus + text: "+" + } + Key { + key: Qt.Key_ParenLeft + text: "(" + } + Key { + key: Qt.Key_ParenRight + text: ")" + } + } + KeyboardRow { + Key { + displayText: "1/2" + functionKey: true + onClicked: secondPage = !secondPage + highlighted: true + } + Key { + key: Qt.Key_QuoteDbl + text: '"' + } + Key { + key: Qt.Key_Less + text: "<" + } + Key { + key: Qt.Key_Greater + text: ">" + } + Key { + key: Qt.Key_Apostrophe + text: "'" + } + Key { + key: Qt.Key_Colon + text: ":" + } + Key { + key: Qt.Key_Slash + text: "/" + } + Key { + key: Qt.Key_Exclam + text: "!" + } + Key { + key: Qt.Key_Question + text: "?" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + displayText: "กขค" + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } + Component { + id: page2 + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_AsciiTilde + text: "~" + } + Key { + id: normalKey + key: Qt.Key_Agrave + text: "`" + } + Key { + key: Qt.Key_Bar + text: "|" + } + Key { + key: 0x7B + text: "·" + } + Key { + key: 0x221A + text: "√" + } + Key { + key: Qt.Key_division + text: "÷" + } + Key { + key: Qt.Key_multiply + text: "×" + } + Key { + key: Qt.Key_onehalf + text: "½" + alternativeKeys: "¼⅓½¾⅞" + } + Key { + key: Qt.Key_BraceLeft + text: "{" + } + Key { + key: Qt.Key_BraceRight + text: "}" + } + } + KeyboardRow { + Key { + key: Qt.Key_Dollar + text: "$" + alternativeKeys: "$¢" + } + Key { + key: 0x20AC + text: "€" + } + Key { + key: 0xC2 + text: "£" + } + Key { + text: "฿" + } + Key { + key: 0xA5 + text: "¥" + } + Key { + key: Qt.Key_AsciiCircum + text: "^" + } + Key { + key: Qt.Key_Equal + text: "=" + } + Key { + key: Qt.Key_section + text: "§" + } + Key { + key: Qt.Key_BracketLeft + text: "[" + } + Key { + key: Qt.Key_BracketRight + text: "]" + } + } + KeyboardRow { + Key { + displayText: "2/2" + functionKey: true + onClicked: secondPage = !secondPage + highlighted: true + } + Key { + key: 0x2122 + text: '™' + } + Key { + key: 0x00AE + text: '®' + } + Key { + key: Qt.Key_guillemotleft + text: '«' + } + Key { + key: Qt.Key_guillemotright + text: '»' + } + Key { + key: Qt.Key_Semicolon + text: ";" + } + Key { + key: 0x201C + text: '“' + } + Key { + key: 0x201D + text: '”' + } + Key { + key: Qt.Key_Backslash + text: "\\" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + displayText: "กขค" + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: 0x2026 + weight: normalKeyWidth + Layout.fillWidth: false + text: "\u2026" + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } +} diff --git a/src/layouts/tr_TR/dialpad.fallback b/src/layouts/tr_TR/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/tr_TR/dialpad.fallback diff --git a/src/layouts/tr_TR/digits.fallback b/src/layouts/tr_TR/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/tr_TR/digits.fallback diff --git a/src/layouts/tr_TR/handwriting.fallback b/src/layouts/tr_TR/handwriting.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/tr_TR/handwriting.fallback diff --git a/src/layouts/tr_TR/main.qml b/src/layouts/tr_TR/main.qml new file mode 100644 index 00000000..ff097e1c --- /dev/null +++ b/src/layouts/tr_TR/main.qml @@ -0,0 +1,232 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayout { + inputMode: InputEngine.InputMode.Latin + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + id: normalKey + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_E + text: "e" + } + Key { + key: Qt.Key_R + text: "r" + } + Key { + key: Qt.Key_T + text: "t" + } + Key { + key: Qt.Key_Y + text: "y" + } + Key { + key: Qt.Key_U + text: "u" + } + Key { + text: "\u0131" + } + Key { + key: Qt.Key_O + text: "o" + } + Key { + key: Qt.Key_P + text: "p" + } + Key { + text: "ğ" + } + Key { + key: Qt.Key_Udiaeresis + text: "ü" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + } + Key { + key: Qt.Key_A + text: "a" + alternativeKeys: "aåä" + weight: normalKeyWidth + Layout.fillWidth: false + } + } + Key { + key: Qt.Key_S + text: "s" + alternativeKeys: "sš" + } + Key { + key: Qt.Key_D + text: "d" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + Key { + key: Qt.Key_L + text: "l" + } + Key { + text: "ş" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + Key { + key: Qt.Key_I + text: "i" + weight: normalKeyWidth + Layout.fillWidth: false + } + FillerKey { + } + } + } + KeyboardRow { + ShiftKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Z + text: "z" + alternativeKeys: "zž" + } + Key { + key: Qt.Key_X + text: "x" + alternativeKeys: "$¢x₺€¥£" + smallTextVisible: true + } + Key { + key: Qt.Key_C + text: "c" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + } + Key { + key: Qt.Key_M + text: "m" + } + Key { + key: Qt.Key_Odiaeresis + text: "ö" + } + Key { + key: Qt.Key_Ccedilla + text: "ç" + } + BackspaceKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } +} diff --git a/src/layouts/tr_TR/numbers.fallback b/src/layouts/tr_TR/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/tr_TR/numbers.fallback diff --git a/src/layouts/tr_TR/symbols.fallback b/src/layouts/tr_TR/symbols.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/tr_TR/symbols.fallback diff --git a/src/layouts/uk_UA/dialpad.fallback b/src/layouts/uk_UA/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/uk_UA/dialpad.fallback diff --git a/src/layouts/uk_UA/digits.fallback b/src/layouts/uk_UA/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/uk_UA/digits.fallback diff --git a/src/layouts/uk_UA/handwriting.qml b/src/layouts/uk_UA/handwriting.qml new file mode 100644 index 00000000..092d746e --- /dev/null +++ b/src/layouts/uk_UA/handwriting.qml @@ -0,0 +1,84 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayout { + function createInputMethod() { + return Qt.createQmlObject('import QtQuick; import QtQuick.VirtualKeyboard.Plugins; HandwritingInputMethod {}', parent) + } + sharedLayouts: ['symbols'] + + KeyboardRow { + Layout.preferredHeight: 3 + TraceInputKey { + objectName: "hwrInputArea" + patternRecognitionMode: InputEngine.PatternRecognitionMode.Handwriting + horizontalRulers: + InputContext.inputEngine.inputMode !== InputEngine.InputMode.Cyrillic ? [] : + [Math.round(boundingBox.height / 4), Math.round(boundingBox.height / 4) * 2, Math.round(boundingBox.height / 4) * 3] + } + } + KeyboardRow { + id: bottomRow + Layout.preferredHeight: 1 + keyWeight: 160 + ShiftKey { + weight: 240 + } + InputModeKey { + } + Key { + key: Qt.Key_Comma + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + weight: 10 * 160 - 4 * 160 - 2 * 240 + } + Key { + key: Qt.Key_Period + text: "." + alternativeKeys: "<>()/\\\"'=+-_:;.?!" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + BackspaceKey { + } + EnterKey { + weight: 240 + } + } +} diff --git a/src/layouts/uk_UA/main.qml b/src/layouts/uk_UA/main.qml new file mode 100644 index 00000000..48f1507f --- /dev/null +++ b/src/layouts/uk_UA/main.qml @@ -0,0 +1,407 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayoutLoader { + sharedLayouts: ['symbols'] + sourceComponent: InputContext.inputEngine.inputMode === InputEngine.InputMode.Cyrillic ? cyrillicLayout : latinLayout + Component { + id: cyrillicLayout + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + text: "й" + } + Key { + id: normalKey + text: "ц" + } + Key { + text: "у" + } + Key { + text: "к" + } + Key { + text: "е" + } + Key { + text: "н" + } + Key { + text: "г" + } + Key { + text: "ш" + } + Key { + text: "щ" + } + Key { + text: "з" + } + Key { + text: "х" + } + Key { + text: "ї" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + } + Key { + text: "ф" + weight: normalKeyWidth + Layout.fillWidth: false + } + } + Key { + text: "і" + } + Key { + text: "в" + } + Key { + text: "а" + } + Key { + text: "п" + } + Key { + text: "р" + } + Key { + text: "о" + } + Key { + text: "л" + } + Key { + text: "д" + } + Key { + text: "ж" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + Key { + text: "є" + weight: normalKeyWidth + Layout.fillWidth: false + } + FillerKey { + } + } + } + KeyboardRow { + ShiftKey { + } + Key { + text: "ґ" + } + Key { + text: "я" + alternativeKeys: "$¢я₴€¥£" + smallTextVisible: true + } + Key { + text: "ч" + } + Key { + text: "с" + } + Key { + text: "м" + } + Key { + text: "и" + } + Key { + text: "т" + } + Key { + text: "ь" + } + Key { + text: "б" + } + Key { + text: "ю" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + InputModeKey { + inputModes: [InputEngine.InputMode.Cyrillic, InputEngine.InputMode.Latin] + weight: normalKeyWidth + Layout.fillWidth: false + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } + Component { + id: latinLayout + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + id: normalKey + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_E + text: "e" + alternativeKeys: "êeëèé" + } + Key { + key: Qt.Key_R + text: "r" + alternativeKeys: "ŕrř" + } + Key { + key: Qt.Key_T + text: "t" + alternativeKeys: "ţtŧť" + } + Key { + key: Qt.Key_Y + text: "y" + } + Key { + key: Qt.Key_U + text: "u" + alternativeKeys: "űūũûüuùú" + } + Key { + key: Qt.Key_I + text: "i" + alternativeKeys: "îïīĩiìí" + } + Key { + key: Qt.Key_O + text: "o" + alternativeKeys: "œøõôöòóo" + } + Key { + key: Qt.Key_P + text: "p" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + } + Key { + key: Qt.Key_A + text: "a" + alternativeKeys: (InputContext.inputMethodHints & (Qt.ImhEmailCharactersOnly | Qt.ImhUrlCharactersOnly)) ? "a@äåãâàá" : "aäåãâàá" + smallTextVisible: (InputContext.inputMethodHints & (Qt.ImhEmailCharactersOnly | Qt.ImhUrlCharactersOnly)) + weight: normalKeyWidth + Layout.fillWidth: false + } + } + Key { + key: Qt.Key_S + text: "s" + alternativeKeys: "šsşś" + } + Key { + key: Qt.Key_D + text: "d" + alternativeKeys: "dđď" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + alternativeKeys: "ġgģĝğ" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + Key { + key: Qt.Key_L + text: "l" + alternativeKeys: "ĺŀłļľl" + weight: normalKeyWidth + Layout.fillWidth: false + } + FillerKey { + } + } + } + KeyboardRow { + ShiftKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Z + text: "z" + alternativeKeys: "zž" + } + Key { + key: Qt.Key_X + text: "x" + alternativeKeys: "$¢x₴€¥£" + smallTextVisible: true + } + Key { + key: Qt.Key_C + text: "c" + alternativeKeys: "çcċčć" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + alternativeKeys: "ņńnň" + } + Key { + key: Qt.Key_M + text: "m" + } + BackspaceKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + InputModeKey { + enabled: !(InputContext.inputMethodHints & Qt.ImhLatinOnly) && inputModeCount > 1 + inputModes: [InputEngine.InputMode.Cyrillic, InputEngine.InputMode.Latin] + weight: normalKeyWidth + Layout.fillWidth: false + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } +} diff --git a/src/layouts/uk_UA/numbers.fallback b/src/layouts/uk_UA/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/uk_UA/numbers.fallback diff --git a/src/layouts/uk_UA/symbols.fallback b/src/layouts/uk_UA/symbols.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/uk_UA/symbols.fallback diff --git a/src/layouts/vi_VN/dialpad.fallback b/src/layouts/vi_VN/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/vi_VN/dialpad.fallback diff --git a/src/layouts/vi_VN/digits.fallback b/src/layouts/vi_VN/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/vi_VN/digits.fallback diff --git a/src/layouts/vi_VN/handwriting.fallback b/src/layouts/vi_VN/handwriting.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/vi_VN/handwriting.fallback diff --git a/src/layouts/vi_VN/main.qml b/src/layouts/vi_VN/main.qml new file mode 100644 index 00000000..05efb1ca --- /dev/null +++ b/src/layouts/vi_VN/main.qml @@ -0,0 +1,217 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components +import QtQuick.Layouts + +KeyboardLayout { + inputMode: InputEngine.InputMode.Latin + sharedLayouts: ["numbers", "digits"] + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + id: normalKey + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_E + text: "e" + alternativeKeys: "eèéẻẽẹêềếểễệ" + } + Key { + key: Qt.Key_R + text: "r" + } + Key { + key: Qt.Key_T + text: "t" + } + Key { + key: Qt.Key_Y + text: "y" + alternativeKeys: "yỳýỷỹỵ" + } + Key { + key: Qt.Key_U + text: "u" + alternativeKeys: "ưừứửữựuùúủũụ" + } + Key { + key: Qt.Key_I + text: "i" + alternativeKeys: "iìíỉĩị" + } + Key { + key: Qt.Key_O + text: "o" + alternativeKeys: "ơờớởỡợòóỏõọoôồốổỗộ" + } + Key { + key: Qt.Key_P + text: "p" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + } + Key { + key: Qt.Key_A + text: "a" + alternativeKeys: "aàáảãạăằắẳẵặâầấẩẫậ" + weight: normalKeyWidth + Layout.fillWidth: false + } + } + Key { + key: Qt.Key_S + text: "s" + alternativeKeys: "sš" + } + Key { + key: Qt.Key_D + text: "d" + alternativeKeys: "dđ" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + Key { + key: Qt.Key_L + text: "l" + weight: normalKeyWidth + Layout.fillWidth: false + } + FillerKey { + } + } + } + KeyboardRow { + ShiftKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Z + text: "z" + alternativeKeys: "zž" + } + Key { + key: Qt.Key_X + text: "x" + } + Key { + key: Qt.Key_C + text: "c" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + alternativeKeys: "nñ" + } + Key { + key: Qt.Key_M + text: "m" + } + BackspaceKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + alternativeKeys: "!.?" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } +} diff --git a/src/layouts/vi_VN/numbers.fallback b/src/layouts/vi_VN/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/vi_VN/numbers.fallback diff --git a/src/layouts/vi_VN/symbols.qml b/src/layouts/vi_VN/symbols.qml new file mode 100644 index 00000000..d315b9d0 --- /dev/null +++ b/src/layouts/vi_VN/symbols.qml @@ -0,0 +1,368 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayoutLoader { + property bool secondPage + onVisibleChanged: if (!visible) secondPage = false + sourceComponent: secondPage ? page2 : page1 + Component { + id: page1 + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_1 + text: "1" + } + Key { + id: normalKey + key: Qt.Key_2 + text: "2" + } + Key { + key: Qt.Key_3 + text: "3" + } + Key { + key: Qt.Key_4 + text: "4" + } + Key { + key: Qt.Key_5 + text: "5" + } + Key { + key: Qt.Key_6 + text: "6" + } + Key { + key: Qt.Key_7 + text: "7" + } + Key { + key: Qt.Key_8 + text: "8" + } + Key { + key: Qt.Key_9 + text: "9" + } + Key { + key: Qt.Key_0 + text: "0" + } + } + KeyboardRow { + Key { + key: Qt.Key_At + text: "@" + } + Key { + key: Qt.Key_NumberSign + text: "#" + } + Key { + key: Qt.Key_Percent + text: "%" + } + Key { + key: Qt.Key_Ampersand + text: "&" + } + Key { + key: Qt.Key_Asterisk + text: "*" + } + Key { + key: Qt.Key_Underscore + text: "_" + } + Key { + key: Qt.Key_Minus + text: "-" + } + Key { + key: Qt.Key_Plus + text: "+" + } + Key { + key: Qt.Key_ParenLeft + text: "(" + } + Key { + key: Qt.Key_ParenRight + text: ")" + } + } + KeyboardRow { + Key { + displayText: "1/2" + functionKey: true + onClicked: secondPage = !secondPage + highlighted: true + } + Key { + key: Qt.Key_QuoteDbl + text: '"' + } + Key { + key: Qt.Key_Less + text: "<" + } + Key { + key: Qt.Key_Greater + text: ">" + } + Key { + key: Qt.Key_Apostrophe + text: "'" + } + Key { + key: Qt.Key_Colon + text: ":" + } + Key { + key: Qt.Key_Slash + text: "/" + } + Key { + key: Qt.Key_Exclam + text: "!" + } + Key { + key: Qt.Key_Question + text: "?" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + displayText: "ABC" + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "." + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } + Component { + id: page2 + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_AsciiTilde + text: "~" + } + Key { + id: normalKey + key: Qt.Key_Agrave + text: "`" + } + Key { + key: Qt.Key_Bar + text: "|" + } + Key { + key: 0x7B + text: "·" + } + Key { + key: 0x221A + text: "√" + } + Key { + key: Qt.Key_division + text: "÷" + } + Key { + key: Qt.Key_multiply + text: "×" + } + Key { + key: Qt.Key_onehalf + text: "½" + alternativeKeys: "¼⅓½¾⅞" + } + Key { + key: Qt.Key_BraceLeft + text: "{" + } + Key { + key: Qt.Key_BraceRight + text: "}" + } + } + KeyboardRow { + Key { + key: Qt.Key_Dollar + text: "$" + } + Key { + key: 0x20AC + text: "€" + } + Key { + key: 0xC2 + text: "£" + } + Key { + key: 0xA2 + text: "¢" + } + Key { + key: 0x20AB + text: "₫" + } + Key { + key: Qt.Key_AsciiCircum + text: "^" + } + Key { + key: Qt.Key_Equal + text: "=" + } + Key { + key: Qt.Key_section + text: "§" + } + Key { + key: Qt.Key_BracketLeft + text: "[" + } + Key { + key: Qt.Key_BracketRight + text: "]" + } + } + KeyboardRow { + Key { + displayText: "2/2" + functionKey: true + onClicked: secondPage = !secondPage + highlighted: true + } + Key { + key: 0x2122 + text: '™' + } + Key { + key: 0x00AE + text: '®' + } + Key { + key: Qt.Key_guillemotleft + text: '«' + } + Key { + key: Qt.Key_guillemotright + text: '»' + } + Key { + key: Qt.Key_Semicolon + text: ";" + } + Key { + key: 0x201C + text: '“' + } + Key { + key: 0x201D + text: '”' + } + Key { + key: Qt.Key_Backslash + text: "\\" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + displayText: "ABC" + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: 0x2026 + weight: normalKeyWidth + Layout.fillWidth: false + text: "\u2026" + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } +} diff --git a/src/layouts/zh_CN/dialpad.fallback b/src/layouts/zh_CN/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/zh_CN/dialpad.fallback diff --git a/src/layouts/zh_CN/digits.fallback b/src/layouts/zh_CN/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/zh_CN/digits.fallback diff --git a/src/layouts/zh_CN/handwriting.qml b/src/layouts/zh_CN/handwriting.qml new file mode 100644 index 00000000..f365bd15 --- /dev/null +++ b/src/layouts/zh_CN/handwriting.qml @@ -0,0 +1,100 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayout { + function createInputMethod() { + return Qt.createQmlObject('import QtQuick; import QtQuick.VirtualKeyboard.Plugins; HandwritingInputMethod {}', parent) + } + sharedLayouts: ['symbols'] + inputMode: preferredInputMode() + + Connections { + target: InputContext + function 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.InputMode.Latin : InputEngine.InputMode.ChineseHandwriting + } + + KeyboardRow { + Layout.preferredHeight: 3 + TraceInputKey { + objectName: "hwrInputArea" + patternRecognitionMode: InputEngine.PatternRecognitionMode.Handwriting + horizontalRulers: + InputContext.inputEngine.inputMode !== InputEngine.InputMode.ChineseHandwriting ? [] : + [Math.round(boundingBox.height / 4), Math.round(boundingBox.height / 4) * 2, Math.round(boundingBox.height / 4) * 3] + } + } + KeyboardRow { + id: bottomRow + Layout.preferredHeight: 1 + keyWeight: 160 + ShiftKey { + weight: 240 + } + InputModeKey { + } + Key { + key: Qt.Key_Comma + text: "、" + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + weight: 10 * 160 - 4 * 160 - 2 * 240 + } + Key { + key: Qt.Key_Period + text: "。" + alternativeKeys: "¥‘’“”~…—《》〈〉「」\",.:;。?!" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + BackspaceKey { + } + EnterKey { + weight: 240 + } + } +} diff --git a/src/layouts/zh_CN/main.qml b/src/layouts/zh_CN/main.qml new file mode 100644 index 00000000..717d451f --- /dev/null +++ b/src/layouts/zh_CN/main.qml @@ -0,0 +1,212 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayout { + function createInputMethod() { + return Qt.createQmlObject('import QtQuick; import QtQuick.VirtualKeyboard.Plugins; PinyinInputMethod {}', parent, "main.qml") + } + sharedLayouts: ['symbols'] + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_Q + text: "q" + } + Key { + id: normalKey + key: Qt.Key_W + text: "w" + } + Key { + key: Qt.Key_E + text: "e" + } + Key { + key: Qt.Key_R + text: "r" + } + Key { + key: Qt.Key_T + text: "t" + } + Key { + key: Qt.Key_Y + text: "y" + } + Key { + key: Qt.Key_U + text: "u" + } + Key { + key: Qt.Key_I + text: "i" + } + Key { + key: Qt.Key_O + text: "o" + } + Key { + key: Qt.Key_P + text: "p" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + } + Key { + key: Qt.Key_A + text: "a" + weight: normalKeyWidth + Layout.fillWidth: false + } + } + Key { + key: Qt.Key_S + text: "s" + } + Key { + key: Qt.Key_D + text: "d" + } + Key { + key: Qt.Key_F + text: "f" + } + Key { + key: Qt.Key_G + text: "g" + } + Key { + key: Qt.Key_H + text: "h" + } + Key { + key: Qt.Key_J + text: "j" + } + Key { + key: Qt.Key_K + text: "k" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + Key { + key: Qt.Key_L + text: "l" + weight: normalKeyWidth + Layout.fillWidth: false + } + FillerKey { + } + } + } + KeyboardRow { + Key { + weight: functionKeyWidth + Layout.fillWidth: false + enabled: InputContext.preeditText.length > 0 + key: Qt.Key_Apostrophe + text: "'" + } + Key { + key: Qt.Key_Z + text: "z" + } + Key { + key: Qt.Key_X + text: "x" + } + Key { + key: Qt.Key_C + text: "c" + } + Key { + key: Qt.Key_V + text: "v" + } + Key { + key: Qt.Key_B + text: "b" + } + Key { + key: Qt.Key_N + text: "n" + } + Key { + key: Qt.Key_M + text: "m" + } + BackspaceKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "\uFF0C" + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "\uFF0E" + alternativeKeys: "\uFF1B\u3001\uFF0E\uFF1A\u3002?!" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } +} diff --git a/src/layouts/zh_CN/numbers.fallback b/src/layouts/zh_CN/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/zh_CN/numbers.fallback diff --git a/src/layouts/zh_CN/symbols.qml b/src/layouts/zh_CN/symbols.qml new file mode 100644 index 00000000..7ffcdb43 --- /dev/null +++ b/src/layouts/zh_CN/symbols.qml @@ -0,0 +1,478 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayoutLoader { + function createInputMethod() { + return Qt.createQmlObject('import QtQuick; import QtQuick.VirtualKeyboard.Plugins; PinyinInputMethod {}', parent, "symbols.qml") + } + sharedLayouts: ['main'] + property int page + readonly property int numPages: 3 + sourceComponent: { + switch (page) { + case 2: return page3 + case 1: return page2 + default: return page1 + } + } + Component { + id: page1 + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_1 + text: "1" + } + Key { + id: normalKey + key: Qt.Key_2 + text: "2" + } + Key { + key: Qt.Key_3 + text: "3" + } + Key { + key: Qt.Key_4 + text: "4" + } + Key { + key: Qt.Key_5 + text: "5" + } + Key { + key: Qt.Key_6 + text: "6" + } + Key { + key: Qt.Key_7 + text: "7" + } + Key { + key: Qt.Key_8 + text: "8" + } + Key { + key: Qt.Key_9 + text: "9" + } + Key { + key: Qt.Key_0 + text: "0" + } + } + KeyboardRow { + Key { + key: Qt.Key_1 + text: "@" + } + Key { + key: Qt.Key_1 + text: "#" + } + Key { + key: Qt.Key_1 + text: "%" + } + Key { + key: Qt.Key_1 + text: "&" + } + Key { + key: Qt.Key_1 + text: "*" + } + Key { + key: Qt.Key_1 + text: "_" + } + Key { + key: Qt.Key_1 + text: "-" + } + Key { + key: Qt.Key_1 + text: "+" + } + Key { + key: Qt.Key_1 + text: "(" + } + Key { + key: Qt.Key_1 + text: ")" + } + } + KeyboardRow { + Key { + displayText: (page + 1) + "/" + numPages + functionKey: true + onClicked: page = (page + 1) % numPages + highlighted: true + } + Key { + text: "“" + } + Key { + text: "”" + } + Key { + text: "、" + } + Key { + text: ":" + } + Key { + text: ";" + } + Key { + text: "!" + } + Key { + text: "?" + } + Key { + text: "~" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + displayText: "ABC" + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "—" + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } + Component { + id: page2 + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + text: "½" + alternativeKeys: "½¼¾" + } + Key { + id: normalKey + text: "'" + } + Key { + text: "/" + } + Key { + text: "\\" + } + Key { + text: "|" + } + Key { + text: "[" + } + Key { + text: "]" + } + Key { + text: "{" + } + Key { + text: "}" + } + Key { + text: "·" + } + } + KeyboardRow { + Key { + text: "<" + } + Key { + text: ">" + } + Key { + text: "," + } + Key { + text: "." + } + Key { + text: ":" + } + Key { + text: ";" + } + Key { + text: "!" + } + Key { + text: "?" + } + Key { + text: "=" + } + Key { + text: "~" + } + } + KeyboardRow { + Key { + displayText: (page + 1) + "/" + numPages + functionKey: true + onClicked: page = (page + 1) % numPages + highlighted: true + } + Key { + text: "\"" + } + Key { + text: "§" + } + Key { + text: "^" + } + Key { + text: "$" + } + Key { + text: "¥" + } + Key { + text: "€" + } + Key { + text: "£" + } + Key { + text: "¢" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + displayText: "ABC" + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "。" + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } + Component { + id: page3 + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + text: "\" + } + Key { + id: normalKey + text: "/" + } + Key { + text: "(" + } + Key { + text: ")" + } + Key { + text: "〔" + } + Key { + text: "〕" + } + Key { + text: "〈" + } + Key { + text: "〉" + } + Key { + text: "《" + } + Key { + text: "》" + } + } + KeyboardRow { + Key { + text: "→" + } + Key { + text: "←" + } + Key { + text: "↑" + } + Key { + text: "↓" + } + Key { + text: "■" + } + Key { + text: "□" + } + Key { + text: "●" + } + Key { + text: "○" + } + Key { + text: "【" + } + Key { + text: "】" + } + } + KeyboardRow { + Key { + displayText: (page + 1) + "/" + numPages + functionKey: true + onClicked: page = (page + 1) % numPages + highlighted: true + } + Key { + text: "『" + } + Key { + text: "』" + } + Key { + text: "「" + } + Key { + text: "」" + } + Key { + text: "★" + } + Key { + text: "☆" + } + Key { + text: "◆" + } + Key { + text: "◇" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + displayText: "ABC" + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "…" + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } +} diff --git a/src/layouts/zh_TW/dialpad.fallback b/src/layouts/zh_TW/dialpad.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/zh_TW/dialpad.fallback diff --git a/src/layouts/zh_TW/digits.fallback b/src/layouts/zh_TW/digits.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/zh_TW/digits.fallback diff --git a/src/layouts/zh_TW/handwriting.qml b/src/layouts/zh_TW/handwriting.qml new file mode 100644 index 00000000..f365bd15 --- /dev/null +++ b/src/layouts/zh_TW/handwriting.qml @@ -0,0 +1,100 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayout { + function createInputMethod() { + return Qt.createQmlObject('import QtQuick; import QtQuick.VirtualKeyboard.Plugins; HandwritingInputMethod {}', parent) + } + sharedLayouts: ['symbols'] + inputMode: preferredInputMode() + + Connections { + target: InputContext + function 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.InputMode.Latin : InputEngine.InputMode.ChineseHandwriting + } + + KeyboardRow { + Layout.preferredHeight: 3 + TraceInputKey { + objectName: "hwrInputArea" + patternRecognitionMode: InputEngine.PatternRecognitionMode.Handwriting + horizontalRulers: + InputContext.inputEngine.inputMode !== InputEngine.InputMode.ChineseHandwriting ? [] : + [Math.round(boundingBox.height / 4), Math.round(boundingBox.height / 4) * 2, Math.round(boundingBox.height / 4) * 3] + } + } + KeyboardRow { + id: bottomRow + Layout.preferredHeight: 1 + keyWeight: 160 + ShiftKey { + weight: 240 + } + InputModeKey { + } + Key { + key: Qt.Key_Comma + text: "、" + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + weight: 10 * 160 - 4 * 160 - 2 * 240 + } + Key { + key: Qt.Key_Period + text: "。" + alternativeKeys: "¥‘’“”~…—《》〈〉「」\",.:;。?!" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + BackspaceKey { + } + EnterKey { + weight: 240 + } + } +} diff --git a/src/layouts/zh_TW/main.qml b/src/layouts/zh_TW/main.qml new file mode 100644 index 00000000..fde17ff2 --- /dev/null +++ b/src/layouts/zh_TW/main.qml @@ -0,0 +1,460 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayoutLoader { + function createInputMethod() { + return Qt.createQmlObject('import QtQuick; import QtQuick.VirtualKeyboard.Plugins; TCInputMethod {}', parent, "main.qml") + } + sharedLayouts: ['symbols'] + sourceComponent: InputContext.inputEngine.inputMode === InputEngine.InputMode.Cangjie ? pageCangjie : pageZhuyin + Component { + id: pageCangjie + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + smallTextVisible: true + KeyboardRow { + Key { + text: "\u624B" + alternativeKeys: "\u624Bq" + } + Key { + id: normalKey + text: "\u7530" + alternativeKeys: "\u7530w" + } + Key { + text: "\u6C34" + alternativeKeys: "\u6C34e" + } + Key { + text: "\u53E3" + alternativeKeys: "\u53E3r" + } + Key { + text: "\u5EFF" + alternativeKeys: "\u5EFFt" + } + Key { + text: "\u535C" + alternativeKeys: "\u535Cy" + } + Key { + text: "\u5C71" + alternativeKeys: "\u5C71u" + } + Key { + text: "\u6208" + alternativeKeys: "\u6208i" + } + Key { + text: "\u4EBA" + alternativeKeys: "\u4EBAo" + } + Key { + text: "\u5FC3" + alternativeKeys: "\u5FC3p" + } + } + KeyboardRow { + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + FillerKey { + } + Key { + text: "\u65E5" + alternativeKeys: "\u65E5a" + weight: normalKeyWidth + Layout.fillWidth: false + } + } + Key { + text: "\u5C38" + alternativeKeys: "\u5C38s" + } + Key { + text: "\u6728" + alternativeKeys: "\u6728d" + } + Key { + text: "\u706B" + alternativeKeys: "\u706Bf" + } + Key { + text: "\u571F" + alternativeKeys: "\u571Fg" + } + Key { + text: "\u7AF9" + alternativeKeys: "\u7AF9h" + } + Key { + text: "\u5341" + alternativeKeys: "\u5341j" + } + Key { + text: "\u5927" + alternativeKeys: "\u5927k" + } + KeyboardRow { + Layout.preferredWidth: functionKeyWidth + Layout.fillWidth: false + Key { + text: "\u4E2D" + alternativeKeys: "\u4E2Dl" + weight: normalKeyWidth + Layout.fillWidth: false + } + FillerKey { + } + } + } + KeyboardRow { + ModeKey { + id: simplifiedModeKey + key: Qt.Key_Mode_switch + displayText: "速成" + weight: functionKeyWidth + Layout.fillWidth: false + Component.onCompleted: updateBinding() + Connections { + target: InputContext.inputEngine + function onInputMethodChanged() { simplifiedModeKey.updateBinding() } + } + function updateBinding() { + if (InputContext.inputEngine.inputMethod && InputContext.inputEngine.inputMethod.hasOwnProperty("simplified")) { + simplifiedModeKey.mode = InputContext.inputEngine.inputMethod.simplified + InputContext.inputEngine.inputMethod.simplified = Qt.binding(function() { return simplifiedModeKey.mode }) + } + } + } + Key { + text: "\u91CD" + alternativeKeys: "\u91CDz" + } + Key { + text: "\u96E3" + alternativeKeys: "\u96E3x" + } + Key { + text: "\u91D1" + alternativeKeys: "\u91D1c" + } + Key { + text: "\u5973" + alternativeKeys: "\u5973v" + } + Key { + text: "\u6708" + alternativeKeys: "\u6708b" + } + Key { + text: "\u5F13" + alternativeKeys: "\u5F13n" + } + Key { + text: "\u4E00" + alternativeKeys: "\u4E00m" + } + BackspaceKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "\uFF0C" + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + InputModeKey { + visible: InputContext.inputEngine.inputModes.indexOf(InputEngine.InputMode.Zhuyin) !== -1 + weight: normalKeyWidth + Layout.fillWidth: false + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "\uFF0E" + alternativeKeys: "\uFF1B\u3001\uFF0E\uFF1A\u3002?!" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } + Component { + id: pageZhuyin + KeyboardLayout { + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + smallTextVisible: true + KeyboardRow { + Layout.preferredHeight: 3 + KeyboardColumn { + KeyboardRow { + Key { + text: "\u3105" + alternativeKeys: "\u31051" + } + Key { + id: normalKey + text: "\u3109" + alternativeKeys: "\u31092" + } + Key { + text: "\u02C7" + alternativeKeys: "\u02C73" + } + Key { + text: "\u02CB" + alternativeKeys: "\u02CB4" + displayText: "`" + } + Key { + text: "\u3113" + alternativeKeys: "\u31135" + } + Key { + text: "\u02CA" + alternativeKeys: "\u02CA6" + displayText: "´" + } + Key { + text: "\u02D9" + alternativeKeys: "\u02D97" + } + Key { + text: "\u311A" + alternativeKeys: "\u311A8" + } + Key { + text: "\u311E" + alternativeKeys: "\u311E9" + } + Key { + text: "\u3122" + alternativeKeys: "\u31220" + } + } + KeyboardRow { + Key { + text: "\u3106" + alternativeKeys: "\u3106q" + } + Key { + text: "\u310A" + alternativeKeys: "\u310Aw" + } + Key { + text: "\u310D" + alternativeKeys: "\u310De" + } + Key { + text: "\u3110" + alternativeKeys: "\u3110r" + } + Key { + text: "\u3114" + alternativeKeys: "\u3114t" + } + Key { + text: "\u3117" + alternativeKeys: "\u3117y" + } + Key { + text: "\u3127" + alternativeKeys: "\u3127u" + } + Key { + text: "\u311B" + alternativeKeys: "\u311Bi" + } + Key { + text: "\u311F" + alternativeKeys: "\u311Fo" + } + Key { + text: "\u3123" + alternativeKeys: "\u3123p" + } + } + KeyboardRow { + Key { + text: "\u3107" + alternativeKeys: "\u3107a" + } + Key { + text: "\u310B" + alternativeKeys: "\u310Bs" + } + Key { + text: "\u310E" + alternativeKeys: "\u310Ed" + } + Key { + text: "\u3111" + alternativeKeys: "\u3111f" + } + Key { + text: "\u3115" + alternativeKeys: "\u3115g" + } + Key { + text: "\u3118" + alternativeKeys: "\u3118h" + } + Key { + text: "\u3128" + alternativeKeys: "\u3128j" + } + Key { + text: "\u311C" + alternativeKeys: "\u311Ck" + } + Key { + text: "\u3120" + alternativeKeys: "\u3120l" + } + Key { + text: "\u3124" + alternativeKeys: "\u3124…" + } + } + KeyboardRow { + Key { + text: "\u3108" + alternativeKeys: "\u3108z" + } + Key { + text: "\u310C" + alternativeKeys: "\u310Cx" + } + Key { + text: "\u310F" + alternativeKeys: "\u310Fc" + } + Key { + text: "\u3112" + alternativeKeys: "\u3112v" + } + Key { + text: "\u3116" + alternativeKeys: "\u3116b" + } + Key { + text: "\u3119" + alternativeKeys: "\u3119n" + } + Key { + text: "\u3129" + alternativeKeys: "\u3129m" + } + Key { + text: "\u311D" + alternativeKeys: "、\u311D," + } + Key { + text: "\u3121" + alternativeKeys: "。\u3121." + } + Key { + text: "\u3125" + alternativeKeys: ";\u3125:" + } + } + } + } + KeyboardRow { + id: bottomRow + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "\uFF0C" + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + InputModeKey { + visible: InputContext.inputEngine.inputModes.indexOf(InputEngine.InputMode.Zhuyin) !== -1 + weight: normalKeyWidth + Layout.fillWidth: false + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "\uFF0E" + alternativeKeys: "\uFF1B\u3001\uFF0E\uFF1A\u3002?!" + smallText: "!?" + smallTextVisible: true + highlighted: true + } + BackspaceKey { + weight: normalKeyWidth + Layout.fillWidth: false + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } +} diff --git a/src/layouts/zh_TW/numbers.fallback b/src/layouts/zh_TW/numbers.fallback new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/layouts/zh_TW/numbers.fallback diff --git a/src/layouts/zh_TW/symbols.qml b/src/layouts/zh_TW/symbols.qml new file mode 100644 index 00000000..291622db --- /dev/null +++ b/src/layouts/zh_TW/symbols.qml @@ -0,0 +1,478 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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 +import QtQuick.Layouts +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Components + +KeyboardLayoutLoader { + function createInputMethod() { + return Qt.createQmlObject('import QtQuick; import QtQuick.VirtualKeyboard.Plugins; TCInputMethod {}', parent, "symbols.qml") + } + sharedLayouts: ['main'] + property int page + readonly property int numPages: 3 + sourceComponent: { + switch (page) { + case 2: return page3 + case 1: return page2 + default: return page1 + } + } + Component { + id: page1 + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + key: Qt.Key_1 + text: "1" + } + Key { + id: normalKey + key: Qt.Key_2 + text: "2" + } + Key { + key: Qt.Key_3 + text: "3" + } + Key { + key: Qt.Key_4 + text: "4" + } + Key { + key: Qt.Key_5 + text: "5" + } + Key { + key: Qt.Key_6 + text: "6" + } + Key { + key: Qt.Key_7 + text: "7" + } + Key { + key: Qt.Key_8 + text: "8" + } + Key { + key: Qt.Key_9 + text: "9" + } + Key { + key: Qt.Key_0 + text: "0" + } + } + KeyboardRow { + Key { + key: Qt.Key_1 + text: "@" + } + Key { + key: Qt.Key_1 + text: "#" + } + Key { + key: Qt.Key_1 + text: "%" + } + Key { + key: Qt.Key_1 + text: "&" + } + Key { + key: Qt.Key_1 + text: "*" + } + Key { + key: Qt.Key_1 + text: "_" + } + Key { + key: Qt.Key_1 + text: "-" + } + Key { + key: Qt.Key_1 + text: "+" + } + Key { + key: Qt.Key_1 + text: "(" + } + Key { + key: Qt.Key_1 + text: ")" + } + } + KeyboardRow { + Key { + displayText: (page + 1) + "/" + numPages + functionKey: true + onClicked: page = (page + 1) % numPages + highlighted: true + } + Key { + text: "“" + } + Key { + text: "”" + } + Key { + text: "、" + } + Key { + text: ":" + } + Key { + text: ";" + } + Key { + text: "!" + } + Key { + text: "?" + } + Key { + text: "~" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + displayText: "ABC" + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "—" + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } + Component { + id: page2 + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + text: "½" + alternativeKeys: "½¼¾" + } + Key { + id: normalKey + text: "'" + } + Key { + text: "/" + } + Key { + text: "\\" + } + Key { + text: "|" + } + Key { + text: "[" + } + Key { + text: "]" + } + Key { + text: "{" + } + Key { + text: "}" + } + Key { + text: "·" + } + } + KeyboardRow { + Key { + text: "<" + } + Key { + text: ">" + } + Key { + text: "," + } + Key { + text: "." + } + Key { + text: ":" + } + Key { + text: ";" + } + Key { + text: "!" + } + Key { + text: "?" + } + Key { + text: "=" + } + Key { + text: "~" + } + } + KeyboardRow { + Key { + displayText: (page + 1) + "/" + numPages + functionKey: true + onClicked: page = (page + 1) % numPages + highlighted: true + } + Key { + text: "\"" + } + Key { + text: "§" + } + Key { + text: "^" + } + Key { + text: "$" + } + Key { + text: "¥" + } + Key { + text: "€" + } + Key { + text: "£" + } + Key { + text: "¢" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + displayText: "ABC" + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "。" + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } + Component { + id: page3 + KeyboardLayout { + keyWeight: 160 + readonly property real normalKeyWidth: normalKey.width + readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x + KeyboardRow { + Key { + text: "\" + } + Key { + id: normalKey + text: "/" + } + Key { + text: "(" + } + Key { + text: ")" + } + Key { + text: "〔" + } + Key { + text: "〕" + } + Key { + text: "〈" + } + Key { + text: "〉" + } + Key { + text: "《" + } + Key { + text: "》" + } + } + KeyboardRow { + Key { + text: "→" + } + Key { + text: "←" + } + Key { + text: "↑" + } + Key { + text: "↓" + } + Key { + text: "■" + } + Key { + text: "□" + } + Key { + text: "●" + } + Key { + text: "○" + } + Key { + text: "【" + } + Key { + text: "】" + } + } + KeyboardRow { + Key { + displayText: (page + 1) + "/" + numPages + functionKey: true + onClicked: page = (page + 1) % numPages + highlighted: true + } + Key { + text: "『" + } + Key { + text: "』" + } + Key { + text: "「" + } + Key { + text: "」" + } + Key { + text: "★" + } + Key { + text: "☆" + } + Key { + text: "◆" + } + Key { + text: "◇" + } + BackspaceKey { + } + } + KeyboardRow { + SymbolModeKey { + weight: functionKeyWidth + Layout.fillWidth: false + displayText: "ABC" + } + Key { + key: Qt.Key_Comma + weight: normalKeyWidth + Layout.fillWidth: false + text: "," + smallText: "\u2699" + smallTextVisible: true + highlighted: true + } + SpaceKey { + } + Key { + key: Qt.Key_Period + weight: normalKeyWidth + Layout.fillWidth: false + text: "…" + highlighted: true + } + EnterKey { + weight: functionKeyWidth + Layout.fillWidth: false + } + } + } + } +} |