Issue 339

11th May 2014 by KDE Commit-Digest Team


Marta Rybczynska
Alex Fikl
Giacomo Barazzetti

This Week...

Clang backend of KDevelop gains basic implementation of adjust signature assistant. Kscreen KCM has been rewritten; the interface has two parts: a view with monitors that can be dragged around to reposition screens, and a widget-based part, that provides detailed configuration for each screen, like resolution, rotation, etc. The screen locker gets the KCM back too. Akonadi gets incremental changes for MERGE and tag support for MERGE and APPEND. KMyMoney supports SQLCipher database driver. Plasma Media Center prioritizes photos taken by a camera-like device.


Commits 1477 by 133 developers
Open Bugs 22273
Open Wishes 16089
Bugs Opened 249 in the last 7 days
Bugs Closed 393 in the last 7 days

Commit Summary

Module Commits
Files Developer Commits
David Faure
Laurent Montel
Patrick von Reth
Aurélien Gâteau
Aleix Pol Gonzalez
Alexander Richardson
Vishesh Handa
Burkhard Lück
Marco Martin
Sebastian Kügler

Internationalization (i18n) Status

Language Percentage Complete
Ukrainian (uk)
Swedish (sv)
German (de)
Brazilian Portuguese (pt_BR)
Polish (pl)
French (fr)
Dutch (nl)
Spanish (es)
Bosnian (bs)
Italian (it)

Bug Killers

Person Bugs Closed
Albert Astals Cid
Martin Tlustos
Christoph Feck
Fabio D'Urso
Chao Feng
Marco Martin
Dmitry Kazakov
Vishesh Handa
Dan Meltzer
Jekyll Wu

Commit Countries

Commit Demographics




  Bug Fixes Features Optimization Security Other



Development Tools

[] [] []   []




[] [] []   []

KDE Base

[] [] []   []


[] [] []   


[] []    




[] []    

Networking Tools


User Interface








There are 49 selections this week

Bug Fixes

Development Tools

Albert Astals Cid committed changes in [lokalize/KDE/4.13] src/catalog/gettextheader.cpp:

Fix number of plural forms in files that don't have the plural forms header

lupdate creates .pot files without the Plural-Forms: line, when opening them lokalize ends up in this "if branch" where it adds the line to the header it will write when saving but it does not update the numberOfPluralForms variable so fields with plurals don't show with multiple options to translate (until you modify the file, save it, and open it again since then lokalize will have added the header and it'll work).

With this fields do properly shown on first open.

Acked by Nick, Luigi and Chusslove

REVIEW: 118006


Martin Koller committed changes in [kolourpaint] layers/selections/image/kpAbstractImageSelection.cpp:

convert selection to ARGB32 format so that transparency mask works

according Qt doc, image format must be set to Format_ARGB32Premultiplied
or Format_ARGB32 for the composition modes to have any effect.
This is needed for the transparency mask to work here.

FIXED-IN: 4.13.1

Johannes Zarl committed changes in [kphotoalbum] ImportExport/ImportHandler.cpp:

Fix image import for kim files with external images.

Use relative paths in ImportHandler::copyNextFromExternal().

Albert Astals Cid committed changes in [okular] /:

Improvements to zoom behaviour

No need for double digit precision in the UI
ZoomIn/ZoomOut moves you through the well known steps + fit page, fit width; if you need any other you can always write it manually or use MMB zoom

FIXED-IN: 4.14.0
REVIEW: 112370

KDE Base

Sebastian Kügler committed changes in [kdbusaddons] /:

Update window timestamp before activating from dbusservice

This patch, conditionally on X11, updates the window's timestamp before
activating the window. This is needed for kwin to bring a unique app
window to the front when a second instance is started (which activates
the first one).

Partial fix for (needs small adaption in systemsettings as well):


Vishesh Handa committed changes in [baloo/KDE/4.13] src/xapian/xapiansearchstore.cpp:

XapianSearchStore: Split the string based on + * / - =

When we receive a search string, we typically split it up by spaces and
dots. Then each sub string is checked, if it is <= 3 characters, we use
our own expansion scheme (imperfect) otherwise xapians.

We need to use our own completion scheme because xapian's consumes too
much memory in the case of very few characters. It basically expands the
string to every possible completion result it has in its db, this
results in loads and loads of memory being consumed.

We now split based on some extra characters so that when searching for
'2*2=' will not consume all your RAM in the case when your DB has many
words starting with 2.

FIXED-IN: 4.13.1

Andrea Iacovitti committed changes in [kdelibs/KDE/4.13] khtml/css/cssparser.cpp:

Reject font shorthand property when inherit value is present in font-family subproperty.

FIXED-IN: 4.13.2


Christian Mollekopf committed changes in [kdepim-runtime] resources/imap/retrieveitemstask.cpp:

IMAP-Resource: Fixed stuck BatchFetcher

The continuation request can be delivered while a fetch job is in progress
if we deliver too many messages (which is likely with the uid based fetches
where we can't predict the exact amount of fetched messages). In this
case we need to remember the continuation request, and automatically proceed.

This causes m_fetchedItemsInCurrentBatch to be off by the messages we delivered
too many, but that's not a problem as it means we just deliver too many messages
during every batch.

Christian Mollekopf committed changes in [kdepim-runtime] resources/imap/retrievecollectionmetadatatask.cpp:

IMAP-Resource: Properly count started and completed jobs.

I.e. if no job was started because of no metadata capabilities the job would get stuck otherwise.

Dan Vratil committed changes in [akonadi/1.12] server/src/storage/dbconfigpostgresql.cpp:

Remove space from an argument passed to postgres server

Some users reported problem with starting PostgreSQL when there's a space
between name and value of an argument passed to postgres. Removing the
space fixes problem for them (withouth breaking PostgreSQL for those who
didn't have a problem with the space)

Thanks SergTruf for the patch.

FIXED-IN: 1.12.2

Dan Vratil committed changes in [akonadi/1.12] server/src/storage/dbconfigpostgresql.cpp:

Fix PostgreSQL start when is not removed after non-clean shutdown

When PostgreSQL is not terminated nicely, a pidfile is left behind in db_data,
which will prevent pg_ctl from starting a new PostgreSQL server.

We check for file and verify that postgres server with PID
specified in the pidfile is not running anymore, then delete the pidfile to
allow pg_ctl to start a new server. If the postgres server is still running
(possibly after Akonadi server crash), we try to connect to it right away.

FIXED-IN: 1.12.2


Jan Kundrát committed changes in [sonnet] src/ui/highlighter.cpp:

Prevent an infinite loop when checking multi-paragraph text

I've seen this from my debugger where Trojita got stuck after I typed a couple
of paragraphs using multiple languages. The 'block' was invalid and the
operator<() evaluated to an unexpected value. Either way, attempting to advance
an invalid iterator is not something which would work anyway.

Oliver Kellogg committed changes in [umbrello/KDE/4.13] umbrello/codeimport/adaimport.cpp:


- Fix crash on Ada import seen after primary crash cause was lifted
(followup to commit 3094593)

Ralf Habacker committed changes in [umbrello] /:

Fix bug 'Notes content is not persistent.'

The bug has been fixed by editing note widget text through the documentation window
instead of the special note widget dialog.

This commit open a way to use the documentation window as property editor.


Arjen Hiemstra committed changes in [calligra] /sketch/qml/components:

sketch: Make tooltip work nicely with touch on Win 8

Windows implements its own press and hold behaviour that
sends a right click event, so rather than waiting for
another press and hold, use the right click to show the

Boudewijn Rempt committed changes in [calligra/calligra/2.8] krita/plugins/paintops/filterop/kis_filterop.cpp:

Fix using a transaction in the Filter Op

Otherwise the filters like Gaussian Blur and Unsharp Mask will not work


Dan Meltzer committed changes in [amarok] /:

Update URL for Jamendo Database.

Jamendo has changed hosts. This updates the url to the new location.
The api is deprecated, but it works again at least.

REVIEW: 116741

Yuri Chornoivan committed changes in [amarok] /:
Dan Meltzer committed changes in [amarok] /:

Update Track Position when returning from system tray after Pause.

Amarok wouldn't update the track position when restored from the system
tray. This patch rememdies that. Patch by Abhay Sombanshi

REVIEW: 115122

User Interface

Martin Gräßlin committed changes in [kwin] /qml:

[tabbox/qml] Do not export the item's model data as a variant

The hack to get the model data from the currently selected item to the
areas outside the list view apparently broke in Qt. Now we have to export
the model data elements we actually use.

REVIEW: 118047


Ian Wadham committed changes in [filelight] src/part/progressBox.cpp:

Use contrasting foreground color for pen.


Ian Wadham committed changes in [lskat] src/mainwindow.cpp:

Start a new AI and display for every new game.

LSkat AI would play illogically after you hit New during a move.

Jeremy Paul Whiting committed changes in [kanagram] src/engine/kanagramgame.cpp:

Fix anagram creation duplicating letters when word is short.
Thanks to for the patch.

FIXED-IN: 4.13.1


Development Tools

Sergey Kalinichev committed changes in [kdevelop] /:

Now IDM (Includes/Defines manager) provides all types of
includes/defines, not just user-specified.

REVIEW: 117836

Diffs: 1, 2, 3, 4 Revision 2ab82f0...
Kevin Funk committed changes in [kdevelop] /cpp:

Support for default include path and definitions on CLang compiler.

When I compile Kdevelop using only in my Debian Testing Clang 3.4, the defaults include paths is not recognized. In the code I will see that the functions are only for GCC and MSVC, with this patch now with Clang are recognized both, the include paths, and standard definitions.

REVIEW: 117938


David Stevens committed changes in [kdev-clang] /:

Basic implementation of adjust signature assistant. Still needs work, but core
functionallity works. Also, still needs unit tests.

REVIEW: 117922

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 3 more) Revision dd08310...
Sergey Kalinichev committed changes in [kdevplatform] /:

Add reparseProject method into ProjectController.

It can be used when we need to reparse a project, where
significant changes occured, that can't be tracked by current API,
e.g. some defines were modified.

REVIEW: 118031

Diffs: 1, 2, 3, 4, 5 Revision fd0f305...


Gilles Caulier committed changes in [digikam] /:

OilPaint Tool : add support of multicore CPU based on QtConcurrent API.

KDE Base

Sebastian Kügler committed changes in [plasma-desktop/sebas/locale] /:

Bare-bones new Formats KCM

This forms a stab at the the new Locale settings, which need to be
transplanted to QLocale. Currently, this means much coarser setting,
that is no specific settings for the individual items, just a country
setting. From there, we can add back more fine-grained settings,
transplanted from the locale KCM.

Primarily, this makes language settings available to startkde, so the
LC_* variables can be exported.

This is currently non-functional, just a bare-bones KCM, loading a basic
UI file.

Run "kcmshell5 formats" to test.

Martin Gräßlin committed changes in [plasma-workspace] /screenlocker:

Bring back a KCM for the screen locker

Together with adding back the KCM the settings are slightly adjusted to
have them fit the UI without needing a transformation in the KCM.

* timeout is stored in minutes (used to be seconds)
* grace time is stored in seconds (used to be msec)
* lock is enabled by default

Also disabling the locking after idle timeout is no longer possible. An
endless grace made some sense with the screensavers, but not with the
screenlocker. In order to not break an unknown but maybe valid use case
the option is still available, just not exposed through UI.

REVIEW: 118038

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision d144dcd...
Eike Hein committed changes in [plasma-desktop] /kicker:

Actions to add apps to the panel/desktop containments and the task manager.

Containment mutability is taken into account, the smart thing
is done for Folder View (symlink the .desktop file, don't spawn
an Icon applet) and the Task Manager (if found) is asked if it
already has a launcher.

We're pretty unhappy with all the coupling, though it wasn't any
better in Plasma 1. Long-term, a more generic framework to re-
gister launchers and allow containments and applets to work with
that data is to be implemented.

Diffs: 1, 2, 3, 4, 5, 6 Revision 4362272...
Dan Vratil committed changes in [kscreen] /:

Merge branch 'kcm2'

This implements a completely new version of the KScreen KCM, based on
usability research and advices from Bjoern and Heiko.

The UI has two parts: a QML-based view with monitors that can be dragged
around to reposition screens, and a widget-based part, that provides
detailed configuration for each screen, like resolution, rotation, etc.



Christian Mollekopf committed changes in [kdepimlibs] /:

ItemCreateJob: Explicit merge API + support for incremental changes + tag support.

* Merge only by certain identifiers.
* Only merge certain parts of an item (such as flags)
* allow to pass tags with a created/merged item.

Diffs: 1, 2, 3 Revision 782cafb...
Jan Kundrát committed changes in [trojita] src/Gui/ComposeWidget.cpp:

GUI: make sure the composer always has a window title

Simply opening the composer as a new fresh mail, without replying to an existing
subject, would leave the window title uninitialized, which means that the user
would get an ugly "trojita" instead of a nice, localized "Compose mail".

Christian Mollekopf committed changes in [akonadi] /:

Incremental changes for MERGE and tag support for MERGE and APPEND.

Incremental changes make it possible to i.e. only update the flags.

Tag support allows clients to create a new item with tags specified via
\Tag['tagRemoteId'] flag (the flag can be repeated with different
remote IDs to assign multiple tags. The tags MUST exist.

When SILENT is specified on MERGE, the resulting item won't be sent in the response
of MERGE, instead just an UID is sent.

Daniel Vratil is of course responsible for writing the patch ;-)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 2 more) Revision bcae096...
Christian Mollekopf committed changes in [kdepim-runtime/kolab/integration/4.13.0] /imap:

IMAP-Resource: Allow to override the encryption mode.

Some ssl servers advertise an ssl version they don't actually support.
This config-only option allows to override the used encryption mode, and
supports all available options, so the auto-negotiation can be skipped.


Christian David committed changes in [kmymoney] /:

Added support for SQLCipher database driver in KMyMoney

Database backend supports SQLCipher driver. Added a new method to
KMyMoney's SQL driver which stores information if a password is

Also a new QSQLDriver for SQLCipher was introduced.

This is still work in progress as some features are missing (e.g.
encrypt not encrypted database and vice versa, change password). But
install is hard so only sophisticated users and engaged package
maintainer can do that. I do not think this will be useful in near
future. However I wanted to shared my code.

How to install/use this patch:

1) You need SQLCipher, , build and install it (to
my knowledge it is not packed in any major distribution).

2) Get the qt source code (or just the one for QSQLiteDriver) and
build it (needed as this will create the necessary folder hierarchy).

3) If you do not install to default location, enable CMake to find
these folders (SQLCipher install folders, Qt source folder, Qt build folder).

4) Create KMyMoney with ENABLE_SQLCIPHER=ON (default is off)

Forgot: I have no clue how secure SQLCipher is! Just wanted to see if I
can get it running.

REVIEW: 116819

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 34d928b...


Shantanu Tushar Jha committed changes in [plasma-mediacenter] /baloosearch:

Try to prioritize photos taken by a camera-like device

The list of images that we get from Baloo has lot of noise because it
usually contains small images from data files of software, games and so
We do two things-
* Ignore images unless they are wider than 500 pixels
* Make images with EXIF data appear first by giving them preference in
sorting by date/time

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Revision 90b99b1...

Networking Tools

David Edmundson committed changes in [ktp-kded-module] config/telepathy-kded-config.ui:

Group presence handling options in KCM

REVIEW: 114660


Development Tools

Milian Wolff committed changes in [kdevplatform] /:

Optimize PluginController::pluginForExtension for common case.

When we look up an already loaded plugin by its extension, we can
bypass the costly KPluginInfo::fromServices call by just checking
the extension of the loaded plugins directly.

The benchmark shows that this is much faster:

0.00080 msecs per iteration (total: 53, iterations: 65536)
1.1 msecs per iteration (total: 72, iterations: 64)

This is especially noticeable with the new IDefinesAndIncludesManager
plugin, which will be queried for every file we parse. In kdev-clang,
the call to pluginForExtension was a bottleneck when we reload an
already parsed session with many files.

Diffs: 1, 2, 3 Revision f25abde...
Milian Wolff committed changes in [kdev-clang] /:

Do not put Function contexts into the symbol table.

The arguments to functions should not be visible from there. This
should give a noticeable speedup and greatly reduce the size of our
symbol table for large projects.


Gilles Caulier committed changes in [digikam] /dimg/filters/fx:

RadialBlur effect : add support of multicore CPU based on QtConcurrents API. Computation time is divided by 5 with i7 (8 core CPU)

KDE Base

Vishesh Handa committed changes in [kfilemetadata/KDE/4.13] /:

PlainTextExtractor: Use fstream instead of QFile

Also discard the word count. This optimizes the plain text extractor
benchmark from 60 msecs to about 9 msecs.

REVIEW: 117996


Raphael Kubo da Costa committed changes in [kdepim/KDE/4.13] /:

Stop needlessly calling KDirWatch::stopScan().

Not only should the call be unnecessary, but it also causes an infinite
loop when KDirWatch is set to use QFileSystemWatcher: the
KDirWatch::stopScan()/addDir()/startScan() combination makes the slot
where they're called end up being infinitely triggered.

Discussed with dfaure.

REVIEW: 117993

Christian Mollekopf committed changes in [kdepim-runtime/kolab/integration/4.13.0] /imap:

IMAP-Resource: Check available UID's first & retrieve 50 time more flags.

This way we avoid the UID fragmentation problem (we try to fetch a lot of
messages that are not available on the server).
It's also a nice first step towards only syncing a certain time-frame.

Retrieving 50 times more flags than full messages should still result in
low memory consumption while greatly reducing roundtrips.


Development Tools

Milian Wolff committed changes in [kdevelop] /cpp:

Kill the MissingIncludeCompletionModel and worker.

Most of its functionality was already copied in the CompletionContext.
Just removing it showed nearly no regressions in my tests. The stuff
that is required, I now added to other places to make it work.

Also, for the fun of it: Note how not only was the functionality
partially duplicated by the MissingIncludeModel and normal completion
context, no! The doSpecialProcessing method in the model was also
usually called twice, once via updateCompletionRange and once from

Additionally, I don't see the need for a special worker thread here
in the first place. Only if normal code completion fails do we want
the missing include completion items, no?

Since this code is not unit tested at all, please test this! I hope
I did not miss any magic functionality of the model...

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Revision 085996e...


Fabio D'Urso committed changes in [okular/dont-use-docdata-for-annots-and-f] part.cpp:

Remove Okular archive from the Export formats

KDE Base

Alex Fiestas committed changes in [solid] /:

Remove the udisk backend (now we require UDisks2)

It has been pleny of years since we deprecated UDisk1 support, so for
KF5 it does not make any sense to keep it around.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 15 more) Revision 3e3665f...
Martin Gräßlin committed changes in [plasma-workspace] /screenlocker:

[screenlocker] Add a unit test for KSldApp

The unit test so far only tests establishGrab. This is a little bit
tricky as we need a different X Client which grabs pointer or keyboard
to make establishGrab fail. For that two small helper applications are
included which do nothing else than connecting to X and the one grabbing
keyboard the other grabbing pointer.

The applications are started from the test to get the keyboard/pointer
grabbed which results in ::establishGrab to return false.

What this test is not yet able to test is handling the sleep between two
grab attemps.

As the test is using doUnlock() from KSldApp, the implementation is
changed to use xcb for ungrab pointer/keyboard. With XLib the test would
have needed an XSync which would have required to either add the XLib
call to the test or doUnlock or implement the sync using xcb.

REVIEW: 117995

Diffs: 1, 2, 3, 4, 5, 6 Revision 4325433...