Issue 324

26th January 2014 by KDE Commit-Digest Team


Marta Rybczynska
Alex Fikl
Giacomo Barazzetti

This Week...

KDevelop gets a new widget for the code assistant is more flexible in what it looks like and how it behaves; adds a possibility to (de)serialize problems from/to disk; sees various optiizations. KDE-PIM adds support for interval refresh of Google calendars and contacts. In Skrooge, monthly report is now able to display reports on months, quarter, semesters and years. Baloo adds a plugin for Akonadi. libmm-qt implements Oma interface. Umbrello adds additional debug support. Ktexteditor adds a status bar.


Commits 2305 by 136 developers
Open Bugs 21415
Open Wishes 15960
Bugs Opened 233 in the last 7 days
Bugs Closed 180 in the last 7 days

Commit Summary

Module Commits
Files Developer Commits
Christoph Cullmann
Laurent Montel
Milian Wolff
Iñigo Salvador Azurmendi
Sven Brauch
Alex Merry
Miquel Sabaté
David Faure
Aleix Pol Gonzalez
Vishesh Handa

Internationalization (i18n) Status

Language Percentage Complete
Brazilian Portuguese (pt_BR)
French (fr)
Dutch (nl)
Estonian (et)
Galician (gl)
Italian (it)
Danish (da)
Hungarian (hu)
Catalan (ca)
Greek (el)

Bug Killers

Person Bugs Closed
Jekyll Wu
Christoph Feck
Christoph Cullmann
Boudewijn Rempt
Dmitry Kazakov
Gilles Caulier
Alex Fiestas
Albert Astals Cid
Laurent Montel
Joseph Wenninger

Commit Countries

Commit Demographics




  Bug Fixes Features Optimization Security Other



Development Tools

[] [] []   []





KDE Base

[] [] []   []


[] []    


[] []    





Networking Tools


User Interface








There are 58 selections this week

Bug Fixes

Development Tools

Heinz Wiesinger committed changes in [kdev-php] /:

Fix support for PHP namespaces.

Make sure use declarations actually find their original declarations
and implement lookup for definitions within the same namespace but
in a different file.
Also handle name conflicts.

REVIEW: 115158

Heinz Wiesinger committed changes in [kdev-php] /:

Support the syntax for class member access on instantiation.

This adds support for syntax like (new Foo())->bar() as introduced
in PHP 5.4.

The bug, that ($a)-> still offers completion even though it is
invalid syntax (stupid PHP) remains though.

REVIEW: 115304

Ralf Habacker committed changes in [umbrello] /codeimport/kdevcppparser:

Support hex digits in numeric literals.

Sven Brauch committed changes in [kdev-python] codecompletion/context.cpp:

only show the string formatting items when full completion is used

Practical testing shows it's just too intrusive to always show it.
Most strings which you type don't actually need it so it's annoying when
it's always there.
The problem is that this makes the feature quite undiscoverable; I'm not
sure how to fix that.

Ralf Habacker committed changes in [umbrello] /codeimport/kdevcppparser:

Evaluate macro expressions.

Ralf Habacker committed changes in [umbrello] umbrello/codeimport/cppimport.cpp:

Add parser errors to log window.



Dennis Nienhüser committed changes in [marble] src/lib/marble/GeoDataTreeModel.cpp:

Show country code of placemarks in brackets (if known)

Helps distinguishing search results of cities with equal names

REVIEW: 114227


Gowtham Ashok committed changes in [digikam] utilities/maintenance/imagequalitytask.cpp:

Fixed imgqsort huge memory leak

KDE Base

Martin Gräßlin committed changes in [kde-workspace/KDE/4.11] /:

Allow windows to specify that they should not get animated on window close

By setting the X property _KDE_NET_WM_SKIP_CLOSE_ANIMATION to 1 a window
can request to be excluded from any close animation. This property is
read in Toplevel, so that it is available to both Client and Unmanaged.

If the window has this property set the Scene suppresses the paintWindow
loop of the Deleted. Thus no effect needs to be adjusted. But an effect
using drawWindow directly would still be able to render the Deleted as
there is no suppression.

Furthermore the property is passed to the EffectWindow so that an
Effect can make use of this functionality and not start the animation
in the first place.

REVIEW: 115288

Backported from 9497b4ddb681ac50dbe9c015e05a3f12fd496da8

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Revision 41c7767...
Marco Martin committed changes in [kde-workspace] plasma/desktop/qmlpackages/desktop/contents/applet/CompactApplet.qml:

dbusmenu is async: systrays will race to show menu

don't show a menu if __processClick happened more than one second ago.
this makes the systray the did not generate the click to ignore the menu ready signal.
It's a pretty bad solution, it would need something better.

Albert Astals Cid committed changes in [kate] part/view/kateviewinternal.cpp:

Fix broken scrollbar when opening remote files

Acked by Christoph

FIXED-IN: 4.12.2

REVIEW: 115235

Alex Fiestas committed changes in [bluedevil/1.3] /daemon/obexftpkded:

Remove ObexSession from m_sessionMap when the object is destroyed

Joseph Wenninger committed changes in [ktexteditor] /:

The message that appears after loading, if lines have been wrapped because of being longer than the configured limit allows now to temporarily raise the limit and reload the file. Once there are working remote io-slaves this has to be tested if it also works in that case. For local files it works

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision abdfa80...
Kåre Särs committed changes in [kate] /:

Fix XML indentation after self-closing tags

FIXED-IN: 3.12.2

Thomas Lübking committed changes in [kde-workspace/KDE/4.11] /:

merge buffer_age render into general render code

avoiding the blocking swapinterval detection causes
issues in the timing strategy and prevents protection
against CPU overload on the nvidia blob

FIXED-IN: 4.11.6
REVIEW: 115306


Jan Kundrát committed changes in [trojita] /Imap/Model:

net: Connect to the network even when the QtBearer is missing

On Gentoo, the dev-qt/qtbearer package was previsouly not properly added to
RDEPEND, which resulted in people not having it available. This resulted in
Trojita asking Qt to open a network session whose configuration was not actually
valid, which failed (no surprise on that one). Unfortunately, this error was not
user-visible at all, unless they opened the debug log themselves (and we already
know that nobody does that -- I wouldn't do it, either).

This patch adds a speculative shortcut to the network session management -- if
Qt claims that there is no configured network profile, we will assume that it is
wrong and try to connect anyway.

In addition, errors related to the network session establishment are now
communicated properly to the user.

Thanks to Stefan de Konink (skinkie on IRC) for a bugreport.

REVIEW: 115131

Sergio Luis Martins committed changes in [kdepim/KDE/4.12] calendarviews/agenda/agendaview.cpp:

agendaview: Don't crash when reselecting a deleted item.

before fillAgenda() recreates all agenda items it first stores
which one was selected, to re-enable the selection afterwards.

There might be cases where d->mAgenda->lastSelectedItemId() doesnt
exist anymore.

Christian Mollekopf committed changes in [kdepimlibs] /:

React to collection changes that cause a collection to match a filter.

Some obvious cases were:
* if you create a collection in kmail it is not displayed until kmail is
restarted (the mimetype arrives via a dataChanged signal)
* kolab folders were visible in kmail until restarted

Those cases are now properly handled by adding/removing the collection as

REVIEW: 115145

Dan Vratil committed changes in [akonadi/1.11] /:

Clear cached queries before closing database connection

This works around a crash in QPSQL driver in Qt 4, where destroying QSqlQuery
after QSqlDatabase connection has been closed apparently leads to a crash.

We now clear all cached QSqlQueries belonging to the same thread as the
DataStore being destroyed before it closes the connection.

FIXED-IN: 1.11.1

Sandro Knauß committed changes in [kdepim/KDE/4.12] messagecomposer/composer/keyresolver.cpp:

make it possible to manually select untrusted PGP keys

Fixes a bug in method "selectKeys", when manually selecting one or more
keys which are not marked as trusted. Method "selectKeys" is only called
from method "getEncryptionKeys" in lines: 1656, 1696

(patch written by kolAflash, sponserd by me)

FIXED-IN: 4.12.2
REVIEW: 115182


Boudewijn Rempt committed changes in [calligra] krita/image/

: Fix merging with layer below

Merging with a layer below with low opacity or with inherited alpha now
works fine in more situations.

Abnormal blending mode are still not working properly.

Merging a layer with inherit alpha on over a layer without this option
may still give too much pixels, that should be transparent.

Patch by Nicolas Brack. Thanks!

Boudewijn Rempt committed changes in [calligra] /plugins/extensions/dockers/advancedcolorselector:

: Make the saturation slider behave

Patch by Wolthera. Thanks!

Dmitry Kazakov committed changes in [calligra] /plugins/paintops/libbrush:

Fix the crash when using multihand tool with some complicated brushes

Right now the brush server returns the pointers to the brushes instead
of the copies of them, so when changing its parameters, the change is
shared among all their users. For now it is an acceptable behavior,
because even the Multihand Brush Tool uses the same brush for all the
"hands". But we should ensure that we don't reset internal state of
the brush when reloading it with the same config options.


Networking Tools

Andrea Diamantini committed changes in [rekonq] /urlbar:

Get sure fast typing work!

REVIEW: 115223
(PS: Many thanks for this, Mikhail...)


Development Tools

Ralf Habacker committed changes in [umbrello] /codeimport/kdevcppparser:

Add debug support to class Parser, Lexer and PreprocessLexer.

This should help to find cpp parse problems easier.

Debug support can be enabled for several classes through the debug window (STRG-D).

Ralf Habacker committed changes in [umbrello] /:

Add log dock widget, which is currently used by the cpp code import.


Aleix Pol Gonzalez committed changes in [kdevplatform/newgitcommits] /:

Make it possible for VCS plugins to integrate with revision

Makes it possible to the VCS Plugins to provide the patch instance
that will be used instead of having it created.
Also it makes it possible for those patches to provide further
information like an additional patches or actions()

Diffs: 1, 2, 3, 4 Revision 4352b63...
Milian Wolff committed changes in [kdevplatform] /:

Make it possible to (de)serialize problems from/to disk.

This patch is by far too huge to get this minor feature working.
The amount of required boiler plate code is amazing. Furthermore
it was very tough to get this working with the existing usage-pattern
of KSharedPtr<Problem>: When one would naively use that on DUChainBase
items you'll get nasty crashes and double deletions when these items
where deserialized from disk and point to mmapped memory regions.

This patch seems to work within the current framework. Yet it is
quite ugly in my opinion. Still, the best I could do.

What we do now is essentially to always copy the problems from disk
and never leave them pointing to mmapped regions.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 0c2eb5c...
Sven Brauch committed changes in [kdevplatform] /:

New declarative based assistant.

This patch implements a new widget for the code assistant,
which is more flexible in what it looks like and how it behaves.
It is placed inside the editor widget instead of at the bottom,
to avoid covering openin toolviews. It adjusts to the user's
editor colors. By default, it's at the top of the view, since
I think it will cover interesting code less often; when you
scroll to the very top, it jumps down to avoid covering text
at the top.
Showing the widget is slightly animated; but just slightly
to avoid being too disrupting. Sames goes for the colors, they
are deliberately just slightly different from the colors used
in the editor to avoid blinking.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 2c9655b...
Aleix Pol Gonzalez committed changes in [kdevplatform/newgitcommits] /git:

Provide a git patch source that knows about staging

This way we can do nice things like choosing what parts of the change
set we want to commit and which we want to leave.

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 212e190...
Heinz Wiesinger committed changes in [kdev-php] /:

Add Trait alias declaration classes.

These help when dealing with trait uses, that allow to both
alias a method identifier but also adapt the visibility of the
used method.

REVIEW: 115280

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

KDE Base

Christoph Cullmann committed changes in [ktexteditor] /:

integrate a decent statusbar

Diffs: 1, 2, 3, 4, 5, 6 Revision 2d0f988...
Alexander Neundorf committed changes in [kate/KDE/4.12] /kate/katebuild-plugin:

build plugin: add support for Intel icpc error messages

The format looks a bit different, an example is included in the
source file.
For gcc users still only one regex will be tested (after the first successfull one).
Intel users will have a bit more overhead.
I didn't measure it, but now the regex is checked only once, and after
that no additional searching in the string is done anymore, so it may
be even a bit faster.


Dominik Haumann committed changes in [kate/frameworks] /src:

double click in empty space of tab bar crates new empty document

Diffs: 1, 2, 3, 4, 5, 6 Revision 0616886...
Sebastian Gottfried committed changes in [kqmlgraphplugin] /:

line graphs: new 'textRole' property

Bar graphs have it, so line graphs should, too. The labels for the
datapoint are displayed directly beneath them, if a role is set.

Martin Klapetek committed changes in [kde-workspace] plasma/desktop/qmlpackages/lookandfeel/contents/osd/Osd.qml:

Add default OSD to our default look&feel package

The OSD features just an icon and (a progress bar OR a text). It uses
standard Plasma components for drawing things, Marco has on his todo
list to turn the progress bar black, will look better when that's done.

When the OSD is showing progress, no text is shown (that's part of the
QML implementation and can be changed by the look&feel package).

REVIEW: 115260

Dominik Haumann committed changes in [kwidgetsaddons] /:

extend KMessageWidget animation info

- bool isHideAnimationRunning() const;
- bool isShowAnimationRunning() const;
- signal void hideAnimationFinished();
- signal void showAnimationFinished();
- add autotest for these functions

REVIEW: 115101

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


Dan Vratil committed changes in [kdepimlibs/akonadi/server-search] /:

Draft a very generic SearchQuery class

SearchQuery holds SearchTerms and represents a query for Akonadi SEARCH command.
It can be (de)serialized into a simple JSON structure.

A subclasses of SearchQuery should be created with predefined key and simple API
to set the conditions, for example EmailSerchQuery::sender(QString, Condition).

Also the unittest is very basic and could use a bit of extension.

Diffs: 1, 2, 3, 4, 5 Revision 0877539...
Christian Mollekopf committed changes in [baloo/akonadiaplugin] /pim:

A baloo search plugin for akonadi.

Diffs: 1, 2, 3, 4, 5 Revision 13a5b1f...
Laurent Montel committed changes in [kdepim] /:

Start to implement gdrive support

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Revision 14f6efd...
Laurent Montel committed changes in [kdepim] /storageservice/box:

Share link implemented

Dan Vratil committed changes in [kdepimlibs/akonadi/server-search] /:

Port ItemSearchJob to new extended Akonadi SEARCH command syntax

The SEARCH command now has more parameters and expects query in JSON
format (the new 'standardized Akonadi query language'), represented
by SearchQuery class.

Methods accepting QString with SPARQL have been deprecated and should
be removed in KF 5. Instead, methods that accept SearchQuery were added.

Dan Vratil committed changes in [kdepim-runtime] /google:

Add support for interval refresh of Google calendars and contacts

The interval (in minutes) can be configured in resource settings dialog.
The resource will then regularly check for changes and updates on the

The feature is disabled by default.

FIXED-IN: 4.13


Stephane Mankowski committed changes in [skrooge] /:

feature: Monthly report is now able to display reports on months, quarter, semesters and years

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 12 more) Revision 9891e19...
Dmitry Kazakov committed changes in [calligra/calligra/2.8] /ui:

Change selection outline decoration

The old selection outline draw method was implemented using the
technique of Bill Atkinson. This method has the disadvantage of not
looking like marching ants with selection borders that aren't parallel
to the coordinate axes.

The new method uses a QPen with a dash pattern to draw the ants, so they
are always displayed as dashes, no matter the angle that borders has.
It is draw in two passes. The first one uses a QPen configured
to draw the selection outline in white. Then, the selection outline is
draw again above the white outline, but this time using other QPen
configured to draw the ants in black.

Also, the outline is drawed without antialiasing.


Martin Tobias Holmedahl Sandsmark committed changes in [kdenlive] src/renderer.cpp:

Increase the lookahead to 25 frames.

MLT can now handle larger lookaheads without adding parameter lag,
and larger lookahead means smoother playback, especially when we
go to a new transition or effect that needs new Movit shaders compiled.

User Interface

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

Add outputOnly property to PlasmaCore.Dialog

The outputOnly property allows to specify that the dialog should not
accept any input. Thus it's an output only window which supports click
through. This is obviously platform specific and so far it is only
implemented for the X11 platform using the shape extension.

The input shape needs to be set once the window is visible and thus
the functionality is bound to the visible changed signal. The code
ensures that the required shape extension version is present and only
fetches it once.

REVIEW: 115139

Diffs: 1, 2, 3, 4 Revision bdc2ad2...


Lukáš Tinkl committed changes in [libmm-qt] /:

implement Oma interface

fixing building against older MM versions

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 7 more) Revision bbe3662...
Simon Edwards committed changes in [pykde5] /:

Added karchive.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 1 more) Revision 46a2134...


Development Tools

Milian Wolff committed changes in [kdevplatform] /:

Get rid of more obsolete, non-functional code.

This time it's the whole broken, un-implemented DUChainObserver
infrastructure which is simply not fed with any information...

This also shows once more that the classes outline plugin really
needs some love...

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 2 more) Revision f7e7a45...
Milian Wolff committed changes in [kdevelop] /cpp:

Port handling of include paths to Path API.

This greatly reduces the amount of conversions required and thus
speeds up parsing a lot.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 83dfb72...
Milian Wolff committed changes in [kdevplatform] /:

Optimize qHash(Path) to not allocate any memory.

We do this by leveraging KDevHash which we feed with the individial
segment's qHash values.

0.00077 msecs per iteration (total: 51, iterations: 65536)
0.00048 msecs per iteration (total: 64, iterations: 131072)

So about 38% faster.

Diffs: 1, 2, 3 Revision 8e22912...
Sven Brauch committed changes in [kdevplatform] /:

Allow abbreviation matching in quickopen

Old benchmarks before/after:

Before: 4.6 msecs per iteration (total: 74, iterations: 16)
After: 5.4 msecs per iteration (total: 87, iterations: 16)

Before: 2.9 msecs per iteration (total: 94, iterations: 32)
After: 7.3 msecs per iteration (total: 59, iterations: 8)

Before: 3.1 msecs per iteration (total: 51, iterations: 16)
After: 3.6 msecs per iteration (total: 58, iterations: 16)


Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 763c912...

KDE Base

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

Keep KWin responsive while loading all effects

Loading all effects during startup can take some time[1] and during
that time the screen is frozen as the loading blocks the compositor.

This change doesn't load effects directly but puts them into a queue.
The loading is controlled by invoking the dequeue through a queued
connection. Thus we get a firing compositing timer in between and can
ensure that a frame is rendered when needed and also react to X events
during the loading.

[1] On my high-end system the set of effects I use take about 200 msec
to load.

REVIEW: 115297


Ian Wadham committed changes in [palapeli] /engine:

Rework/retune puzzle loading. Save generated puzzle. Add scene margin.

Used to have a scene rect change per piece: now there should be one per
scene. Loading seems to go much faster, but there is still work to do
in co-ordinating preview loading, running the loading widget, loading
pieces, positioning pieces and bringing up the final view cleanly.

The generated puzzle is saved so that the user never gets a re-shuffle
if he/she has not started the puzzle yet. The scene margin keeps the
ConstraintVisualizer (ie. the resize handles) clear of the pieces.


Development Tools

Milian Wolff committed changes in [kdevplatform] /:

Kill Kross integration - it isn't working since ages and with the move to KF5 it becomes obsolete anyways.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 88 more) Revision 668af5d...
Aleix Pol Gonzalez committed changes in [kdevelop/frameworks] CMakeLists.txt:

Start porting to frameworks, ported the root CMakeLists.txt file

KDE Base

Alex Merry committed changes in [kimageformats] /:

Import the WebP image I/O code from kde-runtime

The plugin export mechanism has been patched up (including the addition
of the JSON file), and the FindWebP.cmake file is new.

Writing is currently disabled, as it produces broken images.

Autotests are generated using the cwebp and dwebp utilities distributed
with the libwebp reference library.

REVIEW: 115355

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 7177296...