[Maliit-announce] Maliit 0.99.0 released
Jan Arne Petersen
jpetersen at openismus.com
Wed Mar 27 06:02:30 PDT 2013
Until now the 0.90 release series was mostly focused on implementing new
features (some of them more experimental). With the new 0.99.0 release
series we want to focus on creating a stable 1.0 release series.
To reach that goal we focus on Qt 5 now. We still support Qt 4
applications with maliit-inputcontext-qt4 and GTK+ with
maliit-inputcontext-gtk (which were moved in extra packages and
repositories because of the different build dependencies).
In maliit-framework we require Qt 5 now. For IPC with applications we
use now either Qt D-Bus instead of glib-dbus on X. Wayland support got
improved and updated to the latest protocol changes. QML plugins got an
improved interface for getting the editor state and sending events.
We also focused on reducing the code complexity and cleanup of the
public API. Some experimental features got removed (MaliitDirect, plugin
factories and surface abstraction).
In maliit-plugins the nemo-keyboard was improved using new features for
QML plugins from maliit-framework.
For maliit-keyboard the QGraphicsView based UI renderer was replaced
with a QML and QQuickView based UI (the word ribbon is not implemented
in the new UI yet). In addition a lot of new features (additional
settings, font styling, pre-edit styling and activation, custom
dictionary support, action key overriding) were added.
The XML language file format got also updated allowing better extended
keys support and custom icons for keys.
Where can I get it?
What is it?
Maliit provides a flexible and cross-platform input method framework. It
has a plugin-based client-server architecture where applications act as
clients and communicate with the Maliit server via input context
plugins. Maliit is an open source framework (LGPL 2) with open source
Visit http://maliit.org for more information about the project.
Who contributed to this release?
* Jan Arne Petersen
* Krzesimir Nowak
* Michael Hasselmann
* Murray Cumming
* Pekka Vuorela
* Thomas Senyk
What changed in detail?
CHANGES IN FRAMEWORK SINCE 0.94.0
* Requires Qt 5
* GTK+ and Qt 4 input context are moved into a separate rpository/package
* Do not use debug config for unit tests
* Do not abort if there are no plugins.
* Improvements for QML plugins
- Notify qml keyboard when editor target focus changes
- Expose editor state better to QML input methods
- Replace correctionEnabled with predictionEnabled in qml interface
- Enhanced QML interface event sending
* Use QScreen::availableSize to calculate screenSize
* Add window group class managing plugins' QWindows
- Replaces surface abstraction
* Remove CONFIG options
* Remove MIndicatorServiceClient
* Use QDBus instead of glib-dbus
* Remove unused code
* Update Wayland support to latest protocol changes
* Add support for input region also on wayland
* Add a proper Platform class
* Remove unneeded plugin factories
CHANGES IN PLUGINS SINCE 0.94.0
* Replaced the QGraphicsView renderer with a new renderer based on
QtQuick2 and QML
- Word candidates are not supported by the QML renderer yet
- (Sound) feedback does not work yet
* Adapt to maliit-framework changes
- Switch to Qt 5
- Replace AbstractSurfaces with QQuickView
* Due to QTBUG-18092, Maliit Keyboard will produce warnings when
compiling against Qt4. A recent compiler (gcc-4.7) or Qt5 is required.
* Documented styling profiles in maliit-keyboard/STYLING.
* make check also verifies language layout files against DTD
* Improved documentation for AbstractFeedback, WordEngine,
AbstractWordEngine, KeyAreaConverter and AbstractTextEditor.
* New LanguageFeatures class to deal with language-dependent features
such as auto-caps.
* New plugin settings:
- auto-caps-enabled: Looks for punctuation marks and auto-capitalizes
the next letter.
- hide-word-ribbon-in-portrait-mode: This can be used to save screen
real estate in portrait mode (but disables word prediction).
- auto-correct-enabled: Use the primary word candidate instead of
what the user typed, if the word is not in dictionary. This
happens on pressing space or return.
- word-engine-enabled: This can be used to disable both word
prediction and error correction. Notice that if Maliit Keyboard is
compiled without preedit support then this setting has no effect.
- feedback-enabled: This controls (audio) feedback when pressing
keys. The current styling profile needs to provide audio files for
this setting to take effect.
* Preedit activation allows the user to edit previously entered words
and get full word engine support.
* Allow preedit styling.
* Added a HUNSPELL_DICT_PATH parameter to qmake:
- Use this if your distro uses a different path for dictionaries (like
Fedora which keeps them in /usr/share/myspell).
* Users can add words to custom dictionary by long-pressing the space
key for unknown words. Users need to confirm before the new word is
added to the custom dictionary.
* Implemented action key overriding:
- It is possible to control the label and icon of an action key from
the application via Maliit attribute extensions.
* New nokia-n9 with Droid fonts style
- Use qmake MALIIT_DEFAULT_PROFILE=nokia-n9-droid to activate this.
* Allow fonts to be styled:
- The font name for each layout can be specified.
- If the font is not available system-wide then it is possible
to specify a font file.
- See new nokia-n9-droid style for example use.
* Extended and broke XML language file format:
- Instead of using the "extended_labels" attribute of <binding>,
use an <extended> child of <key>. It allows us to specify extended
keys with actions, with icons or extended keyboards with several
- Instead of using the "shift" and "alt" attributes of <binding>, use
a <modifiers> child of <binding>. This clearly shows that the
toplevel <binding> is a fallback, when shift is pressed, but no
<binding> for this modifier was specified.
- Allow specifing of a (custom) icon for each key. for instance:
<binding icon="square-smiley" label=":-]" />
This assumes square-smiley.png can be found in the images directory
of the current styling profile. The label text is sent to the
application as the preedit/commit string, but not the icon.
- For a concrete example, please check
That is a special layout that is only installed in debug mode, to
keep regular users safe from it.
- All language layout files have been updated to the new format. The
maliit-keyboard/tools/update-lang.pl script can be used to convert
old language layout files to use the new format.
* Added coverage reports.
- The build system now compiles the project for coverage in
coverage-build and places coverage reports in coverage-reports.
To get coverage reports, generate Makefiles with qmake and then run
'make coverage' from the project's toplevel directory. Later, after
some changes in source code, you can enter the coverage-build
directory and run 'make coverage' to recompile the project, rerun
the checks and regenerate the reports.
Note that a recent lcov is needed because the older ones might
have issues with finding the source files.
* More tests
- Language and styling directory can be changed for tests.
- maliit-keyboard/tests/language-layout-loading tests layouts
(including parsing and modelling), basic styling support and pixel
perfectness wrt. spacer elements.
- maliit-keyboard/tests/editor tests word correction and auto
- maliit-keyboard/tests/preedit-string now tests the word engine,
preedit activation and cursor position.
- maliit-keyboard/tests/word-candidates/ now tests word ribbon
- maliit-keyboard/tests/word-candidates/ tests word-engine, preedit,
word candidates, auto-correct-on-commit, preedit-enabled.
CHANGES IN INPUTCONTEXT-GTK
* GTK+ input context moved into a separate repository/package
CHANGES IN INPUTCONTEXT-QT4
* Qt 4 input context moved into a separate repository/package
* Fix some quick input method docs a bit.
* Fix build when building without CONFIG+=wayland
* Fix build with CONFIG+=wayland.
* Fix unused parameter warning.
* Fix minputmethodquickplugin test for Qt 5
* Fix private include and use QT+=gui-private
* Fix some QDBus issues.
* Fix plugins windows are never added to WindowGroup
* Fix showing of nemo-keyboard
* Fix qdbus interface and adaptor generation
Jan Arne Petersen
More information about the Maliit-announce