Merge lp:~michael-sheldon/ubuntu-keyboard/add-latvian into lp:ubuntu-keyboard

Proposed by Michael Sheldon
Status: Merged
Approved by: Bill Filler
Approved revision: 474
Merged at revision: 476
Proposed branch: lp:~michael-sheldon/ubuntu-keyboard/add-latvian
Merge into: lp:ubuntu-keyboard
Diff against target: 686 lines (+508/-13)
15 files modified
debian/control (+10/-0)
debian/ubuntu-keyboard-latvian.install (+1/-0)
plugins/lv/lv.pro (+9/-0)
plugins/lv/qml/Keyboard_lv.qml (+92/-0)
plugins/lv/qml/Keyboard_lv_email.qml (+93/-0)
plugins/lv/qml/Keyboard_lv_url.qml (+92/-0)
plugins/lv/qml/Keyboard_lv_url_search.qml (+93/-0)
plugins/lv/qml/qml.pro (+20/-0)
plugins/lv/src/latvianplugin.h (+25/-0)
plugins/lv/src/latvianplugin.json (+7/-0)
plugins/lv/src/src.pro (+46/-0)
plugins/plugins.pro (+1/-0)
po/ubuntu-keyboard.pot (+17/-13)
qml/keys/languages.js (+1/-0)
tests/autopilot/ubuntu_keyboard/tests/test_keyboard.py (+1/-0)
To merge this branch: bzr merge lp:~michael-sheldon/ubuntu-keyboard/add-latvian
Reviewer Review Type Date Requested Status
system-apps-ci-bot continuous-integration Approve
Ken VanDine packaging Approve
PS Jenkins bot continuous-integration Pending
Ubuntu Phablet Team Pending
Review via email: mp+296267@code.launchpad.net

Commit message

Add support for Latvian keyboard layout

Description of the change

Add support for Latvian keyboard layout

To post a comment you must log in.
Revision history for this message
system-apps-ci-bot (system-apps-ci-bot) wrote :

FAILED: Continuous integration, rev:472
https://jenkins.canonical.com/system-apps/job/lp-ubuntu-keyboard-ci/1/
Executed test runs:
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build/533
    FAILURE: https://jenkins.canonical.com/system-apps/job/test-0-autopkgtest/label=phone-armhf,release=vivid+overlay,testname=default/51/console
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-0-fetch/533
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-1-sourcepkg/release=vivid+overlay/524
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-1-sourcepkg/release=xenial/524
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=vivid+overlay/520
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=vivid+overlay/520/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=xenial/520
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=xenial/520/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=vivid+overlay/520
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=vivid+overlay/520/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=xenial/520
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=xenial/520/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=vivid+overlay/520
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=vivid+overlay/520/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=xenial/520
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=xenial/520/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://jenkins.canonical.com/system-apps/job/lp-ubuntu-keyboard-ci/1/rebuild

review: Needs Fixing (continuous-integration)
473. By Michael Sheldon

Fix ifdefs for Latvian header

Revision history for this message
system-apps-ci-bot (system-apps-ci-bot) wrote :

PASSED: Continuous integration, rev:473
https://jenkins.canonical.com/system-apps/job/lp-ubuntu-keyboard-ci/17/
Executed test runs:
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build/587
    SUCCESS: https://jenkins.canonical.com/system-apps/job/test-0-autopkgtest/label=phone-armhf,release=vivid+overlay,testname=default/71
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-0-fetch/587
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-1-sourcepkg/release=vivid+overlay/565
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-1-sourcepkg/release=xenial/565
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=vivid+overlay/559
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=vivid+overlay/559/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=xenial/559
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=xenial/559/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=vivid+overlay/559
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=vivid+overlay/559/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=xenial/559
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=xenial/559/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=vivid+overlay/559
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=vivid+overlay/559/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=xenial/559
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=xenial/559/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://jenkins.canonical.com/system-apps/job/lp-ubuntu-keyboard-ci/17/rebuild

review: Approve (continuous-integration)
474. By Michael Sheldon

Add Latvian layout to autopilot test dependencies

Revision history for this message
Ken VanDine (ken-vandine) wrote :

Packaging looks fine

review: Approve (packaging)
Revision history for this message
system-apps-ci-bot (system-apps-ci-bot) wrote :

PASSED: Continuous integration, rev:474
https://jenkins.canonical.com/system-apps/job/lp-ubuntu-keyboard-ci/20/
Executed test runs:
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build/601
    SUCCESS: https://jenkins.canonical.com/system-apps/job/test-0-autopkgtest/label=phone-armhf,release=vivid+overlay,testname=default/74
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-0-fetch/601
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-1-sourcepkg/release=vivid+overlay/571
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-1-sourcepkg/release=xenial/571
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=vivid+overlay/564
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=vivid+overlay/564/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=xenial/564
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=amd64,release=xenial/564/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=vivid+overlay/564
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=vivid+overlay/564/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=xenial/564
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=armhf,release=xenial/564/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=vivid+overlay/564
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=vivid+overlay/564/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=xenial/564
        deb: https://jenkins.canonical.com/system-apps/job/build-2-binpkg/arch=i386,release=xenial/564/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://jenkins.canonical.com/system-apps/job/lp-ubuntu-keyboard-ci/20/rebuild

review: Approve (continuous-integration)
Revision history for this message
Bill Filler (bfiller) wrote :

how much space will this add to the image if we include it by default?

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'debian/control'
2--- debian/control 2016-05-06 15:34:26 +0000
3+++ debian/control 2016-06-14 16:21:39 +0000
4@@ -102,6 +102,7 @@
5 ubuntu-keyboard-icelandic (>= ${source:Version}),
6 ubuntu-keyboard-italian (>= ${source:Version}),
7 ubuntu-keyboard-japanese (>= ${source:Version}),
8+ ubuntu-keyboard-latvian (>= ${source:Version}),
9 ubuntu-keyboard-norwegian-bokmal (>= ${source:Version}),
10 ubuntu-keyboard-polish (>= ${source:Version}),
11 ubuntu-keyboard-portuguese (>= ${source:Version}),
12@@ -300,6 +301,15 @@
13 Description: Ubuntu on-screen keyboard data files - Japanese
14 Data files for the Ubuntu virtual keyboard - Japanese
15
16+Package: ubuntu-keyboard-latvian
17+Architecture: any
18+Depends: ubuntu-keyboard (= ${binary:Version}),
19+ myspell-lv,
20+ ${misc:Depends},
21+ ${shlibs:Depends},
22+Description: Ubuntu on-screen keyboard data files - Latvian
23+ Data files for the Ubuntu virtual keyboard - Latvian
24+
25 Package: ubuntu-keyboard-norwegian-bokmal
26 Architecture: any
27 Depends: ubuntu-keyboard (= ${binary:Version}),
28
29=== added file 'debian/ubuntu-keyboard-latvian.install'
30--- debian/ubuntu-keyboard-latvian.install 1970-01-01 00:00:00 +0000
31+++ debian/ubuntu-keyboard-latvian.install 2016-06-14 16:21:39 +0000
32@@ -0,0 +1,1 @@
33+usr/share/maliit/plugins/com/ubuntu/lib/lv/
34
35=== added directory 'plugins/lv'
36=== added file 'plugins/lv/lv.pro'
37--- plugins/lv/lv.pro 1970-01-01 00:00:00 +0000
38+++ plugins/lv/lv.pro 2016-06-14 16:21:39 +0000
39@@ -0,0 +1,9 @@
40+CONFIG += ordered
41+TEMPLATE = subdirs
42+SUBDIRS = \
43+ src \
44+ qml
45+
46+QMAKE_EXTRA_TARGETS += check
47+check.target = check
48+check.CONFIG = recursive
49
50=== added directory 'plugins/lv/qml'
51=== added file 'plugins/lv/qml/Keyboard_lv.qml'
52--- plugins/lv/qml/Keyboard_lv.qml 1970-01-01 00:00:00 +0000
53+++ plugins/lv/qml/Keyboard_lv.qml 2016-06-14 16:21:39 +0000
54@@ -0,0 +1,92 @@
55+/*
56+ * Copyright 2016 Canonical Ltd.
57+ *
58+ * This program is free software; you can redistribute it and/or modify
59+ * it under the terms of the GNU Lesser General Public License as published by
60+ * the Free Software Foundation; version 3.
61+ *
62+ * This program is distributed in the hope that it will be useful,
63+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
64+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
65+ * GNU Lesser General Public License for more details.
66+ *
67+ * You should have received a copy of the GNU Lesser General Public License
68+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
69+ */
70+
71+import QtQuick 2.4
72+import "../../keys"
73+import "../../keys/key_constants.js" as UI
74+
75+KeyPad {
76+ anchors.fill: parent
77+
78+ content: c1
79+ symbols: "languages/Keyboard_symbols.qml"
80+
81+ Column {
82+ id: c1
83+ anchors.fill: parent
84+ spacing: 0
85+
86+ Row {
87+ anchors.horizontalCenter: parent.horizontalCenter;
88+ spacing: 0
89+
90+ CharKey { label: "q"; shifted: "Q"; extended: ["1"]; extendedShifted: ["1"]; leftSide: true; }
91+ CharKey { label: "w"; shifted: "W"; extended: ["2"]; extendedShifted: ["2"] }
92+ CharKey { label: "e"; shifted: "E"; extended: ["3", "ē", "€"]; extendedShifted: ["3", "Ē", "€"] }
93+ CharKey { label: "r"; shifted: "R"; extended: ["4","ŗ"]; extendedShifted: ["4", "Ŗ"] }
94+ CharKey { label: "t"; shifted: "T"; extended: ["5"]; extendedShifted: ["5"] }
95+ CharKey { label: "y"; shifted: "Y"; extended: ["6"]; extendedShifted: ["6"] }
96+ CharKey { label: "u"; shifted: "U"; extended: ["7", "ū"]; extendedShifted: ["7", "Ū"] }
97+ CharKey { label: "i"; shifted: "I"; extended: ["8", "ī"]; extendedShifted: ["8", "Ī"] }
98+ CharKey { label: "o"; shifted: "O"; extended: ["9", "ō"]; extendedShifted: ["9", "Ō"] }
99+ CharKey { label: "p"; shifted: "P"; extended: ["0"]; extendedShifted: ["0"]; rightSide: true; }
100+ }
101+
102+ Row {
103+ anchors.horizontalCenter: parent.horizontalCenter;
104+ spacing: 0
105+
106+ CharKey { label: "a"; shifted: "A"; extended: ["ā"]; extendedShifted: ["Ā"]; leftSide: true; }
107+ CharKey { label: "s"; shifted: "S"; extended: ["š","$"]; extendedShifted: ["Š","$"] }
108+ CharKey { label: "d"; shifted: "D"; }
109+ CharKey { label: "f"; shifted: "F"; }
110+ CharKey { label: "g"; shifted: "G"; extended: ["ģ"]; extendedShifted: ["Ģ"]; }
111+ CharKey { label: "h"; shifted: "H"; }
112+ CharKey { label: "j"; shifted: "J"; }
113+ CharKey { label: "k"; shifted: "K"; extended: ["ķ"]; extendedShifted: ["Ķ"]; }
114+ CharKey { label: "l"; shifted: "L"; extended: ["ļ"]; extendedShifted: ["Ļ"]; rightSide: true; }
115+ }
116+
117+ Row {
118+ anchors.horizontalCenter: parent.horizontalCenter;
119+ spacing: 0
120+
121+ ShiftKey { padding: 0 }
122+ CharKey { label: "z"; shifted: "Z"; extended: ["ž"]; extendedShifted: ["Ž"] }
123+ CharKey { label: "x"; shifted: "X"; }
124+ CharKey { label: "c"; shifted: "C"; extended: ["č", "¢"]; extendedShifted: ["Č", "¢"] }
125+ CharKey { label: "v"; shifted: "V"; }
126+ CharKey { label: "b"; shifted: "B"; }
127+ CharKey { label: "n"; shifted: "N"; extended: ["ņ"]; extendedShifted: ["Ņ"] }
128+ CharKey { label: "m"; shifted: "M"; }
129+ BackspaceKey { padding: 0 }
130+ }
131+
132+ Item {
133+ anchors.left: parent.left
134+ anchors.right: parent.right
135+
136+ height: panel.keyHeight + units.gu(UI.row_margin);
137+
138+ SymbolShiftKey { id: symShiftKey; anchors.left: parent.left; height: parent.height; }
139+ LanguageKey { id: languageMenuButton; anchors.left: symShiftKey.right; height: parent.height; }
140+ CharKey { id: commaKey; label: ","; shifted: ","; extended: ["'", "\"", ";", ":", "@", "&", "(", ")"]; extendedShifted: ["'", "\"", ";", ":", "@", "&", "(", ")"]; anchors.left: languageMenuButton.right; height: parent.height; }
141+ SpaceKey { id: spaceKey; anchors.left: commaKey.right; anchors.right: dotKey.left; noMagnifier: true; height: parent.height; }
142+ CharKey { id: dotKey; label: "."; shifted: "."; extended: ["?", "-", "_", "!", "+", "%","#","/"]; extendedShifted: ["?", "-", "_", "!", "+", "%","#","/"]; anchors.right: enterKey.left; height: parent.height; }
143+ ReturnKey { id: enterKey; anchors.right: parent.right; height: parent.height; }
144+ }
145+ } // column
146+}
147
148=== added file 'plugins/lv/qml/Keyboard_lv_email.qml'
149--- plugins/lv/qml/Keyboard_lv_email.qml 1970-01-01 00:00:00 +0000
150+++ plugins/lv/qml/Keyboard_lv_email.qml 2016-06-14 16:21:39 +0000
151@@ -0,0 +1,93 @@
152+/*
153+ * Copyright 2016 Canonical Ltd.
154+ *
155+ * This program is free software; you can redistribute it and/or modify
156+ * it under the terms of the GNU Lesser General Public License as published by
157+ * the Free Software Foundation; version 3.
158+ *
159+ * This program is distributed in the hope that it will be useful,
160+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
161+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
162+ * GNU Lesser General Public License for more details.
163+ *
164+ * You should have received a copy of the GNU Lesser General Public License
165+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
166+ */
167+
168+import QtQuick 2.4
169+import "../../keys"
170+import "../../keys/key_constants.js" as UI
171+
172+KeyPad {
173+ anchors.fill: parent
174+
175+ content: c1
176+ symbols: "languages/Keyboard_symbols.qml"
177+
178+ Column {
179+ id: c1
180+ anchors.fill: parent
181+ spacing: 0
182+
183+ Row {
184+ anchors.horizontalCenter: parent.horizontalCenter;
185+ spacing: 0
186+
187+ CharKey { label: "q"; shifted: "Q"; extended: ["1"]; extendedShifted: ["1"]; leftSide: true; }
188+ CharKey { label: "w"; shifted: "W"; extended: ["2"]; extendedShifted: ["2"] }
189+ CharKey { label: "e"; shifted: "E"; extended: ["3", "ē", "€"]; extendedShifted: ["3", "Ē", "€"] }
190+ CharKey { label: "r"; shifted: "R"; extended: ["4","ŗ"]; extendedShifted: ["4", "Ŗ"] }
191+ CharKey { label: "t"; shifted: "T"; extended: ["5"]; extendedShifted: ["5"] }
192+ CharKey { label: "y"; shifted: "Y"; extended: ["6"]; extendedShifted: ["6"] }
193+ CharKey { label: "u"; shifted: "U"; extended: ["7", "ū"]; extendedShifted: ["7", "Ū"] }
194+ CharKey { label: "i"; shifted: "I"; extended: ["8", "ī"]; extendedShifted: ["8", "Ī"] }
195+ CharKey { label: "o"; shifted: "O"; extended: ["9", "ō"]; extendedShifted: ["9", "Ō"] }
196+ CharKey { label: "p"; shifted: "P"; extended: ["0"]; extendedShifted: ["0"]; rightSide: true; }
197+ }
198+
199+ Row {
200+ anchors.horizontalCenter: parent.horizontalCenter;
201+ spacing: 0
202+
203+ CharKey { label: "a"; shifted: "A"; extended: ["ā"]; extendedShifted: ["Ā"]; leftSide: true; }
204+ CharKey { label: "s"; shifted: "S"; extended: ["š","$"]; extendedShifted: ["Š","$"] }
205+ CharKey { label: "d"; shifted: "D"; }
206+ CharKey { label: "f"; shifted: "F"; }
207+ CharKey { label: "g"; shifted: "G"; extended: ["ģ"]; extendedShifted: ["Ģ"]; }
208+ CharKey { label: "h"; shifted: "H"; }
209+ CharKey { label: "j"; shifted: "J"; }
210+ CharKey { label: "k"; shifted: "K"; extended: ["ķ"]; extendedShifted: ["Ķ"]; }
211+ CharKey { label: "l"; shifted: "L"; extended: ["ļ"]; extendedShifted: ["Ļ"]; rightSide: true; }
212+ }
213+
214+ Row {
215+ anchors.horizontalCenter: parent.horizontalCenter;
216+ spacing: 0
217+
218+ ShiftKey { padding: 0 }
219+ CharKey { label: "z"; shifted: "Z"; extended: ["ž"]; extendedShifted: ["Ž"] }
220+ CharKey { label: "x"; shifted: "X"; }
221+ CharKey { label: "c"; shifted: "C"; extended: ["č", "¢"]; extendedShifted: ["Č", "¢"] }
222+ CharKey { label: "v"; shifted: "V"; }
223+ CharKey { label: "b"; shifted: "B"; }
224+ CharKey { label: "n"; shifted: "N"; extended: ["ņ"]; extendedShifted: ["Ņ"] }
225+ CharKey { label: "m"; shifted: "M"; }
226+ BackspaceKey { padding: 0 }
227+ }
228+
229+ Item {
230+ anchors.left: parent.left
231+ anchors.right: parent.right
232+
233+ height: panel.keyHeight + units.gu(UI.row_margin);
234+
235+ SymbolShiftKey { id: symShiftKey; anchors.left: parent.left; height: parent.height; }
236+ LanguageKey { id: languageMenuButton; anchors.left: symShiftKey.right; height: parent.height; }
237+ CharKey { id: atKey; label: "@"; shifted: "@"; anchors.left: languageMenuButton.right; height: parent.height; }
238+ SpaceKey { id: spaceKey; anchors.left: atKey.right; anchors.right: urlKey.left; noMagnifier: true; height: parent.height; }
239+ UrlKey { id: urlKey; label: ".lv"; extended: [".gov.lv", ".com", ".net", ".org", ".edu", ".gov"]; anchors.right: dotKey.left; height: parent.height; }
240+ CharKey { id: dotKey; label: "."; shifted: "."; extended: ["?", "-", "_", "!", "+", "%","#","/"]; extendedShifted: ["?", "-", "_", "!", "+", "%","#","/"]; anchors.right: enterKey.left; height: parent.height; }
241+ ReturnKey { id: enterKey; anchors.right: parent.right; height: parent.height; }
242+ }
243+ } // column
244+}
245
246=== added file 'plugins/lv/qml/Keyboard_lv_url.qml'
247--- plugins/lv/qml/Keyboard_lv_url.qml 1970-01-01 00:00:00 +0000
248+++ plugins/lv/qml/Keyboard_lv_url.qml 2016-06-14 16:21:39 +0000
249@@ -0,0 +1,92 @@
250+/*
251+ * Copyright 2016 Canonical Ltd.
252+ *
253+ * This program is free software; you can redistribute it and/or modify
254+ * it under the terms of the GNU Lesser General Public License as published by
255+ * the Free Software Foundation; version 3.
256+ *
257+ * This program is distributed in the hope that it will be useful,
258+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
259+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
260+ * GNU Lesser General Public License for more details.
261+ *
262+ * You should have received a copy of the GNU Lesser General Public License
263+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
264+ */
265+
266+import QtQuick 2.4
267+import "../../keys"
268+import "../../keys/key_constants.js" as UI
269+
270+KeyPad {
271+ anchors.fill: parent
272+
273+ content: c1
274+ symbols: "languages/Keyboard_symbols.qml"
275+
276+ Column {
277+ id: c1
278+ anchors.fill: parent
279+ spacing: 0
280+
281+ Row {
282+ anchors.horizontalCenter: parent.horizontalCenter;
283+ spacing: 0
284+
285+ CharKey { label: "q"; shifted: "Q"; extended: ["1"]; extendedShifted: ["1"]; leftSide: true; }
286+ CharKey { label: "w"; shifted: "W"; extended: ["2"]; extendedShifted: ["2"] }
287+ CharKey { label: "e"; shifted: "E"; extended: ["3", "ē", "€"]; extendedShifted: ["3", "Ē", "€"] }
288+ CharKey { label: "r"; shifted: "R"; extended: ["4","ŗ"]; extendedShifted: ["4", "Ŗ"] }
289+ CharKey { label: "t"; shifted: "T"; extended: ["5"]; extendedShifted: ["5"] }
290+ CharKey { label: "y"; shifted: "Y"; extended: ["6"]; extendedShifted: ["6"] }
291+ CharKey { label: "u"; shifted: "U"; extended: ["7", "ū"]; extendedShifted: ["7", "Ū"] }
292+ CharKey { label: "i"; shifted: "I"; extended: ["8", "ī"]; extendedShifted: ["8", "Ī"] }
293+ CharKey { label: "o"; shifted: "O"; extended: ["9", "ō"]; extendedShifted: ["9", "Ō"] }
294+ CharKey { label: "p"; shifted: "P"; extended: ["0"]; extendedShifted: ["0"]; rightSide: true; }
295+ }
296+
297+ Row {
298+ anchors.horizontalCenter: parent.horizontalCenter;
299+ spacing: 0
300+
301+ CharKey { label: "a"; shifted: "A"; extended: ["ā"]; extendedShifted: ["Ā"]; leftSide: true; }
302+ CharKey { label: "s"; shifted: "S"; extended: ["š","$"]; extendedShifted: ["Š","$"] }
303+ CharKey { label: "d"; shifted: "D"; }
304+ CharKey { label: "f"; shifted: "F"; }
305+ CharKey { label: "g"; shifted: "G"; extended: ["ģ"]; extendedShifted: ["Ģ"]; }
306+ CharKey { label: "h"; shifted: "H"; }
307+ CharKey { label: "j"; shifted: "J"; }
308+ CharKey { label: "k"; shifted: "K"; extended: ["ķ"]; extendedShifted: ["Ķ"]; }
309+ CharKey { label: "l"; shifted: "L"; extended: ["ļ"]; extendedShifted: ["Ļ"]; rightSide: true; }
310+ }
311+
312+ Row {
313+ anchors.horizontalCenter: parent.horizontalCenter;
314+ spacing: 0
315+
316+ ShiftKey { padding: 0 }
317+ CharKey { label: "z"; shifted: "Z"; extended: ["ž"]; extendedShifted: ["Ž"] }
318+ CharKey { label: "x"; shifted: "X"; }
319+ CharKey { label: "c"; shifted: "C"; extended: ["č", "¢"]; extendedShifted: ["Č", "¢"] }
320+ CharKey { label: "v"; shifted: "V"; }
321+ CharKey { label: "b"; shifted: "B"; }
322+ CharKey { label: "n"; shifted: "N"; extended: ["ņ"]; extendedShifted: ["Ņ"] }
323+ CharKey { label: "m"; shifted: "M"; }
324+ BackspaceKey { padding: 0 }
325+ }
326+
327+ Item {
328+ anchors.left: parent.left
329+ anchors.right: parent.right
330+
331+ height: panel.keyHeight + units.gu(UI.row_margin);
332+
333+ SymbolShiftKey { id: symShiftKey; anchors.left: parent.left; height: parent.height; }
334+ LanguageKey { id: languageMenuButton; anchors.left: symShiftKey.right; height: parent.height; }
335+ CharKey { id: slashKey; label: "/"; shifted: "/"; anchors.left: languageMenuButton.right; height: parent.height; }
336+ UrlKey { id: urlKey; label: ".lv"; extended: [".gov.lv", ".com", ".net", ".org", ".edu", ".gov"]; anchors.right: dotKey.left; height: parent.height; }
337+ CharKey { id: dotKey; label: "."; shifted: "."; extended: ["?", "-", "_", "!", "+", "%","#","/"]; extendedShifted: ["?", "-", "_", "!", "+", "%","#","/"]; anchors.right: enterKey.left; height: parent.height; }
338+ ReturnKey { id: enterKey; anchors.right: parent.right; height: parent.height; }
339+ }
340+ } // column
341+}
342
343=== added file 'plugins/lv/qml/Keyboard_lv_url_search.qml'
344--- plugins/lv/qml/Keyboard_lv_url_search.qml 1970-01-01 00:00:00 +0000
345+++ plugins/lv/qml/Keyboard_lv_url_search.qml 2016-06-14 16:21:39 +0000
346@@ -0,0 +1,93 @@
347+/*
348+ * Copyright 2016 Canonical Ltd.
349+ *
350+ * This program is free software; you can redistribute it and/or modify
351+ * it under the terms of the GNU Lesser General Public License as published by
352+ * the Free Software Foundation; version 3.
353+ *
354+ * This program is distributed in the hope that it will be useful,
355+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
356+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
357+ * GNU Lesser General Public License for more details.
358+ *
359+ * You should have received a copy of the GNU Lesser General Public License
360+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
361+ */
362+
363+import QtQuick 2.4
364+import "../../keys"
365+import "../../keys/key_constants.js" as UI
366+
367+KeyPad {
368+ anchors.fill: parent
369+
370+ content: c1
371+ symbols: "languages/Keyboard_symbols.qml"
372+
373+ Column {
374+ id: c1
375+ anchors.fill: parent
376+ spacing: 0
377+
378+ Row {
379+ anchors.horizontalCenter: parent.horizontalCenter;
380+ spacing: 0
381+
382+ CharKey { label: "q"; shifted: "Q"; extended: ["1"]; extendedShifted: ["1"]; leftSide: true; }
383+ CharKey { label: "w"; shifted: "W"; extended: ["2"]; extendedShifted: ["2"] }
384+ CharKey { label: "e"; shifted: "E"; extended: ["3", "ē", "€"]; extendedShifted: ["3", "Ē", "€"] }
385+ CharKey { label: "r"; shifted: "R"; extended: ["4","ŗ"]; extendedShifted: ["4", "Ŗ"] }
386+ CharKey { label: "t"; shifted: "T"; extended: ["5"]; extendedShifted: ["5"] }
387+ CharKey { label: "y"; shifted: "Y"; extended: ["6"]; extendedShifted: ["6"] }
388+ CharKey { label: "u"; shifted: "U"; extended: ["7", "ū"]; extendedShifted: ["7", "Ū"] }
389+ CharKey { label: "i"; shifted: "I"; extended: ["8", "ī"]; extendedShifted: ["8", "Ī"] }
390+ CharKey { label: "o"; shifted: "O"; extended: ["9", "ō"]; extendedShifted: ["9", "Ō"] }
391+ CharKey { label: "p"; shifted: "P"; extended: ["0"]; extendedShifted: ["0"]; rightSide: true; }
392+ }
393+
394+ Row {
395+ anchors.horizontalCenter: parent.horizontalCenter;
396+ spacing: 0
397+
398+ CharKey { label: "a"; shifted: "A"; extended: ["ā"]; extendedShifted: ["Ā"]; leftSide: true; }
399+ CharKey { label: "s"; shifted: "S"; extended: ["š","$"]; extendedShifted: ["Š","$"] }
400+ CharKey { label: "d"; shifted: "D"; }
401+ CharKey { label: "f"; shifted: "F"; }
402+ CharKey { label: "g"; shifted: "G"; extended: ["ģ"]; extendedShifted: ["Ģ"]; }
403+ CharKey { label: "h"; shifted: "H"; }
404+ CharKey { label: "j"; shifted: "J"; }
405+ CharKey { label: "k"; shifted: "K"; extended: ["ķ"]; extendedShifted: ["Ķ"]; }
406+ CharKey { label: "l"; shifted: "L"; extended: ["ļ"]; extendedShifted: ["Ļ"]; rightSide: true; }
407+ }
408+
409+ Row {
410+ anchors.horizontalCenter: parent.horizontalCenter;
411+ spacing: 0
412+
413+ ShiftKey { padding: 0 }
414+ CharKey { label: "z"; shifted: "Z"; extended: ["ž"]; extendedShifted: ["Ž"] }
415+ CharKey { label: "x"; shifted: "X"; }
416+ CharKey { label: "c"; shifted: "C"; extended: ["č", "¢"]; extendedShifted: ["Č", "¢"] }
417+ CharKey { label: "v"; shifted: "V"; }
418+ CharKey { label: "b"; shifted: "B"; }
419+ CharKey { label: "n"; shifted: "N"; extended: ["ņ"]; extendedShifted: ["Ņ"] }
420+ CharKey { label: "m"; shifted: "M"; }
421+ BackspaceKey { padding: 0 }
422+ }
423+
424+ Item {
425+ anchors.left: parent.left
426+ anchors.right: parent.right
427+
428+ height: panel.keyHeight + units.gu(UI.row_margin);
429+
430+ SymbolShiftKey { id: symShiftKey; anchors.left: parent.left; height: parent.height; }
431+ LanguageKey { id: languageMenuButton; anchors.left: symShiftKey.right; height: parent.height; }
432+ CharKey { id: slashKey; label: "/"; shifted: "/"; anchors.left: languageMenuButton.right; height: parent.height; }
433+ SpaceKey { id: spaceKey; anchors.left: slashKey.right; anchors.right: urlKey.left; noMagnifier: true; height: parent.height; }
434+ UrlKey { id: urlKey; label: ".lv"; extended: [".gov.lv", ".com", ".net", ".org", ".edu", ".gov"]; anchors.right: dotKey.left; height: parent.height; }
435+ CharKey { id: dotKey; label: "."; shifted: "."; extended: ["?", "-", "_", "!", "+", "%","#","/"]; extendedShifted: ["?", "-", "_", "!", "+", "%","#","/"]; anchors.right: enterKey.left; height: parent.height; }
436+ ReturnKey { id: enterKey; anchors.right: parent.right; height: parent.height; }
437+ }
438+ } // column
439+}
440
441=== added file 'plugins/lv/qml/qml.pro'
442--- plugins/lv/qml/qml.pro 1970-01-01 00:00:00 +0000
443+++ plugins/lv/qml/qml.pro 2016-06-14 16:21:39 +0000
444@@ -0,0 +1,20 @@
445+TOP_BUILDDIR = $$OUT_PWD/../../..
446+TOP_SRCDIR = $$PWD/../../..
447+
448+include($${TOP_SRCDIR}/config.pri)
449+
450+TARGET = dummy
451+TEMPLATE = lib
452+
453+lang_lv.path = "$${UBUNTU_KEYBOARD_LIB_DIR}/lv/"
454+lang_lv.files = *.qml *.js
455+
456+INSTALLS += lang_lv
457+
458+# for QtCreator
459+OTHER_FILES += \
460+ Keyboard_lv.qml \
461+ Keyboard_lv_email.qml \
462+ Keyboard_lv_url.qml \
463+ Keyboard_lv_url_search.qml
464+
465
466=== added directory 'plugins/lv/src'
467=== added file 'plugins/lv/src/database_lv.db'
468Binary files plugins/lv/src/database_lv.db 1970-01-01 00:00:00 +0000 and plugins/lv/src/database_lv.db 2016-06-14 16:21:39 +0000 differ
469=== added file 'plugins/lv/src/free_ebook.txt'
470=== added file 'plugins/lv/src/latvianplugin.h'
471--- plugins/lv/src/latvianplugin.h 1970-01-01 00:00:00 +0000
472+++ plugins/lv/src/latvianplugin.h 2016-06-14 16:21:39 +0000
473@@ -0,0 +1,25 @@
474+#ifndef LATVIANPLUGIN_H
475+#define LATVIANPLUGIN_H
476+
477+#include <QObject>
478+#include "languageplugininterface.h"
479+#include "westernlanguagesplugin.h"
480+
481+class LatvianPlugin : public WesternLanguagesPlugin
482+{
483+ Q_OBJECT
484+ Q_INTERFACES(LanguagePluginInterface)
485+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.Examples.LatvianPlugin" FILE "latvianplugin.json")
486+
487+public:
488+ explicit LatvianPlugin(QObject* parent = 0)
489+ : WesternLanguagesPlugin(parent)
490+ {
491+ }
492+
493+ virtual ~LatvianPlugin()
494+ {
495+ }
496+};
497+
498+#endif // LATVIANPLUGIN_H
499
500=== added file 'plugins/lv/src/latvianplugin.json'
501--- plugins/lv/src/latvianplugin.json 1970-01-01 00:00:00 +0000
502+++ plugins/lv/src/latvianplugin.json 2016-06-14 16:21:39 +0000
503@@ -0,0 +1,7 @@
504+{
505+ "IID": "org.qt-project.Qt.Examples.LatvianPlugin",
506+ "MetaData": {
507+ },
508+ "className": "LatvianPlugin",
509+ "debug": true
510+}
511
512=== added file 'plugins/lv/src/src.pro'
513--- plugins/lv/src/src.pro 1970-01-01 00:00:00 +0000
514+++ plugins/lv/src/src.pro 2016-06-14 16:21:39 +0000
515@@ -0,0 +1,46 @@
516+TOP_BUILDDIR = $$OUT_PWD/../../..
517+TOP_SRCDIR = $$PWD/../../..
518+
519+include($${TOP_SRCDIR}/config.pri)
520+
521+TEMPLATE = lib
522+CONFIG += plugin
523+QT += widgets
524+INCLUDEPATH += \
525+ $${TOP_SRCDIR}/src/ \
526+ $${TOP_SRCDIR}/src/lib/ \
527+ $${TOP_SRCDIR}/src/lib/logic/
528+ $${TOP_SRCDIR}/plugins/westernsupport
529+
530+HEADERS = \
531+ latvianplugin.h
532+
533+TARGET = $$qtLibraryTarget(lvplugin)
534+
535+EXAMPLE_FILES = latvianplugin.json
536+
537+# generate database for presage:
538+PLUGIN_INSTALL_PATH = $${UBUNTU_KEYBOARD_LIB_DIR}/lv/
539+
540+lang_db_lv.commands += \
541+ rm -f $$PWD/database_lv.db && \
542+ text2ngram -n 1 -l -f sqlite -o $$PWD/database_lv.db $$PWD/free_ebook.txt && \
543+ text2ngram -n 2 -l -f sqlite -o $$PWD/database_lv.db $$PWD/free_ebook.txt && \
544+ text2ngram -n 3 -l -f sqlite -o $$PWD/database_lv.db $$PWD/free_ebook.txt
545+lang_db_lv.files += $$PWD/database_lv.db
546+lang_db_lv_install.path = $$PLUGIN_INSTALL_PATH
547+lang_db_lv_install.files += $$PWD/database_lv.db
548+
549+QMAKE_EXTRA_TARGETS += lang_db_lv lang_db_lv_install
550+
551+target.path = $$PLUGIN_INSTALL_PATH
552+INSTALLS += target lang_db_lv_install
553+
554+OTHER_FILES += \
555+ latvianplugin.json \
556+ free_ebook.txt
557+
558+LIBS += $${TOP_BUILDDIR}/plugins/plugins/libwesternsupport.a -lpresage -lhunspell
559+
560+INCLUDEPATH += $$PWD/../../westernsupport
561+DEPENDPATH += $$PWD/../../westernsupport
562
563=== modified file 'plugins/plugins.pro'
564--- plugins/plugins.pro 2016-03-29 14:19:40 +0000
565+++ plugins/plugins.pro 2016-06-14 16:21:39 +0000
566@@ -22,6 +22,7 @@
567 is \
568 it \
569 ja \
570+ lv \
571 nb \
572 nl \
573 pl \
574
575=== modified file 'po/ubuntu-keyboard.pot'
576--- po/ubuntu-keyboard.pot 2016-04-28 11:46:45 +0000
577+++ po/ubuntu-keyboard.pot 2016-06-14 16:21:39 +0000
578@@ -1,6 +1,6 @@
579 # SOME DESCRIPTIVE TITLE.
580 # Copyright (C) YEAR Canonical Ltd.
581-# This file is distributed under the same license as the PACKAGE package.
582+# This file is distributed under the same license as the ubuntu-keyboard package.
583 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
584 #
585 #, fuzzy
586@@ -8,7 +8,7 @@
587 msgstr ""
588 "Project-Id-Version: ubuntu-keyboard\n"
589 "Report-Msgid-Bugs-To: \n"
590-"POT-Creation-Date: 2016-04-28 11:45+0000\n"
591+"POT-Creation-Date: 2016-06-02 00:06+0100\n"
592 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
593 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
594 "Language-Team: LANGUAGE <LL@li.org>\n"
595@@ -102,52 +102,56 @@
596 msgstr ""
597
598 #: ../qml/keys/languages.js:39
599+msgid "Latvian"
600+msgstr ""
601+
602+#: ../qml/keys/languages.js:40
603 msgid "Dutch"
604 msgstr ""
605
606-#: ../qml/keys/languages.js:40
607+#: ../qml/keys/languages.js:41
608 msgid "Norwegian"
609 msgstr ""
610
611-#: ../qml/keys/languages.js:41
612+#: ../qml/keys/languages.js:42
613 msgid "Polish"
614 msgstr ""
615
616-#: ../qml/keys/languages.js:42
617+#: ../qml/keys/languages.js:43
618 msgid "Portuguese"
619 msgstr ""
620
621-#: ../qml/keys/languages.js:43
622+#: ../qml/keys/languages.js:44
623 msgid "Romanian"
624 msgstr ""
625
626-#: ../qml/keys/languages.js:44
627+#: ../qml/keys/languages.js:45
628 msgid "Russian"
629 msgstr ""
630
631-#: ../qml/keys/languages.js:45
632+#: ../qml/keys/languages.js:46
633 msgid "Slovenian"
634 msgstr ""
635
636-#: ../qml/keys/languages.js:46
637+#: ../qml/keys/languages.js:47
638 msgid "Serbian"
639 msgstr ""
640
641-#: ../qml/keys/languages.js:47
642+#: ../qml/keys/languages.js:48
643 msgid "Swedish"
644 msgstr ""
645
646-#: ../qml/keys/languages.js:48
647+#: ../qml/keys/languages.js:49
648 msgid "Ukrainian"
649 msgstr ""
650
651-#: ../qml/keys/languages.js:49
652+#: ../qml/keys/languages.js:50
653 msgid ""
654 "Chinese\n"
655 "(Pinyin)"
656 msgstr ""
657
658-#: ../qml/keys/languages.js:50
659+#: ../qml/keys/languages.js:51
660 msgid ""
661 "Chinese\n"
662 "(Chewing)"
663
664=== modified file 'qml/keys/languages.js'
665--- qml/keys/languages.js 2016-04-18 15:23:00 +0000
666+++ qml/keys/languages.js 2016-06-14 16:21:39 +0000
667@@ -36,6 +36,7 @@
668 if (languageId == "is") return i18n.tr("Icelandic");
669 if (languageId == "it") return i18n.tr("Italian");
670 if (languageId == "ja") return i18n.tr("Japanese");
671+ if (languageId == "lv") return i18n.tr("Latvian");
672 if (languageId == "nl") return i18n.tr("Dutch");
673 if (languageId == "nb") return i18n.tr("Norwegian");
674 if (languageId == "pl") return i18n.tr("Polish");
675
676=== modified file 'tests/autopilot/ubuntu_keyboard/tests/test_keyboard.py'
677--- tests/autopilot/ubuntu_keyboard/tests/test_keyboard.py 2016-04-28 00:42:26 +0000
678+++ tests/autopilot/ubuntu_keyboard/tests/test_keyboard.py 2016-06-14 16:21:39 +0000
679@@ -1424,6 +1424,7 @@
680 ("hu", ".hu", "test"),
681 ("is", ".is", "tæst"),
682 ("it", ".it", "test"),
683+ ("lv", ".lv", "test"),
684 ("nb", ".no", "bokmål"),
685 ("nl", ".nl", "test"),
686 ("pl", ".pl", "tęst"),

Subscribers

People subscribed via source and target branches