// Copyright (C) 2021 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only 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 } ChangeLanguageKey { weight: normalKeyWidth Layout.fillWidth: false } Key { key: Qt.Key_Comma weight: normalKeyWidth Layout.fillWidth: false text: "," smallText: "\u2699" smallTextVisible: keyboard.isFunctionPopupListAvailable() 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 } HideKeyboardKey { weight: normalKeyWidth Layout.fillWidth: false } 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 } ChangeLanguageKey { weight: normalKeyWidth Layout.fillWidth: false } Key { key: Qt.Key_Comma weight: normalKeyWidth Layout.fillWidth: false text: "," smallText: "\u2699" smallTextVisible: keyboard.isFunctionPopupListAvailable() 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 } HideKeyboardKey { weight: normalKeyWidth Layout.fillWidth: false } EnterKey { weight: functionKeyWidth Layout.fillWidth: false } } } } }