Issue 340

18th May 2014 by KDE Commit-Digest Team


Marta Rybczynska
Alex Fikl
Giacomo Barazzetti
Danny Allen

This Week...

KDevelop sees work on making it possible to select compiler at run-time. KScreen KCM has been ported to KF5. Plasma applets can be dragged both from/to panel and desktop and between different screens. Trojita improves message sorting and recovers better after a connection loss. Skrooge supports defered credit card management.


Commits 1618 by 147 developers
Open Bugs 22392
Open Wishes 16096
Bugs Opened 360 in the last 7 days
Bugs Closed 260 in the last 7 days

Commit Summary

Module Commits
Files Developer Commits
Laurent Montel
Albert Astals Cid
Sebastian Kügler
Marco Martin
Harald Sitter
Jonathan Riddell
Aleix Pol Gonzalez
Martin Gräßlin
Dominik Haumann
Ralf Habacker

Internationalization (i18n) Status

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

Bug Killers

Person Bugs Closed
Christoph Feck
Jekyll Wu
Marco Martin
Laurent Montel
Vishesh Handa
Sebastian Kügler
Gilles Caulier
Martin Gräßlin
Eike Hein
Albert Astals Cid

Commit Countries

Commit Demographics




  Bug Fixes Features Optimization Security Other



Development Tools






KDE Base

[] [] []   []


[] [] []   


[] []    




[] []    

Networking Tools


User Interface

[] []    




[]   []   



There are 61 selections this week

Bug Fixes

KDE Base

Marco Martin committed changes in [plasma-desktop] applets/pager/plugin/pager.cpp:

don't reset the desktop model when windows change

many less unneeded resets and items recreation
the broken tooltip was a curious sideeffect of it

Michael Pyne committed changes in [kcoreaddons] /:

kaboutdata: Move license-related KAboutData enums to KAboutLicense.

In addition to the above, removes a deprecated ctor (and supporting
autotests), and code which was deprecated since KDE4.
I have added an apidox porting note mentioning K4AboutData (the
preferred compatibility route) to compensate.

Another change from the reviewed patch was to correct comments in the
apidox and mention K4AboutData in the class apidox.

ack'ed by ervin. See RR for full description. All tests pass here.


Diffs: 1, 2, 3 Revision 5a7c1d6...
Martin Gräßlin committed changes in [plasma-framework] src/declarativeimports/core/windowthumbnail.cpp:

Do not overwrite event mask in WindowThumbnailItem

The WindowThumbnail needs XCB_EVENT_MASK_STRUCTURE_NOTIFY on the window.
For this it needs to change the window attributes. But it needs to keep
the existing event mask to not break other code. Also it cannot remove
the event mask again, as there is no chance to know whether another
component requires STRUCTURE_NOTIFY.

This fixes the not updating items in the tasks applet as the event mask
needed for KWindowSystem got overwritten.

REVIEW: 118137

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

[declarative/core] Use proper GLXFBConfig for glxpixmap

We need to use a GLXFBConfig which matches the depth of the window
pixmap's depth. So far it used the GLXFBConfig of the GL context.
This worked fine for RGBA windows, but failed for RGB windows on e.g.
some NVIDIA drivers.

After this change the FBConfig of the context is completely ignored,
instead it tries to find a good FBConfig for a given depth.

Whenever a FBConfig for a given depth is found it's inserted in a
cache shared between all WindowThumbnails so that we don't have the
X roundtrips all the time.

REVIEW: 118110

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

XapianDB: We only need the headers for malloc_trim

Sebastian Kügler committed changes in [plasma-desktop] applets/kickoff/package/contents/ui/KickoffItem.qml:

Reset currentItem in ListViews correctly

Without this patch, all items (apps, actions, etc.) would keep selection
state until someone else "steals" it. The problem is that in many cases,
it's not the mouse position that matters which item gets activated, but
the currently selected item in a given listview.

Adding an onExited handler to the onEntered handler fixes this, and thus
the bug that in some cases, the wrong app gets started.

Aleix Pol Gonzalez committed changes in [plasma-workspace] /:

Improve predictability of plasma-shell screen id's

So far we were just enforcing that 0 would be the primary screen. After
this change we will make sure that the rest are layed out horizontally and
then vertically if there's a 2 at the same position.
If a new screen is connected, we'll try to put it in the correct position
following the described situation.

Eike Hein committed changes in [plasma-desktop] applets/kickoff/package/contents/ui/FavoritesView.qml:

Fix various bugs in favorites DND.

- Fix generally incorrect drop target viz positioning and when
the view is scrolled.
- Fix drop row calculation when the view is scrolled.
- Don't offer no-op drops into adjacent slots.
- Some additional safety checks.

Frank Reininghaus committed changes in [kde-baseapps/KDE/4.13] dolphin/src/kitemviews/kfileitemmodel.cpp:

Stop listing children of collapsed folders

Before this patch, KDirLister would continue listing any children of
collapsed folders, even though the children themselves were removed
from the model. This could lead to new items being inserted as
top-level items at some later point, because no parent could be found
for them. This inconsistent model state could lead to a crash later on.

Many thanks to Martin Koller for helping to debug this problem!

REVIEW: 118055
FIXED-IN: 4.13.2

Marco Martin committed changes in [plasma-desktop] desktoppackage/contents/configuration/AppletConfiguration.qml:
Eike Hein committed changes in [plasma-desktop] containments/folder/package/contents/ui/ItemView.qml:

Make sure tracked hovered item is reset to null when leaving delegates.

Fixes a regression from 04bf5d0.

Marco Martin committed changes in [plasma-framework] src/plasmaquick/dialog.cpp:

parentHasFocus false if Qt::WindowDoesNotAcceptFocus

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

Do not set a custom format on QQuickWindows

All QQuickWindows share a default format. By setting a custom format
it overwrites the default and this results in a format without a
stencil buffer being requested resulting in possible rendering errors.

This was used to get an alpha buffer. Instead use the static method
on QQuickWindow to request an alpha buffer.

REVIEW: 118123

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 654287f...
Martin Klapetek committed changes in [plasma-workspace] applets/notifications/plugin/notificationshelper.cpp:

Better notification position calculation

Should prevent popup in the middle of the screen situations

Frank Reininghaus committed changes in [kde-baseapps/KDE/4.13] dolphin/src/settings/additionalinfodialog.cpp:

Allow the widget in the "Additional Information" dialog to resize

REVIEW: 118088
FIXED-IN: 4.13.2

Sebastian Kügler committed changes in [plasma-workspace] applets/digital-clock/contents/ui/DigitalClock.qml:

Improve digital clock's alignment in the panel

Two things, to improve the balance of the digiclock in a horizontal panel:
- Set the label's height to paintedHeight, this helps a bit in using a
balanced horizontal center line
- Give it a bit of spacing top and bottom to not look cramped vertically


Jonathan Marten committed changes in [kdepimlibs] akonadi/tagmodel_p.cpp:

Fix tag data not being updated by a TagModifyJob

TagModelPrivate::monitoredTagChanged() is called as expected,
but in the case where the tag is not being reparented (the
usual case), the new tag is not copied back into the parent's
mChildTags list. This means that TagModel::data() still accesses
the old tag via tagForIndex() and hence does not reflect the


Pali Rohár committed changes in [kopete] kopete/chatwindow/kopeteemailwindow.cpp:

Fix receiver of connect in KopeteEmailWindow

Correct is SLOT (not SIGNAL) for Kopete::ChatSession::typing(bool).

Without this patch typing events were not sent from Kopete Email Window.

Laurent Montel committed changes in [kdepim] /:

Fix Bug 63780 - Auto-render HTML for certain email addresses

FIXED-IN: 4.14

Laurent Montel committed changes in [kdepim/KDE/4.13] /:

Fix Bug 334612 - Selecting text and pressing enter doesn't replace the text but only adds a newline

FIXED-IN: 4.13.1


Jarosław Staniek committed changes in [calligra] /widget/tableview:

Only move to initial top-left position in table view on initial show


Dmitry Kazakov committed changes in [calligra/calligra/2.8] /:

Fix tablet stylus rotation on Linux

The Windows part will be fixed during the upcoming sprint.

Boudewijn Rempt committed changes in [calligra] krita/plugins/paintops/libbrush/kis_abr_brush_collection.cpp:

Fix loading ABR brushes


Lasse Liehu committed changes in [kamera] kioslave/kamera.cpp:

Fix reporting libgphoto2 errors via KIO

KIO::ERR_COULD_NOT_READ expects the error message parameter to be
the file that could not be read. Instead an error message from
libgphoto2 was given. Using KIO::ERR_SLAVE_DEFINED instead allows to
report the libgphoto error as part of the error message.

Example from before: Could not read file Bad parameters.
Example from after: Could not read. Reason: Bad parameters

REVIEW: 117745

Matěj Laitl committed changes in [amarok] /:

CollectionBrowser: do not expand tree needlessly

The reasons were 2:
* we were adding every collection to m_expandedCollections all the
time, which then resulted in their expansion in each slotFilter()
* we were doing auto-expansion even in cases where collection was
updated, not just when user typed something

(fixed in is still 2.9 for consistency with earlier commits)



Networking Tools

David Edmundson committed changes in [ktp-text-ui] /:

Restore showing who is typing in the group chat participants

REVIEWED-BY: Martin Klapetek

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

[ #47726 ] Fix support for selecting contact collections

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 4 more) Revision d343c68...
Martin Klapetek committed changes in [ktp-kded-module] telepathy-mpris.cpp:

Check if the mpris metadata are actually new

It may happen that players emit the "PropertiesChanged" signal several
times during the playback (as for example player's features change)
which normally results in re-setting the same presence. So here's a
check preventing setting the same thing over and over again.

Reviewed-by: David Edmundson

David Edmundson committed changes in [ktp-call-ui/kde-telepathy-0.8] src/call-handler.cpp:

Properly removes duplication of call-ui window for a single channel.

Fixes issue, made by b4626ae5b866464d9abfa2762b979224dbb4b589,
where call-ui dont make call at all, due to the typo in condition.

REVIEW: 118151

User Interface

Martin Gräßlin committed changes in [kwin] kcmkwin/kwincompositing/model.cpp:
Martin Gräßlin committed changes in [kwin] /:

Reparent decoration window by using a QWindow wrapper for the frame

Qt doesn't like that we reparent the decoration using low level xcb
calls. So let's use a QWindow wrapper for the frame and let Qt do
the reparenting itself.

REVIEW: 118159


Jeremy Paul Whiting committed changes in [kanagram] /desktop:

Use KSpeech to speak words if no audio file has been set.

Patch by Debjit Mondal

Diffs: 1, 2, 3 Revision b19976c...


Development Tools

Sergey Kalinichev committed changes in [kdevelop] /plugins/custom-definesandincludes:

First attempt to make it possible to select compiler at run-time.

This introduces CompilerProvider class that provides the parser with
default compiler directories and defined macros.
Also add a GUI option to choose the compiler.


Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 63f8218...
Aleix Pol Gonzalez committed changes in [kdevplatform] /appwizard:

Add a project name validation in the project creation dialog

This patch adds a regex validation for the project name in the project creation dialog. The user can break KDevelop with an abnormal project name. The first attempt was to add a general regex, but this would be to static. So the idea and the following implementation is:

- If the project template file, for example 'cmake_plaincpp.kdevtemplate', provides a 'ValidProjectName' value, this value will be used. This value is a normal regex. For example 'ValidProjectName=^[a-zA-Z][a-zA-Z]+$' is a valid configuration
- If there is no 'ValidProjectName' value, kdevplatform will use a normal regex, in this case '^[a-zA-Z][a-zA-Z0-9_]+$'. With this fallback mode we can guarantee, that templates without a 'ValidProjectName' also have a validation.

If this patch gets accepted I will add this configuration to the templates provided by KDevelop. I will also write a (bigger) patch to add these feature in KAppTemplate - if wished.

REVIEW: 117407

KDE Base

Alex Turbov committed changes in [kate] /:

add "style" attribute to C++ syntax files, so C++ indenter will be disabled
when mode set to "Normal", because latter calls isComment() and isString()
and that leads to assert.

Luigi Toscano committed changes in [kio-extras] /:

kde-info2html: get the shared resource dir instead of the (useless) image path

- the third argument of kde-info2html has not been used for ages. It was
originally to be used for the path of images, but it was soon replaced
by the current code which uses help:/... to find the images. Remove it
and the usage of KIconLoader.
- on the other side the usage of kde4-config to get the path for the shared
css is wrong, and kf5-config is in kdelibs4support (deprecated and higher
tier). So find the shared directory in the kio code and recycle the third
argument of the script for this purpose.

Diffs: 1, 2, 3 Revision 73fa9d7...
Alex Fiestas committed changes in [solid] /:

Adds AddInhibitionJob and Power::inhibit

Api should be ready for review, implementation still not finished since
the inhibition data is not being passed to the backends.

Short example of api:
AddInhibitionJob *job = Power::inhibit(Power::Sleep, "Inhibiting sleep);

InhibitionHolder *inhibition = job->inhibition();

//release inhibition
delete inhibition;

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 583190f...
Aleix Pol Gonzalez committed changes in [kscreen/frameworks] /:

Port of the KScreen KCM to KF5

It is quite verbose as it was using some intrinsic API of QGraphicsView that
is obviously not available anymore.
It seems to work to some extent now, but it would be really good if there
was some testing since I'm unsure about how to test it.

CCMAIL: Dan Vrátil

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 21 more) Revision c7c728b...
Marco Martin committed changes in [plasma-desktop] /:

ability to drag an applet between containments

both from/to panel and desktop and between different screens

David Edmundson committed changes in [plasma-workspace] /:

Show applets from the system tray in Widget Explorer

REVIEW: 118126

Marco Martin committed changes in [plasma-framework] src/plasma/applet.cpp:


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

Make attempts to reconnect after a network error

After switching to offline mode due to a network error, the model tries to
reconnect repeatedly, with increasing timeouts. This is done until either
trojita gets a working connecton, or reconnect attempts are aborted by choosing
network:offline in the menu.

REVIEW: 118079

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

Ubuntu: MessageListPage sorting

This patch makes the Listview load dynamically and force the view
to respect the user sorting prefs on each load. Triggering a
timer while the listview is populating, this benefits in that
we only sort the view once per view instead of using rowsInserted or like,
and reduce unneeded calls to.

The user can also switch sort order from the toolbar and if changed
the user sort order preference will be respected when going between

navigation-menu.svg is part of the Ubuntu-mobile-icons package
available from
and is available under the CC-BY-SA 3.0. Copyright by 2004-2012,
Canonical Ltd.

REVIEW: 118181

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


Boudewijn Rempt committed changes in [calligra] /plugins/paintops/resourcemanager:

Add a dialog to import resources and bundles

Diffs: 1, 2, 3 Revision 2b11831...
Dmitry Kazakov committed changes in [calligra] /ui/input:

Added extensive tablet debugging on Windows

Right now, initialization debugging is always enabled (that is not
configurable), but the raw wintab values dumps are activated alongside
the usual event dumps.

Ralf Habacker committed changes in [umbrello] /dialogs:

Add initial property dialog page change detection logic.

Stephane Mankowski committed changes in [skrooge] /:

feature: Defered credit card management

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision fbd18ea...
Matthias Klumpp committed changes in [kmymoney] /:

Add AppStream metadata file

Oliver Kellogg committed changes in [umbrello] /:

Continuation of support for Rose import of controlled units:

- At function loadFromMDL change argument "bool requireDesign" into
"UMLPackage *parentPkg" defaulting to NULL. Pass parentPkg into call to

- In function handleControlledUnit pass parentPkg into call to
- At function petalTree2Uml change argument "bool requireDesign" into
"UMLPackage *parentPkg" defaulting to NULL. If parentPkg is non NULL then
create an UMLObject::ot_Package with root->initialArgs()[1] as name and
parentPkg as parent. Reassign parentPkg from the object created, and
pass parentPkg into call to umbrellify.

Sven Langkamp committed changes in [calligra] /plugins/extensions/dockers/compositiondocker:

add ability to update a composition

Ralf Habacker committed changes in [umbrello] /dialogs:

Auto detect running property dialog in properties window.

Oliver Kellogg committed changes in [umbrello] /:

(In reply to comment #11)
> handleControlledUnit(): New. To be fleshed out Real Soon Now.
Real Soon Now has turned into 7 years...

- Start fleshing out function handleControlledUnit - tested so far only
using .cat file, not .sub file.
- Remove duplicated function names in texts at uDebug() / uError()
- At function petalTree2Uml add optional bool argument requireDesign
defaulting to true. If requireDesign is false then:
- Do not check for root->name() == "Design"
- Do not attempt root->findAttribute("root_category"); instead, set
root_category to root directly.
- Do not call umldoc->setCurrentRoot(), the current root was already set
by the loadFromMDL call on the .mdl file (with requireDesign = true.)
- Do not call importView() for the UseCase, Component, or Deployment view.

- At function loadFromMDL add optional bool argument requireDesign
defaulting to true. Pass requireDesign into call to petalTree2Uml.


Dan Meltzer committed changes in [amarok] /:

Initial Work on a notification center backend for amarok. Based on the quassel notification center code

Diffs: 1, 2, 3 Revision 7c69a3f...

User Interface

Andrew Lake committed changes in [breeze/working] /:

Updated colors and QtCurve settings in case QtCurve is used as the window decoration. Also added a Breeze Light color scheme.

Martin Gräßlin committed changes in [kwin] tabbox/qml/clients/present_windows/contents/ui/main.qml:

[tabbox/grid] Use RowLayout for the item's caption

Simplifies the code quite a bit by no longer needing an extra item for
the selected caption.

As a nice side effect it fixes a binding loop.

REVIEW: 118112


KDE Base

Aleix Pol Gonzalez committed changes in [plasma-workspace] shell/shellcorona.cpp:

Improve how the primary screens are sorted

Only take it into account if the primary value is different in both screens

Marco Martin committed changes in [plasma-workspace] applets/systemtray/plugin/protocols/plasmoid/plasmoidtask.cpp:

slightly defer plasmoid init

since when the plasmoid is gettng created other events may be processed,
slightly defer it's init() so that if a malformed mpris implementation
(hello VLC) adds the plasmoid to tasks immediately, so we can ensure
that every plasmoid gets onle and only one instance

David Edmundson committed changes in [plasma-framework] /declarativeimports/core:

Port IconItem to native QSGTexture

Port IconItem to native QSGTexture including the animation.
This will save constantly uploading a new texture to OpenGL throughout the animation.

REVIEW: 116024

Diffs: 1, 2, 3, 4, 5 Revision 096c6d2...


Pali Rohár committed changes in [kopete] plugins/statistics/statisticsdb.cpp:

Turn off synchronous mode for sqlite database in statistics plugin

Synchronous mode does not have any real advantages here and only slow down
writes to database. When it is turned off it can dramatically speed up kopete
statistics plugin when changing status from online to offline or on exit.

Tested with 150MB big database:
before patch: exit time about 10s
after patch: exit time about 1s


Roney Gomes committed changes in [kbounce] /:

Performance Improvementes

Thomas Lübking sent a few weeks ago a patch proposing some fixes to
KBounce's performance issues, most of them related to intese CPU usage
due unecessary calls to the game renderer.

This commit is enormous because I added some extra code on top of Thomas
work. What I did:

Changed to static the access modifier of the renderer shared by all
KBounceWall instances.

Created a new static method for reloading the sprites of a wall. This
method is called during each resize but also after a theme change.

Thomas didn't see spot that bug thus after a theme change the wall kept
being painted with the sprite used in the previous theme.

Thomas's work is better explained in the Review Board entry referenced

REVIEW: 117785

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


KDE Base

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

Locale KCM is replaced by Formats KCM