[Maliit-announce] Maliit 0.99.0 released

Jan Arne Petersen jpetersen at openismus.com
Wed Mar 27 06:02:30 PDT 2013

What's new?

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?

* framework:

* plugins:
* inputcontext-gtk:

* inputcontext-qt4:


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
plugins (BSD).

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?

* 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
  - disable-background-translucency
  - disable-dbus
  - enable-qdbus
  - noqml
* 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

* 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.

* GTK+ input context moved into a separate repository/package

* 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
Openismus GmbH

More information about the Maliit-announce mailing list