Merge lp:~michael-sheldon/ubuntu-keyboard/custom-plugin-paths into lp:ubuntu-keyboard

Proposed by Michael Sheldon on 2015-04-15
Status: Merged
Approved by: Bill Filler on 2015-04-22
Approved revision: 354
Merged at revision: 356
Proposed branch: lp:~michael-sheldon/ubuntu-keyboard/custom-plugin-paths
Merge into: lp:ubuntu-keyboard
Diff against target: 2548 lines (+460/-390)
140 files modified
data/schemas/com.canonical.keyboard.maliit.gschema.xml (+5/-0)
debian/control (+1/-0)
plugins/ar/qml/Keyboard_ar.qml (+1/-2)
plugins/ar/qml/Keyboard_ar_email.qml (+1/-2)
plugins/ar/qml/Keyboard_ar_url.qml (+1/-2)
plugins/ar/qml/Keyboard_ar_url_search.qml (+1/-2)
plugins/ar/src/src.pro (+1/-1)
plugins/az/qml/Keyboard_az.qml (+1/-2)
plugins/az/qml/Keyboard_az_email.qml (+1/-2)
plugins/az/qml/Keyboard_az_url.qml (+1/-2)
plugins/az/qml/Keyboard_az_url_search.qml (+1/-2)
plugins/az/src/src.pro (+1/-1)
plugins/bs/qml/Keyboard_bs.qml (+1/-2)
plugins/bs/qml/Keyboard_bs_email.qml (+1/-2)
plugins/bs/qml/Keyboard_bs_url.qml (+1/-2)
plugins/bs/qml/Keyboard_bs_url_search.qml (+1/-2)
plugins/bs/src/src.pro (+1/-1)
plugins/ca/qml/Keyboard_ca.qml (+1/-2)
plugins/ca/qml/Keyboard_ca_email.qml (+1/-2)
plugins/ca/qml/Keyboard_ca_url.qml (+1/-2)
plugins/ca/qml/Keyboard_ca_url_search.qml (+1/-2)
plugins/ca/src/src.pro (+1/-1)
plugins/cs/qml/Keyboard_cs.qml (+1/-2)
plugins/cs/qml/Keyboard_cs_email.qml (+1/-2)
plugins/cs/qml/Keyboard_cs_url.qml (+1/-2)
plugins/cs/qml/Keyboard_cs_url_search.qml (+1/-2)
plugins/cs/src/src.pro (+1/-1)
plugins/da/qml/Keyboard_da.qml (+1/-2)
plugins/da/qml/Keyboard_da_email.qml (+1/-2)
plugins/da/qml/Keyboard_da_url.qml (+1/-2)
plugins/da/qml/Keyboard_da_url_search.qml (+1/-2)
plugins/da/src/src.pro (+1/-1)
plugins/de/qml/Keyboard_de.qml (+1/-2)
plugins/de/qml/Keyboard_de_email.qml (+1/-2)
plugins/de/qml/Keyboard_de_url.qml (+1/-2)
plugins/de/qml/Keyboard_de_url_search.qml (+1/-2)
plugins/de/src/src.pro (+1/-1)
plugins/emoji/qml/Keyboard_emoji.qml (+1/-2)
plugins/en/qml/Keyboard_en.qml (+1/-2)
plugins/en/qml/Keyboard_en_email.qml (+1/-2)
plugins/en/qml/Keyboard_en_url.qml (+1/-2)
plugins/en/qml/Keyboard_en_url_search.qml (+1/-2)
plugins/en/src/src.pro (+1/-1)
plugins/es/qml/Keyboard_es.qml (+1/-2)
plugins/es/qml/Keyboard_es_email.qml (+1/-2)
plugins/es/qml/Keyboard_es_url.qml (+1/-2)
plugins/es/qml/Keyboard_es_url_search.qml (+1/-2)
plugins/es/src/src.pro (+1/-1)
plugins/fi/qml/Keyboard_fi.qml (+1/-2)
plugins/fi/qml/Keyboard_fi_email.qml (+1/-2)
plugins/fi/qml/Keyboard_fi_url.qml (+1/-2)
plugins/fi/qml/Keyboard_fi_url_search.qml (+1/-2)
plugins/fi/src/src.pro (+1/-1)
plugins/fr/qml/Keyboard_fr.qml (+1/-2)
plugins/fr/qml/Keyboard_fr_email.qml (+1/-2)
plugins/fr/qml/Keyboard_fr_url.qml (+1/-2)
plugins/fr/qml/Keyboard_fr_url_search.qml (+1/-2)
plugins/fr/src/src.pro (+1/-1)
plugins/he/qml/Keyboard_he.qml (+1/-2)
plugins/he/qml/Keyboard_he_email.qml (+1/-2)
plugins/he/qml/Keyboard_he_url.qml (+1/-2)
plugins/he/qml/Keyboard_he_url_search.qml (+1/-2)
plugins/he/src/src.pro (+1/-1)
plugins/hr/qml/Keyboard_hr.qml (+1/-2)
plugins/hr/qml/Keyboard_hr_email.qml (+1/-2)
plugins/hr/qml/Keyboard_hr_url.qml (+1/-2)
plugins/hr/qml/Keyboard_hr_url_search.qml (+1/-2)
plugins/hr/src/src.pro (+1/-1)
plugins/hu/qml/Keyboard_hu.qml (+1/-2)
plugins/hu/qml/Keyboard_hu_email.qml (+1/-2)
plugins/hu/qml/Keyboard_hu_url.qml (+1/-2)
plugins/hu/qml/Keyboard_hu_url_search.qml (+1/-2)
plugins/hu/src/src.pro (+1/-1)
plugins/it/qml/Keyboard_it.qml (+1/-2)
plugins/it/qml/Keyboard_it_email.qml (+1/-2)
plugins/it/qml/Keyboard_it_url.qml (+1/-2)
plugins/it/qml/Keyboard_it_url_search.qml (+1/-2)
plugins/it/src/src.pro (+1/-1)
plugins/nl/qml/Keyboard_nl.qml (+1/-2)
plugins/nl/qml/Keyboard_nl_email.qml (+1/-2)
plugins/nl/qml/Keyboard_nl_url.qml (+1/-2)
plugins/nl/qml/Keyboard_nl_url_search.qml (+1/-2)
plugins/nl/src/src.pro (+1/-1)
plugins/pinyin/qml/Keyboard_zh.qml (+1/-2)
plugins/pinyin/qml/Keyboard_zh_email.qml (+1/-2)
plugins/pinyin/qml/Keyboard_zh_url.qml (+1/-2)
plugins/pinyin/qml/Keyboard_zh_url_search.qml (+1/-2)
plugins/pinyin/src/pinyinplugin.h (+1/-1)
plugins/pinyin/src/src.pro (+1/-1)
plugins/pl/qml/Keyboard_pl.qml (+1/-2)
plugins/pl/qml/Keyboard_pl_email.qml (+1/-2)
plugins/pl/qml/Keyboard_pl_url.qml (+1/-2)
plugins/pl/qml/Keyboard_pl_url_search.qml (+1/-2)
plugins/pl/src/src.pro (+1/-1)
plugins/pt/qml/Keyboard_pt.qml (+1/-2)
plugins/pt/qml/Keyboard_pt_email.qml (+1/-2)
plugins/pt/qml/Keyboard_pt_url.qml (+1/-2)
plugins/pt/qml/Keyboard_pt_url_search.qml (+1/-2)
plugins/pt/src/src.pro (+1/-1)
plugins/ru/qml/Keyboard_ru.qml (+1/-2)
plugins/ru/qml/Keyboard_ru_email.qml (+1/-2)
plugins/ru/qml/Keyboard_ru_url.qml (+1/-2)
plugins/ru/qml/Keyboard_ru_url_search.qml (+1/-2)
plugins/ru/src/src.pro (+1/-1)
plugins/sr/qml/Keyboard_sr.qml (+1/-2)
plugins/sr/qml/Keyboard_sr_email.qml (+1/-2)
plugins/sr/qml/Keyboard_sr_url.qml (+1/-2)
plugins/sr/qml/Keyboard_sr_url_search.qml (+1/-2)
plugins/sr/src/src.pro (+1/-1)
plugins/sv/qml/Keyboard_sv.qml (+1/-2)
plugins/sv/qml/Keyboard_sv_email.qml (+1/-2)
plugins/sv/qml/Keyboard_sv_url.qml (+1/-2)
plugins/sv/qml/Keyboard_sv_url_search.qml (+1/-2)
plugins/sv/src/src.pro (+1/-1)
plugins/westernsupport/spellpredictworker.cpp (+2/-3)
plugins/westernsupport/spellpredictworker.h (+1/-1)
plugins/westernsupport/westernlanguagesplugin.cpp (+6/-6)
plugins/westernsupport/westernlanguagesplugin.h (+3/-3)
qml/KeyboardContainer.qml (+13/-105)
qml/keys/LanguageMenu.qml (+1/-1)
qml/keys/qmldir (+20/-0)
qml/qml.pro (+2/-1)
src/lib/logic/abstractlanguageplugin.cpp (+2/-1)
src/lib/logic/abstractlanguageplugin.h (+1/-1)
src/lib/logic/languageplugininterface.h (+1/-1)
src/lib/logic/wordengine.cpp (+11/-58)
src/lib/logic/wordengine.h (+1/-1)
src/plugin/inputmethod.cpp (+48/-1)
src/plugin/inputmethod.h (+10/-0)
src/plugin/inputmethod_p.h (+18/-0)
src/plugin/keyboardsettings.cpp (+18/-6)
src/plugin/keyboardsettings.h (+2/-0)
tests/autopilot/ubuntu_keyboard/tests/test_keyboard.py (+33/-0)
tests/testlayout/qml/Keyboard_testlayout.qml (+40/-0)
tests/testlayout/qml/qml.pro (+20/-0)
tests/testlayout/src/src.pro (+47/-0)
tests/testlayout/src/testlayoutplugin.h (+25/-0)
tests/testlayout/src/testlayoutplugin.json (+7/-0)
tests/testlayout/testlayout.pro (+9/-0)
tests/tests.pro (+1/-0)
To merge this branch: bzr merge lp:~michael-sheldon/ubuntu-keyboard/custom-plugin-paths
Reviewer Review Type Date Requested Status
PS Jenkins bot continuous-integration Needs Fixing on 2015-04-20
Ken VanDine 2015-04-20 Approve on 2015-04-20
Ubuntu Phablet Team 2015-04-15 Pending
Review via email: mp+256285@code.launchpad.net

Commit Message

Allow the keyboard to load plugins from additional paths specified via gsettings.

Description of the Change

Allow the keyboard to load plugins from additional paths specified via gsettings.

To post a comment you must log in.
Michael Sheldon (michael-sheldon) wrote :

This depends on https://code.launchpad.net/~michael-sheldon/ubuntu-system-settings/support-additional-keyboard-plugin-paths/+merge/256286 which makes it possible to select custom plugins through system settings.

It can be tested by installing the ubuntu-keyboard-tests package and adding "/usr/share/maliit/tests/ubuntu-keyboard/" to the plugin paths by running:

gsettings set com.canonical.keyboard.maliit plugin-paths "['/custom/share/maliit/plugins/com/ubuntu/lib', '/usr/share/maliit/tests/ubuntu-keyboard/']"

A layout called "Testlayout" should then be displayed in the settings panel.

350. By Michael Sheldon on 2015-04-15

Merge from trunk

351. By Michael Sheldon on 2015-04-15

Install missing qmldir for new keys module

352. By Michael Sheldon on 2015-04-15

Handle plugin path changes without requiring a restart of maliit-server

353. By Michael Sheldon on 2015-04-17

Add language key to testlayout for easier testing

Michael Sheldon (michael-sheldon) wrote :

Are there any related MPs required for this MP to build/function as expected? Please list.

 * Yes, this system setting MR is required for plugins in custom locations to be activated: https://code.launchpad.net/~michael-sheldon/ubuntu-system-settings/support-additional-keyboard-plugin-paths/+merge/256286

Is your branch in sync with latest trunk (e.g. bzr pull lp:trunk -> no changes)

 * Yes

Did you perform an exploratory manual test run of your code change and any related functionality on device or emulator?

 * Yes

Did you successfully run all tests found in your component's Test Plan (https://wiki.ubuntu.com/Process/Merges/TestPlan/ubuntu-keyboard) on device or emulator?

 * Yes

If you changed the UI, was the change specified/approved by design?

 * No change

If you changed UI labels, did you update the pot file?

 * No change

If you changed the packaging (debian), did you add a core-dev as a reviewer to this MP?

 * Yes

Ken VanDine (ken-vandine) wrote :

You should probably make the autopilot package depend on the same version of the ubuntu-keyboard-tests package

review: Needs Fixing (packaging)
354. By Michael Sheldon on 2015-04-20

Update autopilot test dependencies to depend on specific version of keyboard tests package

Ken VanDine (ken-vandine) wrote :

Packaging looks good now

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'data/schemas/com.canonical.keyboard.maliit.gschema.xml'
2--- data/schemas/com.canonical.keyboard.maliit.gschema.xml 2015-02-09 21:14:44 +0000
3+++ data/schemas/com.canonical.keyboard.maliit.gschema.xml 2015-04-20 15:33:53 +0000
4@@ -66,5 +66,10 @@
5 <description>Never show the keyboard (e.g. because a hardware keyboard has been connected.)</description>
6 <default>false</default>
7 </key>
8+ <key name="plugin-paths" type="as">
9+ <summary>Plugin paths</summary>
10+ <description>A list of locations to search for keyboard layout plugins in addition to the keyboard data directory.</description>
11+ <default>['/custom/share/maliit/plugins/com/ubuntu/lib/']</default>
12+ </key>
13 </schema>
14 </schemalist>
15
16=== modified file 'debian/control'
17--- debian/control 2015-01-19 14:06:48 +0000
18+++ debian/control 2015-04-20 15:33:53 +0000
19@@ -83,6 +83,7 @@
20 ubuntu-keyboard-english (>= ${source:Version}),
21 ubuntu-keyboard-german (>= ${source:Version}),
22 ubuntu-keyboard-spanish (>= ${source:Version}),
23+ ubuntu-keyboard-tests (>= ${source:Version}),
24 ubuntu-ui-toolkit-autopilot
25 Description: Tests and emulators package for ubuntu-keyboard
26 Autopilot tests for the ubuntu-keyboard package
27
28=== modified file 'plugins/ar/qml/Keyboard_ar.qml'
29--- plugins/ar/qml/Keyboard_ar.qml 2015-03-13 12:07:08 +0000
30+++ plugins/ar/qml/Keyboard_ar.qml 2015-04-20 15:33:53 +0000
31@@ -15,8 +15,7 @@
32 */
33
34 import QtQuick 2.0
35-import "../../keys"
36-import "../../keys/key_constants.js" as UI
37+import keys 1.0
38
39 KeyPad {
40 anchors.fill: parent
41
42=== modified file 'plugins/ar/qml/Keyboard_ar_email.qml'
43--- plugins/ar/qml/Keyboard_ar_email.qml 2015-03-13 12:07:08 +0000
44+++ plugins/ar/qml/Keyboard_ar_email.qml 2015-04-20 15:33:53 +0000
45@@ -15,8 +15,7 @@
46 */
47
48 import QtQuick 2.0
49-import "../../keys"
50-import "../../keys/key_constants.js" as UI
51+import keys 1.0
52
53 KeyPad {
54 anchors.fill: parent
55
56=== modified file 'plugins/ar/qml/Keyboard_ar_url.qml'
57--- plugins/ar/qml/Keyboard_ar_url.qml 2015-03-13 12:07:08 +0000
58+++ plugins/ar/qml/Keyboard_ar_url.qml 2015-04-20 15:33:53 +0000
59@@ -15,8 +15,7 @@
60 */
61
62 import QtQuick 2.0
63-import "../../keys"
64-import "../../keys/key_constants.js" as UI
65+import keys 1.0
66
67 KeyPad {
68 anchors.fill: parent
69
70=== modified file 'plugins/ar/qml/Keyboard_ar_url_search.qml'
71--- plugins/ar/qml/Keyboard_ar_url_search.qml 2015-03-13 12:07:08 +0000
72+++ plugins/ar/qml/Keyboard_ar_url_search.qml 2015-04-20 15:33:53 +0000
73@@ -15,8 +15,7 @@
74 */
75
76 import QtQuick 2.0
77-import "../../keys"
78-import "../../keys/key_constants.js" as UI
79+import keys 1.0
80
81 KeyPad {
82 anchors.fill: parent
83
84=== modified file 'plugins/ar/src/src.pro'
85--- plugins/ar/src/src.pro 2014-05-20 09:53:45 +0000
86+++ plugins/ar/src/src.pro 2015-04-20 15:33:53 +0000
87@@ -15,7 +15,7 @@
88 HEADERS = \
89 arabicplugin.h
90
91-TARGET = $$qtLibraryTarget(arabicplugin)
92+TARGET = $$qtLibraryTarget(arplugin)
93
94 EXAMPLE_FILES = arabicplugin.json
95
96
97=== modified file 'plugins/az/qml/Keyboard_az.qml'
98--- plugins/az/qml/Keyboard_az.qml 2015-03-13 12:07:08 +0000
99+++ plugins/az/qml/Keyboard_az.qml 2015-04-20 15:33:53 +0000
100@@ -15,8 +15,7 @@
101 */
102
103 import QtQuick 2.0
104-import "../../keys"
105-import "../../keys/key_constants.js" as UI
106+import keys 1.0
107
108 KeyPad {
109 anchors.fill: parent
110
111=== modified file 'plugins/az/qml/Keyboard_az_email.qml'
112--- plugins/az/qml/Keyboard_az_email.qml 2015-03-13 12:07:08 +0000
113+++ plugins/az/qml/Keyboard_az_email.qml 2015-04-20 15:33:53 +0000
114@@ -15,8 +15,7 @@
115 */
116
117 import QtQuick 2.0
118-import "../../keys"
119-import "../../keys/key_constants.js" as UI
120+import keys 1.0
121
122 KeyPad {
123 anchors.fill: parent
124
125=== modified file 'plugins/az/qml/Keyboard_az_url.qml'
126--- plugins/az/qml/Keyboard_az_url.qml 2015-03-13 12:07:08 +0000
127+++ plugins/az/qml/Keyboard_az_url.qml 2015-04-20 15:33:53 +0000
128@@ -15,8 +15,7 @@
129 */
130
131 import QtQuick 2.0
132-import "../../keys"
133-import "../../keys/key_constants.js" as UI
134+import keys 1.0
135
136 KeyPad {
137 anchors.fill: parent
138
139=== modified file 'plugins/az/qml/Keyboard_az_url_search.qml'
140--- plugins/az/qml/Keyboard_az_url_search.qml 2015-03-13 12:07:08 +0000
141+++ plugins/az/qml/Keyboard_az_url_search.qml 2015-04-20 15:33:53 +0000
142@@ -15,8 +15,7 @@
143 */
144
145 import QtQuick 2.0
146-import "../../keys"
147-import "../../keys/key_constants.js" as UI
148+import keys 1.0
149
150 KeyPad {
151 anchors.fill: parent
152
153=== modified file 'plugins/az/src/src.pro'
154--- plugins/az/src/src.pro 2014-11-12 15:21:10 +0000
155+++ plugins/az/src/src.pro 2015-04-20 15:33:53 +0000
156@@ -15,7 +15,7 @@
157 HEADERS = \
158 azerbaijaniplugin.h
159
160-TARGET = $$qtLibraryTarget(azerbaijaniplugin)
161+TARGET = $$qtLibraryTarget(azplugin)
162
163 EXAMPLE_FILES = azerbaijaniplugin.json
164
165
166=== modified file 'plugins/bs/qml/Keyboard_bs.qml'
167--- plugins/bs/qml/Keyboard_bs.qml 2015-03-13 12:07:08 +0000
168+++ plugins/bs/qml/Keyboard_bs.qml 2015-04-20 15:33:53 +0000
169@@ -15,8 +15,7 @@
170 */
171
172 import QtQuick 2.0
173-import "../../keys"
174-import "../../keys/key_constants.js" as UI
175+import keys 1.0
176
177 KeyPad {
178 anchors.fill: parent
179
180=== modified file 'plugins/bs/qml/Keyboard_bs_email.qml'
181--- plugins/bs/qml/Keyboard_bs_email.qml 2015-03-13 12:07:08 +0000
182+++ plugins/bs/qml/Keyboard_bs_email.qml 2015-04-20 15:33:53 +0000
183@@ -15,8 +15,7 @@
184 */
185
186 import QtQuick 2.0
187-import "../../keys"
188-import "../../keys/key_constants.js" as UI
189+import keys 1.0
190
191 KeyPad {
192 anchors.fill: parent
193
194=== modified file 'plugins/bs/qml/Keyboard_bs_url.qml'
195--- plugins/bs/qml/Keyboard_bs_url.qml 2015-03-13 12:07:08 +0000
196+++ plugins/bs/qml/Keyboard_bs_url.qml 2015-04-20 15:33:53 +0000
197@@ -15,8 +15,7 @@
198 */
199
200 import QtQuick 2.0
201-import "../../keys"
202-import "../../keys/key_constants.js" as UI
203+import keys 1.0
204
205 KeyPad {
206 anchors.fill: parent
207
208=== modified file 'plugins/bs/qml/Keyboard_bs_url_search.qml'
209--- plugins/bs/qml/Keyboard_bs_url_search.qml 2015-03-13 12:07:08 +0000
210+++ plugins/bs/qml/Keyboard_bs_url_search.qml 2015-04-20 15:33:53 +0000
211@@ -15,8 +15,7 @@
212 */
213
214 import QtQuick 2.0
215-import "../../keys"
216-import "../../keys/key_constants.js" as UI
217+import keys 1.0
218
219 KeyPad {
220 anchors.fill: parent
221
222=== modified file 'plugins/bs/src/src.pro'
223--- plugins/bs/src/src.pro 2014-10-30 21:51:14 +0000
224+++ plugins/bs/src/src.pro 2015-04-20 15:33:53 +0000
225@@ -15,7 +15,7 @@
226 HEADERS = \
227 bosnianplugin.h
228
229-TARGET = $$qtLibraryTarget(bosnianplugin)
230+TARGET = $$qtLibraryTarget(bsplugin)
231
232 EXAMPLE_FILES = bosnianplugin.json
233
234
235=== modified file 'plugins/ca/qml/Keyboard_ca.qml'
236--- plugins/ca/qml/Keyboard_ca.qml 2015-03-16 13:06:37 +0000
237+++ plugins/ca/qml/Keyboard_ca.qml 2015-04-20 15:33:53 +0000
238@@ -15,8 +15,7 @@
239 */
240
241 import QtQuick 2.0
242-import "../../keys"
243-import "../../keys/key_constants.js" as UI
244+import keys 1.0
245
246 KeyPad {
247 anchors.fill: parent
248
249=== modified file 'plugins/ca/qml/Keyboard_ca_email.qml'
250--- plugins/ca/qml/Keyboard_ca_email.qml 2015-03-16 13:06:37 +0000
251+++ plugins/ca/qml/Keyboard_ca_email.qml 2015-04-20 15:33:53 +0000
252@@ -15,8 +15,7 @@
253 */
254
255 import QtQuick 2.0
256-import "../../keys"
257-import "../../keys/key_constants.js" as UI
258+import keys 1.0
259
260 KeyPad {
261 anchors.fill: parent
262
263=== modified file 'plugins/ca/qml/Keyboard_ca_url.qml'
264--- plugins/ca/qml/Keyboard_ca_url.qml 2015-03-16 13:06:37 +0000
265+++ plugins/ca/qml/Keyboard_ca_url.qml 2015-04-20 15:33:53 +0000
266@@ -15,8 +15,7 @@
267 */
268
269 import QtQuick 2.0
270-import "../../keys"
271-import "../../keys/key_constants.js" as UI
272+import keys 1.0
273
274 KeyPad {
275 anchors.fill: parent
276
277=== modified file 'plugins/ca/qml/Keyboard_ca_url_search.qml'
278--- plugins/ca/qml/Keyboard_ca_url_search.qml 2015-03-16 13:06:37 +0000
279+++ plugins/ca/qml/Keyboard_ca_url_search.qml 2015-04-20 15:33:53 +0000
280@@ -15,8 +15,7 @@
281 */
282
283 import QtQuick 2.0
284-import "../../keys"
285-import "../../keys/key_constants.js" as UI
286+import keys 1.0
287
288 KeyPad {
289 anchors.fill: parent
290
291=== modified file 'plugins/ca/src/src.pro'
292--- plugins/ca/src/src.pro 2015-02-02 15:09:28 +0000
293+++ plugins/ca/src/src.pro 2015-04-20 15:33:53 +0000
294@@ -15,7 +15,7 @@
295 HEADERS = \
296 catalanplugin.h
297
298-TARGET = $$qtLibraryTarget(catalanplugin)
299+TARGET = $$qtLibraryTarget(caplugin)
300
301 EXAMPLE_FILES = catalanplugin.json
302
303
304=== modified file 'plugins/cs/qml/Keyboard_cs.qml'
305--- plugins/cs/qml/Keyboard_cs.qml 2015-03-13 12:07:08 +0000
306+++ plugins/cs/qml/Keyboard_cs.qml 2015-04-20 15:33:53 +0000
307@@ -15,8 +15,7 @@
308 */
309
310 import QtQuick 2.0
311-import "../../keys"
312-import "../../keys/key_constants.js" as UI
313+import keys 1.0
314
315 KeyPad {
316 anchors.fill: parent
317
318=== modified file 'plugins/cs/qml/Keyboard_cs_email.qml'
319--- plugins/cs/qml/Keyboard_cs_email.qml 2015-03-13 12:07:08 +0000
320+++ plugins/cs/qml/Keyboard_cs_email.qml 2015-04-20 15:33:53 +0000
321@@ -15,8 +15,7 @@
322 */
323
324 import QtQuick 2.0
325-import "../../keys"
326-import "../../keys/key_constants.js" as UI
327+import keys 1.0
328
329 KeyPad {
330 anchors.fill: parent
331
332=== modified file 'plugins/cs/qml/Keyboard_cs_url.qml'
333--- plugins/cs/qml/Keyboard_cs_url.qml 2015-03-13 12:07:08 +0000
334+++ plugins/cs/qml/Keyboard_cs_url.qml 2015-04-20 15:33:53 +0000
335@@ -15,8 +15,7 @@
336 */
337
338 import QtQuick 2.0
339-import "../../keys"
340-import "../../keys/key_constants.js" as UI
341+import keys 1.0
342
343 KeyPad {
344 anchors.fill: parent
345
346=== modified file 'plugins/cs/qml/Keyboard_cs_url_search.qml'
347--- plugins/cs/qml/Keyboard_cs_url_search.qml 2015-03-13 12:07:08 +0000
348+++ plugins/cs/qml/Keyboard_cs_url_search.qml 2015-04-20 15:33:53 +0000
349@@ -15,8 +15,7 @@
350 */
351
352 import QtQuick 2.0
353-import "../../keys"
354-import "../../keys/key_constants.js" as UI
355+import keys 1.0
356
357 KeyPad {
358 anchors.fill: parent
359
360=== modified file 'plugins/cs/src/src.pro'
361--- plugins/cs/src/src.pro 2014-05-20 09:53:45 +0000
362+++ plugins/cs/src/src.pro 2015-04-20 15:33:53 +0000
363@@ -15,7 +15,7 @@
364 HEADERS = \
365 czechplugin.h
366
367-TARGET = $$qtLibraryTarget(czechplugin)
368+TARGET = $$qtLibraryTarget(csplugin)
369
370 EXAMPLE_FILES = czechplugin.json
371
372
373=== modified file 'plugins/da/qml/Keyboard_da.qml'
374--- plugins/da/qml/Keyboard_da.qml 2015-03-13 12:07:08 +0000
375+++ plugins/da/qml/Keyboard_da.qml 2015-04-20 15:33:53 +0000
376@@ -15,8 +15,7 @@
377 */
378
379 import QtQuick 2.0
380-import "../../keys"
381-import "../../keys/key_constants.js" as UI
382+import keys 1.0
383
384 KeyPad {
385 anchors.fill: parent
386
387=== modified file 'plugins/da/qml/Keyboard_da_email.qml'
388--- plugins/da/qml/Keyboard_da_email.qml 2015-03-13 12:07:08 +0000
389+++ plugins/da/qml/Keyboard_da_email.qml 2015-04-20 15:33:53 +0000
390@@ -15,8 +15,7 @@
391 */
392
393 import QtQuick 2.0
394-import "../../keys"
395-import "../../keys/key_constants.js" as UI
396+import keys 1.0
397
398 KeyPad {
399 anchors.fill: parent
400
401=== modified file 'plugins/da/qml/Keyboard_da_url.qml'
402--- plugins/da/qml/Keyboard_da_url.qml 2015-03-13 12:07:08 +0000
403+++ plugins/da/qml/Keyboard_da_url.qml 2015-04-20 15:33:53 +0000
404@@ -15,8 +15,7 @@
405 */
406
407 import QtQuick 2.0
408-import "../../keys"
409-import "../../keys/key_constants.js" as UI
410+import keys 1.0
411
412 KeyPad {
413 anchors.fill: parent
414
415=== modified file 'plugins/da/qml/Keyboard_da_url_search.qml'
416--- plugins/da/qml/Keyboard_da_url_search.qml 2015-03-13 12:07:08 +0000
417+++ plugins/da/qml/Keyboard_da_url_search.qml 2015-04-20 15:33:53 +0000
418@@ -15,8 +15,7 @@
419 */
420
421 import QtQuick 2.0
422-import "../../keys"
423-import "../../keys/key_constants.js" as UI
424+import keys 1.0
425
426 KeyPad {
427 anchors.fill: parent
428
429=== modified file 'plugins/da/src/src.pro'
430--- plugins/da/src/src.pro 2015-02-02 15:09:28 +0000
431+++ plugins/da/src/src.pro 2015-04-20 15:33:53 +0000
432@@ -15,7 +15,7 @@
433 HEADERS = \
434 danishplugin.h
435
436-TARGET = $$qtLibraryTarget(danishplugin)
437+TARGET = $$qtLibraryTarget(daplugin)
438
439 EXAMPLE_FILES = danishplugin.json
440
441
442=== modified file 'plugins/de/qml/Keyboard_de.qml'
443--- plugins/de/qml/Keyboard_de.qml 2015-03-13 12:07:08 +0000
444+++ plugins/de/qml/Keyboard_de.qml 2015-04-20 15:33:53 +0000
445@@ -15,8 +15,7 @@
446 */
447
448 import QtQuick 2.0
449-import "../../keys"
450-import "../../keys/key_constants.js" as UI
451+import keys 1.0
452
453 KeyPad {
454 anchors.fill: parent
455
456=== modified file 'plugins/de/qml/Keyboard_de_email.qml'
457--- plugins/de/qml/Keyboard_de_email.qml 2015-03-13 12:07:08 +0000
458+++ plugins/de/qml/Keyboard_de_email.qml 2015-04-20 15:33:53 +0000
459@@ -15,8 +15,7 @@
460 */
461
462 import QtQuick 2.0
463-import "../../keys"
464-import "../../keys/key_constants.js" as UI
465+import keys 1.0
466
467 KeyPad {
468 anchors.fill: parent
469
470=== modified file 'plugins/de/qml/Keyboard_de_url.qml'
471--- plugins/de/qml/Keyboard_de_url.qml 2015-03-13 12:07:08 +0000
472+++ plugins/de/qml/Keyboard_de_url.qml 2015-04-20 15:33:53 +0000
473@@ -15,8 +15,7 @@
474 */
475
476 import QtQuick 2.0
477-import "../../keys"
478-import "../../keys/key_constants.js" as UI
479+import keys 1.0
480
481 KeyPad {
482 anchors.fill: parent
483
484=== modified file 'plugins/de/qml/Keyboard_de_url_search.qml'
485--- plugins/de/qml/Keyboard_de_url_search.qml 2015-03-13 12:07:08 +0000
486+++ plugins/de/qml/Keyboard_de_url_search.qml 2015-04-20 15:33:53 +0000
487@@ -15,8 +15,7 @@
488 */
489
490 import QtQuick 2.0
491-import "../../keys"
492-import "../../keys/key_constants.js" as UI
493+import keys 1.0
494
495 KeyPad {
496 anchors.fill: parent
497
498=== modified file 'plugins/de/src/src.pro'
499--- plugins/de/src/src.pro 2014-05-20 09:53:45 +0000
500+++ plugins/de/src/src.pro 2015-04-20 15:33:53 +0000
501@@ -15,7 +15,7 @@
502 HEADERS = \
503 germanplugin.h
504
505-TARGET = $$qtLibraryTarget(germanplugin)
506+TARGET = $$qtLibraryTarget(deplugin)
507
508 EXAMPLE_FILES = germanplugin.json
509
510
511=== modified file 'plugins/emoji/qml/Keyboard_emoji.qml'
512--- plugins/emoji/qml/Keyboard_emoji.qml 2015-01-12 17:59:04 +0000
513+++ plugins/emoji/qml/Keyboard_emoji.qml 2015-04-20 15:33:53 +0000
514@@ -15,8 +15,7 @@
515 */
516
517 import QtQuick 2.0
518-import "../../keys"
519-import "../../keys/key_constants.js" as UI
520+import keys 1.0
521 import "emoji.js" as Emoji
522
523 KeyPad {
524
525=== modified file 'plugins/en/qml/Keyboard_en.qml'
526--- plugins/en/qml/Keyboard_en.qml 2015-03-13 12:07:08 +0000
527+++ plugins/en/qml/Keyboard_en.qml 2015-04-20 15:33:53 +0000
528@@ -15,8 +15,7 @@
529 */
530
531 import QtQuick 2.0
532-import "../../keys"
533-import "../../keys/key_constants.js" as UI
534+import keys 1.0
535
536 KeyPad {
537 anchors.fill: parent
538
539=== modified file 'plugins/en/qml/Keyboard_en_email.qml'
540--- plugins/en/qml/Keyboard_en_email.qml 2015-03-13 12:07:08 +0000
541+++ plugins/en/qml/Keyboard_en_email.qml 2015-04-20 15:33:53 +0000
542@@ -15,8 +15,7 @@
543 */
544
545 import QtQuick 2.0
546-import "../../keys"
547-import "../../keys/key_constants.js" as UI
548+import keys 1.0
549
550 KeyPad {
551 anchors.fill: parent
552
553=== modified file 'plugins/en/qml/Keyboard_en_url.qml'
554--- plugins/en/qml/Keyboard_en_url.qml 2015-03-13 12:07:08 +0000
555+++ plugins/en/qml/Keyboard_en_url.qml 2015-04-20 15:33:53 +0000
556@@ -15,8 +15,7 @@
557 */
558
559 import QtQuick 2.0
560-import "../../keys"
561-import "../../keys/key_constants.js" as UI
562+import keys 1.0
563
564 KeyPad {
565 anchors.fill: parent
566
567=== modified file 'plugins/en/qml/Keyboard_en_url_search.qml'
568--- plugins/en/qml/Keyboard_en_url_search.qml 2015-03-13 12:07:08 +0000
569+++ plugins/en/qml/Keyboard_en_url_search.qml 2015-04-20 15:33:53 +0000
570@@ -15,8 +15,7 @@
571 */
572
573 import QtQuick 2.0
574-import "../../keys"
575-import "../../keys/key_constants.js" as UI
576+import keys 1.0
577
578 KeyPad {
579 anchors.fill: parent
580
581=== modified file 'plugins/en/src/src.pro'
582--- plugins/en/src/src.pro 2015-02-02 15:09:28 +0000
583+++ plugins/en/src/src.pro 2015-04-20 15:33:53 +0000
584@@ -15,7 +15,7 @@
585 HEADERS = \
586 englishplugin.h
587
588-TARGET = $$qtLibraryTarget(englishplugin)
589+TARGET = $$qtLibraryTarget(enplugin)
590
591 EXAMPLE_FILES = englishplugin.json
592
593
594=== modified file 'plugins/es/qml/Keyboard_es.qml'
595--- plugins/es/qml/Keyboard_es.qml 2015-03-13 12:07:08 +0000
596+++ plugins/es/qml/Keyboard_es.qml 2015-04-20 15:33:53 +0000
597@@ -15,8 +15,7 @@
598 */
599
600 import QtQuick 2.0
601-import "../../keys"
602-import "../../keys/key_constants.js" as UI
603+import keys 1.0
604
605 KeyPad {
606 anchors.fill: parent
607
608=== modified file 'plugins/es/qml/Keyboard_es_email.qml'
609--- plugins/es/qml/Keyboard_es_email.qml 2015-03-13 12:07:08 +0000
610+++ plugins/es/qml/Keyboard_es_email.qml 2015-04-20 15:33:53 +0000
611@@ -15,8 +15,7 @@
612 */
613
614 import QtQuick 2.0
615-import "../../keys"
616-import "../../keys/key_constants.js" as UI
617+import keys 1.0
618
619 KeyPad {
620 anchors.fill: parent
621
622=== modified file 'plugins/es/qml/Keyboard_es_url.qml'
623--- plugins/es/qml/Keyboard_es_url.qml 2015-03-13 12:07:08 +0000
624+++ plugins/es/qml/Keyboard_es_url.qml 2015-04-20 15:33:53 +0000
625@@ -15,8 +15,7 @@
626 */
627
628 import QtQuick 2.0
629-import "../../keys"
630-import "../../keys/key_constants.js" as UI
631+import keys 1.0
632
633 KeyPad {
634 anchors.fill: parent
635
636=== modified file 'plugins/es/qml/Keyboard_es_url_search.qml'
637--- plugins/es/qml/Keyboard_es_url_search.qml 2015-03-13 12:07:08 +0000
638+++ plugins/es/qml/Keyboard_es_url_search.qml 2015-04-20 15:33:53 +0000
639@@ -15,8 +15,7 @@
640 */
641
642 import QtQuick 2.0
643-import "../../keys"
644-import "../../keys/key_constants.js" as UI
645+import keys 1.0
646
647 KeyPad {
648 anchors.fill: parent
649
650=== modified file 'plugins/es/src/src.pro'
651--- plugins/es/src/src.pro 2014-05-20 09:53:45 +0000
652+++ plugins/es/src/src.pro 2015-04-20 15:33:53 +0000
653@@ -15,7 +15,7 @@
654 HEADERS = \
655 spanishplugin.h
656
657-TARGET = $$qtLibraryTarget(spanishplugin)
658+TARGET = $$qtLibraryTarget(esplugin)
659
660 EXAMPLE_FILES = spanishplugin.json
661
662
663=== modified file 'plugins/fi/qml/Keyboard_fi.qml'
664--- plugins/fi/qml/Keyboard_fi.qml 2015-03-13 12:07:08 +0000
665+++ plugins/fi/qml/Keyboard_fi.qml 2015-04-20 15:33:53 +0000
666@@ -15,8 +15,7 @@
667 */
668
669 import QtQuick 2.0
670-import "../../keys"
671-import "../../keys/key_constants.js" as UI
672+import keys 1.0
673
674 KeyPad {
675 anchors.fill: parent
676
677=== modified file 'plugins/fi/qml/Keyboard_fi_email.qml'
678--- plugins/fi/qml/Keyboard_fi_email.qml 2014-11-27 16:57:43 +0000
679+++ plugins/fi/qml/Keyboard_fi_email.qml 2015-04-20 15:33:53 +0000
680@@ -15,8 +15,7 @@
681 */
682
683 import QtQuick 2.0
684-import "../../keys"
685-import "../../keys/key_constants.js" as UI
686+import keys 1.0
687
688 KeyPad {
689 anchors.fill: parent
690
691=== modified file 'plugins/fi/qml/Keyboard_fi_url.qml'
692--- plugins/fi/qml/Keyboard_fi_url.qml 2014-11-27 16:57:43 +0000
693+++ plugins/fi/qml/Keyboard_fi_url.qml 2015-04-20 15:33:53 +0000
694@@ -15,8 +15,7 @@
695 */
696
697 import QtQuick 2.0
698-import "../../keys"
699-import "../../keys/key_constants.js" as UI
700+import keys 1.0
701
702 KeyPad {
703 anchors.fill: parent
704
705=== modified file 'plugins/fi/qml/Keyboard_fi_url_search.qml'
706--- plugins/fi/qml/Keyboard_fi_url_search.qml 2014-11-27 16:57:43 +0000
707+++ plugins/fi/qml/Keyboard_fi_url_search.qml 2015-04-20 15:33:53 +0000
708@@ -15,8 +15,7 @@
709 */
710
711 import QtQuick 2.0
712-import "../../keys"
713-import "../../keys/key_constants.js" as UI
714+import keys 1.0
715
716 KeyPad {
717 anchors.fill: parent
718
719=== modified file 'plugins/fi/src/src.pro'
720--- plugins/fi/src/src.pro 2014-05-20 09:53:45 +0000
721+++ plugins/fi/src/src.pro 2015-04-20 15:33:53 +0000
722@@ -15,7 +15,7 @@
723 HEADERS = \
724 finnishplugin.h
725
726-TARGET = $$qtLibraryTarget(finnishplugin)
727+TARGET = $$qtLibraryTarget(fiplugin)
728
729 EXAMPLE_FILES = finnishplugin.json
730
731
732=== modified file 'plugins/fr/qml/Keyboard_fr.qml'
733--- plugins/fr/qml/Keyboard_fr.qml 2015-03-13 12:07:08 +0000
734+++ plugins/fr/qml/Keyboard_fr.qml 2015-04-20 15:33:53 +0000
735@@ -15,8 +15,7 @@
736 */
737
738 import QtQuick 2.0
739-import "../../keys"
740-import "../../keys/key_constants.js" as UI
741+import keys 1.0
742
743 KeyPad {
744 anchors.fill: parent
745
746=== modified file 'plugins/fr/qml/Keyboard_fr_email.qml'
747--- plugins/fr/qml/Keyboard_fr_email.qml 2015-03-13 12:07:08 +0000
748+++ plugins/fr/qml/Keyboard_fr_email.qml 2015-04-20 15:33:53 +0000
749@@ -15,8 +15,7 @@
750 */
751
752 import QtQuick 2.0
753-import "../../keys"
754-import "../../keys/key_constants.js" as UI
755+import keys 1.0
756
757 KeyPad {
758 anchors.fill: parent
759
760=== modified file 'plugins/fr/qml/Keyboard_fr_url.qml'
761--- plugins/fr/qml/Keyboard_fr_url.qml 2015-03-13 12:07:08 +0000
762+++ plugins/fr/qml/Keyboard_fr_url.qml 2015-04-20 15:33:53 +0000
763@@ -15,8 +15,7 @@
764 */
765
766 import QtQuick 2.0
767-import "../../keys"
768-import "../../keys/key_constants.js" as UI
769+import keys 1.0
770
771 KeyPad {
772 anchors.fill: parent
773
774=== modified file 'plugins/fr/qml/Keyboard_fr_url_search.qml'
775--- plugins/fr/qml/Keyboard_fr_url_search.qml 2015-03-13 12:07:08 +0000
776+++ plugins/fr/qml/Keyboard_fr_url_search.qml 2015-04-20 15:33:53 +0000
777@@ -15,8 +15,7 @@
778 */
779
780 import QtQuick 2.0
781-import "../../keys"
782-import "../../keys/key_constants.js" as UI
783+import keys 1.0
784
785 KeyPad {
786 anchors.fill: parent
787
788=== modified file 'plugins/fr/src/src.pro'
789--- plugins/fr/src/src.pro 2015-02-02 15:09:28 +0000
790+++ plugins/fr/src/src.pro 2015-04-20 15:33:53 +0000
791@@ -15,7 +15,7 @@
792 HEADERS = \
793 frenchplugin.h
794
795-TARGET = $$qtLibraryTarget(frenchplugin)
796+TARGET = $$qtLibraryTarget(frplugin)
797
798 EXAMPLE_FILES = frenchplugin.json
799
800
801=== modified file 'plugins/he/qml/Keyboard_he.qml'
802--- plugins/he/qml/Keyboard_he.qml 2015-03-13 15:58:30 +0000
803+++ plugins/he/qml/Keyboard_he.qml 2015-04-20 15:33:53 +0000
804@@ -15,8 +15,7 @@
805 */
806
807 import QtQuick 2.0
808-import "../../keys"
809-import "../../keys/key_constants.js" as UI
810+import keys 1.0
811
812 KeyPad {
813 anchors.fill: parent
814
815=== modified file 'plugins/he/qml/Keyboard_he_email.qml'
816--- plugins/he/qml/Keyboard_he_email.qml 2015-03-13 15:58:30 +0000
817+++ plugins/he/qml/Keyboard_he_email.qml 2015-04-20 15:33:53 +0000
818@@ -15,8 +15,7 @@
819 */
820
821 import QtQuick 2.0
822-import "../../keys"
823-import "../../keys/key_constants.js" as UI
824+import keys 1.0
825
826 KeyPad {
827 anchors.fill: parent
828
829=== modified file 'plugins/he/qml/Keyboard_he_url.qml'
830--- plugins/he/qml/Keyboard_he_url.qml 2015-03-13 15:58:30 +0000
831+++ plugins/he/qml/Keyboard_he_url.qml 2015-04-20 15:33:53 +0000
832@@ -15,8 +15,7 @@
833 */
834
835 import QtQuick 2.0
836-import "../../keys"
837-import "../../keys/key_constants.js" as UI
838+import keys 1.0
839
840 KeyPad {
841 anchors.fill: parent
842
843=== modified file 'plugins/he/qml/Keyboard_he_url_search.qml'
844--- plugins/he/qml/Keyboard_he_url_search.qml 2015-03-13 15:58:30 +0000
845+++ plugins/he/qml/Keyboard_he_url_search.qml 2015-04-20 15:33:53 +0000
846@@ -15,8 +15,7 @@
847 */
848
849 import QtQuick 2.0
850-import "../../keys"
851-import "../../keys/key_constants.js" as UI
852+import keys 1.0
853
854 KeyPad {
855 anchors.fill: parent
856
857=== modified file 'plugins/he/src/src.pro'
858--- plugins/he/src/src.pro 2015-02-02 15:09:28 +0000
859+++ plugins/he/src/src.pro 2015-04-20 15:33:53 +0000
860@@ -15,7 +15,7 @@
861 HEADERS = \
862 hebrewplugin.h
863
864-TARGET = $$qtLibraryTarget(hebrewplugin)
865+TARGET = $$qtLibraryTarget(heplugin)
866
867 EXAMPLE_FILES = hebrewplugin.json
868
869
870=== modified file 'plugins/hr/qml/Keyboard_hr.qml'
871--- plugins/hr/qml/Keyboard_hr.qml 2015-03-13 12:07:08 +0000
872+++ plugins/hr/qml/Keyboard_hr.qml 2015-04-20 15:33:53 +0000
873@@ -15,8 +15,7 @@
874 */
875
876 import QtQuick 2.0
877-import "../../keys"
878-import "../../keys/key_constants.js" as UI
879+import keys 1.0
880
881 KeyPad {
882 anchors.fill: parent
883
884=== modified file 'plugins/hr/qml/Keyboard_hr_email.qml'
885--- plugins/hr/qml/Keyboard_hr_email.qml 2015-03-13 12:07:08 +0000
886+++ plugins/hr/qml/Keyboard_hr_email.qml 2015-04-20 15:33:53 +0000
887@@ -15,8 +15,7 @@
888 */
889
890 import QtQuick 2.0
891-import "../../keys"
892-import "../../keys/key_constants.js" as UI
893+import keys 1.0
894
895 KeyPad {
896 anchors.fill: parent
897
898=== modified file 'plugins/hr/qml/Keyboard_hr_url.qml'
899--- plugins/hr/qml/Keyboard_hr_url.qml 2015-03-13 12:07:08 +0000
900+++ plugins/hr/qml/Keyboard_hr_url.qml 2015-04-20 15:33:53 +0000
901@@ -15,8 +15,7 @@
902 */
903
904 import QtQuick 2.0
905-import "../../keys"
906-import "../../keys/key_constants.js" as UI
907+import keys 1.0
908
909 KeyPad {
910 anchors.fill: parent
911
912=== modified file 'plugins/hr/qml/Keyboard_hr_url_search.qml'
913--- plugins/hr/qml/Keyboard_hr_url_search.qml 2015-03-13 12:07:08 +0000
914+++ plugins/hr/qml/Keyboard_hr_url_search.qml 2015-04-20 15:33:53 +0000
915@@ -15,8 +15,7 @@
916 */
917
918 import QtQuick 2.0
919-import "../../keys"
920-import "../../keys/key_constants.js" as UI
921+import keys 1.0
922
923 KeyPad {
924 anchors.fill: parent
925
926=== modified file 'plugins/hr/src/src.pro'
927--- plugins/hr/src/src.pro 2014-10-30 14:56:08 +0000
928+++ plugins/hr/src/src.pro 2015-04-20 15:33:53 +0000
929@@ -15,7 +15,7 @@
930 HEADERS = \
931 croatianplugin.h
932
933-TARGET = $$qtLibraryTarget(croatianplugin)
934+TARGET = $$qtLibraryTarget(hrplugin)
935
936 EXAMPLE_FILES = croatianplugin.json
937
938
939=== modified file 'plugins/hu/qml/Keyboard_hu.qml'
940--- plugins/hu/qml/Keyboard_hu.qml 2015-03-13 12:07:08 +0000
941+++ plugins/hu/qml/Keyboard_hu.qml 2015-04-20 15:33:53 +0000
942@@ -15,8 +15,7 @@
943 */
944
945 import QtQuick 2.0
946-import "../../keys"
947-import "../../keys/key_constants.js" as UI
948+import keys 1.0
949
950 KeyPad {
951 anchors.fill: parent
952
953=== modified file 'plugins/hu/qml/Keyboard_hu_email.qml'
954--- plugins/hu/qml/Keyboard_hu_email.qml 2015-03-13 12:07:08 +0000
955+++ plugins/hu/qml/Keyboard_hu_email.qml 2015-04-20 15:33:53 +0000
956@@ -15,8 +15,7 @@
957 */
958
959 import QtQuick 2.0
960-import "../../keys"
961-import "../../keys/key_constants.js" as UI
962+import keys 1.0
963
964 KeyPad {
965 anchors.fill: parent
966
967=== modified file 'plugins/hu/qml/Keyboard_hu_url.qml'
968--- plugins/hu/qml/Keyboard_hu_url.qml 2015-03-13 12:07:08 +0000
969+++ plugins/hu/qml/Keyboard_hu_url.qml 2015-04-20 15:33:53 +0000
970@@ -15,8 +15,7 @@
971 */
972
973 import QtQuick 2.0
974-import "../../keys"
975-import "../../keys/key_constants.js" as UI
976+import keys 1.0
977
978 KeyPad {
979 anchors.fill: parent
980
981=== modified file 'plugins/hu/qml/Keyboard_hu_url_search.qml'
982--- plugins/hu/qml/Keyboard_hu_url_search.qml 2015-03-13 12:07:08 +0000
983+++ plugins/hu/qml/Keyboard_hu_url_search.qml 2015-04-20 15:33:53 +0000
984@@ -15,8 +15,7 @@
985 */
986
987 import QtQuick 2.0
988-import "../../keys"
989-import "../../keys/key_constants.js" as UI
990+import keys 1.0
991
992 KeyPad {
993 anchors.fill: parent
994
995=== modified file 'plugins/hu/src/src.pro'
996--- plugins/hu/src/src.pro 2014-05-20 09:53:45 +0000
997+++ plugins/hu/src/src.pro 2015-04-20 15:33:53 +0000
998@@ -15,7 +15,7 @@
999 HEADERS = \
1000 hungarianplugin.h
1001
1002-TARGET = $$qtLibraryTarget(hungarianplugin)
1003+TARGET = $$qtLibraryTarget(huplugin)
1004
1005 EXAMPLE_FILES = hungarianplugin.json
1006
1007
1008=== modified file 'plugins/it/qml/Keyboard_it.qml'
1009--- plugins/it/qml/Keyboard_it.qml 2015-03-13 12:07:08 +0000
1010+++ plugins/it/qml/Keyboard_it.qml 2015-04-20 15:33:53 +0000
1011@@ -15,8 +15,7 @@
1012 */
1013
1014 import QtQuick 2.0
1015-import "../../keys"
1016-import "../../keys/key_constants.js" as UI
1017+import keys 1.0
1018
1019 KeyPad {
1020 anchors.fill: parent
1021
1022=== modified file 'plugins/it/qml/Keyboard_it_email.qml'
1023--- plugins/it/qml/Keyboard_it_email.qml 2015-03-13 12:07:08 +0000
1024+++ plugins/it/qml/Keyboard_it_email.qml 2015-04-20 15:33:53 +0000
1025@@ -15,8 +15,7 @@
1026 */
1027
1028 import QtQuick 2.0
1029-import "../../keys"
1030-import "../../keys/key_constants.js" as UI
1031+import keys 1.0
1032
1033 KeyPad {
1034 anchors.fill: parent
1035
1036=== modified file 'plugins/it/qml/Keyboard_it_url.qml'
1037--- plugins/it/qml/Keyboard_it_url.qml 2015-03-13 12:07:08 +0000
1038+++ plugins/it/qml/Keyboard_it_url.qml 2015-04-20 15:33:53 +0000
1039@@ -15,8 +15,7 @@
1040 */
1041
1042 import QtQuick 2.0
1043-import "../../keys"
1044-import "../../keys/key_constants.js" as UI
1045+import keys 1.0
1046
1047 KeyPad {
1048 anchors.fill: parent
1049
1050=== modified file 'plugins/it/qml/Keyboard_it_url_search.qml'
1051--- plugins/it/qml/Keyboard_it_url_search.qml 2015-03-13 12:07:08 +0000
1052+++ plugins/it/qml/Keyboard_it_url_search.qml 2015-04-20 15:33:53 +0000
1053@@ -15,8 +15,7 @@
1054 */
1055
1056 import QtQuick 2.0
1057-import "../../keys"
1058-import "../../keys/key_constants.js" as UI
1059+import keys 1.0
1060
1061 KeyPad {
1062 anchors.fill: parent
1063
1064=== modified file 'plugins/it/src/src.pro'
1065--- plugins/it/src/src.pro 2015-02-02 15:09:28 +0000
1066+++ plugins/it/src/src.pro 2015-04-20 15:33:53 +0000
1067@@ -15,7 +15,7 @@
1068 HEADERS = \
1069 italianplugin.h
1070
1071-TARGET = $$qtLibraryTarget(italianplugin)
1072+TARGET = $$qtLibraryTarget(itplugin)
1073
1074 EXAMPLE_FILES = italianplugin.json
1075
1076
1077=== modified file 'plugins/nl/qml/Keyboard_nl.qml'
1078--- plugins/nl/qml/Keyboard_nl.qml 2015-03-13 12:07:08 +0000
1079+++ plugins/nl/qml/Keyboard_nl.qml 2015-04-20 15:33:53 +0000
1080@@ -15,8 +15,7 @@
1081 */
1082
1083 import QtQuick 2.0
1084-import "../../keys"
1085-import "../../keys/key_constants.js" as UI
1086+import keys 1.0
1087
1088 KeyPad {
1089 anchors.fill: parent
1090
1091=== modified file 'plugins/nl/qml/Keyboard_nl_email.qml'
1092--- plugins/nl/qml/Keyboard_nl_email.qml 2015-03-13 12:07:08 +0000
1093+++ plugins/nl/qml/Keyboard_nl_email.qml 2015-04-20 15:33:53 +0000
1094@@ -15,8 +15,7 @@
1095 */
1096
1097 import QtQuick 2.0
1098-import "../../keys"
1099-import "../../keys/key_constants.js" as UI
1100+import keys 1.0
1101
1102 KeyPad {
1103 anchors.fill: parent
1104
1105=== modified file 'plugins/nl/qml/Keyboard_nl_url.qml'
1106--- plugins/nl/qml/Keyboard_nl_url.qml 2015-03-13 12:07:08 +0000
1107+++ plugins/nl/qml/Keyboard_nl_url.qml 2015-04-20 15:33:53 +0000
1108@@ -15,8 +15,7 @@
1109 */
1110
1111 import QtQuick 2.0
1112-import "../../keys"
1113-import "../../keys/key_constants.js" as UI
1114+import keys 1.0
1115
1116 KeyPad {
1117 anchors.fill: parent
1118
1119=== modified file 'plugins/nl/qml/Keyboard_nl_url_search.qml'
1120--- plugins/nl/qml/Keyboard_nl_url_search.qml 2015-03-13 12:07:08 +0000
1121+++ plugins/nl/qml/Keyboard_nl_url_search.qml 2015-04-20 15:33:53 +0000
1122@@ -15,8 +15,7 @@
1123 */
1124
1125 import QtQuick 2.0
1126-import "../../keys"
1127-import "../../keys/key_constants.js" as UI
1128+import keys 1.0
1129
1130 KeyPad {
1131 anchors.fill: parent
1132
1133=== modified file 'plugins/nl/src/src.pro'
1134--- plugins/nl/src/src.pro 2015-02-02 15:09:28 +0000
1135+++ plugins/nl/src/src.pro 2015-04-20 15:33:53 +0000
1136@@ -15,7 +15,7 @@
1137 HEADERS = \
1138 dutchplugin.h
1139
1140-TARGET = $$qtLibraryTarget(dutchplugin)
1141+TARGET = $$qtLibraryTarget(nlplugin)
1142
1143 EXAMPLE_FILES = dutchplugin.json
1144
1145
1146=== renamed file 'plugins/pinyin/qml/Keyboard_zh_cn_pinyin.qml' => 'plugins/pinyin/qml/Keyboard_zh.qml'
1147--- plugins/pinyin/qml/Keyboard_zh_cn_pinyin.qml 2014-09-26 13:22:23 +0000
1148+++ plugins/pinyin/qml/Keyboard_zh.qml 2015-04-20 15:33:53 +0000
1149@@ -15,8 +15,7 @@
1150 */
1151
1152 import QtQuick 2.0
1153-import "../../keys"
1154-import "../../keys/key_constants.js" as UI
1155+import keys 1.0
1156
1157 KeyPad {
1158 anchors.fill: parent
1159
1160=== modified file 'plugins/pinyin/qml/Keyboard_zh_email.qml'
1161--- plugins/pinyin/qml/Keyboard_zh_email.qml 2014-11-27 16:57:43 +0000
1162+++ plugins/pinyin/qml/Keyboard_zh_email.qml 2015-04-20 15:33:53 +0000
1163@@ -15,8 +15,7 @@
1164 */
1165
1166 import QtQuick 2.0
1167-import "../../keys"
1168-import "../../keys/key_constants.js" as UI
1169+import keys 1.0
1170
1171 KeyPad {
1172 anchors.fill: parent
1173
1174=== modified file 'plugins/pinyin/qml/Keyboard_zh_url.qml'
1175--- plugins/pinyin/qml/Keyboard_zh_url.qml 2014-11-27 16:57:43 +0000
1176+++ plugins/pinyin/qml/Keyboard_zh_url.qml 2015-04-20 15:33:53 +0000
1177@@ -15,8 +15,7 @@
1178 */
1179
1180 import QtQuick 2.0
1181-import "../../keys"
1182-import "../../keys/key_constants.js" as UI
1183+import keys 1.0
1184
1185 KeyPad {
1186 anchors.fill: parent
1187
1188=== modified file 'plugins/pinyin/qml/Keyboard_zh_url_search.qml'
1189--- plugins/pinyin/qml/Keyboard_zh_url_search.qml 2014-11-27 16:57:43 +0000
1190+++ plugins/pinyin/qml/Keyboard_zh_url_search.qml 2015-04-20 15:33:53 +0000
1191@@ -15,8 +15,7 @@
1192 */
1193
1194 import QtQuick 2.0
1195-import "../../keys"
1196-import "../../keys/key_constants.js" as UI
1197+import keys 1.0
1198
1199 KeyPad {
1200 anchors.fill: parent
1201
1202=== modified file 'plugins/pinyin/src/pinyinplugin.h'
1203--- plugins/pinyin/src/pinyinplugin.h 2015-02-17 18:15:29 +0000
1204+++ plugins/pinyin/src/pinyinplugin.h 2015-04-20 15:33:53 +0000
1205@@ -30,7 +30,7 @@
1206 //! spell checker
1207 virtual void spellCheckerSuggest(const QString& word, int limit) { Q_UNUSED(word); Q_UNUSED(limit); }
1208 virtual void addToSpellCheckerUserWordList(const QString& word) { Q_UNUSED(word); }
1209- virtual bool setLanguage(const QString& languageId) { Q_UNUSED(languageId); return false; }
1210+ virtual bool setLanguage(const QString& languageId, const QString& pluginPath) { Q_UNUSED(languageId); Q_UNUSED(pluginPath); return false; }
1211
1212 signals:
1213 void newPredictionSuggestions(QString word, QStringList suggestions);
1214
1215=== modified file 'plugins/pinyin/src/src.pro'
1216--- plugins/pinyin/src/src.pro 2014-04-24 13:18:54 +0000
1217+++ plugins/pinyin/src/src.pro 2015-04-20 15:33:53 +0000
1218@@ -25,7 +25,7 @@
1219 chineselanguagefeatures.cpp \
1220 $${TOP_SRCDIR}/src/lib/logic/abstractlanguageplugin.cpp
1221
1222-TARGET = $$qtLibraryTarget(pinyinplugin)
1223+TARGET = $$qtLibraryTarget(zhplugin)
1224
1225 EXAMPLE_FILES = pinyinplugin.json
1226
1227
1228=== modified file 'plugins/pl/qml/Keyboard_pl.qml'
1229--- plugins/pl/qml/Keyboard_pl.qml 2015-03-13 12:07:08 +0000
1230+++ plugins/pl/qml/Keyboard_pl.qml 2015-04-20 15:33:53 +0000
1231@@ -15,8 +15,7 @@
1232 */
1233
1234 import QtQuick 2.0
1235-import "../../keys"
1236-import "../../keys/key_constants.js" as UI
1237+import keys 1.0
1238
1239 KeyPad {
1240 anchors.fill: parent
1241
1242=== modified file 'plugins/pl/qml/Keyboard_pl_email.qml'
1243--- plugins/pl/qml/Keyboard_pl_email.qml 2015-03-13 12:07:08 +0000
1244+++ plugins/pl/qml/Keyboard_pl_email.qml 2015-04-20 15:33:53 +0000
1245@@ -15,8 +15,7 @@
1246 */
1247
1248 import QtQuick 2.0
1249-import "../../keys"
1250-import "../../keys/key_constants.js" as UI
1251+import keys 1.0
1252
1253 KeyPad {
1254 anchors.fill: parent
1255
1256=== modified file 'plugins/pl/qml/Keyboard_pl_url.qml'
1257--- plugins/pl/qml/Keyboard_pl_url.qml 2015-03-13 12:07:08 +0000
1258+++ plugins/pl/qml/Keyboard_pl_url.qml 2015-04-20 15:33:53 +0000
1259@@ -15,8 +15,7 @@
1260 */
1261
1262 import QtQuick 2.0
1263-import "../../keys"
1264-import "../../keys/key_constants.js" as UI
1265+import keys 1.0
1266
1267 KeyPad {
1268 anchors.fill: parent
1269
1270=== modified file 'plugins/pl/qml/Keyboard_pl_url_search.qml'
1271--- plugins/pl/qml/Keyboard_pl_url_search.qml 2015-03-13 12:07:08 +0000
1272+++ plugins/pl/qml/Keyboard_pl_url_search.qml 2015-04-20 15:33:53 +0000
1273@@ -15,8 +15,7 @@
1274 */
1275
1276 import QtQuick 2.0
1277-import "../../keys"
1278-import "../../keys/key_constants.js" as UI
1279+import keys 1.0
1280
1281 KeyPad {
1282 anchors.fill: parent
1283
1284=== modified file 'plugins/pl/src/src.pro'
1285--- plugins/pl/src/src.pro 2014-05-20 09:53:45 +0000
1286+++ plugins/pl/src/src.pro 2015-04-20 15:33:53 +0000
1287@@ -15,7 +15,7 @@
1288 HEADERS = \
1289 polishplugin.h
1290
1291-TARGET = $$qtLibraryTarget(polishplugin)
1292+TARGET = $$qtLibraryTarget(plplugin)
1293
1294 EXAMPLE_FILES = polishplugin.json
1295
1296
1297=== modified file 'plugins/pt/qml/Keyboard_pt.qml'
1298--- plugins/pt/qml/Keyboard_pt.qml 2015-03-13 12:07:08 +0000
1299+++ plugins/pt/qml/Keyboard_pt.qml 2015-04-20 15:33:53 +0000
1300@@ -15,8 +15,7 @@
1301 */
1302
1303 import QtQuick 2.0
1304-import "../../keys"
1305-import "../../keys/key_constants.js" as UI
1306+import keys 1.0
1307
1308 KeyPad {
1309 anchors.fill: parent
1310
1311=== modified file 'plugins/pt/qml/Keyboard_pt_email.qml'
1312--- plugins/pt/qml/Keyboard_pt_email.qml 2015-03-13 12:07:08 +0000
1313+++ plugins/pt/qml/Keyboard_pt_email.qml 2015-04-20 15:33:53 +0000
1314@@ -15,8 +15,7 @@
1315 */
1316
1317 import QtQuick 2.0
1318-import "../../keys"
1319-import "../../keys/key_constants.js" as UI
1320+import keys 1.0
1321
1322 KeyPad {
1323 anchors.fill: parent
1324
1325=== modified file 'plugins/pt/qml/Keyboard_pt_url.qml'
1326--- plugins/pt/qml/Keyboard_pt_url.qml 2015-03-13 12:07:08 +0000
1327+++ plugins/pt/qml/Keyboard_pt_url.qml 2015-04-20 15:33:53 +0000
1328@@ -15,8 +15,7 @@
1329 */
1330
1331 import QtQuick 2.0
1332-import "../../keys"
1333-import "../../keys/key_constants.js" as UI
1334+import keys 1.0
1335
1336 KeyPad {
1337 anchors.fill: parent
1338
1339=== modified file 'plugins/pt/qml/Keyboard_pt_url_search.qml'
1340--- plugins/pt/qml/Keyboard_pt_url_search.qml 2015-03-13 12:07:08 +0000
1341+++ plugins/pt/qml/Keyboard_pt_url_search.qml 2015-04-20 15:33:53 +0000
1342@@ -15,8 +15,7 @@
1343 */
1344
1345 import QtQuick 2.0
1346-import "../../keys"
1347-import "../../keys/key_constants.js" as UI
1348+import keys 1.0
1349
1350 KeyPad {
1351 anchors.fill: parent
1352
1353=== modified file 'plugins/pt/src/src.pro'
1354--- plugins/pt/src/src.pro 2015-02-02 15:09:28 +0000
1355+++ plugins/pt/src/src.pro 2015-04-20 15:33:53 +0000
1356@@ -15,7 +15,7 @@
1357 HEADERS = \
1358 portugueseplugin.h
1359
1360-TARGET = $$qtLibraryTarget(portugueseplugin)
1361+TARGET = $$qtLibraryTarget(ptplugin)
1362
1363 EXAMPLE_FILES = portugueseplugin.json
1364
1365
1366=== modified file 'plugins/ru/qml/Keyboard_ru.qml'
1367--- plugins/ru/qml/Keyboard_ru.qml 2015-03-13 12:07:08 +0000
1368+++ plugins/ru/qml/Keyboard_ru.qml 2015-04-20 15:33:53 +0000
1369@@ -15,8 +15,7 @@
1370 */
1371
1372 import QtQuick 2.0
1373-import "../../keys"
1374-import "../../keys/key_constants.js" as UI
1375+import keys 1.0
1376
1377 KeyPad {
1378 anchors.fill: parent
1379
1380=== modified file 'plugins/ru/qml/Keyboard_ru_email.qml'
1381--- plugins/ru/qml/Keyboard_ru_email.qml 2015-03-13 12:07:08 +0000
1382+++ plugins/ru/qml/Keyboard_ru_email.qml 2015-04-20 15:33:53 +0000
1383@@ -15,8 +15,7 @@
1384 */
1385
1386 import QtQuick 2.0
1387-import "../../keys"
1388-import "../../keys/key_constants.js" as UI
1389+import keys 1.0
1390
1391 KeyPad {
1392 anchors.fill: parent
1393
1394=== modified file 'plugins/ru/qml/Keyboard_ru_url.qml'
1395--- plugins/ru/qml/Keyboard_ru_url.qml 2015-03-13 12:07:08 +0000
1396+++ plugins/ru/qml/Keyboard_ru_url.qml 2015-04-20 15:33:53 +0000
1397@@ -15,8 +15,7 @@
1398 */
1399
1400 import QtQuick 2.0
1401-import "../../keys"
1402-import "../../keys/key_constants.js" as UI
1403+import keys 1.0
1404
1405 KeyPad {
1406 anchors.fill: parent
1407
1408=== modified file 'plugins/ru/qml/Keyboard_ru_url_search.qml'
1409--- plugins/ru/qml/Keyboard_ru_url_search.qml 2015-03-13 12:07:08 +0000
1410+++ plugins/ru/qml/Keyboard_ru_url_search.qml 2015-04-20 15:33:53 +0000
1411@@ -15,8 +15,7 @@
1412 */
1413
1414 import QtQuick 2.0
1415-import "../../keys"
1416-import "../../keys/key_constants.js" as UI
1417+import keys 1.0
1418
1419 KeyPad {
1420 anchors.fill: parent
1421
1422=== modified file 'plugins/ru/src/src.pro'
1423--- plugins/ru/src/src.pro 2014-05-20 09:53:45 +0000
1424+++ plugins/ru/src/src.pro 2015-04-20 15:33:53 +0000
1425@@ -15,7 +15,7 @@
1426 HEADERS = \
1427 russianplugin.h
1428
1429-TARGET = $$qtLibraryTarget(russianplugin)
1430+TARGET = $$qtLibraryTarget(ruplugin)
1431
1432 EXAMPLE_FILES = russianplugin.json
1433
1434
1435=== modified file 'plugins/sr/qml/Keyboard_sr.qml'
1436--- plugins/sr/qml/Keyboard_sr.qml 2015-03-13 12:07:08 +0000
1437+++ plugins/sr/qml/Keyboard_sr.qml 2015-04-20 15:33:53 +0000
1438@@ -15,8 +15,7 @@
1439 */
1440
1441 import QtQuick 2.0
1442-import "../../keys"
1443-import "../../keys/key_constants.js" as UI
1444+import keys 1.0
1445
1446 KeyPad {
1447 anchors.fill: parent
1448
1449=== modified file 'plugins/sr/qml/Keyboard_sr_email.qml'
1450--- plugins/sr/qml/Keyboard_sr_email.qml 2015-03-13 12:07:08 +0000
1451+++ plugins/sr/qml/Keyboard_sr_email.qml 2015-04-20 15:33:53 +0000
1452@@ -15,8 +15,7 @@
1453 */
1454
1455 import QtQuick 2.0
1456-import "../../keys"
1457-import "../../keys/key_constants.js" as UI
1458+import keys 1.0
1459
1460 KeyPad {
1461 anchors.fill: parent
1462
1463=== modified file 'plugins/sr/qml/Keyboard_sr_url.qml'
1464--- plugins/sr/qml/Keyboard_sr_url.qml 2015-03-13 12:07:08 +0000
1465+++ plugins/sr/qml/Keyboard_sr_url.qml 2015-04-20 15:33:53 +0000
1466@@ -15,8 +15,7 @@
1467 */
1468
1469 import QtQuick 2.0
1470-import "../../keys"
1471-import "../../keys/key_constants.js" as UI
1472+import keys 1.0
1473
1474 KeyPad {
1475 anchors.fill: parent
1476
1477=== modified file 'plugins/sr/qml/Keyboard_sr_url_search.qml'
1478--- plugins/sr/qml/Keyboard_sr_url_search.qml 2015-03-13 12:07:08 +0000
1479+++ plugins/sr/qml/Keyboard_sr_url_search.qml 2015-04-20 15:33:53 +0000
1480@@ -15,8 +15,7 @@
1481 */
1482
1483 import QtQuick 2.0
1484-import "../../keys"
1485-import "../../keys/key_constants.js" as UI
1486+import keys 1.0
1487
1488 KeyPad {
1489 anchors.fill: parent
1490
1491=== modified file 'plugins/sr/src/src.pro'
1492--- plugins/sr/src/src.pro 2014-09-22 13:23:28 +0000
1493+++ plugins/sr/src/src.pro 2015-04-20 15:33:53 +0000
1494@@ -15,7 +15,7 @@
1495 HEADERS = \
1496 serbianplugin.h
1497
1498-TARGET = $$qtLibraryTarget(serbianplugin)
1499+TARGET = $$qtLibraryTarget(srplugin)
1500
1501 EXAMPLE_FILES = serbianplugin.json
1502
1503
1504=== modified file 'plugins/sv/qml/Keyboard_sv.qml'
1505--- plugins/sv/qml/Keyboard_sv.qml 2015-03-13 12:07:08 +0000
1506+++ plugins/sv/qml/Keyboard_sv.qml 2015-04-20 15:33:53 +0000
1507@@ -15,8 +15,7 @@
1508 */
1509
1510 import QtQuick 2.0
1511-import "../../keys"
1512-import "../../keys/key_constants.js" as UI
1513+import keys 1.0
1514
1515 KeyPad {
1516 anchors.fill: parent
1517
1518=== modified file 'plugins/sv/qml/Keyboard_sv_email.qml'
1519--- plugins/sv/qml/Keyboard_sv_email.qml 2015-03-13 12:07:08 +0000
1520+++ plugins/sv/qml/Keyboard_sv_email.qml 2015-04-20 15:33:53 +0000
1521@@ -15,8 +15,7 @@
1522 */
1523
1524 import QtQuick 2.0
1525-import "../../keys"
1526-import "../../keys/key_constants.js" as UI
1527+import keys 1.0
1528
1529 KeyPad {
1530 anchors.fill: parent
1531
1532=== modified file 'plugins/sv/qml/Keyboard_sv_url.qml'
1533--- plugins/sv/qml/Keyboard_sv_url.qml 2015-03-13 12:07:08 +0000
1534+++ plugins/sv/qml/Keyboard_sv_url.qml 2015-04-20 15:33:53 +0000
1535@@ -15,8 +15,7 @@
1536 */
1537
1538 import QtQuick 2.0
1539-import "../../keys"
1540-import "../../keys/key_constants.js" as UI
1541+import keys 1.0
1542
1543 KeyPad {
1544 anchors.fill: parent
1545
1546=== modified file 'plugins/sv/qml/Keyboard_sv_url_search.qml'
1547--- plugins/sv/qml/Keyboard_sv_url_search.qml 2015-03-13 12:07:08 +0000
1548+++ plugins/sv/qml/Keyboard_sv_url_search.qml 2015-04-20 15:33:53 +0000
1549@@ -15,8 +15,7 @@
1550 */
1551
1552 import QtQuick 2.0
1553-import "../../keys"
1554-import "../../keys/key_constants.js" as UI
1555+import keys 1.0
1556
1557 KeyPad {
1558 anchors.fill: parent
1559
1560=== modified file 'plugins/sv/src/src.pro'
1561--- plugins/sv/src/src.pro 2015-02-02 15:09:28 +0000
1562+++ plugins/sv/src/src.pro 2015-04-20 15:33:53 +0000
1563@@ -15,7 +15,7 @@
1564 HEADERS = \
1565 swedishplugin.h
1566
1567-TARGET = $$qtLibraryTarget(swedishplugin)
1568+TARGET = $$qtLibraryTarget(svplugin)
1569
1570 EXAMPLE_FILES = swedishplugin.json
1571
1572
1573=== modified file 'plugins/westernsupport/spellpredictworker.cpp'
1574--- plugins/westernsupport/spellpredictworker.cpp 2015-02-02 15:09:28 +0000
1575+++ plugins/westernsupport/spellpredictworker.cpp 2015-04-20 15:33:53 +0000
1576@@ -86,11 +86,10 @@
1577 Q_EMIT newPredictionSuggestions(origPreedit, list);
1578 }
1579
1580-void SpellPredictWorker::setLanguage(QString locale)
1581+void SpellPredictWorker::setLanguage(QString locale, QString pluginPath)
1582 {
1583 QString dbFileName = "database_"+locale+".db";
1584- QString fullPath("/usr/share/maliit/plugins/com/ubuntu/lib/"+locale+"/");
1585- fullPath.append(dbFileName);
1586+ QString fullPath(pluginPath + QDir::separator() + dbFileName);
1587 m_spellChecker.setLanguage(locale);
1588 m_spellChecker.setEnabled(true);
1589
1590
1591=== modified file 'plugins/westernsupport/spellpredictworker.h'
1592--- plugins/westernsupport/spellpredictworker.h 1970-01-01 00:50:37 +0000
1593+++ plugins/westernsupport/spellpredictworker.h 2015-04-20 15:33:53 +0000
1594@@ -49,7 +49,7 @@
1595 public slots:
1596 void parsePredictionText(const QString& surroundingLeft, const QString& preedit);
1597 void newSpellCheckWord(QString word);
1598- void setLanguage(QString language);
1599+ void setLanguage(QString language, QString pluginPath);
1600 void setSpellCheckLimit(int limit);
1601 void addToUserWordList(const QString& word);
1602 void addOverride(const QString& orig, const QString& overriden);
1603
1604=== modified file 'plugins/westernsupport/westernlanguagesplugin.cpp'
1605--- plugins/westernsupport/westernlanguagesplugin.cpp 2015-02-11 16:08:49 +0000
1606+++ plugins/westernsupport/westernlanguagesplugin.cpp 2015-04-20 15:33:53 +0000
1607@@ -16,7 +16,7 @@
1608 connect(m_spellPredictWorker, SIGNAL(newSpellingSuggestions(QString, QStringList)), this, SIGNAL(newSpellingSuggestions(QString, QStringList)));
1609 connect(m_spellPredictWorker, SIGNAL(newPredictionSuggestions(QString, QStringList)), this, SIGNAL(newPredictionSuggestions(QString, QStringList)));
1610 connect(this, SIGNAL(newSpellCheckWord(QString)), m_spellPredictWorker, SLOT(newSpellCheckWord(QString)));
1611- connect(this, SIGNAL(setSpellPredictLanguage(QString)), m_spellPredictWorker, SLOT(setLanguage(QString)));
1612+ connect(this, SIGNAL(setSpellPredictLanguage(QString, QString)), m_spellPredictWorker, SLOT(setLanguage(QString, QString)));
1613 connect(this, SIGNAL(setSpellCheckLimit(int)), m_spellPredictWorker, SLOT(setSpellCheckLimit(int)));
1614 connect(this, SIGNAL(parsePredictionText(QString, QString)), m_spellPredictWorker, SLOT(parsePredictionText(QString, QString)));
1615 connect(this, SIGNAL(addToUserWordList(QString)), m_spellPredictWorker, SLOT(addToUserWordList(QString)));
1616@@ -57,10 +57,10 @@
1617 Q_EMIT addToUserWordList(word);
1618 }
1619
1620-bool WesternLanguagesPlugin::setLanguage(const QString& languageId)
1621+bool WesternLanguagesPlugin::setLanguage(const QString& languageId, const QString& pluginPath)
1622 {
1623- Q_EMIT setSpellPredictLanguage(languageId);
1624- loadOverrides(languageId);
1625+ Q_EMIT setSpellPredictLanguage(languageId, pluginPath);
1626+ loadOverrides(pluginPath);
1627 return true;
1628 }
1629
1630@@ -69,8 +69,8 @@
1631 Q_EMIT addOverride(orig, overriden);
1632 }
1633
1634-void WesternLanguagesPlugin::loadOverrides(const QString& languageId) {
1635- QFile overrideFile("/usr/share/maliit/plugins/com/ubuntu/lib/" + languageId + "/overrides.csv");
1636+void WesternLanguagesPlugin::loadOverrides(const QString& pluginPath) {
1637+ QFile overrideFile(pluginPath + QDir::separator() + "overrides.csv");
1638 if (overrideFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
1639 QTextStream overrideStream(&overrideFile);
1640 while (!overrideStream.atEnd()) {
1641
1642=== modified file 'plugins/westernsupport/westernlanguagesplugin.h'
1643--- plugins/westernsupport/westernlanguagesplugin.h 2015-02-11 16:08:49 +0000
1644+++ plugins/westernsupport/westernlanguagesplugin.h 2015-04-20 15:33:53 +0000
1645@@ -31,16 +31,16 @@
1646 //! spell checker
1647 virtual void spellCheckerSuggest(const QString& word, int limit);
1648 virtual void addToSpellCheckerUserWordList(const QString& word);
1649- virtual bool setLanguage(const QString& languageId);
1650+ virtual bool setLanguage(const QString& languageId, const QString& pluginPath);
1651 virtual void addSpellingOverride(const QString& orig, const QString& overriden);
1652- virtual void loadOverrides(const QString& languageId);
1653+ virtual void loadOverrides(const QString& pluginPath);
1654
1655 signals:
1656 void newSpellingSuggestions(QString word, QStringList suggestions);
1657 void newPredictionSuggestions(QString word, QStringList suggestions);
1658 void newSpellCheckWord(QString word);
1659 void setSpellCheckLimit(int limit);
1660- void setSpellPredictLanguage(QString language);
1661+ void setSpellPredictLanguage(QString language, QString pluginPath);
1662 void parsePredictionText(QString surroundingLeft, QString preedit);
1663 void setPredictionLanguage(QString language);
1664 void addToUserWordList(const QString& word);
1665
1666=== modified file 'qml/KeyboardContainer.qml'
1667--- qml/KeyboardContainer.qml 2015-02-05 15:32:51 +0000
1668+++ qml/KeyboardContainer.qml 2015-04-20 15:33:53 +0000
1669@@ -115,139 +115,47 @@
1670 panel.state = "CHARACTERS";
1671 }
1672
1673- /// Returns if the given language is supported
1674- /// FIXME the possible languages should be checked in C++
1675- function languageIsSupported(locale)
1676- {
1677- var supportedLocales = [
1678- "ar",
1679- "az",
1680- "bs",
1681- "ca",
1682- "cs",
1683- "da",
1684- "de",
1685- "emoji",
1686- "en",
1687- "es",
1688- "fi",
1689- "fr",
1690- "he",
1691- "hr",
1692- "hu",
1693- "it",
1694- "nl",
1695- "pl",
1696- "pt",
1697- "ru",
1698- "sr",
1699- "sv",
1700- "zh",
1701- ];
1702- return (supportedLocales.indexOf( locale ) > -1);
1703- }
1704-
1705- /// Returns the relative path to the keyboard QML file for a given language for free text
1706- function freeTextLanguageKeyboard(language)
1707- {
1708- language = language.toLowerCase();
1709- if (!languageIsSupported(language)) {
1710+ function loadLayout(contentType, activeLanguage)
1711+ {
1712+ var language = activeLanguage.toLowerCase();
1713+ if (!maliit_input_method.languageIsSupported(language)) {
1714 // If we don't have a layout for this specific locale
1715 // check more generic locale
1716 language = language.slice(0,2);
1717 }
1718
1719- if (!languageIsSupported(language)) {
1720- console.log("Language '"+language+"' not supported - using 'en' instead");
1721+ if (!maliit_input_method.languageIsSupported(language)) {
1722+ console.log("Language '" + language + "' not supported - using 'en' instead");
1723 language = "en";
1724 }
1725
1726- if (language === "ar")
1727- return "lib/ar/Keyboard_ar.qml";
1728- if (language === "az")
1729- return "lib/az/Keyboard_az.qml";
1730- if (language === "bs")
1731- return "lib/bs/Keyboard_bs.qml";
1732- if (language === "ca")
1733- return "lib/ca/Keyboard_ca.qml";
1734- if (language === "cs")
1735- return "lib/cs/Keyboard_cs.qml";
1736- if (language === "da")
1737- return "lib/da/Keyboard_da.qml";
1738- if (language === "de")
1739- return "lib/de/Keyboard_de.qml";
1740- if (language === "emoji")
1741- return "lib/emoji/Keyboard_emoji.qml";
1742- if (language === "en")
1743- return "lib/en/Keyboard_en.qml";
1744- if (language === "es")
1745- return "lib/es/Keyboard_es.qml";
1746- if (language === "fi")
1747- return "lib/fi/Keyboard_fi.qml";
1748- if (language === "fr")
1749- return "lib/fr/Keyboard_fr.qml";
1750- if (language === "he")
1751- return "lib/he/Keyboard_he.qml";
1752- if (language === "hr")
1753- return "lib/hr/Keyboard_hr.qml";
1754- if (language === "hu")
1755- return "lib/hu/Keyboard_hu.qml";
1756- if (language === "it")
1757- return "lib/it/Keyboard_it.qml";
1758- if (language === "nl")
1759- return "lib/nl/Keyboard_nl.qml";
1760- if (language === "pl")
1761- return "lib/pl/Keyboard_pl.qml";
1762- if (language === "pt")
1763- return "lib/pt/Keyboard_pt.qml";
1764- if (language === "ru")
1765- return "lib/ru/Keyboard_ru.qml";
1766- if (language === "sr")
1767- return "lib/sr/Keyboard_sr.qml";
1768- if (language === "sv")
1769- return "lib/sv/Keyboard_sv.qml";
1770- if (language === "zh")
1771- return "lib/zh/Keyboard_zh_cn_pinyin.qml";
1772- }
1773-
1774- function loadLayout(contentType, activeLanguage)
1775- {
1776- // if (contentType === InputMethod.NumberContentType) {
1777+ // NumberContentType
1778 if (contentType === 1) {
1779 canvas.layoutId = "number";
1780 return "languages/Keyboard_numbers.qml";
1781 }
1782
1783- // if (contentType === InputMethod.PhoneNumberContentType) {
1784+ // PhoneNumberContentType
1785 if (contentType === 2) {
1786 canvas.layoutId = "telephone";
1787 return "languages/Keyboard_telephone.qml";
1788 }
1789
1790- var locale = activeLanguage.toLowerCase();
1791- if (!languageIsSupported(locale)) {
1792- locale = locale.slice(0,2);
1793- }
1794- if (!languageIsSupported(locale)) {
1795- console.log("System language '"+locale+"' can't be used in OSK - using 'en' instead")
1796- locale = "en"
1797- }
1798-
1799- // if (contentType === InputMethod.EmailContentType) {
1800+ // EmailContentType
1801 if (contentType === 3) {
1802 canvas.layoutId = "email";
1803- return "lib/"+locale+"/Keyboard_"+locale+"_email.qml";
1804+ return maliit_input_method.currentPluginPath + "/Keyboard_" + language + "_email.qml";
1805 }
1806
1807- // if (contentType === InputMethod.UrlContentType) {
1808+ // UrlContentType
1809 if (contentType === 4) {
1810 canvas.layoutId = "url";
1811- return "lib/"+locale+"/Keyboard_"+locale+"_url_search.qml";
1812+ return maliit_input_method.currentPluginPath + "/Keyboard_" + language + "_url_search.qml";
1813 }
1814
1815 // FreeTextContentType used as fallback
1816 canvas.layoutId = "freetext";
1817- return freeTextLanguageKeyboard(activeLanguage);
1818+ return maliit_input_method.currentPluginPath + "/Keyboard_" + language + ".qml";
1819 }
1820 }
1821 }
1822
1823=== modified file 'qml/keys/LanguageMenu.qml'
1824--- qml/keys/LanguageMenu.qml 2015-02-09 13:51:15 +0000
1825+++ qml/keys/LanguageMenu.qml 2015-04-20 15:33:53 +0000
1826@@ -117,7 +117,7 @@
1827 if (languageId == "zh") return i18n.tr("Chinese - Pinyin");
1828
1829 // fallback
1830- return i18n.tr("Language: ") + languageId;
1831+ return languageId.charAt(0).toUpperCase() + languageId.slice(1);
1832 }
1833
1834 }
1835
1836=== added file 'qml/keys/qmldir'
1837--- qml/keys/qmldir 1970-01-01 00:00:00 +0000
1838+++ qml/keys/qmldir 2015-04-20 15:33:53 +0000
1839@@ -0,0 +1,20 @@
1840+module keys
1841+ActionKey 1.0 ActionKey.qml
1842+DropShadow 1.0 DropShadow.qml
1843+KeyPopover 1.0 KeyPopover.qml
1844+Magnifier 1.0 Magnifier.qml
1845+ReturnKey 1.0 ReturnKey.qml
1846+Spacer 1.0 Spacer.qml
1847+BackspaceKey 1.0 BackspaceKey.qml
1848+ExtendedKeysSelector 1.0 ExtendedKeysSelector.qml
1849+LanguageKey 1.0 LanguageKey.qml
1850+OneTwoKey 1.0 OneTwoKey.qml
1851+ShiftKey 1.0 ShiftKey.qml
1852+SymbolShiftKey 1.0 SymbolShiftKey.qml
1853+CharKey 1.0 CharKey.qml
1854+KeyPad 1.0 KeyPad.qml
1855+LanguageMenu 1.0 LanguageMenu.qml
1856+PressArea 1.0 PressArea.qml
1857+SpaceKey 1.0 SpaceKey.qml
1858+UrlKey 1.0 UrlKey.qml
1859+UI 1.0 key_constants.js
1860
1861=== modified file 'qml/qml.pro'
1862--- qml/qml.pro 2013-12-12 17:10:53 +0000
1863+++ qml/qml.pro 2015-04-20 15:33:53 +0000
1864@@ -7,7 +7,7 @@
1865 qml.files = *.qml *.js
1866
1867 qml_keys.path = "$$UBUNTU_KEYBOARD_DATA_DIR/keys"
1868-qml_keys.files = keys/*.qml keys/*.js
1869+qml_keys.files = keys/*.qml keys/*.js keys/qmldir
1870
1871 qml_languages.path = "$$UBUNTU_KEYBOARD_DATA_DIR/languages"
1872 qml_languages.files = languages/*.qml languages/*.js
1873@@ -45,6 +45,7 @@
1874 keys/Spacer.qml \
1875 keys/SymbolShiftKey.qml \
1876 keys/UrlKey.qml \
1877+ keys/qmldir \
1878 languages/Keyboard_numbers.qml \
1879 languages/Keyboard_symbols.qml \
1880 languages/Keyboard_telephone.qml \
1881
1882=== modified file 'src/lib/logic/abstractlanguageplugin.cpp'
1883--- src/lib/logic/abstractlanguageplugin.cpp 2014-08-07 17:04:01 +0000
1884+++ src/lib/logic/abstractlanguageplugin.cpp 2015-04-20 15:33:53 +0000
1885@@ -61,9 +61,10 @@
1886 Q_UNUSED(word)
1887 }
1888
1889-bool AbstractLanguagePlugin::setLanguage(const QString& languageId)
1890+bool AbstractLanguagePlugin::setLanguage(const QString& languageId, const QString& pluginPath)
1891 {
1892 Q_UNUSED(languageId)
1893+ Q_UNUSED(pluginPath)
1894 return false;
1895 }
1896
1897
1898=== modified file 'src/lib/logic/abstractlanguageplugin.h'
1899--- src/lib/logic/abstractlanguageplugin.h 2014-08-07 17:04:01 +0000
1900+++ src/lib/logic/abstractlanguageplugin.h 2015-04-20 15:33:53 +0000
1901@@ -48,7 +48,7 @@
1902 //! spell checker
1903 virtual void spellCheckerSuggest(const QString& word, int limit);
1904 virtual void addToSpellCheckerUserWordList(const QString& word);
1905- virtual bool setLanguage(const QString& languageId);
1906+ virtual bool setLanguage(const QString& languageId, const QString& pluginPath);
1907
1908 signals:
1909 void newSpellingSuggestions(QString word, QStringList suggestions);
1910
1911=== modified file 'src/lib/logic/languageplugininterface.h'
1912--- src/lib/logic/languageplugininterface.h 2014-08-07 17:04:01 +0000
1913+++ src/lib/logic/languageplugininterface.h 2015-04-20 15:33:53 +0000
1914@@ -19,7 +19,7 @@
1915 //! spell checker
1916 virtual void spellCheckerSuggest(const QString& word, int limit) = 0;
1917 virtual void addToSpellCheckerUserWordList(const QString& word) = 0;
1918- virtual bool setLanguage(const QString& languageId) = 0;
1919+ virtual bool setLanguage(const QString& languageId, const QString &pluginPath) = 0;
1920 };
1921
1922 #define LanguagePluginInterface_iid "com.canonical.UbuntuKeyboard.LanguagePluginInterface"
1923
1924=== modified file 'src/lib/logic/wordengine.cpp'
1925--- src/lib/logic/wordengine.cpp 2015-02-11 16:08:49 +0000
1926+++ src/lib/logic/wordengine.cpp 2015-04-20 15:33:53 +0000
1927@@ -35,7 +35,7 @@
1928 namespace MaliitKeyboard {
1929 namespace Logic {
1930
1931-#define DEFAULT_PLUGIN "libenglishplugin.so"
1932+#define DEFAULT_PLUGIN "/usr/share/maliit/plugins/com/ubuntu/lib/en/libenplugin.so"
1933
1934 //! \class WordEngine
1935 //! \brief Provides error correction (based on Hunspell) and word
1936@@ -71,9 +71,9 @@
1937 explicit WordEnginePrivate();
1938
1939 QString currentPlugin;
1940- void loadPlugin(QString pluginName, QString subfolder="en")
1941+ void loadPlugin(QString pluginPath)
1942 {
1943- if (pluginName == currentPlugin)
1944+ if (pluginPath == currentPlugin)
1945 return;
1946
1947 delete languagePlugin;
1948@@ -83,22 +83,20 @@
1949 QLocale::setDefault(QLocale::c());
1950 setlocale(LC_NUMERIC, "C");
1951
1952- QDir pluginsDir("/usr/share/maliit/plugins/com/ubuntu/lib/"+subfolder);
1953-
1954- pluginLoader.setFileName(pluginsDir.absoluteFilePath(pluginName));
1955+ pluginLoader.setFileName(pluginPath);
1956 QObject *plugin = pluginLoader.instance();
1957
1958 if (plugin) {
1959 languagePlugin = qobject_cast<LanguagePluginInterface *>(plugin);
1960 if (!languagePlugin) {
1961- qCritical() << "wordengine.cpp - loading plugin failed: " + pluginName;
1962+ qCritical() << "wordengine.cpp - loading plugin failed: " + pluginPath;
1963
1964 // fallback
1965- if (pluginName != DEFAULT_PLUGIN)
1966+ if (pluginPath != DEFAULT_PLUGIN)
1967 loadPlugin(DEFAULT_PLUGIN);
1968 } else {
1969- qDebug() << "wordengine.cpp plugin" << pluginName << "loaded";
1970- currentPlugin = pluginName;
1971+ qDebug() << "wordengine.cpp plugin" << pluginPath << "loaded";
1972+ currentPlugin = pluginPath;
1973 }
1974 } else {
1975 qCritical() << __PRETTY_FUNCTION__ << " Loading plugin failed: " << pluginLoader.errorString();
1976@@ -392,60 +390,15 @@
1977 d->languagePlugin->addToSpellCheckerUserWordList(word);
1978 }
1979
1980-void WordEngine::onLanguageChanged(const QString &languageId)
1981+void WordEngine::onLanguageChanged(const QString &pluginPath, const QString &languageId)
1982 {
1983 Q_D(WordEngine);
1984
1985- if (languageId == "ar")
1986- d->loadPlugin("libarabicplugin.so", "ar");
1987- else if (languageId == "az")
1988- d->loadPlugin("libazerbaijaniplugin.so", "az");
1989- else if (languageId == "bs")
1990- d->loadPlugin("libbosnianplugin.so", "bs");
1991- else if (languageId == "ca")
1992- d->loadPlugin("libcatalanplugin.so", "ca");
1993- else if (languageId == "cs")
1994- d->loadPlugin("libczechplugin.so", "cs");
1995- else if (languageId == "da")
1996- d->loadPlugin("libdanishplugin.so", "da");
1997- else if (languageId == "de")
1998- d->loadPlugin("libgermanplugin.so", "de");
1999- else if (languageId == "emoji")
2000- d->loadPlugin("libemojiplugin.so", "emoji");
2001- else if (languageId == "en")
2002- d->loadPlugin("libenglishplugin.so", "en");
2003- else if (languageId == "es")
2004- d->loadPlugin("libspanishplugin.so", "es");
2005- else if (languageId == "fi")
2006- d->loadPlugin("libfinnishplugin.so", "fi");
2007- else if (languageId == "fr")
2008- d->loadPlugin("libfrenchplugin.so", "fr");
2009- else if (languageId == "he")
2010- d->loadPlugin("libhebrewplugin.so", "he");
2011- else if (languageId == "hr")
2012- d->loadPlugin("libcroatianplugin.so", "hr");
2013- else if (languageId == "hu")
2014- d->loadPlugin("libhungarianplugin.so", "hu");
2015- else if (languageId == "it")
2016- d->loadPlugin("libitalianplugin.so", "it");
2017- else if (languageId == "nl")
2018- d->loadPlugin("libdutchplugin.so", "nl");
2019- else if (languageId == "pl")
2020- d->loadPlugin("libpolishplugin.so", "pl");
2021- else if (languageId == "pt")
2022- d->loadPlugin("libportugueseplugin.so", "pt");
2023- else if (languageId == "ru")
2024- d->loadPlugin("librussianplugin.so", "ru");
2025- else if (languageId == "sv")
2026- d->loadPlugin("libswedishplugin.so", "sv");
2027- else if (languageId == "zh")
2028- d->loadPlugin("libpinyinplugin.so", "zh");
2029- else
2030- d->loadPlugin(DEFAULT_PLUGIN);
2031+ d->loadPlugin(pluginPath);
2032
2033 setWordPredictionEnabled(d->requested_prediction_state);
2034
2035- d->languagePlugin->setLanguage(languageId);
2036+ d->languagePlugin->setLanguage(languageId, QFileInfo(pluginPath).absolutePath());
2037
2038 Q_EMIT enabledChanged(isEnabled());
2039
2040
2041=== modified file 'src/lib/logic/wordengine.h'
2042--- src/lib/logic/wordengine.h 2015-01-29 05:44:05 +0000
2043+++ src/lib/logic/wordengine.h 2015-04-20 15:33:53 +0000
2044@@ -71,7 +71,7 @@
2045 const QString &candidate);
2046
2047 Q_SLOT void onWordCandidateSelected(QString word);
2048- Q_SLOT void onLanguageChanged(const QString& languageId);
2049+ Q_SLOT void onLanguageChanged(const QString& pluginPath, const QString& languageId);
2050 Q_SLOT void updateQmlCandidates(QStringList qmlCandidates);
2051 Q_SLOT void newSpellingSuggestions(QString word, QStringList suggestions);
2052 Q_SLOT void newPredictionSuggestions(QString word, QStringList suggestions);
2053
2054=== modified file 'src/plugin/inputmethod.cpp'
2055--- src/plugin/inputmethod.cpp 2015-03-11 16:57:32 +0000
2056+++ src/plugin/inputmethod.cpp 2015-04-20 15:33:53 +0000
2057@@ -102,7 +102,8 @@
2058 connect(&d->editor, SIGNAL(autoCapsDeactivated()), this, SIGNAL(deactivateAutocaps()));
2059
2060 connect(this, SIGNAL(contentTypeChanged(TextContentType)), this, SLOT(setContentType(TextContentType)));
2061- connect(this, SIGNAL(activeLanguageChanged(QString)), d->editor.wordEngine(), SLOT(onLanguageChanged(QString)));
2062+ connect(this, SIGNAL(activeLanguageChanged(QString)), this, SLOT(onLanguageChanged(QString)));
2063+ connect(this, SIGNAL(languagePluginChanged(QString, QString)), d->editor.wordEngine(), SLOT(onLanguageChanged(QString, QString)));
2064 connect(&d->event_handler, SIGNAL(qmlCandidateChanged(QStringList)), d->editor.wordEngine(), SLOT(updateQmlCandidates(QStringList)));
2065 connect(this, SIGNAL(hasSelectionChanged(bool)), &d->editor, SLOT(onHasSelectionChanged(bool)));
2066 connect(d->editor.wordEngine(), SIGNAL(pluginChanged()), this, SLOT(onWordEnginePluginChanged()));
2067@@ -119,6 +120,7 @@
2068 d->registerEnabledLanguages();
2069 d->registerDoubleSpaceFullStop();
2070 d->registerStayHidden();
2071+ d->registerPluginPaths();
2072
2073 //fire signal so all listeners know what active language is
2074 Q_EMIT activeLanguageChanged(d->activeLanguage);
2075@@ -541,6 +543,14 @@
2076
2077 qDebug() << "in inputMethod.cpp setActiveLanguage() activeLanguage is:" << newLanguage;
2078
2079+ foreach(QString pluginPath, d->pluginPaths) {
2080+ QDir testDir(pluginPath + QDir::separator() + newLanguage);
2081+ if (testDir.exists()) {
2082+ d->currentPluginPath = testDir.absolutePath();
2083+ break;
2084+ }
2085+ }
2086+
2087 if (d->activeLanguage == newLanguage)
2088 return;
2089
2090@@ -623,3 +633,40 @@
2091 visibleRect.height()
2092 );
2093 }
2094+
2095+const QString InputMethod::currentPluginPath() const
2096+{
2097+ Q_D(const InputMethod);
2098+ return d->currentPluginPath;
2099+}
2100+
2101+bool InputMethod::languageIsSupported(const QString plugin) {
2102+ Q_D(const InputMethod);
2103+ foreach(QString pluginPath, d->pluginPaths) {
2104+ QDir testDir(pluginPath + QDir::separator() + plugin);
2105+ if (testDir.exists()) {
2106+ return true;
2107+ }
2108+ }
2109+
2110+ return false;
2111+}
2112+
2113+void InputMethod::onLanguageChanged(const QString &language) {
2114+ Q_D(InputMethod);
2115+ foreach(QString pluginPath, d->pluginPaths) {
2116+ QFile testFile(pluginPath + QDir::separator() + language + QDir::separator() + "lib" + language + "plugin.so");
2117+ if (testFile.exists()) {
2118+ Q_EMIT languagePluginChanged(testFile.fileName(), language);
2119+ return;
2120+ }
2121+ }
2122+ qCritical() << "Couldn't find word engine plugin for " << language;
2123+}
2124+
2125+void InputMethod::onPluginPathsChanged(const QStringList& pluginPaths) {
2126+ Q_D(InputMethod);
2127+ Q_UNUSED(pluginPaths);
2128+
2129+ d->updatePluginPaths();
2130+}
2131
2132=== modified file 'src/plugin/inputmethod.h'
2133--- src/plugin/inputmethod.h 2015-02-05 15:30:42 +0000
2134+++ src/plugin/inputmethod.h 2015-04-20 15:33:53 +0000
2135@@ -58,6 +58,7 @@
2136 Q_PROPERTY(bool useHapticFeedback READ useHapticFeedback NOTIFY useHapticFeedbackChanged)
2137 Q_PROPERTY(QString keyboardState READ keyboardState WRITE setKeyboardState NOTIFY keyboardStateChanged)
2138 Q_PROPERTY(bool hasSelection READ hasSelection NOTIFY hasSelectionChanged)
2139+ Q_PROPERTY(QString currentPluginPath READ currentPluginPath NOTIFY currentPluginPathChanged)
2140
2141 Q_ENUMS(TextContentType)
2142
2143@@ -123,10 +124,17 @@
2144
2145 bool hasSelection() const;
2146
2147+ const QString currentPluginPath() const;
2148+
2149 QObject* actionKeyOverride() const;
2150
2151 Q_SLOT void close();
2152
2153+ Q_INVOKABLE bool languageIsSupported(const QString plugin);
2154+ Q_SLOT void onLanguageChanged(const QString& language);
2155+
2156+ Q_SLOT void onPluginPathsChanged(const QStringList& pluginPaths);
2157+
2158 Q_SIGNALS:
2159 void contentTypeChanged(TextContentType contentType);
2160 void activateAutocaps();
2161@@ -144,6 +152,8 @@
2162 void keyboardStateChanged(QString state);
2163 void keyboardReset();
2164 void hasSelectionChanged(bool hasSelection);
2165+ void currentPluginPathChanged(QString currentPluginPath);
2166+ void languagePluginChanged(QString pluginPath, QString languageId);
2167
2168 private:
2169 Q_SLOT void onAutoCorrectSettingChanged();
2170
2171=== modified file 'src/plugin/inputmethod_p.h'
2172--- src/plugin/inputmethod_p.h 2015-02-05 15:32:51 +0000
2173+++ src/plugin/inputmethod_p.h 2015-04-20 15:33:53 +0000
2174@@ -69,6 +69,9 @@
2175
2176 int previous_position;
2177
2178+ QStringList pluginPaths;
2179+ QString currentPluginPath;
2180+
2181 explicit InputMethodPrivate(InputMethod * const _q,
2182 MAbstractInputMethodHost *host)
2183 : q(_q)
2184@@ -133,9 +136,12 @@
2185
2186 view->setVisible(false);
2187
2188+ updatePluginPaths();
2189+
2190 // TODO: Figure out whether two views can share one engine.
2191 QQmlEngine *const engine(view->engine());
2192 engine->addImportPath(UBUNTU_KEYBOARD_DATA_DIR);
2193+ engine->addImportPath(QString(UBUNTU_KEYBOARD_DATA_DIR) + QDir::separator() + "keys");
2194 setContextProperties(engine->rootContext());
2195
2196 // following used to help shell identify the OSK surface
2197@@ -184,6 +190,12 @@
2198 qml_context->setContextProperty("greeter_status", m_greeterStatus);
2199 }
2200
2201+ void updatePluginPaths()
2202+ {
2203+ pluginPaths.clear();
2204+ pluginPaths.append(QString(UBUNTU_KEYBOARD_DATA_DIR) + QDir::separator() + "lib");
2205+ pluginPaths.append(m_settings.pluginPaths());
2206+ }
2207
2208 /*
2209 * register settings
2210@@ -272,6 +284,12 @@
2211 q, SLOT(hide()));
2212 }
2213
2214+ void registerPluginPaths()
2215+ {
2216+ QObject::connect(&m_settings, SIGNAL(pluginPathsChanged(QStringList)),
2217+ q, SLOT(onPluginPathsChanged(QStringList)));
2218+ }
2219+
2220 void closeOskWindow()
2221 {
2222 if (!view->isVisible())
2223
2224=== modified file 'src/plugin/keyboardsettings.cpp'
2225--- src/plugin/keyboardsettings.cpp 2015-02-05 15:32:51 +0000
2226+++ src/plugin/keyboardsettings.cpp 2015-04-20 15:33:53 +0000
2227@@ -44,8 +44,9 @@
2228 const QLatin1String KEY_PRESS_AUDIO_FEEDBACK_KEY = QLatin1String("keyPressFeedback");
2229 const QLatin1String KEY_PRESS_AUDIO_FEEDBACK_SOUND_KEY = QLatin1String("keyPressFeedbackSound");
2230 const QLatin1String KEY_PRESS_HAPTIC_FEEDBACK_KEY = QLatin1String("keyPressHapticFeedback");
2231-const QLatin1String DOUBLE_SPACE_FULL_STOP = QLatin1String("doubleSpaceFullStop");
2232-const QLatin1String STAY_HIDDEN = QLatin1String("stayHidden");
2233+const QLatin1String DOUBLE_SPACE_FULL_STOP_KEY = QLatin1String("doubleSpaceFullStop");
2234+const QLatin1String STAY_HIDDEN_KEY = QLatin1String("stayHidden");
2235+const QLatin1String PLUGIN_PATHS_KEY = QLatin1String("pluginPaths");
2236
2237 /*!
2238 * \brief KeyboardSettings::KeyboardSettings class to load the settings, and
2239@@ -177,7 +178,7 @@
2240 */
2241 bool KeyboardSettings::doubleSpaceFullStop() const
2242 {
2243- return m_settings->get(DOUBLE_SPACE_FULL_STOP).toBool();
2244+ return m_settings->get(DOUBLE_SPACE_FULL_STOP_KEY).toBool();
2245 }
2246
2247 /*!
2248@@ -186,7 +187,16 @@
2249 */
2250 bool KeyboardSettings::stayHidden() const
2251 {
2252- return m_settings->get(STAY_HIDDEN).toBool();
2253+ return m_settings->get(STAY_HIDDEN_KEY).toBool();
2254+}
2255+
2256+/*!
2257+ * \brief KeyboardSettings::pluginPaths returns a list of paths containing
2258+ * ubuntu-keyboard layout plugins
2259+ */
2260+QStringList KeyboardSettings::pluginPaths() const
2261+{
2262+ return m_settings->get(PLUGIN_PATHS_KEY).toStringList();
2263 }
2264
2265 /*!
2266@@ -226,11 +236,13 @@
2267 } else if (key == KEY_PRESS_AUDIO_FEEDBACK_SOUND_KEY) {
2268 Q_EMIT keyPressAudioFeedbackSoundChanged(keyPressAudioFeedbackSound());
2269 return;
2270- } else if (key == DOUBLE_SPACE_FULL_STOP) {
2271+ } else if (key == DOUBLE_SPACE_FULL_STOP_KEY) {
2272 Q_EMIT doubleSpaceFullStopChanged(doubleSpaceFullStop());
2273 return;
2274- } else if (key == STAY_HIDDEN) {
2275+ } else if (key == STAY_HIDDEN_KEY) {
2276 Q_EMIT stayHiddenChanged(stayHidden());
2277+ } else if (key == PLUGIN_PATHS_KEY) {
2278+ Q_EMIT pluginPathsChanged(pluginPaths());
2279 }
2280
2281 qWarning() << Q_FUNC_INFO << "unknown settings key:" << key;
2282
2283=== modified file 'src/plugin/keyboardsettings.h'
2284--- src/plugin/keyboardsettings.h 2015-02-05 15:32:51 +0000
2285+++ src/plugin/keyboardsettings.h 2015-04-20 15:33:53 +0000
2286@@ -57,6 +57,7 @@
2287 bool keyPressHapticFeedback() const;
2288 bool doubleSpaceFullStop() const;
2289 bool stayHidden() const;
2290+ QStringList pluginPaths() const;
2291
2292 Q_SIGNALS:
2293 void activeLanguageChanged(QString);
2294@@ -71,6 +72,7 @@
2295 void keyPressHapticFeedbackChanged(bool);
2296 void doubleSpaceFullStopChanged(bool);
2297 void stayHiddenChanged(bool);
2298+ void pluginPathsChanged(QStringList);
2299
2300 private:
2301 Q_SLOT void settingUpdated(const QString &key);
2302
2303=== modified file 'tests/autopilot/ubuntu_keyboard/tests/test_keyboard.py'
2304--- tests/autopilot/ubuntu_keyboard/tests/test_keyboard.py 2015-03-26 16:09:48 +0000
2305+++ tests/autopilot/ubuntu_keyboard/tests/test_keyboard.py 2015-04-20 15:33:53 +0000
2306@@ -958,7 +958,40 @@
2307 text_area.text,
2308 Eventually(Equals(expected))
2309 )
2310+
2311
2312+class UbuntuKeyboardPluginPaths(UbuntuKeyboardTests):
2313+
2314+ def set_test_settings(self):
2315+ gsettings = Gio.Settings.new("com.canonical.keyboard.maliit")
2316+ gsettings.set_strv("plugin-paths", ["/custom/share/maliit/plugins/com/ubuntu/lib", "/usr/share/maliit/tests/ubuntu-keyboard/"])
2317+ gsettings.set_strv("enabled-languages", ["en", "testlayout"])
2318+ gsettings.set_string("previous-language", "testlayout")
2319+ gsettings.set_string("active-language", "testlayout")
2320+ gsettings.set_boolean("auto-capitalization", True)
2321+ gsettings.set_boolean("auto-completion", True)
2322+ gsettings.set_boolean("predictive-text", True)
2323+ gsettings.set_boolean("spell-checking", True)
2324+ gsettings.set_boolean("double-space-full-stop", True)
2325+
2326+ def test_typing(self):
2327+ """Test that typing works using a plugin loaded from a custom location.
2328+
2329+ """
2330+ text_area = self.launch_test_input_area(input_hints=['Qt.ImhNoPredictiveText'])
2331+ self.ensure_focus_on_input(text_area)
2332+ keyboard = Keyboard()
2333+ self.addCleanup(keyboard.dismiss)
2334+
2335+ # The test layout has a single key that enters the word 'Test'
2336+ keyboard.press_key("Test")
2337+
2338+ expected = "Test"
2339+ self.assertThat(
2340+ text_area.text,
2341+ Eventually(Equals(expected))
2342+ )
2343+
2344
2345 def maliit_cleanup():
2346 presagedir = os.path.expanduser("~/.presage")
2347
2348=== added directory 'tests/testlayout'
2349=== added directory 'tests/testlayout/qml'
2350=== added file 'tests/testlayout/qml/Keyboard_testlayout.qml'
2351--- tests/testlayout/qml/Keyboard_testlayout.qml 1970-01-01 00:00:00 +0000
2352+++ tests/testlayout/qml/Keyboard_testlayout.qml 2015-04-20 15:33:53 +0000
2353@@ -0,0 +1,40 @@
2354+/*
2355+ * Copyright 2015 Canonical Ltd.
2356+ *
2357+ * This program is free software; you can redistribute it and/or modify
2358+ * it under the terms of the GNU Lesser General Public License as published by
2359+ * the Free Software Foundation; version 3.
2360+ *
2361+ * This program is distributed in the hope that it will be useful,
2362+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
2363+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2364+ * GNU Lesser General Public License for more details.
2365+ *
2366+ * You should have received a copy of the GNU Lesser General Public License
2367+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
2368+ */
2369+
2370+import QtQuick 2.0
2371+import keys 1.0
2372+
2373+KeyPad {
2374+ anchors.fill: parent
2375+
2376+ content: c1
2377+ symbols: "languages/Keyboard_symbols.qml"
2378+
2379+ Column {
2380+ id: c1
2381+ anchors.fill: parent
2382+ spacing: 0
2383+
2384+ Row {
2385+ anchors.horizontalCenter: parent.horizontalCenter;
2386+ spacing: 0
2387+
2388+ CharKey { label: "Test"; shifted: "Test"; }
2389+ LanguageKey { }
2390+ }
2391+
2392+ } // column
2393+}
2394
2395=== added symlink 'tests/testlayout/qml/Keyboard_testlayout_email.qml'
2396=== target is u'Keyboard_testlayout.qml'
2397=== added symlink 'tests/testlayout/qml/Keyboard_testlayout_url.qml'
2398=== target is u'Keyboard_testlayout.qml'
2399=== added symlink 'tests/testlayout/qml/Keyboard_testlayout_url_search.qml'
2400=== target is u'Keyboard_testlayout.qml'
2401=== added file 'tests/testlayout/qml/qml.pro'
2402--- tests/testlayout/qml/qml.pro 1970-01-01 00:00:00 +0000
2403+++ tests/testlayout/qml/qml.pro 2015-04-20 15:33:53 +0000
2404@@ -0,0 +1,20 @@
2405+TOP_BUILDDIR = $$OUT_PWD/../../..
2406+TOP_SRCDIR = $$PWD/../../..
2407+
2408+include($${TOP_SRCDIR}/config.pri)
2409+
2410+TARGET = dummy
2411+TEMPLATE = lib
2412+
2413+lang_testlayout.path = "$${UBUNTU_KEYBOARD_TEST_DIR}/testlayout/"
2414+lang_testlayout.files = *.qml *.js
2415+
2416+INSTALLS += lang_testlayout
2417+
2418+# for QtCreator
2419+OTHER_FILES += \
2420+ Keyboard_testlayout.qml \
2421+ Keyboard_testlayout_email.qml \
2422+ Keyboard_testlayout_url.qml \
2423+ Keyboard_testlayout_url_search.qml
2424+
2425
2426=== added directory 'tests/testlayout/src'
2427=== added file 'tests/testlayout/src/database_testlayout.db'
2428Binary files tests/testlayout/src/database_testlayout.db 1970-01-01 00:00:00 +0000 and tests/testlayout/src/database_testlayout.db 2015-04-20 15:33:53 +0000 differ
2429=== added file 'tests/testlayout/src/empty.txt'
2430=== added file 'tests/testlayout/src/src.pro'
2431--- tests/testlayout/src/src.pro 1970-01-01 00:00:00 +0000
2432+++ tests/testlayout/src/src.pro 2015-04-20 15:33:53 +0000
2433@@ -0,0 +1,47 @@
2434+TOP_BUILDDIR = $$OUT_PWD/../../..
2435+TOP_SRCDIR = $$PWD/../../..
2436+
2437+include($${TOP_SRCDIR}/config.pri)
2438+
2439+TEMPLATE = lib
2440+CONFIG += plugin
2441+QT += widgets
2442+INCLUDEPATH += \
2443+ $${TOP_SRCDIR}/src/ \
2444+ $${TOP_SRCDIR}/src/lib/ \
2445+ $${TOP_SRCDIR}/src/lib/logic/
2446+ $${TOP_SRCDIR}/plugins/westernsupport
2447+
2448+HEADERS = \
2449+ testlayoutplugin.h
2450+
2451+TARGET = $$qtLibraryTarget(testlayoutplugin)
2452+
2453+EXAMPLE_FILES = testlayoutplugin.json
2454+
2455+# generate database for presage:
2456+PLUGIN_INSTALL_PATH = $${UBUNTU_KEYBOARD_TEST_DIR}/testlayout/
2457+
2458+lang_db_testlayout.commands += \
2459+ rm -f $$PWD/database_testlayout.db && \
2460+ text2ngram -n 1 -l -f sqlite -o $$PWD/database_testlayout.db $$PWD/empty.txt && \
2461+ text2ngram -n 2 -l -f sqlite -o $$PWD/database_testlayout.db $$PWD/empty.txt && \
2462+ text2ngram -n 3 -l -f sqlite -o $$PWD/database_testlayout.db $$PWD/empty.txt
2463+lang_db_testlayout.files += $$PWD/database_testlayout.db
2464+
2465+lang_db_testlayout_install.files += $$PWD/database_testlayout.db
2466+lang_db_testlayout_install.path = $$PLUGIN_INSTALL_PATH
2467+
2468+QMAKE_EXTRA_TARGETS += lang_db_testlayout lang_db_testlayout_install
2469+
2470+target.path = $$PLUGIN_INSTALL_PATH
2471+INSTALLS += target lang_db_testlayout_install
2472+
2473+OTHER_FILES += \
2474+ testlayoutplugin.json \
2475+ the_picture_of_dorian_gray.txt
2476+
2477+LIBS += $${TOP_BUILDDIR}/plugins/plugins/libwesternsupport.a -lpresage -lhunspell
2478+
2479+INCLUDEPATH += $${TOP_SRCDIR}/plugins/westernsupport
2480+DEPENDPATH += $${TOP_SRCDIR}/plugins/westernsupport
2481
2482=== added file 'tests/testlayout/src/testlayoutplugin.h'
2483--- tests/testlayout/src/testlayoutplugin.h 1970-01-01 00:00:00 +0000
2484+++ tests/testlayout/src/testlayoutplugin.h 2015-04-20 15:33:53 +0000
2485@@ -0,0 +1,25 @@
2486+#ifndef TESTLAYOUTPLUGIN_H
2487+#define TESTLAYOUTPLUGIN_H
2488+
2489+#include <QObject>
2490+#include "languageplugininterface.h"
2491+#include "westernlanguagesplugin.h"
2492+
2493+class TestLayoutPlugin : public WesternLanguagesPlugin
2494+{
2495+ Q_OBJECT
2496+ Q_INTERFACES(LanguagePluginInterface)
2497+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.Examples.TestLayoutPlugin" FILE "testlayoutplugin.json")
2498+
2499+public:
2500+ explicit TestLayoutPlugin(QObject* parent = 0)
2501+ : WesternLanguagesPlugin(parent)
2502+ {
2503+ }
2504+
2505+ virtual ~TestLayoutPlugin()
2506+ {
2507+ }
2508+};
2509+
2510+#endif // TESTLAYOUTPLUGIN_H
2511
2512=== added file 'tests/testlayout/src/testlayoutplugin.json'
2513--- tests/testlayout/src/testlayoutplugin.json 1970-01-01 00:00:00 +0000
2514+++ tests/testlayout/src/testlayoutplugin.json 2015-04-20 15:33:53 +0000
2515@@ -0,0 +1,7 @@
2516+{
2517+ "IID": "org.qt-project.Qt.Examples.TestLayoutPlugin",
2518+ "MetaData": {
2519+ },
2520+ "className": "TestLayoutPlugin",
2521+ "debug": true
2522+}
2523
2524=== added file 'tests/testlayout/testlayout.pro'
2525--- tests/testlayout/testlayout.pro 1970-01-01 00:00:00 +0000
2526+++ tests/testlayout/testlayout.pro 2015-04-20 15:33:53 +0000
2527@@ -0,0 +1,9 @@
2528+CONFIG += ordered
2529+TEMPLATE = subdirs
2530+SUBDIRS = \
2531+ src \
2532+ qml
2533+
2534+QMAKE_EXTRA_TARGETS += check
2535+check.target = check
2536+check.CONFIG = recursive
2537
2538=== modified file 'tests/tests.pro'
2539--- tests/tests.pro 2013-10-24 10:17:12 +0000
2540+++ tests/tests.pro 2015-04-20 15:33:53 +0000
2541@@ -1,6 +1,7 @@
2542 TEMPLATE = subdirs
2543 SUBDIRS = \
2544 qmltests \
2545+ testlayout \
2546 unittests \
2547
2548 CONFIG += ordered

Subscribers

People subscribed via source and target branches