Merge lp:~bfiller/phablet-extras/maliit-plugins-dynamic-layout into lp:phablet-extras/maliit-plugins

Proposed by Bill Filler
Status: Needs review
Proposed branch: lp:~bfiller/phablet-extras/maliit-plugins-dynamic-layout
Merge into: lp:phablet-extras/maliit-plugins
Diff against target: 665 lines (+523/-43)
4 files modified
debian/changelog (+6/-0)
maliit-keyboard/data/languages/url.xml (+484/-0)
maliit-keyboard/lib/logic/layoutupdater.cpp (+2/-1)
maliit-keyboard/plugin/inputmethod.cpp (+31/-42)
To merge this branch: bzr merge lp:~bfiller/phablet-extras/maliit-plugins-dynamic-layout
Reviewer Review Type Date Requested Status
PS Jenkins bot continuous-integration Approve
Ubuntu Phablet Team Pending
Review via email: mp+174461@code.launchpad.net

This proposal supersedes a proposal from 2013-07-08.

Commit message

enable inputMethodHints and dynamic on/off

Description of the change

enabled inputMethodHints
enabled dynamic on/off for wordribbon + wordengine (Qt.ImhNoPredictiveText)

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Approve (continuous-integration)
Revision history for this message
Bill Filler (bfiller) wrote : Posted in a previous version of this proposal

tested but doesn't seem to work still with webbrowser-app. I still get the wordribbon. I set /etc/environment to
QT_IM_MODULE=maliitphablet but still doesn't work. Using the latest maliit-framework in build saucy-37

Revision history for this message
Thomas Moenicke (thomas-moenicke) wrote : Posted in a previous version of this proposal

in file /usr/lib/arm-linux-gnueabihf/qt5/qml/Ubuntu/Browser/AddressBar.qml
in line 47
        inputMethodHints: Qt.ImhNoPredictiveText

in /etc/environment
        QT_IM_MODULE=maliitphablet

phablet@ubuntu-phablet:~$ dpkg -l | grep maliit
ii maliit-framework 0.99.trunk.phablet0 armhf Maliit Input Method Framework
ii maliit-keyboard 0.99.trunk.phablet0 armhf Maliit-Keyboard, qml-based on-screen Keyboard
ii maliit-keyboard-data 0.99.trunk.phablet0 all Maliit Keyboard Data files

Revision history for this message
Thomas Moenicke (thomas-moenicke) wrote : Posted in a previous version of this proposal

just tested and these steps work for me, flashed today + apt-get update && apt-get upgrade

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Approve (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)

Unmerged revisions

2138. By Bill Filler

merge from trunk

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'debian/changelog'
2--- debian/changelog 2013-07-10 17:42:28 +0000
3+++ debian/changelog 2013-07-12 16:23:39 +0000
4@@ -1,3 +1,9 @@
5+maliit-plugins (0.99.trunk.phablet2) saucy; urgency=low
6+
7+ * support for inputmethod hints: ImhNoPredictiveText implemented
8+
9+ -- Thomas Moenicke <thomas@pachamama> Fri, 12 Jul 2013 14:10:11 +0200
10+
11 maliit-plugins (0.99.trunk.phablet1) saucy; urgency=low
12
13 * fix reporting wrong keyboard rectangle
14
15=== added file 'maliit-keyboard/data/languages/url.xml'
16--- maliit-keyboard/data/languages/url.xml 1970-01-01 00:00:00 +0000
17+++ maliit-keyboard/data/languages/url.xml 2013-07-12 16:23:39 +0000
18@@ -0,0 +1,484 @@
19+<?xml version="1.0" encoding="utf-8"?>
20+<!DOCTYPE keyboard SYSTEM "VirtualKeyboardLayout.dtd">
21+
22+<keyboard catalog="en_us" language="en_us" title="English (US)" version="1.0">
23+ <layout type="general">
24+ <section id="main">
25+ <row>
26+ <key>
27+ <binding label="q">
28+ <modifiers keys="shift">
29+ <binding label="Q" />
30+ </modifiers>
31+ </binding>
32+ </key>
33+ <key>
34+ <binding label="w">
35+ <modifiers keys="shift">
36+ <binding label="W" />
37+ </modifiers>
38+ </binding>
39+ </key>
40+ <key>
41+ <extended>
42+ <row>
43+ <key>
44+ <binding label="è">
45+ <modifiers keys="shift">
46+ <binding label="È" />
47+ </modifiers>
48+ </binding>
49+ </key>
50+ <key>
51+ <binding label="é">
52+ <modifiers keys="shift">
53+ <binding label="É" />
54+ </modifiers>
55+ </binding>
56+ </key>
57+ <key>
58+ <binding label="ê">
59+ <modifiers keys="shift">
60+ <binding label="Ê" />
61+ </modifiers>
62+ </binding>
63+ </key>
64+ <key>
65+ <binding label="ë">
66+ <modifiers keys="shift">
67+ <binding label="Ë" />
68+ </modifiers>
69+ </binding>
70+ </key>
71+ <key>
72+ <binding label="€">
73+ <modifiers keys="shift">
74+ <binding label="€" />
75+ </modifiers>
76+ </binding>
77+ </key>
78+ </row>
79+ </extended>
80+ <binding label="e">
81+ <modifiers keys="shift">
82+ <binding label="E" />
83+ </modifiers>
84+ </binding>
85+ </key>
86+ <key>
87+ <binding label="r">
88+ <modifiers keys="shift">
89+ <binding label="R" />
90+ </modifiers>
91+ </binding>
92+ </key>
93+ <key>
94+ <extended>
95+ <row>
96+ <key>
97+ <binding label="þ">
98+ <modifiers keys="shift">
99+ <binding label="Þ" />
100+ </modifiers>
101+ </binding>
102+ </key>
103+ </row>
104+ </extended>
105+ <binding label="t">
106+ <modifiers keys="shift">
107+ <binding label="T" />
108+ </modifiers>
109+ </binding>
110+ </key>
111+ <key>
112+ <extended>
113+ <row>
114+ <key>
115+ <binding label="ý">
116+ <modifiers keys="shift">
117+ <binding label="Ý" />
118+ </modifiers>
119+ </binding>
120+ </key>
121+ <key>
122+ <binding label="¥">
123+ <modifiers keys="shift">
124+ <binding label="¥" />
125+ </modifiers>
126+ </binding>
127+ </key>
128+ </row>
129+ </extended>
130+ <binding label="y">
131+ <modifiers keys="shift">
132+ <binding label="Y" />
133+ </modifiers>
134+ </binding>
135+ </key>
136+ <key>
137+ <extended>
138+ <row>
139+ <key>
140+ <binding label="û">
141+ <modifiers keys="shift">
142+ <binding label="Û" />
143+ </modifiers>
144+ </binding>
145+ </key>
146+ <key>
147+ <binding label="ù">
148+ <modifiers keys="shift">
149+ <binding label="Ù" />
150+ </modifiers>
151+ </binding>
152+ </key>
153+ <key>
154+ <binding label="ú">
155+ <modifiers keys="shift">
156+ <binding label="Ú" />
157+ </modifiers>
158+ </binding>
159+ </key>
160+ <key>
161+ <binding label="ü">
162+ <modifiers keys="shift">
163+ <binding label="Ü" />
164+ </modifiers>
165+ </binding>
166+ </key>
167+ </row>
168+ </extended>
169+ <binding label="u">
170+ <modifiers keys="shift">
171+ <binding label="U" />
172+ </modifiers>
173+ </binding>
174+ </key>
175+ <key>
176+ <extended>
177+ <row>
178+ <key>
179+ <binding label="î">
180+ <modifiers keys="shift">
181+ <binding label="Î" />
182+ </modifiers>
183+ </binding>
184+ </key>
185+ <key>
186+ <binding label="ï">
187+ <modifiers keys="shift">
188+ <binding label="Ï" />
189+ </modifiers>
190+ </binding>
191+ </key>
192+ <key>
193+ <binding label="ì">
194+ <modifiers keys="shift">
195+ <binding label="Ì" />
196+ </modifiers>
197+ </binding>
198+ </key>
199+ <key>
200+ <binding label="í">
201+ <modifiers keys="shift">
202+ <binding label="Í" />
203+ </modifiers>
204+ </binding>
205+ </key>
206+ </row>
207+ </extended>
208+ <binding label="i">
209+ <modifiers keys="shift">
210+ <binding label="I" />
211+ </modifiers>
212+ </binding>
213+ </key>
214+ <key>
215+ <extended>
216+ <row>
217+ <key>
218+ <binding label="ö">
219+ <modifiers keys="shift">
220+ <binding label="Ö" />
221+ </modifiers>
222+ </binding>
223+ </key>
224+ <key>
225+ <binding label="ô">
226+ <modifiers keys="shift">
227+ <binding label="Ô" />
228+ </modifiers>
229+ </binding>
230+ </key>
231+ <key>
232+ <binding label="ò">
233+ <modifiers keys="shift">
234+ <binding label="Ò" />
235+ </modifiers>
236+ </binding>
237+ </key>
238+ <key>
239+ <binding label="ó">
240+ <modifiers keys="shift">
241+ <binding label="Ó" />
242+ </modifiers>
243+ </binding>
244+ </key>
245+ </row>
246+ </extended>
247+ <binding label="o">
248+ <modifiers keys="shift">
249+ <binding label="O" />
250+ </modifiers>
251+ </binding>
252+ </key>
253+ <key>
254+ <binding label="p">
255+ <modifiers keys="shift">
256+ <binding label="P" />
257+ </modifiers>
258+ </binding>
259+ </key>
260+ </row>
261+ <row>
262+ <spacer />
263+ <key>
264+ <extended>
265+ <row>
266+ <key>
267+ <binding label="ä">
268+ <modifiers keys="shift">
269+ <binding label="Ä" />
270+ </modifiers>
271+ </binding>
272+ </key>
273+ <key>
274+ <binding label="à">
275+ <modifiers keys="shift">
276+ <binding label="À" />
277+ </modifiers>
278+ </binding>
279+ </key>
280+ <key>
281+ <binding label="â">
282+ <modifiers keys="shift">
283+ <binding label="Â" />
284+ </modifiers>
285+ </binding>
286+ </key>
287+ <key>
288+ <binding label="á">
289+ <modifiers keys="shift">
290+ <binding label="Á" />
291+ </modifiers>
292+ </binding>
293+ </key>
294+ <key>
295+ <binding label="ã">
296+ <modifiers keys="shift">
297+ <binding label="Ã" />
298+ </modifiers>
299+ </binding>
300+ </key>
301+ <key>
302+ <binding label="å">
303+ <modifiers keys="shift">
304+ <binding label="Å" />
305+ </modifiers>
306+ </binding>
307+ </key>
308+ </row>
309+ </extended>
310+ <binding label="a">
311+ <modifiers keys="shift">
312+ <binding label="A" />
313+ </modifiers>
314+ </binding>
315+ </key>
316+ <key>
317+ <extended>
318+ <row>
319+ <key>
320+ <binding label="ß">
321+ <modifiers keys="shift">
322+ <binding label="$" />
323+ </modifiers>
324+ </binding>
325+ </key>
326+ <key>
327+ <binding label="$" />
328+ </key>
329+ </row>
330+ </extended>
331+ <binding label="s">
332+ <modifiers keys="shift">
333+ <binding label="S" />
334+ </modifiers>
335+ </binding>
336+ </key>
337+ <key>
338+ <extended>
339+ <row>
340+ <key>
341+ <binding label="ð">
342+ <modifiers keys="shift">
343+ <binding label="Ð" />
344+ </modifiers>
345+ </binding>
346+ </key>
347+ </row>
348+ </extended>
349+ <binding label="d">
350+ <modifiers keys="shift">
351+ <binding label="D" />
352+ </modifiers>
353+ </binding>
354+ </key>
355+ <key>
356+ <binding label="f">
357+ <modifiers keys="shift">
358+ <binding label="F" />
359+ </modifiers>
360+ </binding>
361+ </key>
362+ <key>
363+ <binding label="g">
364+ <modifiers keys="shift">
365+ <binding label="G" />
366+ </modifiers>
367+ </binding>
368+ </key>
369+ <key>
370+ <binding label="h">
371+ <modifiers keys="shift">
372+ <binding label="H" />
373+ </modifiers>
374+ </binding>
375+ </key>
376+ <key>
377+ <binding label="j">
378+ <modifiers keys="shift">
379+ <binding label="J" />
380+ </modifiers>
381+ </binding>
382+ </key>
383+ <key>
384+ <binding label="k">
385+ <modifiers keys="shift">
386+ <binding label="K" />
387+ </modifiers>
388+ </binding>
389+ </key>
390+ <key>
391+ <binding label="l">
392+ <modifiers keys="shift">
393+ <binding label="L" />
394+ </modifiers>
395+ </binding>
396+ </key>
397+ <spacer />
398+ </row>
399+ <row>
400+ <key style="special" width="large">
401+ <binding action="shift" />
402+ </key>
403+ <spacer />
404+ <key>
405+ <binding label="z">
406+ <modifiers keys="shift">
407+ <binding label="Z" />
408+ </modifiers>
409+ </binding>
410+ </key>
411+ <key>
412+ <binding label="x">
413+ <modifiers keys="shift">
414+ <binding label="X" />
415+ </modifiers>
416+ </binding>
417+ </key>
418+ <key>
419+ <extended>
420+ <row>
421+ <key>
422+ <binding label="ç">
423+ <modifiers keys="shift">
424+ <binding label="Ç" />
425+ </modifiers>
426+ </binding>
427+ </key>
428+ </row>
429+ </extended>
430+ <binding label="c">
431+ <modifiers keys="shift">
432+ <binding label="C" />
433+ </modifiers>
434+ </binding>
435+ </key>
436+ <key>
437+ <binding label="v">
438+ <modifiers keys="shift">
439+ <binding label="V" />
440+ </modifiers>
441+ </binding>
442+ </key>
443+ <key>
444+ <binding label="b">
445+ <modifiers keys="shift">
446+ <binding label="B" />
447+ </modifiers>
448+ </binding>
449+ </key>
450+ <key>
451+ <extended>
452+ <row>
453+ <key>
454+ <binding label="ñ">
455+ <modifiers keys="shift">
456+ <binding label="Ñ" />
457+ </modifiers>
458+ </binding>
459+ </key>
460+ </row>
461+ </extended>
462+ <binding label="n">
463+ <modifiers keys="shift">
464+ <binding label="N" />
465+ </modifiers>
466+ </binding>
467+ </key>
468+ <key>
469+ <binding label="m">
470+ <modifiers keys="shift">
471+ <binding label="M" />
472+ </modifiers>
473+ </binding>
474+ </key>
475+ <spacer />
476+ <key style="special" width="large">
477+ <binding action="backspace" />
478+ </key>
479+ </row>
480+ <row>
481+ <key style="special" width="x-large">
482+ <binding action="sym" label="?123" />
483+ </key>
484+ <spacer />
485+ <key id="emailUrlKey">
486+ <binding label=".com" />
487+ </key>
488+ <key width="xx-large">
489+ <binding action="space" />
490+ </key>
491+ <key>
492+ <binding label="." />
493+ </key>
494+ <spacer />
495+ <key id="actionKey" style="special" width="x-large">
496+ <binding action="return" />
497+ </key>
498+ </row>
499+ </section>
500+ </layout>
501+ <import file="symbols_en.xml" />
502+</keyboard>
503
504=== modified file 'maliit-keyboard/lib/logic/layoutupdater.cpp'
505--- maliit-keyboard/lib/logic/layoutupdater.cpp 2013-06-14 09:55:01 +0000
506+++ maliit-keyboard/lib/logic/layoutupdater.cpp 2013-07-12 16:23:39 +0000
507@@ -34,7 +34,6 @@
508 #include "style.h"
509
510 #include "models/area.h"
511-#include "models/keyboard.h"
512 #include "models/keydescription.h"
513 #include "models/wordribbon.h"
514 #include "models/wordcandidate.h"
515@@ -333,6 +332,8 @@
516 d->layout->setCenterPanel(d->inShiftedState() ? converter.shiftedKeyArea()
517 : converter.keyArea());
518
519+ converter.keyArea();
520+ d->layout->setCenterPanel(converter.keyArea());
521 if (isWordRibbonVisible())
522 applyStyleToWordRibbon(d->layout->wordRibbon(), d->style, orientation);
523
524
525=== modified file 'maliit-keyboard/plugin/inputmethod.cpp'
526--- maliit-keyboard/plugin/inputmethod.cpp 2013-07-10 14:26:09 +0000
527+++ maliit-keyboard/plugin/inputmethod.cpp 2013-07-12 16:23:39 +0000
528@@ -110,7 +110,6 @@
529 ScopedSetting auto_correct;
530 ScopedSetting auto_caps;
531 ScopedSetting word_engine;
532- ScopedSetting hide_word_ribbon_in_portrait_mode;
533 };
534
535 class LayoutGroup
536@@ -365,19 +364,9 @@
537
538 void InputMethodPrivate::syncWordEngine(Logic::LayoutHelper::Orientation orientation)
539 {
540- // hide_word_ribbon_in_potrait_mode_setting overrides word_engine_setting:
541-#ifndef DISABLE_PREEDIT
542- const bool override_activation(settings.hide_word_ribbon_in_portrait_mode->value().toBool()
543- && orientation == Logic::LayoutHelper::Portrait);
544-#else
545 Q_UNUSED(orientation)
546- const bool override_activation = true;
547-#endif
548-
549-
550- editor.wordEngine()->setEnabled(override_activation
551- ? false
552- : settings.word_engine->value().toBool());
553+
554+ editor.wordEngine()->setEnabled(settings.word_engine->value().toBool());
555 }
556
557 void InputMethodPrivate::connectToNotifier()
558@@ -462,13 +451,14 @@
559 registerAutoCorrectSetting(host);
560 registerAutoCapsSetting(host);
561 registerWordEngineSetting(host);
562- registerHideWordRibbonInPortraitModeSetting(host);
563
564 setActiveSubView("en_us");
565
566 // Setting layout orientation depends on word engine and hide word ribbon
567 // settings to be initialized first:
568
569+ setActiveSubView("en_us");
570+
571 d->updateKeyboardOrientation();
572 }
573
574@@ -478,8 +468,25 @@
575 void InputMethod::show()
576 {
577 Q_D(InputMethod);
578+ bool valid = true;
579
580 d->view->setVisible(true);
581+
582+ if (d->host->contentType(valid) == Maliit::UrlContentType)
583+ setActiveSubView("url");
584+
585+ QVariantMap attributes;
586+ attributes[Maliit::SettingEntryAttributes::defaultValue] = d->host->predictionEnabled(valid);
587+ d->settings.word_engine.reset(
588+ d->host->registerPluginSetting("word_engine_enabled",
589+ QT_TR_NOOP("Error correction/word prediction enabled"),
590+ Maliit::BoolType,
591+ attributes)
592+ );
593+
594+ d->layout.helper.wordRibbon()->setEnabled( d->host->predictionEnabled(valid) );
595+ d->editor.wordEngine()->setEnabled( d->host->predictionEnabled(valid) );
596+
597 #ifdef EXTENDED_SURFACE_TEMP_DISABLED
598 d->surface->show();
599 d->extended_surface->show();
600@@ -718,23 +725,6 @@
601 #endif
602 }
603
604-void InputMethod::registerHideWordRibbonInPortraitModeSetting(MAbstractInputMethodHost *host)
605-{
606- Q_D(InputMethod);
607-
608- QVariantMap attributes;
609- attributes[Maliit::SettingEntryAttributes::defaultValue] = false;
610-
611- d->settings.hide_word_ribbon_in_portrait_mode.reset(
612- host->registerPluginSetting("hide_word_ribbon_in_potrait_mode",
613- QT_TR_NOOP("Disable word engine in portrait mode"),
614- Maliit::BoolType,
615- attributes));
616-
617- connect(d->settings.hide_word_ribbon_in_portrait_mode.data(), SIGNAL(valueChanged()),
618- this, SLOT(onHideWordRibbonInPortraitModeSettingChanged()));
619-}
620-
621 void InputMethod::onLeftLayoutSelected()
622 {
623 // This API smells real bad.
624@@ -803,12 +793,6 @@
625 d->syncWordEngine(d->layout.helper.orientation());
626 }
627
628-void InputMethod::onHideWordRibbonInPortraitModeSettingChanged()
629-{
630- Q_D(InputMethod);
631- d->setLayoutOrientation(d->layout.helper.orientation());
632-}
633-
634 void InputMethod::setKeyOverrides(const QMap<QString, QSharedPointer<MKeyOverride> > &overrides)
635 {
636 Q_D(InputMethod);
637@@ -941,18 +925,23 @@
638 if (!valid)
639 newPredictionEnabled = true;
640
641- if (newPredictionEnabled != d->predictionEnabled) {
642- d->predictionEnabled = newPredictionEnabled;
643- emitPredictionEnabled = true;
644- }
645+ d->predictionEnabled = newPredictionEnabled;
646+ emitPredictionEnabled = true;
647
648 if (emitPredictionEnabled)
649 Q_EMIT predictionEnabledChanged();
650+
651 }
652
653 void InputMethod::updateWordEngine()
654 {
655- // FIXME stub
656+ Q_D(InputMethod);
657+
658+ d->layout.helper.wordRibbon()->setEnabled( d->predictionEnabled );
659+ d->editor.wordEngine()->setEnabled( d->predictionEnabled );
660+ Q_EMIT wordEngineEnabledChanged( d->predictionEnabled );
661+
662+ d->updateKeyboardOrientation();
663 }
664
665 bool InputMethod::predictionEnabled()

Subscribers

People subscribed via source and target branches