diff --git a/CMakeLists.txt b/CMakeLists.txt index 3aa0516e..7ab90aa3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -285,6 +285,7 @@ language_plugin(ca catalan src/overrides.csv) language_plugin(cs czech) language_plugin(da danish src/overrides.csv) language_plugin(de german) +language_plugin(de@terminal germanterminal) language_plugin(el greek) language_plugin(en english src/overrides.csv) language_plugin(eo esperanto) diff --git a/plugins/de@terminal/qml/Keyboard_de@terminal.qml b/plugins/de@terminal/qml/Keyboard_de@terminal.qml new file mode 100644 index 00000000..ae05d2b3 --- /dev/null +++ b/plugins/de@terminal/qml/Keyboard_de@terminal.qml @@ -0,0 +1,99 @@ +/* + * Copyright 2013 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + */ + +import QtQuick 2.4 + +import MaliitKeyboard 2.0 + +import keys 1.0 + +KeyPad { + anchors.fill: parent + + content: c1 + symbols: "languages/Keyboard_symbols.qml" + + Column { + id: c1 + anchors.fill: parent + spacing: 0 + + Row { + anchors.horizontalCenter: parent.horizontalCenter; + spacing: 0 + + TabKey { padding: 0 } + CharKey { label: "q"; shifted: "Q"; extended: ["1"]; extendedShifted: ["1"]; leftSide: true; } + CharKey { label: "w"; shifted: "W"; extended: ["2"]; extendedShifted: ["2"] } + CharKey { label: "e"; shifted: "E"; extended: ["3", "è", "é", "ë", "ê", "€"]; extendedShifted: ["3", "È","É", "Ë", "Ê", "€"] } + CharKey { label: "r"; shifted: "R"; extended: ["4"]; extendedShifted: ["4"] } + CharKey { label: "t"; shifted: "T"; extended: ["5", "þ"]; extendedShifted: ["5", "Þ"] } + CharKey { label: "z"; shifted: "Z"; extended: ["6"]; extendedShifted: ["6"] } + CharKey { label: "u"; shifted: "U"; extended: ["7", "ü","ù","ú","û"]; extendedShifted: ["7", "Ü","Ù","Ú","Û"] } + CharKey { label: "i"; shifted: "I"; extended: ["8", "ì","í","î","ï","ı"]; extendedShifted: ["8", "Ì","Í","Î","Ï","İ"] } + CharKey { label: "o"; shifted: "O"; extended: ["9", "ö","ò","ó","ô","õ","ø"]; extendedShifted: ["9", "Ö","Ò","Ó","Ô","Õ","Ø"] } + CharKey { label: "p"; shifted: "P"; extended: ["0"]; extendedShifted: ["0"]; rightSide: true; } + } + + Row { + anchors.horizontalCenter: parent.horizontalCenter; + spacing: 0 + + CapsLockKey { padding: 0 } + CharKey { label: "a"; shifted: "A"; extended: ["ä","à","á","ã","â","å","æ"]; extendedShifted: ["Ä","À","Â","Á","Ã","Å","Æ"] } + CharKey { label: "s"; shifted: "S"; extended: ["ß","ş","$"]; extendedShifted: ["ẞ","Ş","$"] } + CharKey { label: "d"; shifted: "D"; } + CharKey { label: "f"; shifted: "F"; } + CharKey { label: "g"; shifted: "G"; extended: ["ğ"]; extendedShifted: ["Ğ"]; } + CharKey { label: "h"; shifted: "H"; } + CharKey { label: "j"; shifted: "J"; } + CharKey { label: "k"; shifted: "K"; } + CharKey { label: "l"; shifted: "L"; extended: ["ł","£"]; extendedShifted: ["Ł","£"] } + CharKey { label: "ü"; shifted: "Ü"; rightSide: true; } + } + + Row { + anchors.horizontalCenter: parent.horizontalCenter; + spacing: 0 + + ShiftKey { padding: 0 } + CharKey { label: "y"; shifted: "Y"; extended: ["ÿ","¥"]; extendedShifted: ["Ÿ","¥"] } + CharKey { label: "x"; shifted: "X"; } + CharKey { label: "c"; shifted: "C"; extended: ["ç","¢"]; extendedShifted: ["Ç","¢"] } + CharKey { label: "v"; shifted: "V"; } + CharKey { label: "b"; shifted: "B"; } + CharKey { label: "n"; shifted: "N"; extended: ["ñ"]; extendedShifted: ["Ñ"] } + CharKey { label: "m"; shifted: "M"; } + CharKey { label: "ä"; shifted: "Ä"; } + BackspaceKey { padding: 0 } + } + + Item { + anchors.left: parent.left + anchors.right: parent.right + + height: panel.keyHeight + Device.row_margin; + + SymbolShiftKey { id: symShiftKey; anchors.left: parent.left; height: parent.height; } + LanguageKey { id: languageMenuButton; anchors.left: symShiftKey.right; height: parent.height; } + CharKey { id: commaKey; label: ","; shifted: ","; extended: ["'", "\"", ";", ":", "@", "&", "(", ")"]; extendedShifted: ["'", "\"", ";", ":", "@", "&", "(", ")"]; anchors.left: languageMenuButton.right; height: parent.height; } + SpaceKey { id: spaceKey; anchors.left: commaKey.right; anchors.right: dotKey.left; noMagnifier: true; height: parent.height; } + CharKey { id: dotKey; label: "."; shifted: "."; extended: ["?", "-", "_", "!", "+", "%","#","/"]; extendedShifted: ["?", "-", "_", "!", "+", "%","#","/"]; anchors.right: umlaut.left; height: parent.height; } + CharKey { id: umlaut; label: "ö"; shifted: "Ö"; anchors.right: enterKey.left; height: parent.height; } + ReturnKey { id: enterKey; anchors.right: parent.right; height: parent.height; } + } + } // column +} diff --git a/plugins/de@terminal/qml/Keyboard_de@terminal_email.qml b/plugins/de@terminal/qml/Keyboard_de@terminal_email.qml new file mode 100644 index 00000000..8d6a9153 --- /dev/null +++ b/plugins/de@terminal/qml/Keyboard_de@terminal_email.qml @@ -0,0 +1,98 @@ +/* + * Copyright 2013 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + */ + +import QtQuick 2.4 + +import MaliitKeyboard 2.0 + +import keys 1.0 + +KeyPad { + anchors.fill: parent + + content: c1 + symbols: "languages/Keyboard_symbols.qml" + + Column { + id: c1 + anchors.fill: parent + spacing: 0 + + Row { + anchors.horizontalCenter: parent.horizontalCenter; + spacing: 0 + + CharKey { label: "q"; shifted: "Q"; extended: ["1"]; extendedShifted: ["1"]; leftSide: true; } + CharKey { label: "w"; shifted: "W"; extended: ["2"]; extendedShifted: ["2"] } + CharKey { label: "e"; shifted: "E"; extended: ["3", "è", "é", "ë", "ê", "€"]; extendedShifted: ["3", "È","É", "Ë", "Ê", "€"] } + CharKey { label: "r"; shifted: "R"; extended: ["4"]; extendedShifted: ["4"] } + CharKey { label: "t"; shifted: "T"; extended: ["5", "þ"]; extendedShifted: ["5", "Þ"] } + CharKey { label: "z"; shifted: "Z"; extended: ["6"]; extendedShifted: ["6"] } + CharKey { label: "u"; shifted: "U"; extended: ["7", "ü","ù","ú","û"]; extendedShifted: ["7", "Ü","Ù","Ú","Û"] } + CharKey { label: "i"; shifted: "I"; extended: ["8", "ì","í","î","ï","ı"]; extendedShifted: ["8", "Ì","Í","Î","Ï","İ"] } + CharKey { label: "o"; shifted: "O"; extended: ["9", "ö","ò","ó","ô","õ","ø"]; extendedShifted: ["9", "Ö","Ò","Ó","Ô","Õ","Ø"] } + CharKey { label: "p"; shifted: "P"; extended: ["0"]; extendedShifted: ["0"]; rightSide: true; } + } + + Row { + anchors.horizontalCenter: parent.horizontalCenter; + spacing: 0 + + CharKey { label: "a"; shifted: "A"; extended: ["ä","à","á","ã","â","å","æ"]; extendedShifted: ["Ä","À","Â","Á","Ã","Å","Æ"]; leftSide: true; } + CharKey { label: "s"; shifted: "S"; extended: ["ß","ş","$"]; extendedShifted: ["ẞ","Ş","$"] } + CharKey { label: "d"; shifted: "D"; } + CharKey { label: "f"; shifted: "F"; } + CharKey { label: "g"; shifted: "G"; extended: ["ğ"]; extendedShifted: ["Ğ"]; } + CharKey { label: "h"; shifted: "H"; } + CharKey { label: "j"; shifted: "J"; } + CharKey { label: "k"; shifted: "K"; } + CharKey { label: "l"; shifted: "L"; extended: ["ł","£"]; extendedShifted: ["Ł","£"] } + CharKey { label: "ü"; shifted: "Ü"; rightSide: true; } + } + + Row { + anchors.horizontalCenter: parent.horizontalCenter; + spacing: 0 + + ShiftKey { padding: 0 } + CharKey { label: "y"; shifted: "Y"; extended: ["ÿ","¥"]; extendedShifted: ["Ÿ","¥"] } + CharKey { label: "x"; shifted: "X"; } + CharKey { label: "c"; shifted: "C"; extended: ["ç","¢"]; extendedShifted: ["Ç","¢"] } + CharKey { label: "v"; shifted: "V"; } + CharKey { label: "b"; shifted: "B"; } + CharKey { label: "n"; shifted: "N"; extended: ["ñ"]; extendedShifted: ["Ñ"] } + CharKey { label: "m"; shifted: "M"; } + CharKey { label: "ä"; shifted: "Ä"; } + BackspaceKey { padding: 0 } + } + + Item { + anchors.left: parent.left + anchors.right: parent.right + + height: panel.keyHeight + Device.row_margin; + + SymbolShiftKey { id: symShiftKey; anchors.left: parent.left; height: parent.height; } + LanguageKey { id: languageMenuButton; anchors.left: symShiftKey.right; height: parent.height; } + CharKey { id: atKey; label: "@"; shifted: "@"; anchors.left: languageMenuButton.right; height: parent.height; } + SpaceKey { id: spaceKey; anchors.left: atKey.right; anchors.right: urlKey.left; noMagnifier: true; height: parent.height; } + UrlKey { id: urlKey; label: ".de"; extended: [".com", ".at", ".ch"]; anchors.right: dotKey.left; height: parent.height; } + CharKey { id: dotKey; label: "."; shifted: "."; extended: ["?", "-", "_", "!", "+", "%","#","/"]; extendedShifted: ["?", "-", "_", "!", "+", "%","#","/"]; anchors.right: umlaut.left; height: parent.height; } + CharKey { id: umlaut; label: "ö"; shifted: "Ö"; anchors.right: enterKey.left; height: parent.height; } + ReturnKey { id: enterKey; anchors.right: parent.right; height: parent.height; } + } + } // column +} diff --git a/plugins/de@terminal/qml/Keyboard_de@terminal_url.qml b/plugins/de@terminal/qml/Keyboard_de@terminal_url.qml new file mode 100644 index 00000000..e0211eac --- /dev/null +++ b/plugins/de@terminal/qml/Keyboard_de@terminal_url.qml @@ -0,0 +1,97 @@ +/* + * Copyright 2013 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + */ + +import QtQuick 2.4 + +import MaliitKeyboard 2.0 + +import keys 1.0 + +KeyPad { + anchors.fill: parent + + content: c1 + symbols: "languages/Keyboard_symbols.qml" + + Column { + id: c1 + anchors.fill: parent + spacing: 0 + + Row { + anchors.horizontalCenter: parent.horizontalCenter; + spacing: 0 + + CharKey { label: "q"; shifted: "Q"; extended: ["1"]; extendedShifted: ["1"]; leftSide: true; } + CharKey { label: "w"; shifted: "W"; extended: ["2"]; extendedShifted: ["2"] } + CharKey { label: "e"; shifted: "E"; extended: ["3", "è", "é", "ë", "ê", "€"]; extendedShifted: ["3", "È","É", "Ë", "Ê", "€"] } + CharKey { label: "r"; shifted: "R"; extended: ["4"]; extendedShifted: ["4"] } + CharKey { label: "t"; shifted: "T"; extended: ["5", "þ"]; extendedShifted: ["5", "Þ"] } + CharKey { label: "z"; shifted: "Z"; extended: ["6"]; extendedShifted: ["6"] } + CharKey { label: "u"; shifted: "U"; extended: ["7", "ü","ù","ú","û"]; extendedShifted: ["7", "Ü","Ù","Ú","Û"] } + CharKey { label: "i"; shifted: "I"; extended: ["8", "ì","í","î","ï","ı"]; extendedShifted: ["8", "Ì","Í","Î","Ï","İ"] } + CharKey { label: "o"; shifted: "O"; extended: ["9", "ö","ò","ó","ô","õ","ø"]; extendedShifted: ["9", "Ö","Ò","Ó","Ô","Õ","Ø"] } + CharKey { label: "p"; shifted: "P"; extended: ["0"]; extendedShifted: ["0"]; rightSide: true; } + } + + Row { + anchors.horizontalCenter: parent.horizontalCenter; + spacing: 0 + + CharKey { label: "a"; shifted: "A"; extended: ["ä","à","á","ã","â","å","æ"]; extendedShifted: ["Ä","À","Â","Á","Ã","Å","Æ"]; leftSide: true; } + CharKey { label: "s"; shifted: "S"; extended: ["ß","ş","$"]; extendedShifted: ["ẞ","Ş","$"] } + CharKey { label: "d"; shifted: "D"; } + CharKey { label: "f"; shifted: "F"; } + CharKey { label: "g"; shifted: "G"; extended: ["ğ"]; extendedShifted: ["Ğ"]; } + CharKey { label: "h"; shifted: "H"; } + CharKey { label: "j"; shifted: "J"; } + CharKey { label: "k"; shifted: "K"; } + CharKey { label: "l"; shifted: "L"; extended: ["ł","£"]; extendedShifted: ["Ł","£"] } + CharKey { label: "ü"; shifted: "Ü"; rightSide: true; } + } + + Row { + anchors.horizontalCenter: parent.horizontalCenter; + spacing: 0 + + ShiftKey { padding: 0 } + CharKey { label: "y"; shifted: "Y"; extended: ["ÿ","¥"]; extendedShifted: ["Ÿ","¥"] } + CharKey { label: "x"; shifted: "X"; } + CharKey { label: "c"; shifted: "C"; extended: ["ç","¢"]; extendedShifted: ["Ç","¢"] } + CharKey { label: "v"; shifted: "V"; } + CharKey { label: "b"; shifted: "B"; } + CharKey { label: "n"; shifted: "N"; extended: ["ñ"]; extendedShifted: ["Ñ"] } + CharKey { label: "m"; shifted: "M"; } + CharKey { label: "ä"; shifted: "Ä"; } + BackspaceKey { padding: 0 } + } + + Item { + anchors.left: parent.left + anchors.right: parent.right + + height: panel.keyHeight + Device.row_margin; + + SymbolShiftKey { id: symShiftKey; anchors.left: parent.left; height: parent.height; } + LanguageKey { id: languageMenuButton; anchors.left: symShiftKey.right; height: parent.height; } + CharKey { id: slashKey; label: "/"; shifted: "/"; anchors.left: languageMenuButton.right; height: parent.height; } + UrlKey { id: urlKey; label: ".de"; extended: [".com", ".at", ".ch"]; anchors.right: dotKey.left; height: parent.height; } + CharKey { id: dotKey; label: "."; shifted: "."; extended: ["?", "-", "_", "!", "+", "%","#","/"]; extendedShifted: ["?", "-", "_", "!", "+", "%","#","/"]; anchors.right: umlaut.left; height: parent.height; } + CharKey { id: umlaut; label: "ö"; shifted: "Ö"; anchors.right: enterKey.left; height: parent.height; } + ReturnKey { id: enterKey; anchors.right: parent.right; height: parent.height; } + } + } // column +} diff --git a/plugins/de@terminal/qml/Keyboard_de@terminal_url_search.qml b/plugins/de@terminal/qml/Keyboard_de@terminal_url_search.qml new file mode 100644 index 00000000..f7c2672e --- /dev/null +++ b/plugins/de@terminal/qml/Keyboard_de@terminal_url_search.qml @@ -0,0 +1,98 @@ +/* + * Copyright 2013 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + */ + +import QtQuick 2.4 + +import MaliitKeyboard 2.0 + +import keys 1.0 + +KeyPad { + anchors.fill: parent + + content: c1 + symbols: "languages/Keyboard_symbols.qml" + + Column { + id: c1 + anchors.fill: parent + spacing: 0 + + Row { + anchors.horizontalCenter: parent.horizontalCenter; + spacing: 0 + + CharKey { label: "q"; shifted: "Q"; extended: ["1"]; extendedShifted: ["1"]; leftSide: true; } + CharKey { label: "w"; shifted: "W"; extended: ["2"]; extendedShifted: ["2"] } + CharKey { label: "e"; shifted: "E"; extended: ["3", "è", "é", "ë", "ê", "€"]; extendedShifted: ["3", "È","É", "Ë", "Ê", "€"] } + CharKey { label: "r"; shifted: "R"; extended: ["4"]; extendedShifted: ["4"] } + CharKey { label: "t"; shifted: "T"; extended: ["5", "þ"]; extendedShifted: ["5", "Þ"] } + CharKey { label: "z"; shifted: "Z"; extended: ["6"]; extendedShifted: ["6"] } + CharKey { label: "u"; shifted: "U"; extended: ["7", "ü","ù","ú","û"]; extendedShifted: ["7", "Ü","Ù","Ú","Û"] } + CharKey { label: "i"; shifted: "I"; extended: ["8", "ì","í","î","ï","ı"]; extendedShifted: ["8", "Ì","Í","Î","Ï","İ"] } + CharKey { label: "o"; shifted: "O"; extended: ["9", "ö","ò","ó","ô","õ","ø"]; extendedShifted: ["9", "Ö","Ò","Ó","Ô","Õ","Ø"] } + CharKey { label: "p"; shifted: "P"; extended: ["0"]; extendedShifted: ["0"]; rightSide: true; } + } + + Row { + anchors.horizontalCenter: parent.horizontalCenter; + spacing: 0 + + CharKey { label: "a"; shifted: "A"; extended: ["ä","à","á","ã","â","å","æ"]; extendedShifted: ["Ä","À","Â","Á","Ã","Å","Æ"]; leftSide: true; } + CharKey { label: "s"; shifted: "S"; extended: ["ß","ş","$"]; extendedShifted: ["ẞ","Ş","$"] } + CharKey { label: "d"; shifted: "D"; } + CharKey { label: "f"; shifted: "F"; } + CharKey { label: "g"; shifted: "G"; extended: ["ğ"]; extendedShifted: ["Ğ"]; } + CharKey { label: "h"; shifted: "H"; } + CharKey { label: "j"; shifted: "J"; } + CharKey { label: "k"; shifted: "K"; } + CharKey { label: "l"; shifted: "L"; extended: ["ł","£"]; extendedShifted: ["Ł","£"] } + CharKey { label: "ü"; shifted: "Ü"; rightSide: true; } + } + + Row { + anchors.horizontalCenter: parent.horizontalCenter; + spacing: 0 + + ShiftKey { padding: 0 } + CharKey { label: "y"; shifted: "Y"; extended: ["ÿ","¥"]; extendedShifted: ["Ÿ","¥"] } + CharKey { label: "x"; shifted: "X"; } + CharKey { label: "c"; shifted: "C"; extended: ["ç","¢"]; extendedShifted: ["Ç","¢"] } + CharKey { label: "v"; shifted: "V"; } + CharKey { label: "b"; shifted: "B"; } + CharKey { label: "n"; shifted: "N"; extended: ["ñ"]; extendedShifted: ["Ñ"] } + CharKey { label: "m"; shifted: "M"; } + CharKey { label: "ä"; shifted: "Ä"; } + BackspaceKey { padding: 0 } + } + + Item { + anchors.left: parent.left + anchors.right: parent.right + + height: panel.keyHeight + Device.row_margin; + + SymbolShiftKey { id: symShiftKey; anchors.left: parent.left; height: parent.height; } + LanguageKey { id: languageMenuButton; anchors.left: symShiftKey.right; height: parent.height; } + CharKey { id: slashKey; label: "/"; shifted: "/"; anchors.left: languageMenuButton.right; height: parent.height; } + SpaceKey { id: spaceKey; anchors.left: slashKey.right; anchors.right: urlKey.left; noMagnifier: true; height: parent.height; } + UrlKey { id: urlKey; label: ".de"; extended: [".com", ".at", ".ch"]; anchors.right: dotKey.left; height: parent.height; } + CharKey { id: dotKey; label: "."; shifted: "."; extended: ["?", "-", "_", "!", "+", "%","#","/"]; extendedShifted: ["?", "-", "_", "!", "+", "%","#","/"]; anchors.right: umlaut.left; height: parent.height; } + CharKey { id: umlaut; label: "ö"; shifted: "Ö"; anchors.right: enterKey.left; height: parent.height; } + ReturnKey { id: enterKey; anchors.right: parent.right; height: parent.height; } + } + } // column +} diff --git a/plugins/de@terminal/src/germanterminalplugin.h b/plugins/de@terminal/src/germanterminalplugin.h new file mode 100644 index 00000000..4bac9968 --- /dev/null +++ b/plugins/de@terminal/src/germanterminalplugin.h @@ -0,0 +1,25 @@ +#ifndef GERMANTERMINALPLUGIN_H +#define GERMANTERMINALPLUGIN_H + +#include +#include "languageplugininterface.h" +#include "westernlanguagesplugin.h" + +class GermanTerminalPlugin : public WesternLanguagesPlugin +{ + Q_OBJECT + Q_INTERFACES(LanguagePluginInterface) + Q_PLUGIN_METADATA(IID "io.maliit.keyboard.LanguagePlugin.1" FILE "germanterminalplugin.json") + +public: + explicit GermanTerminalPlugin(QObject* parent = 0) + : WesternLanguagesPlugin(parent) + { + } + + virtual ~GermanTerminalPlugin() + { + } +}; + +#endif // GERMANTERMINALPLUGIN_H diff --git a/plugins/de@terminal/src/germanterminalplugin.json b/plugins/de@terminal/src/germanterminalplugin.json new file mode 100644 index 00000000..258ea63b --- /dev/null +++ b/plugins/de@terminal/src/germanterminalplugin.json @@ -0,0 +1,5 @@ +{ + "IID": "io.maliit.keyboard.LanguagePlugin.1", + "LanguageId": "de@terminal", + "Language": "German (Terminal)" +} diff --git a/qml/keys/languages.js b/qml/keys/languages.js index 89fcc0cd..d45a09d7 100644 --- a/qml/keys/languages.js +++ b/qml/keys/languages.js @@ -16,47 +16,48 @@ function languageIdToName(languageId) { - if (languageId == "ar") return Gettext.qsTr("Arabic"); - if (languageId == "az") return Gettext.qsTr("Azerbaijani"); - if (languageId == "be") return Gettext.qsTr("Belarusian"); - if (languageId == "bg") return Gettext.qsTr("Bulgarian"); - if (languageId == "bs") return Gettext.qsTr("Bosnian"); - if (languageId == "ca") return Gettext.qsTr("Catalan"); - if (languageId == "cs") return Gettext.qsTr("Czech"); - if (languageId == "da") return Gettext.qsTr("Danish"); - if (languageId == "de") return Gettext.qsTr("German"); - if (languageId == "el") return Gettext.qsTr("Greek"); - if (languageId == "en") return Gettext.qsTr("English"); - if (languageId == "en@dv") return Gettext.qsTr("English\n(Dvorak)"); - if (languageId == "eo") return Gettext.qsTr("Esperanto"); - if (languageId == "es") return Gettext.qsTr("Spanish"); - if (languageId == "fa") return Gettext.qsTr("Persian"); - if (languageId == "fi") return Gettext.qsTr("Finnish"); - if (languageId == "fr") return Gettext.qsTr("French"); - if (languageId == "fr-ch") return Gettext.qsTr("French\n(Swiss)"); - if (languageId == "gd") return Gettext.qsTr("Scottish Gaelic"); - if (languageId == "he") return Gettext.qsTr("Hebrew"); - if (languageId == "hr") return Gettext.qsTr("Croatian"); - if (languageId == "hu") return Gettext.qsTr("Hungarian"); - if (languageId == "is") return Gettext.qsTr("Icelandic"); - if (languageId == "it") return Gettext.qsTr("Italian"); - if (languageId == "ja") return Gettext.qsTr("Japanese"); - if (languageId == "lt") return Gettext.qsTr("Lithuanian"); - if (languageId == "lv") return Gettext.qsTr("Latvian"); - if (languageId == "mk") return Gettext.qsTr("Macedonian"); - if (languageId == "ko") return Gettext.qsTr("Korean"); - if (languageId == "nl") return Gettext.qsTr("Dutch"); - if (languageId == "nb") return Gettext.qsTr("Norwegian"); - if (languageId == "pl") return Gettext.qsTr("Polish"); - if (languageId == "pt") return Gettext.qsTr("Portuguese"); - if (languageId == "ro") return Gettext.qsTr("Romanian"); - if (languageId == "ru") return Gettext.qsTr("Russian"); - if (languageId == "sl") return Gettext.qsTr("Slovenian"); - if (languageId == "sr") return Gettext.qsTr("Serbian"); - if (languageId == "sv") return Gettext.qsTr("Swedish"); - if (languageId == "th") return Gettext.qsTr("Thai"); - if (languageId == "tr") return Gettext.qsTr("Turkish"); - if (languageId == "uk") return Gettext.qsTr("Ukrainian"); + if (languageId == "ar") return Gettext.qsTr("Arabic"); + if (languageId == "az") return Gettext.qsTr("Azerbaijani"); + if (languageId == "be") return Gettext.qsTr("Belarusian"); + if (languageId == "bg") return Gettext.qsTr("Bulgarian"); + if (languageId == "bs") return Gettext.qsTr("Bosnian"); + if (languageId == "ca") return Gettext.qsTr("Catalan"); + if (languageId == "cs") return Gettext.qsTr("Czech"); + if (languageId == "da") return Gettext.qsTr("Danish"); + if (languageId == "de") return Gettext.qsTr("German"); + if (languageId == "de@terminal") return Gettext.qsTr("German\n(Terminal)"); + if (languageId == "el") return Gettext.qsTr("Greek"); + if (languageId == "en") return Gettext.qsTr("English"); + if (languageId == "en@dv") return Gettext.qsTr("English\n(Dvorak)"); + if (languageId == "eo") return Gettext.qsTr("Esperanto"); + if (languageId == "es") return Gettext.qsTr("Spanish"); + if (languageId == "fa") return Gettext.qsTr("Persian"); + if (languageId == "fi") return Gettext.qsTr("Finnish"); + if (languageId == "fr") return Gettext.qsTr("French"); + if (languageId == "fr-ch") return Gettext.qsTr("French\n(Swiss)"); + if (languageId == "gd") return Gettext.qsTr("Scottish Gaelic"); + if (languageId == "he") return Gettext.qsTr("Hebrew"); + if (languageId == "hr") return Gettext.qsTr("Croatian"); + if (languageId == "hu") return Gettext.qsTr("Hungarian"); + if (languageId == "is") return Gettext.qsTr("Icelandic"); + if (languageId == "it") return Gettext.qsTr("Italian"); + if (languageId == "ja") return Gettext.qsTr("Japanese"); + if (languageId == "lt") return Gettext.qsTr("Lithuanian"); + if (languageId == "lv") return Gettext.qsTr("Latvian"); + if (languageId == "mk") return Gettext.qsTr("Macedonian"); + if (languageId == "ko") return Gettext.qsTr("Korean"); + if (languageId == "nl") return Gettext.qsTr("Dutch"); + if (languageId == "nb") return Gettext.qsTr("Norwegian"); + if (languageId == "pl") return Gettext.qsTr("Polish"); + if (languageId == "pt") return Gettext.qsTr("Portuguese"); + if (languageId == "ro") return Gettext.qsTr("Romanian"); + if (languageId == "ru") return Gettext.qsTr("Russian"); + if (languageId == "sl") return Gettext.qsTr("Slovenian"); + if (languageId == "sr") return Gettext.qsTr("Serbian"); + if (languageId == "sv") return Gettext.qsTr("Swedish"); + if (languageId == "th") return Gettext.qsTr("Thai"); + if (languageId == "tr") return Gettext.qsTr("Turkish"); + if (languageId == "uk") return Gettext.qsTr("Ukrainian"); if (languageId == "zh-hans") return Gettext.qsTr("Chinese\n(Pinyin)"); if (languageId == "zh-hant") return Gettext.qsTr("Chinese\n(Chewing)"); diff --git a/qml/keys/qmldir b/qml/keys/qmldir index 83f5a39e..19701e00 100644 --- a/qml/keys/qmldir +++ b/qml/keys/qmldir @@ -29,3 +29,4 @@ EndKey 1.0 EndKey.qml PageUpKey 1.0 PageUpKey.qml PageDownKey 1.0 PageDownKey.qml CapsLockKey 1.0 CapsLockKey.qml +ControlKey 1.0 ControlKey.qml diff --git a/src/lib/logic/eventhandler.cpp b/src/lib/logic/eventhandler.cpp index 63f3a645..b6dc413e 100644 --- a/src/lib/logic/eventhandler.cpp +++ b/src/lib/logic/eventhandler.cpp @@ -101,6 +101,16 @@ void EventHandler::onKeyReleased(QString label, QString action) key.setAction(Key::ActionHome); else if (action == QLatin1String("end")) key.setAction(Key::ActionEnd); + else if (action == QLatin1String("tab")) + key.setAction(Key::ActionTab); + else if (action == QLatin1String("ctrl")) + key.setAction(Key::ActionControl); + else if (action == QLatin1String("escape")) + key.setAction(Key::ActionEscape); + else if (action == QLatin1String("pageeup")) + key.setAction(Key::ActionPageUp); + else if (action == QLatin1String("pageeup")) + key.setAction(Key::ActionPageDown); else if (action == "keysequence") { key.setCommandSequence(label); key.setAction(Key::ActionKeySequence); diff --git a/src/lib/models/key.h b/src/lib/models/key.h index ae0cf832..48229069 100644 --- a/src/lib/models/key.h +++ b/src/lib/models/key.h @@ -75,6 +75,8 @@ class Key ActionEscape, //!< Key sends Escape ActionPageUp, //!< Key sends PageUp ActionPageDown, //!< Key sends PageDown + ActionControl, //!< Key sends Control + ActionCapsLock, //!< Key sends CapsLock NumActions }; diff --git a/src/view/abstracttexteditor.cpp b/src/view/abstracttexteditor.cpp index c549d228..2153b2ed 100644 --- a/src/view/abstracttexteditor.cpp +++ b/src/view/abstracttexteditor.cpp @@ -658,6 +658,14 @@ void AbstractTextEditor::onKeyReleased(const Key &key) event_key = Qt::Key_Tab; break; + case Key::ActionControl: + event_key = Qt::Key_Control; + break; + + case Key::ActionCapsLock: + event_key = Qt::Key_CapsLock; + break; + default: break; }