Issue 318

15th December 2013 by KDE Commit-Digest Team


Marta Rybczynska
Alex Fikl
Giacomo Barazzetti
Jürgen Appel

This Week...

Marble adds support for bicycle routing, showing journey duration for OSRM routing. KHelpcenter adds alphabetical sorting for modules and category reorganization to make it easier to use. Akonadi speeds up appending new items. Plasma improves change wallpaper animation. Qt5/KF5 effort includes porting and enabling SMB kioslave to Qt5/KF5.


Commits 1867 by 139 developers
Open Bugs 21204
Open Wishes 15919
Bugs Opened 263 in the last 7 days
Bugs Closed 233 in the last 7 days

Commit Summary

Module Commits
Files Developer Commits
Laurent Montel
Alex Fiestas
Albert Astals Cid
Milian Wolff
Sébastien Renard
Hugo Pereira Da Costa
Martin Gräßlin
Boudewijn Rempt
Dmitry Kazakov
Burkhard Lück

Internationalization (i18n) Status

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

Bug Killers

Person Bugs Closed
Boudewijn Rempt
Jekyll Wu
Christoph Feck
Dmitry Kazakov
Gilles Caulier
Christian Mollekopf
Albert Astals Cid
Laurent Montel
Frank Reininghaus
Dawit Alemayehu

Commit Countries

Commit Demographics




  Bug Fixes Features Optimization Security Other



Development Tools

   []   []


[] []    



KDE Base

[] [] []   []


[] [] []   []


[]     []





Networking Tools

[] []    

User Interface








There are 53 selections this week

Bug Fixes


Dennis Nienhüser committed changes in [marble] /:

Give feedback whether owncloud login credentials are correct

GCI task #5900404730626048
REVIEW: 114270

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


Albert Astals Cid committed changes in [okular/KDE/4.12] part.cpp:

Don't show the attachment bar if showOSD is disabled

FIXED-IN: 4.12.1

KDE Base

Michal Humpula committed changes in [kate/frameworks] /completion:

Fix assert in ~QPersistentModelIndex

KateCompletionWidget may call QAIM::setCurrentIndex during a reset of
the model, inside KateCompletionWidget::modelContentChanged(). At this
point, model indices are invalid, but QAIM wasn't informed about it.

The main problem is that KateCompletionModel doesn't use the
(relatively) new {begin,end}ResetModel blocks to make persistent model
indices invalid when we start resetting the model. Instead reset() is used
*after* we have reset the model. However, KateCompletionModel may emit
contentGeometryChanged too early (before a reset()) and hence triggering
QAIM::setCurrentIndex while QAIM is still referencing now invalid
persistent model indices.

Other changes:
Remove contentGeometryChanged. Instead, use layoutChanged() and
modelReset() signals to react to model changes.

This also ports KateCompletionModel away from deprecated QAIM methods
such as QAIM::reset()

REVIEW: 113917
FIXED-IN: 4.13

Sebastian Kügler committed changes in [kde-workspace] plasma/generic/applets/notifications/contents/ui/JobDelegate.qml:

Fix formatting of data amounts

We include a rather generic function here, since KLocale bindings are
gone, and Qt doesn't seem to have QML bindings for this. Feels a bit
hackish, but as we need this elsewhere, we can move this function to
someplace more generic.

Frank Reininghaus committed changes in [kde-baseapps/KDE/4.12] /src:

Update the roles for filtered items if necessary

Since Dolphin 4.11, we store not only KFileItems, but also the
corresponding ItemData struct for filtered items. This is required for
keeping track of the parent-child relationships, and has the nice side
effect that the ItemData need not be re-determined when the items are
shown again.

However, this can become a problem if the visible roles or the sort role
change while some items are filtered.

This is fixed by is fixed by clearing the QHash "values" for the
filtered items if the visible roles change. The hash will be
re-populated with all requested data as soon as the items are shown
again and the data(int) method of the model is called.

Moreover, before the items are inserted into the model after filtering,
we have to make sure that the sort role "Permissions"/"User"/etc. is
present in the hash "values". This is achieved by factoring out the code
that currently does this job for new items in createItemDataList() into
a new function, and calling this in insertItems(), because the same
treatment is required for the previously filtered files.

FIXED-IN: 4.12.1
REVIEW: 114266

Martin Gräßlin committed changes in [kdelibs/frameworks] tier1/kwindowsystem/src/kwindowsystem_x11.cpp:

Properly set the event mask on the windows watched by KWindowSystem

KWindowSystem tried to only change the event mask for windows not
belonging to the same process by using QWidget::find to test whether
the window belongs to the same process or not. This does no longer
work in a QWindow world. If the window belongs to a Q(Quick)Window
QWidget::find returns a nullptr just like for windows of another
process. This caused the XSelectWindow to overwrite the event mask
used by Qt and thus for example mouse events were no longer recieved
at all.

With this change the event mask is updated for all windows, no matter
whether it's an own or a foreign window. But the event mask currently
installed on the window is preserved, so Qt still gets the events it

REVIEW: 114396


Christian Mollekopf committed changes in [kdepimlibs] /:

Propagate socket errors to jobs, and don't emit ERR_COULD_NOT_CONNECT on ssl handshake errors.

ssl handshake errors should trigger the dialog to change the settings and not just silently fail.
Unfortunately ssl handshake errors are only detected when trying to connect to a socket without encryption. Otherwise
the error occurs only on the server side and the socket is simply disconnected.

Dan Vratil committed changes in [akonadi/1.11] server/src/handler/move.cpp:

Correctly detect inter-resource moves

When comparing the source and destination resources, the item
already has the destination collection and resource set, so
we need to compare it with the source resource

FIXED-IN: 1.11.1

Laurent Montel committed changes in [kdepim/KDE/4.12] messageviewer/viewer/mailwebview_webkit.cpp:

Fix Bug 328736 - akonadiconsole crashed in MessageViewer::MailWebView::showAccessKeys

FIXED-IN: 4.12

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

Fix some more potential sources for crashes in the imap resource.

* tasks should be always killed first, in order to avoid them getting signaled by the dropped session resulting form the sessionpool disconnect.
* always delete the tasks immediately, otherwise callbacks can occur to tasks that are already killed and have an invalid state.
* always stop the idlemanager first, and only delete it if it is also available

One particular case that I observed, was a RetrieveItemTask during which the
SessionPool was disconnected while the KIMAP::ItemFetchJob was running,
resulting in the RetrieveItemTask trying to deliver an item while it was already canceled.
This triggered: ASSERT: "d->scheduler->currentTask().type == ResourceScheduler::FetchItem"
Of course we're dealing with the more general case that a ResourceTask must not be called again,
once it's state becomes invalid.


Dmitry Kazakov committed changes in [calligra] /ui:

Fix crash when switching QPainter->openGL canvases

The openGL context should be initialized at least once in the beginning.

This surely fixes:

Please check whether these bugs are fixed now:

Dmitry Kazakov committed changes in [calligra] krita/ui/opengl/kis_texture_tile.cpp:

Fix the border effect when working in Trilinear/HiQuality mode

The borders should be as wide as needed, but not just 1px

Dmitry Kazakov committed changes in [calligra] krita/ui/kis_node_manager.cpp:

Fix the hang-up in the legacy node-editing actions

Special thanks to Anton Saraev for preparing initial patch for the bug!

Node Manager is one of few places in Krita which are not ported to
strokes yet and continues to use KisLegacyUndoAdapter. Ideally its
actions should run asynchronously using KisProcessingsApplicator,
but for now we will just check whether the node is locked or not.

Dmitry Kazakov committed changes in [calligra] /image:

Do not write-access tiles while doing subpixel color picking

Boudewijn Rempt committed changes in [calligra] /ui/canvas:

Warn the user when enabling wraparound mode if opengl is off

If the current canvas doesn't support opengl, wraparound painting will
work fine, but there won't be visual feedback. Warn the user
unobtrusively and remove the stdout feedback line.

Dmitry Kazakov committed changes in [calligra/calligra/2.8] krita/ui/input/wintab/kis_tablet_support_x11.cpp:

Probably fix the support for some non-Wacom tablets

See this Qt bug:

Allan Anderson committed changes in [kmymoney] /:

- Investment transactions dropped without notification during import.

Dmitry Kazakov committed changes in [calligra] /:

Fix crash when cropping a Shape Layer

Dmitry Kazakov committed changes in [calligra] /ui:

Repopulate the state of the Input Manager when Krita gets the keyboard focus

Krita can get the focus even when the user is already holding some key
pressed (e.g. Control). In such a case, clicking with the mouse button
will start painting instead of color picking, which might be a bit of
surprising for a user.

Theoretically, we can steal focus on mouse enter, but this may be
inconvenient for a user in a bunch of usecases.

Dmitry Kazakov committed changes in [calligra] /ui:

Properly fix the Wrap-Around mode

1) The size of the data stored in the patch does not contain the border
2) The exponent of the border formula should be exactly the number of
mipmal levels

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

Fix autobrush size calculation

1) Brush cannot be smaller than 0.1 in size
2) Make it possible to paint something with brushes smaller than 1.0

Networking Tools

Andrea Scarpino committed changes in [choqok] microblogs/pumpio/pumpiomicroblog.cpp:

Emit unload signal only if chokoq is shutting down

Fix that crash after some time



Dennis Nienhüser committed changes in [marble] /plugins/runner:

Support for bicycle routing

REVIEW: 114399
GCI task #5900328763392000

REVIEW: 114410
GCI task #4946439075528704

FIXED-IN: 4.13.0

Mihail Ivchenko committed changes in [marble] /:

Added support for showing journey duration for OSRM routing.
GCI task #5829701784305664
REVIEW: 114461

Diffs: 1, 2, 3, 4 Revision e024253...
Percy Camilo Triveño Aucahuasi committed changes in [analitza] analitzaplot/plotter2d.cpp:

Improved polar grid

Dennis Nienhüser committed changes in [marble] /lib/marble:

Support for basic KML tour file management

GCI task #5772200225275904
REVIEW: 114351

Diffs: 1, 2, 3 Revision 080e5e4...
Illya Kovalevskyy committed changes in [marble] src/lib/marble/cloudsync/OwncloudSyncBackend.cpp:

Journey length and duration to OwnCloud when uploading routes

Marble can store routes and bookmarks in an owncloud server.
The upload API needs information about the length and duration of
routes that are uploaded. This patch adds duration and distance
properties into clound sync.

REVIEW: 114463

Dennis Nienhüser committed changes in [marble] /plugins/runner:

Support for MapQuest AppKeys

Brings back MapQuest routing. Users are required to register for a
MapQuest AppKey and enter it in the mapquest backend configuration.

GCI task #5794101337260032
REVIEW: 114379

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

KDE Base

Sebastian Kügler committed changes in [kde-workspace] plasma/generic/applets/systemtray2/package/contents/ui/ExpandedRepresentation.qml:

Add 'keep popup open' check to systemtray popup

For some widgets contained in the system tray, it can be useful to keep
the popup open for reference (job tracking, monitoring of network
traffic, device manager), so allow the user to keep the popup opened.

Same implementation as in the calendar.

Alex Merry committed changes in [kdelibs/frameworks] /kcoreaddons:

KFormat - Add new KFormat class

KLocale offers a number of extra formatting options not yet available
in Qt. The KFormat class adds these options to KCoreAddons:

* formatByteSize()
* formatDuration()
* formatDecimalDuration()
* formatSpelloutDuration()
* formatRelativeDate()
* formatRelativeDateTime()

The KFormat class can be initialised with any QLocale to use in the
date and number formatting, or the default locale can be easily
accessed via KFormat():

QString result = KFormat().formatDuration(1000);

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision ea1fbbe...
Martin Gräßlin committed changes in [kde-workspace] /:

[kwin/tabbox] Use a QmlComponent instead of a QQuickView for TabBox

By not using a QQuickView it becomes possible to just use a
PlasmaCore.Dialog or a Quick.Window in the TabBox qml and thus it's
possible to simplify the qml code.

To support this a new SwitcherItem is introduced and exported to QML.
It's a simple QObject providing all the properties which used to be
exported to the root context. A declarative TabBox is expected to
use one of these items. The C++ side finds the Switcher and for that
supports the case that the SwitcherItem is the rootItem or a child

A declarative TabBox has also to create a QQuickWindow, e.g. a
PlasmaCore.Dialog. The visibility of that window should be controlled
through the visible property on the SwitcherItem. The underlying C++
implementation assumes that a TabBox only uses one window (it needs to
get destroyed once it's hidden and included in highlight windows).

Thanks to this change it's no longer needed to reload the TabBox
whenever it gets shown or the alternative TabBox gets shown. Instead
the same QML script can get reused. Other created switchers are ignored
as the visible property won't be changed to true.

Diffs: 1, 2, 3, 4 Revision 5f9c3a8...
Alex Turbov committed changes in [kate] /kate/pate/src/plugins:

A bunch of improvements in `expand` plugin:
* introduce decorators to tell to the engine what way it must process results
* introduce a way to process jinja2 templates
* (re)introdude a way to use TemplateInterface2 to edit generated snippet
* UDFs w/o any decorator is a fallback to a `legacy` way: just insert
generated text into a document instead of a name of expansion function ;)
* C++ expansion functions are rewritten using jinja2 templates and allowed
TI2 for postprocessing
* almost all C++ expansions get some new features espacially class generation
expander `cl`... One may try smth like cl(test,@c,!cc,mv)+<Ctrl+E> :)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 6 more) Revision 5ffdf67...
Burkhard Lück committed changes in [kde-runtime] /:

Split KCModules into different Categories in KHelpcenters navigation tree

The KHelpcenter navigation tree has a top level item "Control Center Modules",
an unsorted list of all KCModules (>80 for a full kde main modules install from stable).
This makes this item hardly usable, see

This patch implements:

A) Alphabetical sorting for "Control Center Modules"/"Foo Settings Modules" + "KInfoCenter" items

B) New / changed top level categories in the navigation tree:

1) System Settings Modules -> replaces old "Control Center Modules"
items: see

2) Konqueror Settings Modules (see Konqueror settings dialog)
items: General, Performance, Bookmarks

3) Filemanager Settings Modules (see Konqueror/Dolphin settings dialog)
File Management, View Modes, Navigation, Services, General, Trash
No File Associations, because it is already in System Settings Modules

4) Browser Settings Modules (see Konqueror settings dialog)
Web Browsing, Proxy, Appearance, AdBlocK Filters, Web Shortcuts, Cache,
History, Cookies, Browser Identification, Java & JavaScript, Plugins

5) Other Settings Modules
all other items like e.g. CGI Scripts from kde-runtime

To make full use of these new/changed categories some kcm desktop files in other
modules than kde-runtime need a change of X-KDE-ParentApp from kcontrol to konquerorcontrol,
browsercontrol, filemanagercontrol or othercontrol, but that is not part of this review.
As long as not all desktop files are fixed according to this patch or a necessary change in a
desktop files is overlooked that KCM will be in System Settings Modules like now, but in sorted order.

C) Change wording from "Control Center Modules" to "System Settings Modules" and using
"Foo Settings Modules" for the new categories.
Control Center is from KDE 3, we use System Settings nearly all over GUI and in the whole documentation.



Laurent Montel committed changes in [kdepim] /storageservice:

Add code for supporting webdav service

Diffs: 1, 2, 3 Revision e967a9f...
Jan Kundrát committed changes in [trojita] /:

IMAP: Handle tagged responses even if they contain a response code

The ObtainSynchronizedMailboxTask contained a bug which caused it to skip
processing of the tagged responses when they contained a recognized response
code. This is a real problem when the server sends us something like that in
response to e.g. ESEARCH -- the synchronization process gets effectively stuck
waiting for the UID discovery to finish, which is not going to happen, because
the tagged OK was ignored.

Thanks to Tetja Rediske (Kelsar on IRC) for reporting this and
persuading me that this is not a random fluke on his computer, but a bug in

The KeepMailboxOpenTask does not suffer from this bug because its
handleResponseCodeInsideState() already checked for tag being empty prior to
returning true for "already handled, we're done here" case. It makes sense for
Obtain... and Keep...'s code to be designed the same way, so this patch changes
the ObtainSynchronizedMailboxTask::handleResponseCodeInsideState to use the
checks in the same manner as KeepMailboxOpenTask did already. The other tasks
do not seem to suffer from this problem.

The tests were amended to check for both of these.

REVIEW: 114446

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

Start to implement multi vacation dialog

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision b1cbf53...
Dan Vratil committed changes in [akonadi] /:

Merge branch 'akappend-streaming'

X-AKAPPEND handler now supports payload streaming, which should speed up
appending new items into Akonadi.

If clients supports streaming with X-AKAPPEND, it has to announce the
capability to server via AKAPPENDSTREAMING capability.

This effectively obsoletes the APPEND command, which supports streaming for
a long time now, but can only append items which just one payload part
(i.e. contacts and events, but usually not emails), so it was used only
for single-part items for speed. With X-AKAPPEND supporting streaming,
it can be used instead of APPEND without performance penalties.

Networking Tools

Emmanuel Lepage Vallee committed changes in [sflphone-kde] /:

[ #36521 ] Untie call direction and historystate logic, add ability to highlight missed calls

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

User Interface

Aleix Pol Gonzalez committed changes in [plasma-framework] src/shell/panelview.cpp:

Properly place the panels in a multiscreen environment

Ues QScreen::geometry instead of QScreen::virtualGeometry. The virtual
geometry is, according to the documentation and empirical experience, the
geometry of all the virtualDesktop.

REVIEW: 114362


Development Tools

Milian Wolff committed changes in [kdevplatform] /quickopen:

Optimize: decrease size of ProjectFile by 8 bytes.

The project name can be looked up on demand, it is only required for
the actively selected file in the quickopen model.

As these structs are created in high order, saving 8 bytes here can
simply add up to quite a lot of memory saved. Furthermore, it speeds
things up as copying is faster for smaller structs.

Niko Sams committed changes in [kdev-php] /:

use imports cache for better performance

For deals read this blog post:

Milian Wolff committed changes in [kdevplatform] /quickopen:

Optimize: Use a sorted QList<ProjectFilter> instead of a QMap.

The QMap approach has an overhead of at least 8 bytes per shared
QString key. The benchmarks also show that this version is faster
than the QMap version by approx. 40% according to

Furthermore this will allow us to overwrite the sorting order to
take temporary files generated in out-of-source build directores
into account.

KDE Base

Aaron J. Seigo committed changes in [kde-workspace/KDE/4.11] plasma/generic/wallpapers/image/image.cpp:

improve change wallpaper animation

* delay init of the render animation to when it is actually used
* drop from 500ms to 300ms
* immediately render a 10% mix; start anim from 20%
* OutQuad to get to the final result "quicker"

result: it's perceptibly 'faster' and smoother to change


Christian Mollekopf committed changes in [kdepimlibs] kimap/session.cpp:

Made the socketTimer a bit simpler and more robust.

There is no need for the code to not be a little more forgiving, and we can easily get into a situation
with the timer already running on startNext. e.g. due to socketActivity of due to unhandled data (BYE).

This will hopefully fix the ASSERT people were running into.


Development Tools

Joris Steyn committed changes in [umbrello] /:

Refactor UMLListView to use Object_Factory

The createItem, createUMLObject and createChildUMLObject methods are replaced
by calls to Object_Factory. The only changes to Object_Factory involve
pre-setting a name on classifier list items so there's no behavioural change
(item creation in the list view is 'quick' - no dialog popping up).

Related code cleanup:
* unused diagram creation code
* unused itemRenamed method (UMListViewItem handles that)
* unused lines in createChildUMLObject handling renaming of classifier list
items, which was also handled by the UMLListViewItem (e.g. determining the
return type of an operation based on the new text of a list item)

KDE Base

Sebastian Kügler committed changes in [kde-workspace] /generic:

The killing of plasma-windowed

In the dark winter night, our hero walks along kde-workspace, seeking to
do some minor cleanups, when he and his trustful horse stumbled upon

"Lo and behold", our hero demanded. plasma-windowed still opts to pull
her weapon. Being the fast drawer that he is, our hero puts two bullets
right between the eyes of plasma-windowed and sends it across the Styx,
leaving a note on its tombstone "plasma-windowed had to make place for
the One Shell to Rule Them All".

The end.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision e4eff3e...
Mark Gaiser committed changes in [kde-runtime/frameworks] /:

Port and enable SMB kioslave to Qt5/KF5.

REVIEW: 112463

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 3 more) Revision 728309a...
David Edmundson committed changes in [libkpeople] /plugins/akonadi:

Share a single Akonadi::Monitor between all AkonadiContact instances

REVIEW: 114366

Sebastian Kügler committed changes in [kde-workspace] /generic/applets/notifications/contents/ui:

friendly title: displays just the filename

Also only show the overall progress bar for more than 3 items, makes the
whole thing look cleaner, and is a fallback when the list of jobs
becomes really hard to oversee.


Volker Krause committed changes in [kdepim] /:

Complete the removal of WinCE support from Kontact Touch.

First part is in commit 57e42f1de04.

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


Boudewijn Rempt committed changes in [calligra] /:

Remove Nepomuk integration

The default was the xml-file backend. The nepomuk ingegration was
basically unused, and having everyone use the same backend makes
support a lot easier.


Albert Astals Cid committed changes in [ksirk] /:

Remove dependency on Qt3Support

REVIEW: 114359

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