Revision control
Copy as Markdown
// 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
KeyboardLayoutLoader {
function createInputMethod() {
return Qt.createQmlObject('import QtQuick; import QtQuick.VirtualKeyboard.Plugins; JapaneseInputMethod {}', parent, "inputMethodSymbols.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 "あいう"
case InputEngine.HiraganaFlick:
return "FLK"
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
}
ChangeLanguageKey {
weight: normalKeyWidth
Layout.fillWidth: false
}
Key {
key: Qt.Key_Comma
weight: normalKeyWidth
Layout.fillWidth: false
text: ","
smallText: "\u2699"
smallTextVisible: keyboard.isFunctionPopupListAvailable()
highlighted: true
}
SpaceKey {
}
Key {
key: Qt.Key_Period
weight: normalKeyWidth
Layout.fillWidth: false
text: "—"
highlighted: true
}
HideKeyboardKey {
weight: normalKeyWidth
Layout.fillWidth: false
}
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
}
ChangeLanguageKey {
weight: normalKeyWidth
Layout.fillWidth: false
}
Key {
key: Qt.Key_Comma
weight: normalKeyWidth
Layout.fillWidth: false
text: ","
smallText: "\u2699"
smallTextVisible: keyboard.isFunctionPopupListAvailable()
highlighted: true
}
SpaceKey {
}
Key {
key: Qt.Key_Period
weight: normalKeyWidth
Layout.fillWidth: false
text: "。"
highlighted: true
}
HideKeyboardKey {
weight: normalKeyWidth
Layout.fillWidth: false
}
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
}
ChangeLanguageKey {
weight: normalKeyWidth
Layout.fillWidth: false
}
Key {
key: Qt.Key_Comma
weight: normalKeyWidth
Layout.fillWidth: false
text: ","
smallText: "\u2699"
smallTextVisible: keyboard.isFunctionPopupListAvailable()
highlighted: true
}
SpaceKey {
}
Key {
key: Qt.Key_Period
weight: normalKeyWidth
Layout.fillWidth: false
text: "…"
highlighted: true
}
HideKeyboardKey {
weight: normalKeyWidth
Layout.fillWidth: false
}
EnterKey {
weight: functionKeyWidth
Layout.fillWidth: false
}
}
}
}
}