Revision control

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