aboutsummaryrefslogtreecommitdiffstats
path: root/src/layouts/ja_JP
diff options
context:
space:
mode:
Diffstat (limited to 'src/layouts/ja_JP')
-rw-r--r--src/layouts/ja_JP/dialpad.fallback0
-rw-r--r--src/layouts/ja_JP/digits.fallback0
-rw-r--r--src/layouts/ja_JP/handwriting.qml57
-rw-r--r--src/layouts/ja_JP/main.qml453
-rw-r--r--src/layouts/ja_JP/numbers.fallback0
-rw-r--r--src/layouts/ja_JP/symbols.qml486
6 files changed, 996 insertions, 0 deletions
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..c8d5acd3
--- /dev/null
+++ b/src/layouts/ja_JP/handwriting.qml
@@ -0,0 +1,57 @@
+// 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; HandwritingInputMethod {}', parent)
+ }
+ sharedLayouts: ['symbols']
+
+ KeyboardRow {
+ KeyboardColumn {
+ Layout.preferredWidth: 1
+ InputModeKey {
+ }
+ ChangeLanguageKey {
+ visible: true
+ }
+ ShiftKey {
+ }
+ HandwritingModeKey {
+ }
+ }
+ KeyboardColumn {
+ Layout.preferredWidth: 8
+ 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]
+ }
+ }
+ KeyboardColumn {
+ Layout.preferredWidth: 1
+ Key {
+ key: Qt.Key_Period
+ text: "。"
+ alternativeKeys: "‘’“”~…—\",.:;、。?! "
+ smallText: "!?"
+ smallTextVisible: true
+ highlighted: true
+ }
+ HideKeyboardKey {
+ visible: true
+ }
+ BackspaceKey {
+ }
+ EnterKey {
+ }
+ }
+ }
+}
diff --git a/src/layouts/ja_JP/main.qml b/src/layouts/ja_JP/main.qml
new file mode 100644
index 00000000..18680c99
--- /dev/null
+++ b/src/layouts/ja_JP/main.qml
@@ -0,0 +1,453 @@
+// 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 {
+ 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
+ }
+ ChangeLanguageKey {
+ weight: normalKeyWidth
+ Layout.fillWidth: false
+ }
+ Key {
+ key: Qt.Key_Comma
+ Layout.preferredWidth: normalKeyWidth
+ Layout.fillWidth: false
+ text: "\u3001"
+ smallText: "\u2699"
+ smallTextVisible: keyboard.isFunctionPopupListAvailable()
+ 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
+ }
+ HideKeyboardKey {
+ weight: normalKeyWidth
+ Layout.fillWidth: false
+ }
+ 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
+ }
+ ChangeLanguageKey {
+ weight: normalKeyWidth
+ Layout.fillWidth: false
+ }
+ Key {
+ key: Qt.Key_Comma
+ weight: normalKeyWidth
+ Layout.fillWidth: false
+ text: "\u3001"
+ smallText: "\u2699"
+ smallTextVisible: keyboard.isFunctionPopupListAvailable()
+ 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
+ }
+ HideKeyboardKey {
+ weight: normalKeyWidth
+ Layout.fillWidth: false
+ }
+ 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..c84134fb
--- /dev/null
+++ b/src/layouts/ja_JP/symbols.qml
@@ -0,0 +1,486 @@
+// 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, "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
+ }
+ 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
+ }
+ }
+ }
+ }
+}