Merge lp:~thomas-moenicke/ubuntu-keyboard/ubuntu-keyboard-language-menu-2 into lp:ubuntu-keyboard
- ubuntu-keyboard-language-menu-2
- Merge into trunk
Status: | Merged |
---|---|
Approved by: | Günter Schwann |
Approved revision: | 97 |
Merged at revision: | 88 |
Proposed branch: | lp:~thomas-moenicke/ubuntu-keyboard/ubuntu-keyboard-language-menu-2 |
Merge into: | lp:ubuntu-keyboard |
Diff against target: |
1881 lines (+1343/-67) 32 files modified
qml/Keyboard.qml (+16/-1) qml/KeyboardContainer.qml (+19/-8) qml/keys/LanguageKey.qml (+34/-0) qml/keys/LanguageMenu.qml (+39/-18) qml/keys/UrlKey.qml (+1/-2) qml/keys/key_constants.js (+4/-0) qml/languages/Keyboard_symbols.qml (+1/-1) qml/languages/de/Keyboard_de.qml (+3/-2) qml/languages/de/Keyboard_de_email.qml (+94/-0) qml/languages/de/Keyboard_de_url.qml (+93/-0) qml/languages/de/Keyboard_de_url_search.qml (+94/-0) qml/languages/en/Keyboard_en.qml (+3/-2) qml/languages/en/Keyboard_en_email.qml (+2/-2) qml/languages/en/Keyboard_en_url.qml (+2/-2) qml/languages/en/Keyboard_en_url_search.qml (+2/-2) qml/languages/es/Keyboard_es.qml (+3/-2) qml/languages/es/Keyboard_es_email.qml (+92/-0) qml/languages/es/Keyboard_es_url.qml (+91/-0) qml/languages/es/Keyboard_es_url_search.qml (+92/-0) qml/languages/fr/Keyboard_fr.qml (+3/-2) qml/languages/fr/Keyboard_fr_email.qml (+92/-0) qml/languages/fr/Keyboard_fr_url.qml (+91/-0) qml/languages/fr/Keyboard_fr_url_search.qml (+92/-0) qml/languages/pt/Keyboard_pt.qml (+3/-2) qml/languages/pt/Keyboard_pt_email.qml (+92/-0) qml/languages/pt/Keyboard_pt_url.qml (+91/-0) qml/languages/pt/Keyboard_pt_url_search.qml (+92/-0) qml/languages/zh_cn/Keyboard_zh_cn_pinyin.qml (+3/-2) qml/qml.pro (+45/-10) src/plugin/inputmethod.cpp (+26/-7) src/plugin/inputmethod.h (+10/-0) src/plugin/inputmethod_p.h (+18/-2) |
To merge this branch: | bzr merge lp:~thomas-moenicke/ubuntu-keyboard/ubuntu-keyboard-language-menu-2 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
PS Jenkins bot | continuous-integration | Approve | |
Günter Schwann (community) | Approve | ||
Review via email: mp+190657@code.launchpad.net |
Commit message
adding key to change language
Description of the change
adding key to change language
PS Jenkins bot (ps-jenkins) wrote : | # |
- 79. By Thomas Moenicke
-
enabled languages are being read from settings
- 80. By Thomas Moenicke
-
language key only visible when languages are enabled
- 81. By Thomas Moenicke
-
language menu only when more than 1 language enabled (to have smth to choose from)
Thomas Moenicke (thomas-moenicke) wrote : | # |
to set the full list:
gsettings set com.canonical.
PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:79
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:81
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
- 82. By Thomas Moenicke
-
rebase
[ Christopher Lee ]
* Update to the ubuntu-keyboard emulator so that they work after the
recent changes to the loader.
[ Guenter Schwann ]
* Increase the size of the swipe area.
[ Ubuntu daily release ]
* Automatic snapshot from revision 78
[ Daniel d'Andrada ]
* Various improvements to ubuntu-keyboard- info socket server Make it
more robust. (LP: #1237870)
[ Thomas Moenicke ]
* more languages.
* new action key icons.
[ Guenter Schwann ]
* Fix for auto caps to work more than once Essentially it's only 25 +
autoCapsActivated = false;.
[ Ubuntu daily release ]
* Automatic snapshot from revision 75
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:82
http://
Executed test runs:
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
- 83. By Thomas Moenicke
-
rebase
PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:83
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
- 84. By Thomas Moenicke
-
moved each language into its own folder
- 85. By Thomas Moenicke
-
adding url_search layouts for all languages
- 86. By Thomas Moenicke
-
adding email + url for de
PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:85
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
- 87. By Thomas Moenicke
-
fixed urlkey in de-email layout
- 88. By Thomas Moenicke
-
adding email + url layout for es
PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:88
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
- 89. By Thomas Moenicke
-
adding fr email, url layouts
- 90. By Thomas Moenicke
-
adding email, url layouts portuguese
PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:90
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
- 91. By Thomas Moenicke
-
fixed abstraction: C++ side does not know about QML, which instead sets a binding into a C++ property
fixed loading default en_us keyboard
PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:91
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
- 92. By Thomas Moenicke
-
dont overwrite our binding
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:92
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
- 93. By Thomas Moenicke
-
dividing activeLayout and activeLanguage
fixed typo that broke build on this branch @ last commit
PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:93
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
Günter Schwann (schwann) wrote : | # |
I get this warning when running this branch:
WARNING: QObject::connect: No such signal QQuickItem_
WARNING: QObject::connect: (sender name: 'ubuntuKeyboard')
WARNING: QObject::connect: No such slot MaliitKeyboard:
- 94. By Thomas Moenicke
-
fixed typo
PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:94
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
- 95. By Thomas Moenicke
-
reading locale from env variable
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:95
http://
Executed test runs:
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
- 96. By Thomas Moenicke
-
fixed reading locale
reading locale at show() to detect changes in system - 97. By Thomas Moenicke
-
moved code back to setActiveSubView(), as it overwrites special layouts like browser
PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:96
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:97
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
Preview Diff
1 | === modified file 'qml/Keyboard.qml' |
2 | --- qml/Keyboard.qml 2013-10-21 13:21:28 +0000 |
3 | +++ qml/Keyboard.qml 2013-10-24 13:11:26 +0000 |
4 | @@ -52,7 +52,6 @@ |
5 | property variant event_handler: maliit_event_handler |
6 | |
7 | OrientationHelper { |
8 | - |
9 | automaticOrientation: false |
10 | transitionEnabled: false |
11 | |
12 | @@ -69,10 +68,14 @@ |
13 | |
14 | property int keypadHeight: 0 // set by InputMethod |
15 | |
16 | + property string activeLanguage: input_method.activeLanguage |
17 | + |
18 | property string layoutId: "en_us" |
19 | Component.onCompleted: keypad.loadLayout(layoutId); |
20 | onLayoutIdChanged: keypad.loadLayout(layoutId); |
21 | |
22 | + property var enabledLanguages: input_method.enabledLanguages |
23 | + |
24 | visible: layout.visible |
25 | |
26 | // Expose details for use with Autopilot. |
27 | @@ -84,6 +87,8 @@ |
28 | property bool shown: false; |
29 | property bool wordribbon_visible: false; |
30 | |
31 | + property bool languageMenuShown: false |
32 | + |
33 | MouseArea { |
34 | id: swipeArea |
35 | |
36 | @@ -173,6 +178,15 @@ |
37 | anchors.bottomMargin: units.gu( UI.bottom_margin ) |
38 | width: parent.width |
39 | } |
40 | + |
41 | + LanguageMenu { |
42 | + id: languageMenu |
43 | + anchors.centerIn: parent |
44 | + width: 400; |
45 | + height: keypad.height; |
46 | + enabled: canvas.languageMenuShown |
47 | + opacity: canvas.languageMenuShown ? 1.0 : 0.0 |
48 | + } |
49 | } // keyboardComp |
50 | } |
51 | } |
52 | @@ -199,6 +213,7 @@ |
53 | name: "HIDDEN" |
54 | PropertyChanges { target: canvas; y: height; } |
55 | onCompleted: { |
56 | + canvas.languageMenuShown = false |
57 | keyboardSurface.y = 0; |
58 | keypad.closeExtendedKeys(); |
59 | keypad.activeKeypadState = "NORMAL" |
60 | |
61 | === modified file 'qml/KeyboardContainer.qml' |
62 | --- qml/KeyboardContainer.qml 2013-10-16 13:16:23 +0000 |
63 | +++ qml/KeyboardContainer.qml 2013-10-24 13:11:26 +0000 |
64 | @@ -33,28 +33,39 @@ |
65 | |
66 | state: "CHARACTERS" |
67 | |
68 | + property variant supportedLocales: ["en", "de", "es", "fr", "zh", "pt"] |
69 | + |
70 | + function localeIsSupported(locale) |
71 | + { |
72 | + return (supportedLocales.indexOf( locale ) > -1) |
73 | + } |
74 | + |
75 | function loadLayout(layoutId) |
76 | { |
77 | + var locale = canvas.activeLanguage.slice(0,2).toLowerCase(); |
78 | + |
79 | if (layoutId === "number") |
80 | characterKeypadSource = "languages/Keyboard_numbers.qml"; |
81 | if (layoutId === "phonenumber") |
82 | characterKeypadSource = "languages/Keyboard_telephone.qml"; |
83 | if (layoutId === "email") |
84 | - characterKeypadSource = "languages/Keyboard_en_email.qml"; |
85 | + if (localeIsSupported(locale)) |
86 | + characterKeypadSource = "languages/"+locale+"/Keyboard_"+locale+"_email.qml"; |
87 | if (layoutId === "url") |
88 | - characterKeypadSource = "languages/Keyboard_en_url_search.qml"; |
89 | + if (localeIsSupported(locale)) |
90 | + characterKeypadSource = "languages/"+locale+"/Keyboard_"+locale+"_url_search.qml"; |
91 | if (layoutId === "en_us") |
92 | - characterKeypadSource = "languages/Keyboard_en_us.qml"; |
93 | + characterKeypadSource = "languages/en/Keyboard_en.qml"; |
94 | if (layoutId === "es") |
95 | - characterKeypadSource = "languages/Keyboard_es.qml"; |
96 | + characterKeypadSource = "languages/es/Keyboard_es.qml"; |
97 | if (layoutId === "pt") |
98 | - characterKeypadSource = "languages/Keyboard_pt.qml"; |
99 | + characterKeypadSource = "languages/pt/Keyboard_pt.qml"; |
100 | if (layoutId === "de") |
101 | - characterKeypadSource = "languages/Keyboard_de.qml"; |
102 | + characterKeypadSource = "languages/de/Keyboard_de.qml"; |
103 | if (layoutId === "fr") |
104 | - characterKeypadSource = "languages/Keyboard_fr.qml"; |
105 | + characterKeypadSource = "languages/fr/Keyboard_fr.qml"; |
106 | if (layoutId === "zh_cn_pinyin") |
107 | - characterKeypadSource = "languages/Keyboard_zh_cn_pinyin.qml"; |
108 | + characterKeypadSource = "languages/zh/Keyboard_zh_pinyin.qml"; |
109 | } |
110 | |
111 | onCharacterKeypadSourceChanged: { |
112 | |
113 | === added file 'qml/keys/LanguageKey.qml' |
114 | --- qml/keys/LanguageKey.qml 1970-01-01 00:00:00 +0000 |
115 | +++ qml/keys/LanguageKey.qml 2013-10-24 13:11:26 +0000 |
116 | @@ -0,0 +1,34 @@ |
117 | +/* |
118 | + * Copyright 2013 Canonical Ltd. |
119 | + * |
120 | + * This program is free software; you can redistribute it and/or modify |
121 | + * it under the terms of the GNU Lesser General Public License as published by |
122 | + * the Free Software Foundation; version 3. |
123 | + * |
124 | + * This program is distributed in the hope that it will be useful, |
125 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
126 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
127 | + * GNU Lesser General Public License for more details. |
128 | + * |
129 | + * You should have received a copy of the GNU Lesser General Public License |
130 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
131 | + */ |
132 | + |
133 | +import QtQuick 2.0 |
134 | + |
135 | +ActionKey { |
136 | + iconNormal: "language-chooser"; |
137 | + iconShifted: "language-chooser"; |
138 | + iconCapsLock: "language-chooser"; |
139 | + |
140 | + padding: 0 |
141 | + |
142 | + visible: canvas.enabledLanguages.length > 1 ? true : false |
143 | + width: canvas.enabledLanguages.length > 1 ? panel.keyWidth : 0 |
144 | + |
145 | + MouseArea { |
146 | + anchors.fill: parent |
147 | + preventStealing: true |
148 | + onPressAndHold: canvas.languageMenuShown = true |
149 | + } |
150 | +} |
151 | |
152 | === renamed file 'qml/LanguageMenu.qml' => 'qml/keys/LanguageMenu.qml' |
153 | --- qml/LanguageMenu.qml 2013-07-19 12:05:07 +0000 |
154 | +++ qml/keys/LanguageMenu.qml 2013-10-24 13:11:26 +0000 |
155 | @@ -18,36 +18,57 @@ |
156 | import Ubuntu.Components 0.1 |
157 | import Ubuntu.Components.ListItems 0.1 as ListItem |
158 | |
159 | +import "key_constants.js" as UI |
160 | + |
161 | Item { |
162 | |
163 | - Rectangle { |
164 | + MouseArea { |
165 | + width: fullScreenItem.width |
166 | + height: fullScreenItem.height |
167 | + |
168 | + anchors.centerIn: parent |
169 | + |
170 | + onClicked: canvas.languageMenuShown = false |
171 | + } |
172 | + |
173 | + BorderImage { |
174 | + id: name |
175 | anchors.fill: parent |
176 | - color: "lightGray" |
177 | - } |
178 | - |
179 | - // tempor., will come from settings |
180 | - ListModel { |
181 | - id: availableLanguagesModel |
182 | - ListElement { language: "English - US"; languageId: "en_us"; } |
183 | - ListElement { language: "English - UK"; languageId: "en_gb"; } |
184 | - ListElement { language: "Chinese - Pinyin"; languageId: "zh_cn_pinyin"; } |
185 | - ListElement { language: "Spanish"; languageId: "es"; } |
186 | - ListElement { language: "German"; languageId: "de"; } |
187 | + source: "../images/popover@27.png" |
188 | + |
189 | + property int __corner: units.gu(UI.languageMenuCorner) |
190 | + |
191 | + border.left: __corner; border.top: __corner; |
192 | + border.right: __corner; border.bottom: __corner; |
193 | } |
194 | |
195 | ListView { |
196 | id: menuList |
197 | - anchors.fill: parent |
198 | - interactive: false |
199 | + anchors.centerIn: parent |
200 | + width: parent.width - units.gu(UI.languageMenuListViewPadding) |
201 | + height: parent.height - units.gu(UI.languageMenuListViewPadding) |
202 | + interactive: true |
203 | + clip: true |
204 | |
205 | - model: availableLanguagesModel |
206 | + model: canvas.enabledLanguages |
207 | |
208 | delegate: ListItem.Standard { |
209 | - text: language |
210 | + text: languageIdToName(modelData) |
211 | onClicked: { |
212 | - event_handler.onLanguageChangeRequested(languageId); |
213 | - canvas.languageMenuVisible = false; |
214 | + canvas.layoutId = modelData; |
215 | + canvas.languageMenuShown = false; |
216 | } |
217 | } |
218 | } |
219 | + |
220 | + function languageIdToName(languageId) |
221 | + { |
222 | + if (languageId == "en_us") return "English - US"; |
223 | + if (languageId == "es") return "Spanish"; |
224 | + if (languageId == "pt") return "Portuguese"; |
225 | + if (languageId == "fr") return "French"; |
226 | + if (languageId == "de") return "German"; |
227 | + if (languageId == "zh_cn_pinyin") return "Chinese - Pinyin"; |
228 | + } |
229 | + |
230 | } |
231 | |
232 | === modified file 'qml/keys/UrlKey.qml' |
233 | --- qml/keys/UrlKey.qml 2013-10-16 17:04:05 +0000 |
234 | +++ qml/keys/UrlKey.qml 2013-10-24 13:11:26 +0000 |
235 | @@ -21,8 +21,7 @@ |
236 | width: panel.keyWidth + units.gu( UI.emailLayoutUrlKeyPadding ) |
237 | |
238 | label: ".com"; |
239 | - shifted: ".com"; |
240 | - extended: [".co.uk", ".net", ".org", ".edu", ".gov", ".ac.uk"]; |
241 | + shifted: label |
242 | extendedShifted: extended |
243 | fontSize: units.gu(UI.smallFontSize); |
244 | } |
245 | |
246 | === modified file 'qml/keys/key_constants.js' |
247 | --- qml/keys/key_constants.js 2013-10-09 12:57:30 +0000 |
248 | +++ qml/keys/key_constants.js 2013-10-24 13:11:26 +0000 |
249 | @@ -53,3 +53,7 @@ |
250 | |
251 | var urlLayoutLeftSpacerSize = 5; // gu |
252 | var emailLayoutUrlKeyPadding = 4; // gu |
253 | + |
254 | +/* language menu */ |
255 | +var languageMenuListViewPadding = 2.22; // gu |
256 | +var languageMenuCorner = 2.5; // gu |
257 | |
258 | === modified file 'qml/languages/Keyboard_symbols.qml' |
259 | --- qml/languages/Keyboard_symbols.qml 2013-10-08 10:02:10 +0000 |
260 | +++ qml/languages/Keyboard_symbols.qml 2013-10-24 13:11:26 +0000 |
261 | @@ -71,7 +71,7 @@ |
262 | OneTwoKey { label: "1/2"; shifted: "2/2"; fontSize: units.gu(UI.fontSize); } |
263 | CharKey { label: "@"; shifted: "«"; } |
264 | CharKey { label: "~"; shifted: "»"; } |
265 | - CharKey { label: "/"; shifted: "¨"; } |
266 | + CharKey { label: "/"; shifted: "\""; } |
267 | CharKey { label: "\\"; shifted: "“"; } |
268 | CharKey { label: "'"; shifted: "”"; } |
269 | CharKey { label: ";"; shifted: "„"; } |
270 | |
271 | === added directory 'qml/languages/de' |
272 | === renamed file 'qml/languages/Keyboard_de.qml' => 'qml/languages/de/Keyboard_de.qml' |
273 | --- qml/languages/Keyboard_de.qml 2013-10-10 09:27:28 +0000 |
274 | +++ qml/languages/de/Keyboard_de.qml 2013-10-24 13:11:26 +0000 |
275 | @@ -15,7 +15,7 @@ |
276 | */ |
277 | |
278 | import QtQuick 2.0 |
279 | -import "../keys" |
280 | +import "../../keys" |
281 | |
282 | KeyPad { |
283 | anchors.fill: parent |
284 | @@ -83,7 +83,8 @@ |
285 | height: panel.keyHeight; |
286 | |
287 | SymbolShiftKey { id: symShiftKey; anchors.left: parent.left; } |
288 | - CharKey { id: commaKey; label: ","; shifted: "/"; anchors.left: symShiftKey.right; } |
289 | + LanguageKey { id: languageMenuButton; anchors.left: symShiftKey.right; } |
290 | + CharKey { id: commaKey; label: ","; shifted: "/"; anchors.left: languageMenuButton.right; } |
291 | SpaceKey { id: spaceKey; anchors.left: commaKey.right; anchors.right: dotKey.left; noMagnifier: true } |
292 | CharKey { id: dotKey; label: "."; shifted: "."; anchors.right: umlaut.left; } |
293 | CharKey { id: umlaut; label: "ö"; shifted: "Ö"; anchors.right: enterKey.left; } |
294 | |
295 | === added file 'qml/languages/de/Keyboard_de_email.qml' |
296 | --- qml/languages/de/Keyboard_de_email.qml 1970-01-01 00:00:00 +0000 |
297 | +++ qml/languages/de/Keyboard_de_email.qml 2013-10-24 13:11:26 +0000 |
298 | @@ -0,0 +1,94 @@ |
299 | +/* |
300 | + * Copyright 2013 Canonical Ltd. |
301 | + * |
302 | + * This program is free software; you can redistribute it and/or modify |
303 | + * it under the terms of the GNU Lesser General Public License as published by |
304 | + * the Free Software Foundation; version 3. |
305 | + * |
306 | + * This program is distributed in the hope that it will be useful, |
307 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
308 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
309 | + * GNU Lesser General Public License for more details. |
310 | + * |
311 | + * You should have received a copy of the GNU Lesser General Public License |
312 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
313 | + */ |
314 | + |
315 | +import QtQuick 2.0 |
316 | +import "../../keys" |
317 | + |
318 | +KeyPad { |
319 | + anchors.fill: parent |
320 | + |
321 | + content: c1 |
322 | + symbols: "languages/Keyboard_symbols.qml" |
323 | + |
324 | + Column { |
325 | + id: c1 |
326 | + anchors.fill: parent |
327 | + spacing: 0 |
328 | + |
329 | + Row { |
330 | + anchors.horizontalCenter: parent.horizontalCenter; |
331 | + spacing: 0 |
332 | + |
333 | + CharKey { label: "q"; shifted: "Q"; } |
334 | + CharKey { label: "w"; shifted: "W"; } |
335 | + CharKey { label: "e"; shifted: "E"; extended: ["è", "é", "ë", "ê", "€"]; extendedShifted: ["È","É", "Ë", "Ê", "€"] } |
336 | + CharKey { label: "r"; shifted: "R"; } |
337 | + CharKey { label: "t"; shifted: "T"; extended: ["þ"]; extendedShifted: ["Þ"] } |
338 | + CharKey { label: "z"; shifted: "Z"; } |
339 | + CharKey { label: "u"; shifted: "U"; extended: ["ü","ù","ú","û"]; extendedShifted: ["Ü","Ù","Ú","Û"] } |
340 | + CharKey { label: "i"; shifted: "I"; extended: ["ì","í","î","ï","ı"]; extendedShifted: ["Ì","Í","Î","Ï","İ"] } |
341 | + CharKey { label: "o"; shifted: "O"; extended: ["ö","ò","ó","ô","õ","ø"]; extendedShifted: ["Ö","Ò","Ó","Ô","Õ","Ø"] } |
342 | + CharKey { label: "p"; shifted: "P"; } |
343 | + } |
344 | + |
345 | + Row { |
346 | + anchors.horizontalCenter: parent.horizontalCenter; |
347 | + spacing: 0 |
348 | + |
349 | + CharKey { label: "a"; shifted: "A"; extended: ["ä","à","á","ã","â","å","æ"]; extendedShifted: ["Ä","À","Â","Á","Ã","Å","Æ"] } |
350 | + CharKey { label: "s"; shifted: "S"; extended: ["ß","$"]; extendedShifted: ["ş","$"] } |
351 | + CharKey { label: "d"; shifted: "D"; } |
352 | + CharKey { label: "f"; shifted: "F"; } |
353 | + CharKey { label: "g"; shifted: "G"; extended: ["ğ"]; extendedShifted: ["Ğ"]; } |
354 | + CharKey { label: "h"; shifted: "H"; } |
355 | + CharKey { label: "j"; shifted: "J"; } |
356 | + CharKey { label: "k"; shifted: "K"; } |
357 | + CharKey { label: "l"; shifted: "L"; } |
358 | + CharKey { label: "ü"; shifted: "Ü"; } |
359 | + } |
360 | + |
361 | + Row { |
362 | + anchors.horizontalCenter: parent.horizontalCenter; |
363 | + spacing: 0 |
364 | + |
365 | + ShiftKey { padding: 0 } |
366 | + CharKey { label: "y"; shifted: "Y"; extended: ["¥"]; extendedShifted: ["¥"] } |
367 | + CharKey { label: "x"; shifted: "X"; } |
368 | + CharKey { label: "c"; shifted: "C"; extended: ["ç"]; extendedShifted: ["Ç"] } |
369 | + CharKey { label: "v"; shifted: "V"; } |
370 | + CharKey { label: "b"; shifted: "B"; } |
371 | + CharKey { label: "n"; shifted: "N"; extended: ["ñ"]; extendedShifted: ["Ñ"] } |
372 | + CharKey { label: "m"; shifted: "M"; } |
373 | + CharKey { label: "ä"; shifted: "Ä"; } |
374 | + BackspaceKey { padding: 0 } |
375 | + } |
376 | + |
377 | + Item { |
378 | + anchors.left: parent.left |
379 | + anchors.right: parent.right |
380 | + |
381 | + height: panel.keyHeight; |
382 | + |
383 | + SymbolShiftKey { id: symShiftKey; anchors.left: parent.left; } |
384 | + CharKey { id: atKey; label: "@"; shifted: "@"; anchors.left: symShiftKey.right; } |
385 | + SpaceKey { id: spaceKey; anchors.left: atKey.right; anchors.right: urlKey.left; noMagnifier: true } |
386 | + UrlKey { id: urlKey; label: ".de"; extended: [".at", ".ch", ".de"]; anchors.right: dotKey.left; } |
387 | + CharKey { id: dotKey; label: "."; shifted: "."; anchors.right: umlaut.left; } |
388 | + CharKey { id: umlaut; label: "ö"; shifted: "Ö"; anchors.right: enterKey.left; } |
389 | + ReturnKey { id: enterKey; anchors.right: parent.right } |
390 | + } |
391 | + } // column |
392 | +} |
393 | |
394 | === added file 'qml/languages/de/Keyboard_de_url.qml' |
395 | --- qml/languages/de/Keyboard_de_url.qml 1970-01-01 00:00:00 +0000 |
396 | +++ qml/languages/de/Keyboard_de_url.qml 2013-10-24 13:11:26 +0000 |
397 | @@ -0,0 +1,93 @@ |
398 | +/* |
399 | + * Copyright 2013 Canonical Ltd. |
400 | + * |
401 | + * This program is free software; you can redistribute it and/or modify |
402 | + * it under the terms of the GNU Lesser General Public License as published by |
403 | + * the Free Software Foundation; version 3. |
404 | + * |
405 | + * This program is distributed in the hope that it will be useful, |
406 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
407 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
408 | + * GNU Lesser General Public License for more details. |
409 | + * |
410 | + * You should have received a copy of the GNU Lesser General Public License |
411 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
412 | + */ |
413 | + |
414 | +import QtQuick 2.0 |
415 | +import "../../keys" |
416 | + |
417 | +KeyPad { |
418 | + anchors.fill: parent |
419 | + |
420 | + content: c1 |
421 | + symbols: "languages/Keyboard_symbols.qml" |
422 | + |
423 | + Column { |
424 | + id: c1 |
425 | + anchors.fill: parent |
426 | + spacing: 0 |
427 | + |
428 | + Row { |
429 | + anchors.horizontalCenter: parent.horizontalCenter; |
430 | + spacing: 0 |
431 | + |
432 | + CharKey { label: "q"; shifted: "Q"; } |
433 | + CharKey { label: "w"; shifted: "W"; } |
434 | + CharKey { label: "e"; shifted: "E"; extended: ["è", "é", "ë", "ê", "€"]; extendedShifted: ["È","É", "Ë", "Ê", "€"] } |
435 | + CharKey { label: "r"; shifted: "R"; } |
436 | + CharKey { label: "t"; shifted: "T"; extended: ["þ"]; extendedShifted: ["Þ"] } |
437 | + CharKey { label: "z"; shifted: "Z"; } |
438 | + CharKey { label: "u"; shifted: "U"; extended: ["ü","ù","ú","û"]; extendedShifted: ["Ü","Ù","Ú","Û"] } |
439 | + CharKey { label: "i"; shifted: "I"; extended: ["ì","í","î","ï","ı"]; extendedShifted: ["Ì","Í","Î","Ï","İ"] } |
440 | + CharKey { label: "o"; shifted: "O"; extended: ["ö","ò","ó","ô","õ","ø"]; extendedShifted: ["Ö","Ò","Ó","Ô","Õ","Ø"] } |
441 | + CharKey { label: "p"; shifted: "P"; } |
442 | + } |
443 | + |
444 | + Row { |
445 | + anchors.horizontalCenter: parent.horizontalCenter; |
446 | + spacing: 0 |
447 | + |
448 | + CharKey { label: "a"; shifted: "A"; extended: ["ä","à","á","ã","â","å","æ"]; extendedShifted: ["Ä","À","Â","Á","Ã","Å","Æ"] } |
449 | + CharKey { label: "s"; shifted: "S"; extended: ["ß","$"]; extendedShifted: ["ş","$"] } |
450 | + CharKey { label: "d"; shifted: "D"; } |
451 | + CharKey { label: "f"; shifted: "F"; } |
452 | + CharKey { label: "g"; shifted: "G"; extended: ["ğ"]; extendedShifted: ["Ğ"]; } |
453 | + CharKey { label: "h"; shifted: "H"; } |
454 | + CharKey { label: "j"; shifted: "J"; } |
455 | + CharKey { label: "k"; shifted: "K"; } |
456 | + CharKey { label: "l"; shifted: "L"; } |
457 | + CharKey { label: "ü"; shifted: "Ü"; } |
458 | + } |
459 | + |
460 | + Row { |
461 | + anchors.horizontalCenter: parent.horizontalCenter; |
462 | + spacing: 0 |
463 | + |
464 | + ShiftKey { padding: 0 } |
465 | + CharKey { label: "y"; shifted: "Y"; extended: ["¥"]; extendedShifted: ["¥"] } |
466 | + CharKey { label: "x"; shifted: "X"; } |
467 | + CharKey { label: "c"; shifted: "C"; extended: ["ç"]; extendedShifted: ["Ç"] } |
468 | + CharKey { label: "v"; shifted: "V"; } |
469 | + CharKey { label: "b"; shifted: "B"; } |
470 | + CharKey { label: "n"; shifted: "N"; extended: ["ñ"]; extendedShifted: ["Ñ"] } |
471 | + CharKey { label: "m"; shifted: "M"; } |
472 | + CharKey { label: "ä"; shifted: "Ä"; } |
473 | + BackspaceKey { padding: 0 } |
474 | + } |
475 | + |
476 | + Item { |
477 | + anchors.left: parent.left |
478 | + anchors.right: parent.right |
479 | + |
480 | + height: panel.keyHeight; |
481 | + |
482 | + SymbolShiftKey { id: symShiftKey; anchors.left: parent.left; } |
483 | + CharKey { id: slashKey; label: "/"; shifted: "/"; anchors.left: symShiftKey.right; } |
484 | + UrlKey { id: urlKey; label: ".de"; extended: [".at", ".ch", ".de"]; anchors.right: dotKey.left; } |
485 | + CharKey { id: dotKey; label: "."; shifted: "."; anchors.right: umlaut.left; } |
486 | + CharKey { id: umlaut; label: "ö"; shifted: "Ö"; anchors.right: enterKey.left; } |
487 | + ReturnKey { id: enterKey; anchors.right: parent.right } |
488 | + } |
489 | + } // column |
490 | +} |
491 | |
492 | === added file 'qml/languages/de/Keyboard_de_url_search.qml' |
493 | --- qml/languages/de/Keyboard_de_url_search.qml 1970-01-01 00:00:00 +0000 |
494 | +++ qml/languages/de/Keyboard_de_url_search.qml 2013-10-24 13:11:26 +0000 |
495 | @@ -0,0 +1,94 @@ |
496 | +/* |
497 | + * Copyright 2013 Canonical Ltd. |
498 | + * |
499 | + * This program is free software; you can redistribute it and/or modify |
500 | + * it under the terms of the GNU Lesser General Public License as published by |
501 | + * the Free Software Foundation; version 3. |
502 | + * |
503 | + * This program is distributed in the hope that it will be useful, |
504 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
505 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
506 | + * GNU Lesser General Public License for more details. |
507 | + * |
508 | + * You should have received a copy of the GNU Lesser General Public License |
509 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
510 | + */ |
511 | + |
512 | +import QtQuick 2.0 |
513 | +import "../../keys" |
514 | + |
515 | +KeyPad { |
516 | + anchors.fill: parent |
517 | + |
518 | + content: c1 |
519 | + symbols: "languages/Keyboard_symbols.qml" |
520 | + |
521 | + Column { |
522 | + id: c1 |
523 | + anchors.fill: parent |
524 | + spacing: 0 |
525 | + |
526 | + Row { |
527 | + anchors.horizontalCenter: parent.horizontalCenter; |
528 | + spacing: 0 |
529 | + |
530 | + CharKey { label: "q"; shifted: "Q"; } |
531 | + CharKey { label: "w"; shifted: "W"; } |
532 | + CharKey { label: "e"; shifted: "E"; extended: ["è", "é", "ë", "ê", "€"]; extendedShifted: ["È","É", "Ë", "Ê", "€"] } |
533 | + CharKey { label: "r"; shifted: "R"; } |
534 | + CharKey { label: "t"; shifted: "T"; extended: ["þ"]; extendedShifted: ["Þ"] } |
535 | + CharKey { label: "z"; shifted: "Z"; } |
536 | + CharKey { label: "u"; shifted: "U"; extended: ["ü","ù","ú","û"]; extendedShifted: ["Ü","Ù","Ú","Û"] } |
537 | + CharKey { label: "i"; shifted: "I"; extended: ["ì","í","î","ï","ı"]; extendedShifted: ["Ì","Í","Î","Ï","İ"] } |
538 | + CharKey { label: "o"; shifted: "O"; extended: ["ö","ò","ó","ô","õ","ø"]; extendedShifted: ["Ö","Ò","Ó","Ô","Õ","Ø"] } |
539 | + CharKey { label: "p"; shifted: "P"; } |
540 | + } |
541 | + |
542 | + Row { |
543 | + anchors.horizontalCenter: parent.horizontalCenter; |
544 | + spacing: 0 |
545 | + |
546 | + CharKey { label: "a"; shifted: "A"; extended: ["ä","à","á","ã","â","å","æ"]; extendedShifted: ["Ä","À","Â","Á","Ã","Å","Æ"] } |
547 | + CharKey { label: "s"; shifted: "S"; extended: ["ß","$"]; extendedShifted: ["ş","$"] } |
548 | + CharKey { label: "d"; shifted: "D"; } |
549 | + CharKey { label: "f"; shifted: "F"; } |
550 | + CharKey { label: "g"; shifted: "G"; extended: ["ğ"]; extendedShifted: ["Ğ"]; } |
551 | + CharKey { label: "h"; shifted: "H"; } |
552 | + CharKey { label: "j"; shifted: "J"; } |
553 | + CharKey { label: "k"; shifted: "K"; } |
554 | + CharKey { label: "l"; shifted: "L"; } |
555 | + CharKey { label: "ü"; shifted: "Ü"; } |
556 | + } |
557 | + |
558 | + Row { |
559 | + anchors.horizontalCenter: parent.horizontalCenter; |
560 | + spacing: 0 |
561 | + |
562 | + ShiftKey { padding: 0 } |
563 | + CharKey { label: "y"; shifted: "Y"; extended: ["¥"]; extendedShifted: ["¥"] } |
564 | + CharKey { label: "x"; shifted: "X"; } |
565 | + CharKey { label: "c"; shifted: "C"; extended: ["ç"]; extendedShifted: ["Ç"] } |
566 | + CharKey { label: "v"; shifted: "V"; } |
567 | + CharKey { label: "b"; shifted: "B"; } |
568 | + CharKey { label: "n"; shifted: "N"; extended: ["ñ"]; extendedShifted: ["Ñ"] } |
569 | + CharKey { label: "m"; shifted: "M"; } |
570 | + CharKey { label: "ä"; shifted: "Ä"; } |
571 | + BackspaceKey { padding: 0 } |
572 | + } |
573 | + |
574 | + Item { |
575 | + anchors.left: parent.left |
576 | + anchors.right: parent.right |
577 | + |
578 | + height: panel.keyHeight; |
579 | + |
580 | + SymbolShiftKey { id: symShiftKey; anchors.left: parent.left; } |
581 | + CharKey { id: slashKey; label: "/"; shifted: "/"; anchors.left: symShiftKey.right; } |
582 | + SpaceKey { id: spaceKey; anchors.left: slashKey.right; anchors.right: urlKey.left; noMagnifier: true } |
583 | + UrlKey { id: urlKey; label: ".de"; extended: [".at", ".ch", ".de"]; anchors.right: dotKey.left; } |
584 | + CharKey { id: dotKey; label: "."; shifted: "."; anchors.right: umlaut.left; } |
585 | + CharKey { id: umlaut; label: "ö"; shifted: "Ö"; anchors.right: enterKey.left; } |
586 | + ReturnKey { id: enterKey; anchors.right: parent.right } |
587 | + } |
588 | + } // column |
589 | +} |
590 | |
591 | === added directory 'qml/languages/en' |
592 | === renamed file 'qml/languages/Keyboard_en_us.qml' => 'qml/languages/en/Keyboard_en.qml' |
593 | --- qml/languages/Keyboard_en_us.qml 2013-10-09 15:45:52 +0000 |
594 | +++ qml/languages/en/Keyboard_en.qml 2013-10-24 13:11:26 +0000 |
595 | @@ -15,7 +15,7 @@ |
596 | */ |
597 | |
598 | import QtQuick 2.0 |
599 | -import "../keys" |
600 | +import "../../keys" |
601 | |
602 | KeyPad { |
603 | anchors.fill: parent |
604 | @@ -81,7 +81,8 @@ |
605 | height: panel.keyHeight; |
606 | |
607 | SymbolShiftKey { id: symShiftKey; anchors.left: parent.left; } |
608 | - CharKey { id: commaKey; label: ","; shifted: "/"; anchors.left: symShiftKey.right; } |
609 | + LanguageKey { id: languageMenuButton; anchors.left: symShiftKey.right; } |
610 | + CharKey { id: commaKey; label: ","; shifted: "/"; anchors.left: languageMenuButton.right; } |
611 | SpaceKey { id: spaceKey; anchors.left: commaKey.right; anchors.right: dotKey.left; noMagnifier: true } |
612 | CharKey { id: dotKey; label: "."; shifted: "."; anchors.right: enterKey.left; } |
613 | ReturnKey { id: enterKey; anchors.right: parent.right } |
614 | |
615 | === renamed file 'qml/languages/Keyboard_en_email.qml' => 'qml/languages/en/Keyboard_en_email.qml' |
616 | --- qml/languages/Keyboard_en_email.qml 2013-10-16 17:04:05 +0000 |
617 | +++ qml/languages/en/Keyboard_en_email.qml 2013-10-24 13:11:26 +0000 |
618 | @@ -15,7 +15,7 @@ |
619 | */ |
620 | |
621 | import QtQuick 2.0 |
622 | -import "../keys" |
623 | +import "../../keys" |
624 | |
625 | KeyPad { |
626 | anchors.fill: parent |
627 | @@ -83,7 +83,7 @@ |
628 | SymbolShiftKey { id: symShiftKey; anchors.left: parent.left; } |
629 | CharKey { id: atKey; label: "@"; shifted: "@"; anchors.left: symShiftKey.right; } |
630 | SpaceKey { id: spaceKey; anchors.left: atKey.right; anchors.right: urlKey.left; noMagnifier: true } |
631 | - UrlKey { id: urlKey; anchors.right: dotKey.left; } |
632 | + UrlKey { id: urlKey; label: ".com"; extended: [".co.uk", ".net", ".org", ".edu", ".gov", ".ac.uk"]; anchors.right: dotKey.left; } |
633 | CharKey { id: dotKey; label: "."; shifted: "."; anchors.right: enterKey.left; } |
634 | ReturnKey { id: enterKey; anchors.right: parent.right } |
635 | } |
636 | |
637 | === renamed file 'qml/languages/Keyboard_en_url.qml' => 'qml/languages/en/Keyboard_en_url.qml' |
638 | --- qml/languages/Keyboard_en_url.qml 2013-10-09 09:12:38 +0000 |
639 | +++ qml/languages/en/Keyboard_en_url.qml 2013-10-24 13:11:26 +0000 |
640 | @@ -15,7 +15,7 @@ |
641 | */ |
642 | |
643 | import QtQuick 2.0 |
644 | -import "../keys" |
645 | +import "../../keys" |
646 | |
647 | KeyPad { |
648 | anchors.fill: parent |
649 | @@ -82,7 +82,7 @@ |
650 | |
651 | SymbolShiftKey { id: symShiftKey; anchors.left: parent.left; } |
652 | CharKey { id: slashKey; label: "/"; shifted: "/"; anchors.left: symShiftKey.right; } |
653 | - UrlKey { id: urlKey; anchors.right: dotKey.left; anchors.left: slashKey.right } |
654 | + UrlKey { id: urlKey; label: ".com"; extended: [".co.uk", ".net", ".org", ".edu", ".gov", ".ac.uk"]; anchors.right: dotKey.left; } |
655 | CharKey { id: dotKey; label: "."; shifted: "."; anchors.right: enterKey.left; } |
656 | ReturnKey { id: enterKey; anchors.right: parent.right } |
657 | } |
658 | |
659 | === renamed file 'qml/languages/Keyboard_en_url_search.qml' => 'qml/languages/en/Keyboard_en_url_search.qml' |
660 | --- qml/languages/Keyboard_en_url_search.qml 2013-10-09 08:59:16 +0000 |
661 | +++ qml/languages/en/Keyboard_en_url_search.qml 2013-10-24 13:11:26 +0000 |
662 | @@ -15,7 +15,7 @@ |
663 | */ |
664 | |
665 | import QtQuick 2.0 |
666 | -import "../keys" |
667 | +import "../../keys" |
668 | |
669 | KeyPad { |
670 | anchors.fill: parent |
671 | @@ -84,7 +84,7 @@ |
672 | SymbolShiftKey { id: symShiftKey; anchors.left: parent.left; } |
673 | CharKey { id: slashKey; label: "/"; shifted: "/"; anchors.left: symShiftKey.right; } |
674 | SpaceKey { id: spaceKey; anchors.left: slashKey.right; anchors.right: urlKey.left; noMagnifier: true } |
675 | - UrlKey { id: urlKey; anchors.right: dotKey.left; } |
676 | + UrlKey { id: urlKey; label: ".com"; extended: [".co.uk", ".net", ".org", ".edu", ".gov", ".ac.uk"]; anchors.right: dotKey.left; } |
677 | CharKey { id: dotKey; label: "."; shifted: "."; anchors.right: enterKey.left; } |
678 | ReturnKey { id: enterKey; anchors.right: parent.right } |
679 | } |
680 | |
681 | === added directory 'qml/languages/es' |
682 | === renamed file 'qml/languages/Keyboard_es.qml' => 'qml/languages/es/Keyboard_es.qml' |
683 | --- qml/languages/Keyboard_es.qml 2013-10-10 09:27:28 +0000 |
684 | +++ qml/languages/es/Keyboard_es.qml 2013-10-24 13:11:26 +0000 |
685 | @@ -15,7 +15,7 @@ |
686 | */ |
687 | |
688 | import QtQuick 2.0 |
689 | -import "../keys" |
690 | +import "../../keys" |
691 | |
692 | KeyPad { |
693 | anchors.fill: parent |
694 | @@ -82,7 +82,8 @@ |
695 | height: panel.keyHeight; |
696 | |
697 | SymbolShiftKey { id: symShiftKey; anchors.left: parent.left; } |
698 | - CharKey { id: commaKey; label: ","; shifted: "/"; anchors.left: symShiftKey.right; } |
699 | + LanguageKey { id: languageMenuButton; anchors.left: symShiftKey.right; } |
700 | + CharKey { id: commaKey; label: ","; shifted: "/"; anchors.left: languageMenuButton.right; } |
701 | SpaceKey { id: spaceKey; anchors.left: commaKey.right; anchors.right: dotKey.left; noMagnifier: true } |
702 | CharKey { id: dotKey; label: "."; shifted: "."; anchors.right: enterKey.left; } |
703 | ReturnKey { id: enterKey; anchors.right: parent.right } |
704 | |
705 | === added file 'qml/languages/es/Keyboard_es_email.qml' |
706 | --- qml/languages/es/Keyboard_es_email.qml 1970-01-01 00:00:00 +0000 |
707 | +++ qml/languages/es/Keyboard_es_email.qml 2013-10-24 13:11:26 +0000 |
708 | @@ -0,0 +1,92 @@ |
709 | +/* |
710 | + * Copyright 2013 Canonical Ltd. |
711 | + * |
712 | + * This program is free software; you can redistribute it and/or modify |
713 | + * it under the terms of the GNU Lesser General Public License as published by |
714 | + * the Free Software Foundation; version 3. |
715 | + * |
716 | + * This program is distributed in the hope that it will be useful, |
717 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
718 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
719 | + * GNU Lesser General Public License for more details. |
720 | + * |
721 | + * You should have received a copy of the GNU Lesser General Public License |
722 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
723 | + */ |
724 | + |
725 | +import QtQuick 2.0 |
726 | +import "../../keys" |
727 | + |
728 | +KeyPad { |
729 | + anchors.fill: parent |
730 | + |
731 | + content: c1 |
732 | + symbols: "languages/Keyboard_symbols.qml" |
733 | + |
734 | + Column { |
735 | + id: c1 |
736 | + anchors.fill: parent |
737 | + spacing: 0 |
738 | + |
739 | + Row { |
740 | + anchors.horizontalCenter: parent.horizontalCenter; |
741 | + spacing: 0 |
742 | + |
743 | + CharKey { label: "q"; shifted: "Q"; } |
744 | + CharKey { label: "w"; shifted: "W"; } |
745 | + CharKey { label: "e"; shifted: "E"; extended: ["è", "é", "ê", "ë", "€"]; extendedShifted: ["È","É", "Ê", "Ë", "€"] } |
746 | + CharKey { label: "r"; shifted: "R"; } |
747 | + CharKey { label: "t"; shifted: "T"; extended: ["þ"]; extendedShifted: ["Þ"] } |
748 | + CharKey { label: "y"; shifted: "Y"; extended: ["ý", "¥", "ÿ"]; extendedShifted: ["Ý", "¥", "Ÿ"] } |
749 | + CharKey { label: "u"; shifted: "U"; extended: ["û","ù","ú","ü"]; extendedShifted: ["Û","Ù","Ú","Ü"] } |
750 | + CharKey { label: "i"; shifted: "I"; extended: ["î","ï","ì","í"]; extendedShifted: ["Î","Ï","Ì","Í"] } |
751 | + CharKey { label: "o"; shifted: "O"; extended: ["ö","ô","ò","ó", "º","õ"]; extendedShifted: ["Ö","Ô","Ò","Ó", "º","Õ"] } |
752 | + CharKey { label: "p"; shifted: "P"; } |
753 | + } |
754 | + |
755 | + Row { |
756 | + anchors.horizontalCenter: parent.horizontalCenter; |
757 | + spacing: 0 |
758 | + |
759 | + CharKey { label: "a"; shifted: "A"; extended: ["ä","à","â","á","ã","å","ª","æ"]; extendedShifted: ["Ä","À","Â","Á","Ã","Å","ª","Æ"] } |
760 | + CharKey { label: "s"; shifted: "S"; extended: ["ß","$"]; extendedShifted: ["$"] } |
761 | + CharKey { label: "d"; shifted: "D"; extended: ["ð"]; extendedShifted: ["Ð"] } |
762 | + CharKey { label: "f"; shifted: "F"; } |
763 | + CharKey { label: "g"; shifted: "G"; } |
764 | + CharKey { label: "h"; shifted: "H"; } |
765 | + CharKey { label: "j"; shifted: "J"; } |
766 | + CharKey { label: "k"; shifted: "K"; } |
767 | + CharKey { label: "l"; shifted: "L"; } |
768 | + CharKey { label: "ñ"; shifted: "Ñ"; } |
769 | + } |
770 | + |
771 | + Row { |
772 | + anchors.horizontalCenter: parent.horizontalCenter; |
773 | + spacing: 0 |
774 | + |
775 | + ShiftKey {} |
776 | + CharKey { label: "z"; shifted: "Z"; } |
777 | + CharKey { label: "x"; shifted: "X"; } |
778 | + CharKey { label: "c"; shifted: "C"; extended: ["ç"]; extendedShifted: ["Ç"] } |
779 | + CharKey { label: "v"; shifted: "V"; } |
780 | + CharKey { label: "b"; shifted: "B"; } |
781 | + CharKey { label: "n"; shifted: "N"; extended: ["ñ"]; extendedShifted: ["Ñ"] } |
782 | + CharKey { label: "m"; shifted: "M"; } |
783 | + BackspaceKey {} |
784 | + } |
785 | + |
786 | + Item { |
787 | + anchors.left: parent.left |
788 | + anchors.right: parent.right |
789 | + |
790 | + height: panel.keyHeight; |
791 | + |
792 | + SymbolShiftKey { id: symShiftKey; anchors.left: parent.left; } |
793 | + CharKey { id: atKey; label: "@"; shifted: "@"; anchors.left: symShiftKey.right; } |
794 | + SpaceKey { id: spaceKey; anchors.left: atKey.right; anchors.right: urlKey.left; noMagnifier: true } |
795 | + UrlKey { id: urlKey; label: ".es"; extended: [".mx", ".co", ".ar", ".com", ".pe", ".ve", ".cl"]; anchors.right: dotKey.left; } |
796 | + CharKey { id: dotKey; label: "."; shifted: "."; anchors.right: enterKey.left; } |
797 | + ReturnKey { id: enterKey; anchors.right: parent.right } |
798 | + } |
799 | + } // column |
800 | +} |
801 | |
802 | === added file 'qml/languages/es/Keyboard_es_url.qml' |
803 | --- qml/languages/es/Keyboard_es_url.qml 1970-01-01 00:00:00 +0000 |
804 | +++ qml/languages/es/Keyboard_es_url.qml 2013-10-24 13:11:26 +0000 |
805 | @@ -0,0 +1,91 @@ |
806 | +/* |
807 | + * Copyright 2013 Canonical Ltd. |
808 | + * |
809 | + * This program is free software; you can redistribute it and/or modify |
810 | + * it under the terms of the GNU Lesser General Public License as published by |
811 | + * the Free Software Foundation; version 3. |
812 | + * |
813 | + * This program is distributed in the hope that it will be useful, |
814 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
815 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
816 | + * GNU Lesser General Public License for more details. |
817 | + * |
818 | + * You should have received a copy of the GNU Lesser General Public License |
819 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
820 | + */ |
821 | + |
822 | +import QtQuick 2.0 |
823 | +import "../../keys" |
824 | + |
825 | +KeyPad { |
826 | + anchors.fill: parent |
827 | + |
828 | + content: c1 |
829 | + symbols: "languages/Keyboard_symbols.qml" |
830 | + |
831 | + Column { |
832 | + id: c1 |
833 | + anchors.fill: parent |
834 | + spacing: 0 |
835 | + |
836 | + Row { |
837 | + anchors.horizontalCenter: parent.horizontalCenter; |
838 | + spacing: 0 |
839 | + |
840 | + CharKey { label: "q"; shifted: "Q"; } |
841 | + CharKey { label: "w"; shifted: "W"; } |
842 | + CharKey { label: "e"; shifted: "E"; extended: ["è", "é", "ê", "ë", "€"]; extendedShifted: ["È","É", "Ê", "Ë", "€"] } |
843 | + CharKey { label: "r"; shifted: "R"; } |
844 | + CharKey { label: "t"; shifted: "T"; extended: ["þ"]; extendedShifted: ["Þ"] } |
845 | + CharKey { label: "y"; shifted: "Y"; extended: ["ý", "¥", "ÿ"]; extendedShifted: ["Ý", "¥", "Ÿ"] } |
846 | + CharKey { label: "u"; shifted: "U"; extended: ["û","ù","ú","ü"]; extendedShifted: ["Û","Ù","Ú","Ü"] } |
847 | + CharKey { label: "i"; shifted: "I"; extended: ["î","ï","ì","í"]; extendedShifted: ["Î","Ï","Ì","Í"] } |
848 | + CharKey { label: "o"; shifted: "O"; extended: ["ö","ô","ò","ó", "º","õ"]; extendedShifted: ["Ö","Ô","Ò","Ó", "º","Õ"] } |
849 | + CharKey { label: "p"; shifted: "P"; } |
850 | + } |
851 | + |
852 | + Row { |
853 | + anchors.horizontalCenter: parent.horizontalCenter; |
854 | + spacing: 0 |
855 | + |
856 | + CharKey { label: "a"; shifted: "A"; extended: ["ä","à","â","á","ã","å","ª","æ"]; extendedShifted: ["Ä","À","Â","Á","Ã","Å","ª","Æ"] } |
857 | + CharKey { label: "s"; shifted: "S"; extended: ["ß","$"]; extendedShifted: ["$"] } |
858 | + CharKey { label: "d"; shifted: "D"; extended: ["ð"]; extendedShifted: ["Ð"] } |
859 | + CharKey { label: "f"; shifted: "F"; } |
860 | + CharKey { label: "g"; shifted: "G"; } |
861 | + CharKey { label: "h"; shifted: "H"; } |
862 | + CharKey { label: "j"; shifted: "J"; } |
863 | + CharKey { label: "k"; shifted: "K"; } |
864 | + CharKey { label: "l"; shifted: "L"; } |
865 | + CharKey { label: "ñ"; shifted: "Ñ"; } |
866 | + } |
867 | + |
868 | + Row { |
869 | + anchors.horizontalCenter: parent.horizontalCenter; |
870 | + spacing: 0 |
871 | + |
872 | + ShiftKey {} |
873 | + CharKey { label: "z"; shifted: "Z"; } |
874 | + CharKey { label: "x"; shifted: "X"; } |
875 | + CharKey { label: "c"; shifted: "C"; extended: ["ç"]; extendedShifted: ["Ç"] } |
876 | + CharKey { label: "v"; shifted: "V"; } |
877 | + CharKey { label: "b"; shifted: "B"; } |
878 | + CharKey { label: "n"; shifted: "N"; extended: ["ñ"]; extendedShifted: ["Ñ"] } |
879 | + CharKey { label: "m"; shifted: "M"; } |
880 | + BackspaceKey {} |
881 | + } |
882 | + |
883 | + Item { |
884 | + anchors.left: parent.left |
885 | + anchors.right: parent.right |
886 | + |
887 | + height: panel.keyHeight; |
888 | + |
889 | + SymbolShiftKey { id: symShiftKey; anchors.left: parent.left; } |
890 | + CharKey { id: slashKey; label: "/"; shifted: "/"; anchors.left: symShiftKey.right; } |
891 | + UrlKey { id: urlKey; label: ".es"; extended: [".mx", ".co", ".ar", ".com", ".pe", ".ve", ".cl"]; anchors.right: dotKey.left; } |
892 | + CharKey { id: dotKey; label: "."; shifted: "."; anchors.right: enterKey.left; } |
893 | + ReturnKey { id: enterKey; anchors.right: parent.right } |
894 | + } |
895 | + } // column |
896 | +} |
897 | |
898 | === added file 'qml/languages/es/Keyboard_es_url_search.qml' |
899 | --- qml/languages/es/Keyboard_es_url_search.qml 1970-01-01 00:00:00 +0000 |
900 | +++ qml/languages/es/Keyboard_es_url_search.qml 2013-10-24 13:11:26 +0000 |
901 | @@ -0,0 +1,92 @@ |
902 | +/* |
903 | + * Copyright 2013 Canonical Ltd. |
904 | + * |
905 | + * This program is free software; you can redistribute it and/or modify |
906 | + * it under the terms of the GNU Lesser General Public License as published by |
907 | + * the Free Software Foundation; version 3. |
908 | + * |
909 | + * This program is distributed in the hope that it will be useful, |
910 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
911 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
912 | + * GNU Lesser General Public License for more details. |
913 | + * |
914 | + * You should have received a copy of the GNU Lesser General Public License |
915 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
916 | + */ |
917 | + |
918 | +import QtQuick 2.0 |
919 | +import "../../keys" |
920 | + |
921 | +KeyPad { |
922 | + anchors.fill: parent |
923 | + |
924 | + content: c1 |
925 | + symbols: "languages/Keyboard_symbols.qml" |
926 | + |
927 | + Column { |
928 | + id: c1 |
929 | + anchors.fill: parent |
930 | + spacing: 0 |
931 | + |
932 | + Row { |
933 | + anchors.horizontalCenter: parent.horizontalCenter; |
934 | + spacing: 0 |
935 | + |
936 | + CharKey { label: "q"; shifted: "Q"; } |
937 | + CharKey { label: "w"; shifted: "W"; } |
938 | + CharKey { label: "e"; shifted: "E"; extended: ["è", "é", "ê", "ë", "€"]; extendedShifted: ["È","É", "Ê", "Ë", "€"] } |
939 | + CharKey { label: "r"; shifted: "R"; } |
940 | + CharKey { label: "t"; shifted: "T"; extended: ["þ"]; extendedShifted: ["Þ"] } |
941 | + CharKey { label: "y"; shifted: "Y"; extended: ["ý", "¥", "ÿ"]; extendedShifted: ["Ý", "¥", "Ÿ"] } |
942 | + CharKey { label: "u"; shifted: "U"; extended: ["û","ù","ú","ü"]; extendedShifted: ["Û","Ù","Ú","Ü"] } |
943 | + CharKey { label: "i"; shifted: "I"; extended: ["î","ï","ì","í"]; extendedShifted: ["Î","Ï","Ì","Í"] } |
944 | + CharKey { label: "o"; shifted: "O"; extended: ["ö","ô","ò","ó", "º","õ"]; extendedShifted: ["Ö","Ô","Ò","Ó", "º","Õ"] } |
945 | + CharKey { label: "p"; shifted: "P"; } |
946 | + } |
947 | + |
948 | + Row { |
949 | + anchors.horizontalCenter: parent.horizontalCenter; |
950 | + spacing: 0 |
951 | + |
952 | + CharKey { label: "a"; shifted: "A"; extended: ["ä","à","â","á","ã","å","ª","æ"]; extendedShifted: ["Ä","À","Â","Á","Ã","Å","ª","Æ"] } |
953 | + CharKey { label: "s"; shifted: "S"; extended: ["ß","$"]; extendedShifted: ["$"] } |
954 | + CharKey { label: "d"; shifted: "D"; extended: ["ð"]; extendedShifted: ["Ð"] } |
955 | + CharKey { label: "f"; shifted: "F"; } |
956 | + CharKey { label: "g"; shifted: "G"; } |
957 | + CharKey { label: "h"; shifted: "H"; } |
958 | + CharKey { label: "j"; shifted: "J"; } |
959 | + CharKey { label: "k"; shifted: "K"; } |
960 | + CharKey { label: "l"; shifted: "L"; } |
961 | + CharKey { label: "ñ"; shifted: "Ñ"; } |
962 | + } |
963 | + |
964 | + Row { |
965 | + anchors.horizontalCenter: parent.horizontalCenter; |
966 | + spacing: 0 |
967 | + |
968 | + ShiftKey {} |
969 | + CharKey { label: "z"; shifted: "Z"; } |
970 | + CharKey { label: "x"; shifted: "X"; } |
971 | + CharKey { label: "c"; shifted: "C"; extended: ["ç"]; extendedShifted: ["Ç"] } |
972 | + CharKey { label: "v"; shifted: "V"; } |
973 | + CharKey { label: "b"; shifted: "B"; } |
974 | + CharKey { label: "n"; shifted: "N"; extended: ["ñ"]; extendedShifted: ["Ñ"] } |
975 | + CharKey { label: "m"; shifted: "M"; } |
976 | + BackspaceKey {} |
977 | + } |
978 | + |
979 | + Item { |
980 | + anchors.left: parent.left |
981 | + anchors.right: parent.right |
982 | + |
983 | + height: panel.keyHeight; |
984 | + |
985 | + SymbolShiftKey { id: symShiftKey; anchors.left: parent.left; } |
986 | + CharKey { id: slashKey; label: "/"; shifted: "/"; anchors.left: symShiftKey.right; } |
987 | + SpaceKey { id: spaceKey; anchors.left: slashKey.right; anchors.right: urlKey.left; noMagnifier: true } |
988 | + UrlKey { id: urlKey; label: ".es"; extended: [".mx", ".co", ".ar", ".com", ".pe", ".ve", ".cl"]; anchors.right: dotKey.left; } |
989 | + CharKey { id: dotKey; label: "."; shifted: "."; anchors.right: enterKey.left; } |
990 | + ReturnKey { id: enterKey; anchors.right: parent.right } |
991 | + } |
992 | + } // column |
993 | +} |
994 | |
995 | === added directory 'qml/languages/fr' |
996 | === renamed file 'qml/languages/Keyboard_fr.qml' => 'qml/languages/fr/Keyboard_fr.qml' |
997 | --- qml/languages/Keyboard_fr.qml 2013-10-10 09:27:28 +0000 |
998 | +++ qml/languages/fr/Keyboard_fr.qml 2013-10-24 13:11:26 +0000 |
999 | @@ -15,7 +15,7 @@ |
1000 | */ |
1001 | |
1002 | import QtQuick 2.0 |
1003 | -import "../keys" |
1004 | +import "../../keys" |
1005 | |
1006 | KeyPad { |
1007 | anchors.fill: parent |
1008 | @@ -82,7 +82,8 @@ |
1009 | height: panel.keyHeight; |
1010 | |
1011 | SymbolShiftKey { id: symShiftKey; anchors.left: parent.left; } |
1012 | - CharKey { id: commaKey; label: "'"; shifted: "/"; anchors.left: symShiftKey.right; } |
1013 | + LanguageKey { id: languageMenuButton; anchors.left: symShiftKey.right; } |
1014 | + CharKey { id: commaKey; label: "'"; shifted: "/"; anchors.left: languageMenuButton.right; } |
1015 | SpaceKey { id: spaceKey; anchors.left: commaKey.right; anchors.right: dotKey.left; noMagnifier: true } |
1016 | CharKey { id: dotKey; label: "."; shifted: "."; anchors.right: enterKey.left; } |
1017 | ReturnKey { id: enterKey; anchors.right: parent.right } |
1018 | |
1019 | === added file 'qml/languages/fr/Keyboard_fr_email.qml' |
1020 | --- qml/languages/fr/Keyboard_fr_email.qml 1970-01-01 00:00:00 +0000 |
1021 | +++ qml/languages/fr/Keyboard_fr_email.qml 2013-10-24 13:11:26 +0000 |
1022 | @@ -0,0 +1,92 @@ |
1023 | +/* |
1024 | + * Copyright 2013 Canonical Ltd. |
1025 | + * |
1026 | + * This program is free software; you can redistribute it and/or modify |
1027 | + * it under the terms of the GNU Lesser General Public License as published by |
1028 | + * the Free Software Foundation; version 3. |
1029 | + * |
1030 | + * This program is distributed in the hope that it will be useful, |
1031 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
1032 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
1033 | + * GNU Lesser General Public License for more details. |
1034 | + * |
1035 | + * You should have received a copy of the GNU Lesser General Public License |
1036 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
1037 | + */ |
1038 | + |
1039 | +import QtQuick 2.0 |
1040 | +import "../../keys" |
1041 | + |
1042 | +KeyPad { |
1043 | + anchors.fill: parent |
1044 | + |
1045 | + content: c1 |
1046 | + symbols: "languages/Keyboard_symbols.qml" |
1047 | + |
1048 | + Column { |
1049 | + id: c1 |
1050 | + anchors.fill: parent |
1051 | + spacing: 0 |
1052 | + |
1053 | + Row { |
1054 | + anchors.horizontalCenter: parent.horizontalCenter; |
1055 | + spacing: 0 |
1056 | + |
1057 | + CharKey { label: "a"; shifted: "A"; extended: ["à","â","æ","á","ã","ä"]; extendedShifted: ["À","Â","Æ","Á","Ã","Ä"] } |
1058 | + CharKey { label: "z"; shifted: "Z"; } |
1059 | + CharKey { label: "e"; shifted: "E"; extended: ["è","é","ë","ê","€"]; extendedShifted: ["È","É","Ë","Ê","€"] } |
1060 | + CharKey { label: "r"; shifted: "R"; } |
1061 | + CharKey { label: "t"; shifted: "T"; } |
1062 | + CharKey { label: "y"; shifted: "Y"; extended: ["ÿ","¥"]; extendedShifted: ["Ÿ","¥"] } |
1063 | + CharKey { label: "u"; shifted: "U"; extended: ["û","ù","ú","ü"]; extendedShifted: ["Û","Ù","Ú","Ü"] } |
1064 | + CharKey { label: "i"; shifted: "I"; extended: ["î","ï","ì","í"]; extendedShifted: ["Î","Ï","Ì","Í"] } |
1065 | + CharKey { label: "o"; shifted: "O"; extended: ["ô","œ","ò","ó","õ"]; extendedShifted: ["Ô","Œ","Ò","Ó","Õ"] } |
1066 | + CharKey { label: "p"; shifted: "P"; } |
1067 | + } |
1068 | + |
1069 | + Row { |
1070 | + anchors.horizontalCenter: parent.horizontalCenter; |
1071 | + spacing: 0 |
1072 | + CharKey { label: "q"; shifted: "Q"; } |
1073 | + CharKey { label: "s"; shifted: "S"; extended: ["ß","$"]; extendedShifted: ["$"] } |
1074 | + CharKey { label: "d"; shifted: "D"; extended: ["ð"]; extendedShifted: ["Ð"] } |
1075 | + CharKey { label: "f"; shifted: "F"; } |
1076 | + CharKey { label: "g"; shifted: "G"; } |
1077 | + CharKey { label: "h"; shifted: "H"; } |
1078 | + CharKey { label: "j"; shifted: "J"; } |
1079 | + CharKey { label: "k"; shifted: "K"; } |
1080 | + CharKey { label: "l"; shifted: "L"; } |
1081 | + CharKey { label: "m"; shifted: "M"; } |
1082 | + } |
1083 | + |
1084 | + Row { |
1085 | + anchors.horizontalCenter: parent.horizontalCenter; |
1086 | + spacing: 0 |
1087 | + |
1088 | + ShiftKey {} |
1089 | + |
1090 | + CharKey { label: "w"; shifted: "W"; } |
1091 | + CharKey { label: "x"; shifted: "X"; } |
1092 | + CharKey { label: "c"; shifted: "C"; extended: ["ç"]; extendedShifted: ["Ç"] } |
1093 | + CharKey { label: "v"; shifted: "V"; } |
1094 | + CharKey { label: "b"; shifted: "B"; } |
1095 | + CharKey { label: "n"; shifted: "N"; extended: ["ñ"]; extendedShifted: ["Ñ"] } |
1096 | + CharKey { label: "ç"; shifted: "Ç"; } |
1097 | + BackspaceKey {} |
1098 | + } |
1099 | + |
1100 | + Item { |
1101 | + anchors.left: parent.left |
1102 | + anchors.right: parent.right |
1103 | + |
1104 | + height: panel.keyHeight; |
1105 | + |
1106 | + SymbolShiftKey { id: symShiftKey; anchors.left: parent.left; } |
1107 | + CharKey { id: atKey; label: "@"; shifted: "@"; anchors.left: symShiftKey.right; } |
1108 | + SpaceKey { id: spaceKey; anchors.left: atKey.right; anchors.right: urlKey.left; noMagnifier: true } |
1109 | + UrlKey { id: urlKey; label: ".fr"; extended: [".ca", ".cd", ".ci", ".ch", ".be", ".ht"]; anchors.right: dotKey.left; } |
1110 | + CharKey { id: dotKey; label: "."; shifted: "."; anchors.right: enterKey.left; } |
1111 | + ReturnKey { id: enterKey; anchors.right: parent.right } |
1112 | + } |
1113 | + } // column |
1114 | +} |
1115 | |
1116 | === added file 'qml/languages/fr/Keyboard_fr_url.qml' |
1117 | --- qml/languages/fr/Keyboard_fr_url.qml 1970-01-01 00:00:00 +0000 |
1118 | +++ qml/languages/fr/Keyboard_fr_url.qml 2013-10-24 13:11:26 +0000 |
1119 | @@ -0,0 +1,91 @@ |
1120 | +/* |
1121 | + * Copyright 2013 Canonical Ltd. |
1122 | + * |
1123 | + * This program is free software; you can redistribute it and/or modify |
1124 | + * it under the terms of the GNU Lesser General Public License as published by |
1125 | + * the Free Software Foundation; version 3. |
1126 | + * |
1127 | + * This program is distributed in the hope that it will be useful, |
1128 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
1129 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
1130 | + * GNU Lesser General Public License for more details. |
1131 | + * |
1132 | + * You should have received a copy of the GNU Lesser General Public License |
1133 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
1134 | + */ |
1135 | + |
1136 | +import QtQuick 2.0 |
1137 | +import "../../keys" |
1138 | + |
1139 | +KeyPad { |
1140 | + anchors.fill: parent |
1141 | + |
1142 | + content: c1 |
1143 | + symbols: "languages/Keyboard_symbols.qml" |
1144 | + |
1145 | + Column { |
1146 | + id: c1 |
1147 | + anchors.fill: parent |
1148 | + spacing: 0 |
1149 | + |
1150 | + Row { |
1151 | + anchors.horizontalCenter: parent.horizontalCenter; |
1152 | + spacing: 0 |
1153 | + |
1154 | + CharKey { label: "a"; shifted: "A"; extended: ["à","â","æ","á","ã","ä"]; extendedShifted: ["À","Â","Æ","Á","Ã","Ä"] } |
1155 | + CharKey { label: "z"; shifted: "Z"; } |
1156 | + CharKey { label: "e"; shifted: "E"; extended: ["è","é","ë","ê","€"]; extendedShifted: ["È","É","Ë","Ê","€"] } |
1157 | + CharKey { label: "r"; shifted: "R"; } |
1158 | + CharKey { label: "t"; shifted: "T"; } |
1159 | + CharKey { label: "y"; shifted: "Y"; extended: ["ÿ","¥"]; extendedShifted: ["Ÿ","¥"] } |
1160 | + CharKey { label: "u"; shifted: "U"; extended: ["û","ù","ú","ü"]; extendedShifted: ["Û","Ù","Ú","Ü"] } |
1161 | + CharKey { label: "i"; shifted: "I"; extended: ["î","ï","ì","í"]; extendedShifted: ["Î","Ï","Ì","Í"] } |
1162 | + CharKey { label: "o"; shifted: "O"; extended: ["ô","œ","ò","ó","õ"]; extendedShifted: ["Ô","Œ","Ò","Ó","Õ"] } |
1163 | + CharKey { label: "p"; shifted: "P"; } |
1164 | + } |
1165 | + |
1166 | + Row { |
1167 | + anchors.horizontalCenter: parent.horizontalCenter; |
1168 | + spacing: 0 |
1169 | + CharKey { label: "q"; shifted: "Q"; } |
1170 | + CharKey { label: "s"; shifted: "S"; extended: ["ß","$"]; extendedShifted: ["$"] } |
1171 | + CharKey { label: "d"; shifted: "D"; extended: ["ð"]; extendedShifted: ["Ð"] } |
1172 | + CharKey { label: "f"; shifted: "F"; } |
1173 | + CharKey { label: "g"; shifted: "G"; } |
1174 | + CharKey { label: "h"; shifted: "H"; } |
1175 | + CharKey { label: "j"; shifted: "J"; } |
1176 | + CharKey { label: "k"; shifted: "K"; } |
1177 | + CharKey { label: "l"; shifted: "L"; } |
1178 | + CharKey { label: "m"; shifted: "M"; } |
1179 | + } |
1180 | + |
1181 | + Row { |
1182 | + anchors.horizontalCenter: parent.horizontalCenter; |
1183 | + spacing: 0 |
1184 | + |
1185 | + ShiftKey {} |
1186 | + |
1187 | + CharKey { label: "w"; shifted: "W"; } |
1188 | + CharKey { label: "x"; shifted: "X"; } |
1189 | + CharKey { label: "c"; shifted: "C"; extended: ["ç"]; extendedShifted: ["Ç"] } |
1190 | + CharKey { label: "v"; shifted: "V"; } |
1191 | + CharKey { label: "b"; shifted: "B"; } |
1192 | + CharKey { label: "n"; shifted: "N"; extended: ["ñ"]; extendedShifted: ["Ñ"] } |
1193 | + CharKey { label: "ç"; shifted: "Ç"; } |
1194 | + BackspaceKey {} |
1195 | + } |
1196 | + |
1197 | + Item { |
1198 | + anchors.left: parent.left |
1199 | + anchors.right: parent.right |
1200 | + |
1201 | + height: panel.keyHeight; |
1202 | + |
1203 | + SymbolShiftKey { id: symShiftKey; anchors.left: parent.left; } |
1204 | + CharKey { id: slashKey; label: "/"; shifted: "/"; anchors.left: symShiftKey.right; } |
1205 | + UrlKey { id: urlKey; label: ".fr"; extended: [".ca", ".cd", ".ci", ".ch", ".be", ".ht"]; anchors.right: dotKey.left; } |
1206 | + CharKey { id: dotKey; label: "."; shifted: "."; anchors.right: enterKey.left; } |
1207 | + ReturnKey { id: enterKey; anchors.right: parent.right } |
1208 | + } |
1209 | + } // column |
1210 | +} |
1211 | |
1212 | === added file 'qml/languages/fr/Keyboard_fr_url_search.qml' |
1213 | --- qml/languages/fr/Keyboard_fr_url_search.qml 1970-01-01 00:00:00 +0000 |
1214 | +++ qml/languages/fr/Keyboard_fr_url_search.qml 2013-10-24 13:11:26 +0000 |
1215 | @@ -0,0 +1,92 @@ |
1216 | +/* |
1217 | + * Copyright 2013 Canonical Ltd. |
1218 | + * |
1219 | + * This program is free software; you can redistribute it and/or modify |
1220 | + * it under the terms of the GNU Lesser General Public License as published by |
1221 | + * the Free Software Foundation; version 3. |
1222 | + * |
1223 | + * This program is distributed in the hope that it will be useful, |
1224 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
1225 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
1226 | + * GNU Lesser General Public License for more details. |
1227 | + * |
1228 | + * You should have received a copy of the GNU Lesser General Public License |
1229 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
1230 | + */ |
1231 | + |
1232 | +import QtQuick 2.0 |
1233 | +import "../../keys" |
1234 | + |
1235 | +KeyPad { |
1236 | + anchors.fill: parent |
1237 | + |
1238 | + content: c1 |
1239 | + symbols: "languages/Keyboard_symbols.qml" |
1240 | + |
1241 | + Column { |
1242 | + id: c1 |
1243 | + anchors.fill: parent |
1244 | + spacing: 0 |
1245 | + |
1246 | + Row { |
1247 | + anchors.horizontalCenter: parent.horizontalCenter; |
1248 | + spacing: 0 |
1249 | + |
1250 | + CharKey { label: "a"; shifted: "A"; extended: ["à","â","æ","á","ã","ä"]; extendedShifted: ["À","Â","Æ","Á","Ã","Ä"] } |
1251 | + CharKey { label: "z"; shifted: "Z"; } |
1252 | + CharKey { label: "e"; shifted: "E"; extended: ["è","é","ë","ê","€"]; extendedShifted: ["È","É","Ë","Ê","€"] } |
1253 | + CharKey { label: "r"; shifted: "R"; } |
1254 | + CharKey { label: "t"; shifted: "T"; } |
1255 | + CharKey { label: "y"; shifted: "Y"; extended: ["ÿ","¥"]; extendedShifted: ["Ÿ","¥"] } |
1256 | + CharKey { label: "u"; shifted: "U"; extended: ["û","ù","ú","ü"]; extendedShifted: ["Û","Ù","Ú","Ü"] } |
1257 | + CharKey { label: "i"; shifted: "I"; extended: ["î","ï","ì","í"]; extendedShifted: ["Î","Ï","Ì","Í"] } |
1258 | + CharKey { label: "o"; shifted: "O"; extended: ["ô","œ","ò","ó","õ"]; extendedShifted: ["Ô","Œ","Ò","Ó","Õ"] } |
1259 | + CharKey { label: "p"; shifted: "P"; } |
1260 | + } |
1261 | + |
1262 | + Row { |
1263 | + anchors.horizontalCenter: parent.horizontalCenter; |
1264 | + spacing: 0 |
1265 | + CharKey { label: "q"; shifted: "Q"; } |
1266 | + CharKey { label: "s"; shifted: "S"; extended: ["ß","$"]; extendedShifted: ["$"] } |
1267 | + CharKey { label: "d"; shifted: "D"; extended: ["ð"]; extendedShifted: ["Ð"] } |
1268 | + CharKey { label: "f"; shifted: "F"; } |
1269 | + CharKey { label: "g"; shifted: "G"; } |
1270 | + CharKey { label: "h"; shifted: "H"; } |
1271 | + CharKey { label: "j"; shifted: "J"; } |
1272 | + CharKey { label: "k"; shifted: "K"; } |
1273 | + CharKey { label: "l"; shifted: "L"; } |
1274 | + CharKey { label: "m"; shifted: "M"; } |
1275 | + } |
1276 | + |
1277 | + Row { |
1278 | + anchors.horizontalCenter: parent.horizontalCenter; |
1279 | + spacing: 0 |
1280 | + |
1281 | + ShiftKey {} |
1282 | + |
1283 | + CharKey { label: "w"; shifted: "W"; } |
1284 | + CharKey { label: "x"; shifted: "X"; } |
1285 | + CharKey { label: "c"; shifted: "C"; extended: ["ç"]; extendedShifted: ["Ç"] } |
1286 | + CharKey { label: "v"; shifted: "V"; } |
1287 | + CharKey { label: "b"; shifted: "B"; } |
1288 | + CharKey { label: "n"; shifted: "N"; extended: ["ñ"]; extendedShifted: ["Ñ"] } |
1289 | + CharKey { label: "ç"; shifted: "Ç"; } |
1290 | + BackspaceKey {} |
1291 | + } |
1292 | + |
1293 | + Item { |
1294 | + anchors.left: parent.left |
1295 | + anchors.right: parent.right |
1296 | + |
1297 | + height: panel.keyHeight; |
1298 | + |
1299 | + SymbolShiftKey { id: symShiftKey; anchors.left: parent.left; } |
1300 | + CharKey { id: slashKey; label: "/"; shifted: "/"; anchors.left: symShiftKey.right; } |
1301 | + SpaceKey { id: spaceKey; anchors.left: slashKey.right; anchors.right: urlKey.left; noMagnifier: true } |
1302 | + UrlKey { id: urlKey; label: ".fr"; extended: [".ca", ".cd", ".ci", ".ch", ".be", ".ht"]; anchors.right: dotKey.left; } |
1303 | + CharKey { id: dotKey; label: "."; shifted: "."; anchors.right: enterKey.left; } |
1304 | + ReturnKey { id: enterKey; anchors.right: parent.right } |
1305 | + } |
1306 | + } // column |
1307 | +} |
1308 | |
1309 | === added directory 'qml/languages/pt' |
1310 | === renamed file 'qml/languages/Keyboard_pt.qml' => 'qml/languages/pt/Keyboard_pt.qml' |
1311 | --- qml/languages/Keyboard_pt.qml 2013-10-10 09:27:28 +0000 |
1312 | +++ qml/languages/pt/Keyboard_pt.qml 2013-10-24 13:11:26 +0000 |
1313 | @@ -15,7 +15,7 @@ |
1314 | */ |
1315 | |
1316 | import QtQuick 2.0 |
1317 | -import "../keys" |
1318 | +import "../../keys" |
1319 | |
1320 | KeyPad { |
1321 | anchors.fill: parent |
1322 | @@ -82,7 +82,8 @@ |
1323 | height: panel.keyHeight; |
1324 | |
1325 | SymbolShiftKey { id: symShiftKey; anchors.left: parent.left; } |
1326 | - CharKey { id: commaKey; label: ","; shifted: "/"; anchors.left: symShiftKey.right; } |
1327 | + LanguageKey { id: languageMenuButton; anchors.left: symShiftKey.right; } |
1328 | + CharKey { id: commaKey; label: ","; shifted: "/"; anchors.left: languageMenuButton.right; } |
1329 | SpaceKey { id: spaceKey; anchors.left: commaKey.right; anchors.right: dotKey.left; noMagnifier: true } |
1330 | CharKey { id: dotKey; label: "."; shifted: "."; anchors.right: enterKey.left; } |
1331 | ReturnKey { id: enterKey; anchors.right: parent.right } |
1332 | |
1333 | === added file 'qml/languages/pt/Keyboard_pt_email.qml' |
1334 | --- qml/languages/pt/Keyboard_pt_email.qml 1970-01-01 00:00:00 +0000 |
1335 | +++ qml/languages/pt/Keyboard_pt_email.qml 2013-10-24 13:11:26 +0000 |
1336 | @@ -0,0 +1,92 @@ |
1337 | +/* |
1338 | + * Copyright 2013 Canonical Ltd. |
1339 | + * |
1340 | + * This program is free software; you can redistribute it and/or modify |
1341 | + * it under the terms of the GNU Lesser General Public License as published by |
1342 | + * the Free Software Foundation; version 3. |
1343 | + * |
1344 | + * This program is distributed in the hope that it will be useful, |
1345 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
1346 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
1347 | + * GNU Lesser General Public License for more details. |
1348 | + * |
1349 | + * You should have received a copy of the GNU Lesser General Public License |
1350 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
1351 | + */ |
1352 | + |
1353 | +import QtQuick 2.0 |
1354 | +import "../../keys" |
1355 | + |
1356 | +KeyPad { |
1357 | + anchors.fill: parent |
1358 | + |
1359 | + content: c1 |
1360 | + symbols: "languages/Keyboard_symbols.qml" |
1361 | + |
1362 | + Column { |
1363 | + id: c1 |
1364 | + anchors.fill: parent |
1365 | + spacing: 0 |
1366 | + |
1367 | + Row { |
1368 | + anchors.horizontalCenter: parent.horizontalCenter; |
1369 | + spacing: 0 |
1370 | + |
1371 | + CharKey { label: "q"; shifted: "Q"; } |
1372 | + CharKey { label: "w"; shifted: "W"; } |
1373 | + CharKey { label: "e"; shifted: "E"; extended: ["é","ê","è","ë","€"]; extendedShifted: ["É","Ê","È","Ë","€"] } |
1374 | + CharKey { label: "r"; shifted: "R"; } |
1375 | + CharKey { label: "t"; shifted: "T"; extended: ["þ"]; extendedShifted: ["Þ"] } |
1376 | + CharKey { label: "y"; shifted: "Y"; extended: ["ý", "¥", "ÿ"]; extendedShifted: ["Ý", "¥", "Ÿ"] } |
1377 | + CharKey { label: "u"; shifted: "U"; extended: ["ú","û","ù","ü"]; extendedShifted: ["Ú","Û","Ù","Ü"] } |
1378 | + CharKey { label: "i"; shifted: "I"; extended: ["í","î","ì","ï"]; extendedShifted: ["Í","Î","Ì","Ï"] } |
1379 | + CharKey { label: "o"; shifted: "O"; extended: ["ó","õ","ô","º","ò","ö"]; extendedShifted: ["Ó","Õ","Ô","º","Ò","Ö"] } |
1380 | + CharKey { label: "p"; shifted: "P"; } |
1381 | + } |
1382 | + |
1383 | + Row { |
1384 | + anchors.horizontalCenter: parent.horizontalCenter; |
1385 | + spacing: 0 |
1386 | + |
1387 | + CharKey { label: "a"; shifted: "A"; extended: ["ã","á","à","â","ª","ä","å","æ"]; extendedShifted: ["Ã","Á","À","Â","ª","Ä","Å","Æ"] } |
1388 | + CharKey { label: "s"; shifted: "S"; extended: ["ß","$"]; extendedShifted: ["$"] } |
1389 | + CharKey { label: "d"; shifted: "D"; extended: ["ð"]; extendedShifted: ["Ð"] } |
1390 | + CharKey { label: "f"; shifted: "F"; } |
1391 | + CharKey { label: "g"; shifted: "G"; } |
1392 | + CharKey { label: "h"; shifted: "H"; } |
1393 | + CharKey { label: "j"; shifted: "J"; } |
1394 | + CharKey { label: "k"; shifted: "K"; } |
1395 | + CharKey { label: "l"; shifted: "L"; } |
1396 | + CharKey { label: "ç"; shifted: "Ç"; } |
1397 | + } |
1398 | + |
1399 | + Row { |
1400 | + anchors.horizontalCenter: parent.horizontalCenter; |
1401 | + spacing: 0 |
1402 | + |
1403 | + ShiftKey {} |
1404 | + CharKey { label: "z"; shifted: "Z"; } |
1405 | + CharKey { label: "x"; shifted: "X"; } |
1406 | + CharKey { label: "c"; shifted: "C"; extended: ["ç"]; extendedShifted: ["Ç"] } |
1407 | + CharKey { label: "v"; shifted: "V"; } |
1408 | + CharKey { label: "b"; shifted: "B"; } |
1409 | + CharKey { label: "n"; shifted: "N"; extended: ["ñ"]; extendedShifted: ["Ñ"] } |
1410 | + CharKey { label: "m"; shifted: "M"; } |
1411 | + BackspaceKey {} |
1412 | + } |
1413 | + |
1414 | + Item { |
1415 | + anchors.left: parent.left |
1416 | + anchors.right: parent.right |
1417 | + |
1418 | + height: panel.keyHeight; |
1419 | + |
1420 | + SymbolShiftKey { id: symShiftKey; anchors.left: parent.left; } |
1421 | + CharKey { id: atKey; label: "@"; shifted: "@"; anchors.left: symShiftKey.right; } |
1422 | + SpaceKey { id: spaceKey; anchors.left: atKey.right; anchors.right: urlKey.left; noMagnifier: true } |
1423 | + UrlKey { id: urlKey; label: ".br"; extended: [".pt", ".mz", ".ao", ".gw", ".tl"]; anchors.right: dotKey.left; } |
1424 | + CharKey { id: dotKey; label: "."; shifted: "."; anchors.right: enterKey.left; } |
1425 | + ReturnKey { id: enterKey; anchors.right: parent.right } |
1426 | + } |
1427 | + } // column |
1428 | +} |
1429 | |
1430 | === added file 'qml/languages/pt/Keyboard_pt_url.qml' |
1431 | --- qml/languages/pt/Keyboard_pt_url.qml 1970-01-01 00:00:00 +0000 |
1432 | +++ qml/languages/pt/Keyboard_pt_url.qml 2013-10-24 13:11:26 +0000 |
1433 | @@ -0,0 +1,91 @@ |
1434 | +/* |
1435 | + * Copyright 2013 Canonical Ltd. |
1436 | + * |
1437 | + * This program is free software; you can redistribute it and/or modify |
1438 | + * it under the terms of the GNU Lesser General Public License as published by |
1439 | + * the Free Software Foundation; version 3. |
1440 | + * |
1441 | + * This program is distributed in the hope that it will be useful, |
1442 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
1443 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
1444 | + * GNU Lesser General Public License for more details. |
1445 | + * |
1446 | + * You should have received a copy of the GNU Lesser General Public License |
1447 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
1448 | + */ |
1449 | + |
1450 | +import QtQuick 2.0 |
1451 | +import "../../keys" |
1452 | + |
1453 | +KeyPad { |
1454 | + anchors.fill: parent |
1455 | + |
1456 | + content: c1 |
1457 | + symbols: "languages/Keyboard_symbols.qml" |
1458 | + |
1459 | + Column { |
1460 | + id: c1 |
1461 | + anchors.fill: parent |
1462 | + spacing: 0 |
1463 | + |
1464 | + Row { |
1465 | + anchors.horizontalCenter: parent.horizontalCenter; |
1466 | + spacing: 0 |
1467 | + |
1468 | + CharKey { label: "q"; shifted: "Q"; } |
1469 | + CharKey { label: "w"; shifted: "W"; } |
1470 | + CharKey { label: "e"; shifted: "E"; extended: ["é","ê","è","ë","€"]; extendedShifted: ["É","Ê","È","Ë","€"] } |
1471 | + CharKey { label: "r"; shifted: "R"; } |
1472 | + CharKey { label: "t"; shifted: "T"; extended: ["þ"]; extendedShifted: ["Þ"] } |
1473 | + CharKey { label: "y"; shifted: "Y"; extended: ["ý", "¥", "ÿ"]; extendedShifted: ["Ý", "¥", "Ÿ"] } |
1474 | + CharKey { label: "u"; shifted: "U"; extended: ["ú","û","ù","ü"]; extendedShifted: ["Ú","Û","Ù","Ü"] } |
1475 | + CharKey { label: "i"; shifted: "I"; extended: ["í","î","ì","ï"]; extendedShifted: ["Í","Î","Ì","Ï"] } |
1476 | + CharKey { label: "o"; shifted: "O"; extended: ["ó","õ","ô","º","ò","ö"]; extendedShifted: ["Ó","Õ","Ô","º","Ò","Ö"] } |
1477 | + CharKey { label: "p"; shifted: "P"; } |
1478 | + } |
1479 | + |
1480 | + Row { |
1481 | + anchors.horizontalCenter: parent.horizontalCenter; |
1482 | + spacing: 0 |
1483 | + |
1484 | + CharKey { label: "a"; shifted: "A"; extended: ["ã","á","à","â","ª","ä","å","æ"]; extendedShifted: ["Ã","Á","À","Â","ª","Ä","Å","Æ"] } |
1485 | + CharKey { label: "s"; shifted: "S"; extended: ["ß","$"]; extendedShifted: ["$"] } |
1486 | + CharKey { label: "d"; shifted: "D"; extended: ["ð"]; extendedShifted: ["Ð"] } |
1487 | + CharKey { label: "f"; shifted: "F"; } |
1488 | + CharKey { label: "g"; shifted: "G"; } |
1489 | + CharKey { label: "h"; shifted: "H"; } |
1490 | + CharKey { label: "j"; shifted: "J"; } |
1491 | + CharKey { label: "k"; shifted: "K"; } |
1492 | + CharKey { label: "l"; shifted: "L"; } |
1493 | + CharKey { label: "ç"; shifted: "Ç"; } |
1494 | + } |
1495 | + |
1496 | + Row { |
1497 | + anchors.horizontalCenter: parent.horizontalCenter; |
1498 | + spacing: 0 |
1499 | + |
1500 | + ShiftKey {} |
1501 | + CharKey { label: "z"; shifted: "Z"; } |
1502 | + CharKey { label: "x"; shifted: "X"; } |
1503 | + CharKey { label: "c"; shifted: "C"; extended: ["ç"]; extendedShifted: ["Ç"] } |
1504 | + CharKey { label: "v"; shifted: "V"; } |
1505 | + CharKey { label: "b"; shifted: "B"; } |
1506 | + CharKey { label: "n"; shifted: "N"; extended: ["ñ"]; extendedShifted: ["Ñ"] } |
1507 | + CharKey { label: "m"; shifted: "M"; } |
1508 | + BackspaceKey {} |
1509 | + } |
1510 | + |
1511 | + Item { |
1512 | + anchors.left: parent.left |
1513 | + anchors.right: parent.right |
1514 | + |
1515 | + height: panel.keyHeight; |
1516 | + |
1517 | + SymbolShiftKey { id: symShiftKey; anchors.left: parent.left; } |
1518 | + CharKey { id: slashKey; label: "/"; shifted: "/"; anchors.left: symShiftKey.right; } |
1519 | + UrlKey { id: urlKey; label: ".br"; extended: [".pt", ".mz", ".ao", ".gw", ".tl"]; anchors.right: dotKey.left; } |
1520 | + CharKey { id: dotKey; label: "."; shifted: "."; anchors.right: enterKey.left; } |
1521 | + ReturnKey { id: enterKey; anchors.right: parent.right } |
1522 | + } |
1523 | + } // column |
1524 | +} |
1525 | |
1526 | === added file 'qml/languages/pt/Keyboard_pt_url_search.qml' |
1527 | --- qml/languages/pt/Keyboard_pt_url_search.qml 1970-01-01 00:00:00 +0000 |
1528 | +++ qml/languages/pt/Keyboard_pt_url_search.qml 2013-10-24 13:11:26 +0000 |
1529 | @@ -0,0 +1,92 @@ |
1530 | +/* |
1531 | + * Copyright 2013 Canonical Ltd. |
1532 | + * |
1533 | + * This program is free software; you can redistribute it and/or modify |
1534 | + * it under the terms of the GNU Lesser General Public License as published by |
1535 | + * the Free Software Foundation; version 3. |
1536 | + * |
1537 | + * This program is distributed in the hope that it will be useful, |
1538 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
1539 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
1540 | + * GNU Lesser General Public License for more details. |
1541 | + * |
1542 | + * You should have received a copy of the GNU Lesser General Public License |
1543 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
1544 | + */ |
1545 | + |
1546 | +import QtQuick 2.0 |
1547 | +import "../../keys" |
1548 | + |
1549 | +KeyPad { |
1550 | + anchors.fill: parent |
1551 | + |
1552 | + content: c1 |
1553 | + symbols: "languages/Keyboard_symbols.qml" |
1554 | + |
1555 | + Column { |
1556 | + id: c1 |
1557 | + anchors.fill: parent |
1558 | + spacing: 0 |
1559 | + |
1560 | + Row { |
1561 | + anchors.horizontalCenter: parent.horizontalCenter; |
1562 | + spacing: 0 |
1563 | + |
1564 | + CharKey { label: "q"; shifted: "Q"; } |
1565 | + CharKey { label: "w"; shifted: "W"; } |
1566 | + CharKey { label: "e"; shifted: "E"; extended: ["é","ê","è","ë","€"]; extendedShifted: ["É","Ê","È","Ë","€"] } |
1567 | + CharKey { label: "r"; shifted: "R"; } |
1568 | + CharKey { label: "t"; shifted: "T"; extended: ["þ"]; extendedShifted: ["Þ"] } |
1569 | + CharKey { label: "y"; shifted: "Y"; extended: ["ý", "¥", "ÿ"]; extendedShifted: ["Ý", "¥", "Ÿ"] } |
1570 | + CharKey { label: "u"; shifted: "U"; extended: ["ú","û","ù","ü"]; extendedShifted: ["Ú","Û","Ù","Ü"] } |
1571 | + CharKey { label: "i"; shifted: "I"; extended: ["í","î","ì","ï"]; extendedShifted: ["Í","Î","Ì","Ï"] } |
1572 | + CharKey { label: "o"; shifted: "O"; extended: ["ó","õ","ô","º","ò","ö"]; extendedShifted: ["Ó","Õ","Ô","º","Ò","Ö"] } |
1573 | + CharKey { label: "p"; shifted: "P"; } |
1574 | + } |
1575 | + |
1576 | + Row { |
1577 | + anchors.horizontalCenter: parent.horizontalCenter; |
1578 | + spacing: 0 |
1579 | + |
1580 | + CharKey { label: "a"; shifted: "A"; extended: ["ã","á","à","â","ª","ä","å","æ"]; extendedShifted: ["Ã","Á","À","Â","ª","Ä","Å","Æ"] } |
1581 | + CharKey { label: "s"; shifted: "S"; extended: ["ß","$"]; extendedShifted: ["$"] } |
1582 | + CharKey { label: "d"; shifted: "D"; extended: ["ð"]; extendedShifted: ["Ð"] } |
1583 | + CharKey { label: "f"; shifted: "F"; } |
1584 | + CharKey { label: "g"; shifted: "G"; } |
1585 | + CharKey { label: "h"; shifted: "H"; } |
1586 | + CharKey { label: "j"; shifted: "J"; } |
1587 | + CharKey { label: "k"; shifted: "K"; } |
1588 | + CharKey { label: "l"; shifted: "L"; } |
1589 | + CharKey { label: "ç"; shifted: "Ç"; } |
1590 | + } |
1591 | + |
1592 | + Row { |
1593 | + anchors.horizontalCenter: parent.horizontalCenter; |
1594 | + spacing: 0 |
1595 | + |
1596 | + ShiftKey {} |
1597 | + CharKey { label: "z"; shifted: "Z"; } |
1598 | + CharKey { label: "x"; shifted: "X"; } |
1599 | + CharKey { label: "c"; shifted: "C"; extended: ["ç"]; extendedShifted: ["Ç"] } |
1600 | + CharKey { label: "v"; shifted: "V"; } |
1601 | + CharKey { label: "b"; shifted: "B"; } |
1602 | + CharKey { label: "n"; shifted: "N"; extended: ["ñ"]; extendedShifted: ["Ñ"] } |
1603 | + CharKey { label: "m"; shifted: "M"; } |
1604 | + BackspaceKey {} |
1605 | + } |
1606 | + |
1607 | + Item { |
1608 | + anchors.left: parent.left |
1609 | + anchors.right: parent.right |
1610 | + |
1611 | + height: panel.keyHeight; |
1612 | + |
1613 | + SymbolShiftKey { id: symShiftKey; anchors.left: parent.left; } |
1614 | + CharKey { id: slashKey; label: "/"; shifted: "/"; anchors.left: symShiftKey.right; } |
1615 | + SpaceKey { id: spaceKey; anchors.left: slashKey.right; anchors.right: urlKey.left; noMagnifier: true } |
1616 | + UrlKey { id: urlKey; label: ".br"; extended: [".pt", ".mz", ".ao", ".gw", ".tl"]; anchors.right: dotKey.left; } |
1617 | + CharKey { id: dotKey; label: "."; shifted: "."; anchors.right: enterKey.left; } |
1618 | + ReturnKey { id: enterKey; anchors.right: parent.right } |
1619 | + } |
1620 | + } // column |
1621 | +} |
1622 | |
1623 | === added directory 'qml/languages/zh_cn' |
1624 | === renamed file 'qml/languages/Keyboard_zh_cn_pinyin.qml' => 'qml/languages/zh_cn/Keyboard_zh_cn_pinyin.qml' |
1625 | --- qml/languages/Keyboard_zh_cn_pinyin.qml 2013-10-08 08:14:25 +0000 |
1626 | +++ qml/languages/zh_cn/Keyboard_zh_cn_pinyin.qml 2013-10-24 13:11:26 +0000 |
1627 | @@ -15,7 +15,7 @@ |
1628 | */ |
1629 | |
1630 | import QtQuick 2.0 |
1631 | -import "../keys" |
1632 | +import "../../keys" |
1633 | |
1634 | KeyPad { |
1635 | anchors.fill: parent |
1636 | @@ -81,7 +81,8 @@ |
1637 | height: panel.keyHeight; |
1638 | |
1639 | SymbolShiftKey { id: symShiftKey; label: "符号"; anchors.left: parent.left; } |
1640 | - CharKey { id: commaKey; label: ","; shifted: ","; anchors.left: symShiftKey.right; } |
1641 | + LanguageKey { id: languageMenuButton; anchors.left: symShiftKey.right; } |
1642 | + CharKey { id: commaKey; label: ","; shifted: ","; anchors.left: languageMenuButton.right; } |
1643 | SpaceKey { id: spaceKey; anchors.left: commaKey.right; anchors.right: dotKey.left; noMagnifier: true } |
1644 | CharKey { id: dotKey; label: "。"; shifted: "。"; anchors.right: enterKey.left; } |
1645 | ReturnKey { id: enterKey; anchors.right: parent.right } |
1646 | |
1647 | === modified file 'qml/qml.pro' |
1648 | --- qml/qml.pro 2013-10-10 09:27:28 +0000 |
1649 | +++ qml/qml.pro 2013-10-24 13:11:26 +0000 |
1650 | @@ -12,10 +12,29 @@ |
1651 | qml_languages.path = "$$UBUNTU_KEYBOARD_DATA_DIR/languages" |
1652 | qml_languages.files = languages/*.qml languages/*.js |
1653 | |
1654 | +lang_de.path = "$$UBUNTU_KEYBOARD_DATA_DIR/languages/de" |
1655 | +lang_de.files = languages/de/*.qml languages/de/*.js |
1656 | + |
1657 | +lang_es.path = "$$UBUNTU_KEYBOARD_DATA_DIR/languages/es" |
1658 | +lang_es.files = languages/es/*.qml languages/es/*.js |
1659 | + |
1660 | +lang_pt.path = "$$UBUNTU_KEYBOARD_DATA_DIR/languages/pt" |
1661 | +lang_pt.files = languages/pt/*.qml languages/pt/*.js |
1662 | + |
1663 | +lang_fr.path = "$$UBUNTU_KEYBOARD_DATA_DIR/languages/fr" |
1664 | +lang_fr.files = languages/fr/*.qml languages/fr/*.js |
1665 | + |
1666 | +lang_en.path = "$$UBUNTU_KEYBOARD_DATA_DIR/languages/en" |
1667 | +lang_en.files = languages/en/*.qml languages/en/*.js |
1668 | + |
1669 | +lang_zh_cn.path = "$$UBUNTU_KEYBOARD_DATA_DIR/languages/zh_cn" |
1670 | +lang_zh_cn.files = languages/zh_cn/*.qml languages/zh_cn/*.js |
1671 | + |
1672 | + |
1673 | images.path = "$$UBUNTU_KEYBOARD_DATA_DIR/images" |
1674 | images.files = images/*.png images/*.sci |
1675 | |
1676 | -INSTALLS += qml qml_keys qml_languages images |
1677 | +INSTALLS += qml qml_keys qml_languages lang_de lang_es lang_pt lang_fr lang_en lang_zh_cn images |
1678 | |
1679 | # for QtCreator |
1680 | OTHER_FILES += \ |
1681 | @@ -34,6 +53,8 @@ |
1682 | keys/DropShadow.qml \ |
1683 | keys/ExtendedKeysSelector.qml \ |
1684 | keys/KeyPad.qml \ |
1685 | + keys/LanguageKey.qml \ |
1686 | + keys/LanguageMenu.qml \ |
1687 | keys/Magnifier.qml \ |
1688 | keys/OneTwoKey.qml \ |
1689 | keys/PressArea.qml \ |
1690 | @@ -43,15 +64,29 @@ |
1691 | keys/Spacer.qml \ |
1692 | keys/SymbolShiftKey.qml \ |
1693 | keys/UrlKey.qml \ |
1694 | - languages/Keyboard_en_email.qml \ |
1695 | - languages/Keyboard_en_url.qml \ |
1696 | - languages/Keyboard_en_url_search.qml \ |
1697 | - languages/Keyboard_en_us.qml \ |
1698 | + languages/en/Keyboard_en_email.qml \ |
1699 | + languages/en/Keyboard_en_url.qml \ |
1700 | + languages/en/Keyboard_en.qml \ |
1701 | + languages/en/Keyboard_en_url_search.qml \ |
1702 | languages/Keyboard_numbers.qml \ |
1703 | languages/Keyboard_symbols.qml \ |
1704 | languages/Keyboard_telephone.qml \ |
1705 | - languages/Keyboard_zh_cn_pinyin.qml \ |
1706 | - languages/Keyboard_es.qml \ |
1707 | - languages/Keyboard_pt.qml \ |
1708 | - languages/Keyboard_de.qml \ |
1709 | - languages/Keyboard_fr.qml |
1710 | + languages/zh_cn/Keyboard_zh_cn_pinyin.qml \ |
1711 | + languages/es/Keyboard_es.qml \ |
1712 | + languages/pt/Keyboard_pt.qml \ |
1713 | + languages/de/Keyboard_de.qml \ |
1714 | + languages/fr/Keyboard_fr.qml \ |
1715 | + languages/de/Keyboard_de_url_search.qml \ |
1716 | + languages/es/Keyboard_es_url_search.qml \ |
1717 | + languages/fr/Keyboard_fr_url_search.qml \ |
1718 | + languages/pt/Keyboard_pt_url_search.qml \ |
1719 | + languages/de/Keyboard_de_email.qml \ |
1720 | + languages/de/Keyboard_de_url.qml \ |
1721 | + languages/es/Keyboard_es_email.qml \ |
1722 | + languages/es/Keyboard_es_url.qml \ |
1723 | + languages/fr/Keyboard_fr_email.qml \ |
1724 | + languages/fr/Keyboard_fr_url.qml \ |
1725 | + languages/pt/Keyboard_pt_email.qml \ |
1726 | + languages/pt/Keyboard_pt_url.qml |
1727 | + |
1728 | + |
1729 | |
1730 | === modified file 'src/plugin/inputmethod.cpp' |
1731 | --- src/plugin/inputmethod.cpp 2013-10-23 12:47:18 +0000 |
1732 | +++ src/plugin/inputmethod.cpp 2013-10-24 13:11:26 +0000 |
1733 | @@ -106,8 +106,7 @@ |
1734 | d->registerAutoCorrectSetting(); |
1735 | d->registerAutoCapsSetting(); |
1736 | d->registerWordEngineSetting(); |
1737 | - |
1738 | - setActiveSubView("en_us"); |
1739 | + d->registerEnabledLanguages(); |
1740 | |
1741 | // Setting layout orientation depends on word engine and hide word ribbon |
1742 | // settings to be initialized first: |
1743 | @@ -190,12 +189,13 @@ |
1744 | Maliit::HandlerState state) |
1745 | { |
1746 | Q_UNUSED(state) |
1747 | + Q_UNUSED(id); |
1748 | Q_D(InputMethod); |
1749 | |
1750 | - // store language id, so we can switch back to current active view |
1751 | - // after showing special layouts as e.g. URL or Num layouts |
1752 | - d->activeLanguageId = id; |
1753 | - d->setActiveKeyboardId(id); |
1754 | + QString locale = QString(getenv("LANGUAGE")); |
1755 | + locale.truncate(2); |
1756 | + d->activeLanguage = locale; |
1757 | + d->setActiveKeyboardId(locale); |
1758 | } |
1759 | |
1760 | QString InputMethod::activeSubView(Maliit::HandlerState state) const |
1761 | @@ -287,6 +287,12 @@ |
1762 | } |
1763 | } |
1764 | |
1765 | +void InputMethod::onEnabledLanguageSettingsChanged() |
1766 | +{ |
1767 | + Q_D(InputMethod); |
1768 | + Q_EMIT enabledLanguagesChanged(d->m_settings.enabledLanguages()); |
1769 | +} |
1770 | + |
1771 | void InputMethod::setKeyOverrides(const QMap<QString, QSharedPointer<MKeyOverride> > &overrides) |
1772 | { |
1773 | Q_D(InputMethod); |
1774 | @@ -435,7 +441,7 @@ |
1775 | // TODO when refactoring, forward the enum to QML |
1776 | |
1777 | if (contentType == Maliit::FreeTextContentType) |
1778 | - d->setActiveKeyboardId( d->activeLanguageId ); |
1779 | + d->setActiveKeyboardId( d->activeLanguage ); |
1780 | |
1781 | if (contentType == Maliit::NumberContentType) |
1782 | d->setActiveKeyboardId( "number" ); |
1783 | @@ -473,6 +479,7 @@ |
1784 | { |
1785 | d->qmlRootItem = d->view->rootObject()->findChild<QQuickItem*>("ubuntuKeyboard"); |
1786 | QObject::connect(d->qmlRootItem, SIGNAL(stateChanged(QString)), this, SLOT(onQMLStateChanged(QString))); |
1787 | + QObject::connect(d->qmlRootItem, SIGNAL(layoutIdChanged(QString)), &d->editor, SLOT(onLanguageChanged(QString))); |
1788 | |
1789 | d->applicationApiWrapper->setRootObject(d->view->rootObject()); |
1790 | } |
1791 | @@ -500,4 +507,16 @@ |
1792 | } |
1793 | } |
1794 | |
1795 | +QStringList InputMethod::enabledLanguages() |
1796 | +{ |
1797 | + Q_D(InputMethod); |
1798 | + return d->m_settings.enabledLanguages(); |
1799 | +} |
1800 | + |
1801 | +QString InputMethod::activeLanguage() |
1802 | +{ |
1803 | + Q_D(InputMethod); |
1804 | + return d->activeLanguage; |
1805 | +} |
1806 | + |
1807 | } // namespace MaliitKeyboard |
1808 | |
1809 | === modified file 'src/plugin/inputmethod.h' |
1810 | --- src/plugin/inputmethod.h 2013-10-15 12:24:32 +0000 |
1811 | +++ src/plugin/inputmethod.h 2013-10-24 13:11:26 +0000 |
1812 | @@ -85,6 +85,14 @@ |
1813 | |
1814 | void update(); |
1815 | |
1816 | + Q_PROPERTY(QStringList enabledLanguages READ enabledLanguages NOTIFY enabledLanguagesChanged) |
1817 | + QStringList enabledLanguages(); |
1818 | + Q_SIGNAL void enabledLanguagesChanged(QStringList languages); |
1819 | + |
1820 | + Q_PROPERTY(QString activeLanguage READ activeLanguage NOTIFY activeLanguageChanged) |
1821 | + QString activeLanguage(); |
1822 | + Q_SIGNAL void activeLanguageChanged(QString language); |
1823 | + |
1824 | Q_SIGNALS: |
1825 | void predictionEnabledChanged(); |
1826 | void contentTypeChanged(Maliit::TextContentType contentType); |
1827 | @@ -94,7 +102,9 @@ |
1828 | Q_SLOT void onStyleSettingChanged(); |
1829 | Q_SLOT void onFeedbackSettingChanged(); |
1830 | Q_SLOT void onAutoCorrectSettingChanged(); |
1831 | + Q_SLOT void onEnabledLanguageSettingsChanged(); |
1832 | Q_SLOT void updateAutoCaps(); |
1833 | + |
1834 | Q_SLOT void updateKey(const QString &key_id, |
1835 | const MKeyOverride::KeyOverrideAttributes changed_attributes); |
1836 | Q_SLOT void onKeyboardClosed(); |
1837 | |
1838 | === modified file 'src/plugin/inputmethod_p.h' |
1839 | --- src/plugin/inputmethod_p.h 2013-10-15 12:24:32 +0000 |
1840 | +++ src/plugin/inputmethod_p.h 2013-10-24 13:11:26 +0000 |
1841 | @@ -91,7 +91,7 @@ |
1842 | bool autocapsEnabled; |
1843 | bool predictionEnabled; |
1844 | Maliit::TextContentType contentType; |
1845 | - QString activeLanguageId; |
1846 | + QString activeLanguage; |
1847 | Qt::ScreenOrientation appsCurrentOrientation; |
1848 | |
1849 | KeyboadSettings m_settings; |
1850 | @@ -113,7 +113,6 @@ |
1851 | , autocapsEnabled(false) |
1852 | , predictionEnabled(false) |
1853 | , contentType(Maliit::FreeTextContentType) |
1854 | - , activeLanguageId("en_us") |
1855 | , appsCurrentOrientation(qGuiApp->primaryScreen()->orientation()) |
1856 | , m_settings() |
1857 | { |
1858 | @@ -338,6 +337,23 @@ |
1859 | #endif |
1860 | } |
1861 | |
1862 | + void registerEnabledLanguages() |
1863 | + { |
1864 | + QObject::connect(&m_settings, SIGNAL(enabledLanguagesChanged()), |
1865 | + q, SLOT(onEnabledLanguageSettingsChanged())); |
1866 | + Q_EMIT q->enabledLanguagesChanged(m_settings.enabledLanguages()); |
1867 | + |
1868 | + registerActiveLanguage(); |
1869 | + } |
1870 | + |
1871 | + void registerActiveLanguage() |
1872 | + { |
1873 | + activeLanguage = QString(getenv("LANGUAGE")); |
1874 | + activeLanguage.truncate(2); |
1875 | + |
1876 | + Q_EMIT q->activeLanguageChanged(activeLanguage); |
1877 | + } |
1878 | + |
1879 | void onScreenSizeChange(const QSize &size) |
1880 | { |
1881 | layout.helper.setScreenSize(size); |
PASSED: Continuous integration, rev:78 jenkins. qa.ubuntu. com/job/ ubuntu- keyboard- ci/150/ jenkins. qa.ubuntu. com/job/ ubuntu- keyboard- saucy-amd64- ci/151 jenkins. qa.ubuntu. com/job/ ubuntu- keyboard- saucy-armhf- ci/150 jenkins. qa.ubuntu. com/job/ ubuntu- keyboard- saucy-armhf- ci/150/ artifact/ work/output/ *zip*/output. zip jenkins. qa.ubuntu. com/job/ ubuntu- keyboard- saucy-i386- ci/150
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild: 10.97.0. 26:8080/ job/ubuntu- keyboard- ci/150/ rebuild
http://