Issue 278

10th March 2013 by KDE Commit-Digest Team


Marta Rybczynska
Jürgen Appel

This Week...

Amarok now supports filtering tracks to scrobble to, transcoding into Opus format (if ffmpeg supports it). A new model appears to provide easy access to KWin's Clients from QML; better screen edges support. Improved settings handling in KDE Telepathy. Kate adds a filter to project search mode. Work on an initial port of Akonadi server to new notifications; a job for discovering all special collections.


Commits 2332 by 171 developers
Open Bugs 21125
Open Wishes 15854
Bugs Opened 377 in the last 7 days
Bugs Closed 411 in the last 7 days

Commit Summary

Module Commits
Files Developer Commits
Laurent Montel
Pino Toscano
Chetan Khona
Albert Astals Cid
Marco Martin
Aleix Pol Gonzalez
David Edmundson
Boudewijn Rempt
Daniele E. Domenichelli
Giovanni Sora

Internationalization (i18n) Status

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

Bug Killers

Person Bugs Closed
Jekyll Wu
Albert Astals Cid
David Edmundson
Alex Fiestas
Thomas Lübking
Laurent Montel
Boudewijn Rempt
Christoph Feck
Andrea Diamantini
Oliver Henshaw

Commit Countries

Commit Demographics




  Bug Fixes Features Optimization Security Other



Development Tools






KDE Base

[] [] []   


[] [] []   []






[] [] []   

Networking Tools

[] [] []   

User Interface








There are 59 selections this week

Bug Fixes

KDE Base

Cedric Bellegarde committed changes in [kde-workspace] appmenu/menubar.cpp:

Do not use panel-background svg as it only works with Air

Andrea Iacovitti committed changes in [kdelibs/KDE/4.10] khtml/rendering/render_form.cpp:

Take into account the clearButton width, that already takes some room of
lineedit's contents, when rendering lineedit's padding.

FIXED-IN: 4.10.2


Christophe Giboudeaux committed changes in [kdepim-runtime] resources/maildir/libmaildir/maildir.cpp:

When removing folder A, also remove

until now, the contents of the subfolders in have already been
deleted but the directory structure remained, so a subsequent creation
of a folder with the same name would have failed.

REVIEW: 109198
(cherry picked from commit f529d75a1bee0f17115399d59cfc1082ea5824fb)

Laurent Montel committed changes in [kdepimlibs/KDE/4.10] kpimutils/linklocator.cpp:

Fix Bug 243774 - Closing angle bracket incorporated in autodetected hyperlinks

FIXED-IN: 4.10.2

Laurent Montel committed changes in [kdepim-runtime/KDE/4.10] resources/pop3/pop3resource.cpp:

Fix Bug 279325 - access to kwallet is not closed after closing kmail

Close kwallet when we go offline, and clear password

David Faure committed changes in [kdepim-runtime] /imap:

Trash folders didn't have the special attribute set.

Ensure that it's set now, when selecting a folder in the GUI,
and ensure that we handle the migration of existing configurations.

Diffs: 1, 2, 3 Revision c6a1a50...
David Edmundson committed changes in [ktp-desktop-applets] presence/src/presence-applet.cpp:

Don't add pointless margin to presence applet

Makes icon appear the same size as other icons in sys-tray
Remove duplicate setMinimumSize


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

IMAP: ignore almost-offline connections when checking whether to update the capabilities

fixes #612

Sandro Knauß committed changes in [kdepim/KDE/4.10] messagecomposer/util.cpp:
Andras Mantia committed changes in [kdepim-runtime/KDE/4.10] resources/maildir/libmaildir/maildir.cpp:

Try to create missing maildir directories before giving up.

FIXED-IN: 4.10.2

Wolfgang Rohdewald committed changes in [akonadi] /:

if nepomuk is not available, return correct warning

the code was assuming that if there is a searchService object,
then nepomuk is avaiable - which is a wrong assumption.

Also improve error messages

REVIEW: 109299

Diffs: 1, 2, 3, 4 Revision 81212af...
Frank Osterfeld committed changes in [kdepim-runtime/akregator_port] resources/owncloud/rss/jobs.cpp:

Set correct content type

Feed creation works now

Frank Osterfeld committed changes in [kdepim/akregator_port] akregator2/src/mainwidget.cpp:
Laurent Montel committed changes in [kdepim] /:

Fix Bug 16270 - configure the headers visible in the reader pane

FIXED-IN: 4.11


Marijn Kruisselbrink committed changes in [calligra] sheets/DependencyManager.cpp:

Fix problem where calligra sheets would incorrectly mark cells with formulas without dependencies as #CIRCLE.

Dmitry Kazakov committed changes in [calligra] /plugins/tools/tool_transform2:

Fix a crash in the transform tool

The currentNode() can be changed when the stroke is finished
by switching the layers.

Marijn Kruisselbrink committed changes in [calligra] /:

Fix bug in YEARFRAC function. Third parameter is optional, so don't try to access it blindly.

Matus Uzak committed changes in [calligra] /:

Handle UTF-8/UTF-16 encoding when processing Document Information.


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

LastFmMultiPlayableCapability: better string on unavailable streams

* Clarify message when streams are not available.


Daniel Faust committed changes in [amarok] /:

Fix: Don't remove common labels when editing the tags of multiple tracks

When editing the tags of multiple tracks without editing the labels, common labels would be removed.


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

{CollectionTree,PlaylistBrowser}View: fix doubleclick behaviour

Commit 2310a19341e583fc made it impossible to add an item to playlist
by double click in double click mode. This patch restores and tweaks
the original algorithm. (to keep bug 279513 fixed)

Used ideas from a patch by Yichao Yu, but implemented differently.

P.S.: Ralf, event heard about QRect::contains()? :-)

REVIEW: 109162

Networking Tools

Daniele E. Domenichelli committed changes in [ktp-contact-list] contact-list-widget.cpp:

Delay setting the model until the account manager is set.

This fixes the weird horizontal scrollbar bug appearing when the
vertical scrollbar appears.

Reviewed-by: Martin Klapetek
Reviewed by: David Edmundson

FIXED-IN: 0.6.0

Daniele E. Domenichelli committed changes in [ktp-text-ui] data/styles/SimKete.AdiumMessageStyle/Contents/Resources/main.css:

Handle mention in SimKete theme

FIXED-IN: 0.6.0

Lukas Appelhans committed changes in /trunk/KDE/kdenetwork/kget/transfer-plugins/multisegmentkio/transfermultisegkio.cpp:

Handle the case when KIO returns an empty filename

Pali Rohár committed changes in /trunk/KDE/kdenetwork/kopete/kopete/contactlist/kopetecontactlistview.cpp:

Do not ignore action moving contact to group from Gui if some accounts are offline

Instead ignoring action "move contact to group" when some accounts are offline
this patch ask user warning message if he really want to move contact to group.
This can be usefull if some accounts are offline and user want to move metacontact
(with contact belong to offline account) into other group.

REVIEW: 6773

Volker Härtel committed changes in /trunk/KDE/kdenetwork/kopete/plugins/nowlistening:

This commit solves a bug in kopete nowlistening preferences kcm

To reproduce the bug in nowlistening preferences kcm:

- open the preferences for nowlistening plugin
- in the third tab check the checkbox and choose a mediaplayer
- close the dialog
- open preferences again (the checkbox is now already checked)
- choose another mediaplayer
- close the dialog
==> the mediaplayer-selection is not applied
test that by opening the preferences again and look

This patch replaces the k3listbox by a klistwidget, which solves the
problem, and seems a good idea anyway because k3listbox will be removed

Martin Klapetek committed changes in [ktp-kded-module] telepathy-module.cpp:

Fix auto away not restoring previous presence the first time

FIXED-IN: 0.6.0
REVIEW: 109301

Eli MacKenzie committed changes in [konversation] src/irc/server.cpp:

Flush inbound queues when flushing outbound queues

If a quit message comes through at the same time as the socket is
closed by the server, a mix of quit and reconnect actions occur.
This is caused by the return to the event loop between pulling the
data out of the socket and actually processing it. This would close
all channels, for instance, because our nick is still in the nicklist
when the quit message goes through the inputfilter.

User Interface

Hugo Pereira Da Costa committed changes in [oxygen-gtk/1.3] src/oxygentileset.h:

only check pixmap list size in ::isValid


Michel Ludwig committed changes in [kile/2.1] src/editorextension.cpp:

Fix the move-to-next-bullet action

If the cursor is positioned at a bullet and the move-to-next-bullet action is
triggered, the cursor will jump to the next bullet if the current bullet hasn't
been 'highlighted' yet.


Development Tools

Aleix Pol Gonzalez committed changes in [kdevplatform] plugins/patchreview/standardpatchexport.cpp:

Make it possible to send patches using KTP

When reviewing a patch, add another export option that uses ktp-send-file
to send the current patch to one of your contacts.


Sebastian Gottfried committed changes in [ktouch] /qml:

allow selection confirmation in lists per double click

Now it's possible to start training on a lesson or selecting a different
user profile with a simple double click on the list item if one doesn't
like to do the extra click on the confirmation buttons in these forms.


Michael Georg Hansen committed changes in [digikam/tableview] /views:

Implement drag-drop thumbnails.

They still have to be pre-generated,
because now the first drag gets no thumbnail.

Diffs: 1, 2, 3 Revision 12d6912...

KDE Base

Alex Fiestas committed changes in [libkscreen] /:

Added Config::canBeApplied which checks the sanity of a config

This method performs are the usual checks an application should do to
know if the config can be applied, at this moment it checks:

-Output exists
-Output is connected
-There is a currentMode
-CurrentMode exists
-It fits the max screen size

More checks may be added in the future.

Diffs: 1, 2, 3, 4 Revision 5ad119d...
Alexander Neundorf committed changes in [kate] /plugins/search:

-add filter to project search mode

This patch adds the file filter to the project-search mode.
Now you can e.g. search only header files within a project.
Additionally the options-widget is now also displayed when
switching to the search-in-open-files tab, since this contains also
options useful in this mode (e.g. match case)


Sebastian Kügler committed changes in [plasma-framework] /shell/qmlpackages:

Falling leaves wallpaper plugin

Using QtQuick's particle shader to render a wallpaper.

change the wallpaperPlugin in your appletsrc to org.kde.autumn to try

The code for the wallpaper has been borrowed from QtDeclarative

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

Model to provide easy access to KWin's Clients from QML

A new ClientModel is added which provides multiple different views on
KWin's Clients. The model is organized as a tree model supporting the
following levels:
* activities
* virtual desktops
* screens
* none

The levels can be ordered in whatever way one wants. That is the tree
structure can have an ordering of activities then virtual desktops or
the other way around.

In addition the model provides Exclusion flags to exclude clients of
certain types. E.g. it's possible to exclude all windows which are not on
the current desktop or all windows which are of type dock.

The model gets automatically updated whenever a Client is added/removed
or changes a state in a way that it should be excluded/included.

The ClientModel is not directly exported to QML. Instead there are
specific sub classes for certain common orderings. This solutions is
chosen to workaround some limitations of QML. The initial idea was to
use a property taking a list of the levels, but this doesn't work because
we are not notified when the QDeclarativeListProperty changes.

Currently the following models are provided to QML:
* ClientModel -> no restrictions
* ClientModelByScreen -> ordering by screen
* ClientModelByScreenAndDesktop -> screen, then desktop

These can be used to get all Clients:
ClientModel {

Or to get the classic Present Windows on current desktop:
ClientModelByScreen {
exclusions: ClientModel.OtherDesktopsExclusion | ClientModel.NotAcceptingFocusExclusion | ...

Or to get the classic Present Windows on all desktops:
ClientModelByScreen {
exclusions: ClientModel.NotAcceptingFocusExclusion | ...

Or our well known desktop grid:
ClientModelByScreenAndDesktop {
id: desktopGrid
exclusions: ClientModel.NotAcceptingFocusExclusion | ...

To support filtering as known by the Present Windows effect one can use
a ClientFilterModel, which is a QSortFilterProxyModel filtering on
window caption, role and class:
ClientFilterModel {
id: filterModel
clientModel: desktopGrid
filter: filterItem.text

In case it's a tree level obviously QML does not support this correctly.
So we need to use a VisualDataModel:
VisualDataModel {
id: clientModel
model: filterModel
Component.onCompleted: {
clientModel.rootIndex = modelIndex(0);
clientModel.rootIndex = modelIndex(0);
clientModel.delegate = thumbnailDelegate;

As we can see, the rootIndex has to be set to the level which contains
the Clients. Also it seems to be important to create the delegate after
the model index has been set. The idea is to have only one ClientModel
and multiple VisualDataModels if multiple views on the data is needed.

The model has been tested with a painful modeltest session. It looks good
so far modulo the listed limitations and that modeltest is not liking
closing Yakuake in the ClientModelByScreenAndDesktop setup, though it
works fine in real world testing.

REVIEW: 109604

Diffs: 1, 2, 3, 4 Revision c4c32f7...
Thomas Lübking committed changes in [kde-workspace] /:

general tabbox support for screenedges

REVIEW: 109362

FIXED-IN: 4.11

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

Use a consistent way to group files by "Date"

Before this change, files were grouped by calendar weeks if they were
modified in the current month and ignoring the "first week day setting",
but by the actual distance measured in multiples of seven days if the
were modified last month.

This not only fixes the "ignores first week day" bug, but also the
problem that the inconsistencies in the algorithm could lead to a broken
grouping in the first days of a month (see screenshot in the review

FIXED-IN: 4.11
REVIEW: 108667

Thomas Lübking committed changes in [kde-workspace/KDE/4.10] kwin/kcmkwin/kwindecoration/kwindecoration.cpp:

update previews after de/installing a deco

REVIEW: 109266
FIXED-IN: 4.10.2


David Faure committed changes in [kdepimlibs] /:

Add job for discovering all special collections.

(and registering them into SpecialCollections::self())
This way kmail can find the trash folder for any IMAP account without
having to make a DBus call every time.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 0ed5638...
Torsten Grote committed changes in [kdepim] messagelist/messagelistutil.cpp:

changed default color for important messages in kmail to red

Without this patch, important mails and action item mails are both dark
green and basically indistinguishable by default. This patch makes the
important mails red by default.

REVIEW: 109248

Frank Osterfeld committed changes in [kdepim/KDE/4.10] akregator/src/akregator_part.cpp:

Do not ask to restore the session each time again

Dan Vratil committed changes in [akonadi/batch-notifications] /:

Initial port of Akonadi server to new notifications

Internally, Akonadi server now uses NotificationMessageV2 which can,
for specific operations, handle multiple items.

The code needs to be optimized on several places and compression is
not yet implemented, but legacy clients (i.e. clients that don't
support the new format) work perfectly. There is no client that would
support the new format, so that is not yet tested :-)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 16 more) Revision 69f57ef...
Dan Vratil committed changes in [kdepim-runtime] /google/contacts:

Support creating new contacts group in Google Contacts resource

Since we are now able to force Akonadi server to make new
collections virtual, we can safely support creating new
contacts groups.

Additionally, the groups collections now have the same icon
as in Kolab resource. Consistency++

David Faure committed changes in [kdepim] /:

React to the special-collections discovery job and updating the sorting.

This sorts IMAP trash folders correctly in the folder list.
(Not that this matters much to me, but it clarifies the obvious "race"
in the code). I checked all other callers of folderIsTrash, and they
happen on user action (selecting folders, deleting messages), so there's
nothing to update. The user just has to wait for the kmail startup to be

Diffs: 1, 2, 3, 4 Revision 98cb533...
Volker Krause committed changes in [akonadi] /src/search:

Add a setting to disable live searches with Nepomuk.

If disabled we stop watching for updates after the initial search has been
completed. Live searches are currently too expensive with Nepomuk, so this
is the default for now.

Andras Mantia committed changes in [kdepim-runtime] /imap:

Fetch the missing mail bodies in offline mode (requires fixed in Akonadi server and Akonadi client libraries as well to work).

FIXED-IN: 4.11

Christian Mollekopf committed changes in [kdepim/KDE/4.10] libkdepim/addresseelineedit.cpp:

Also query for middle name and nickname.

FIXED-IN: 4.10.2


Mark Kretschmann committed changes in [amarok] /:

On-Screen-Display now uses the system font instead of hardcoded sans-serif.


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

Add support for transcoding into the Opus format

* Added transcoding support for Opus codec if ffmpeg is compiled with
support for the libopus library, patch by Martin Brodbeck.

Thanks, Martin! Works fine with ffmpeg 1.1.3 here. Can you please also
test with libav's ffmpeg wrapper?

REVIEW: 108907
DIGEST: Amarok now supports transcoding into Opus format if ffmpeg supports it
CCMAIL: Martin Brodbeck

Diffs: 1, 2, 3, 4, 5, 6 Revision 18c75c4...
Matěj Laitl committed changes in [amarok] /: support for filtering tracks to scrobble (by label)

* Added support to filter tracks to scrobble to by label. Patch by
Vedant Agarwala. (BR 140198)

Vedant, I had to make a couple of changes for this to actually work:
a) actually save and read setting to file in LastFmServiceConfig
b) prevent null pointer dereference in updateNowPlaying()
Please test the feature just implemented thoroughly next time!

REVIEW: 109283
DIGEST: Amarok now supports filtering tracks to scrobble to
CCMAIL: Vedant Agarwala

Networking Tools

Aleix Pol Gonzalez committed changes in [ktp-desktop-applets] /org.kde.ktp-chat/contents/ui:

Make it possible to send files

Support sending files by dropping it on the person button on the plasmoid
(not the dialog).If you drop a file on a contact, the file will be sent to
the contact.

REVIEW: 109179

Diffs: 1, 2, 3 Revision a9f0fc0...
Martin Klapetek committed changes in [ktp-contact-list] abstract-contact-delegate.cpp:

Split the display name and the contacts count in the header delegate

The contacts count was elided with the display name, and therefore
not displayed when the text is elided.

Also fixes a few small problems:

* The text was elided in a rect that was for some reason sometime
smaller and sometimes bigger than the available area.
* Add one point for the gray line in the bottom.
* Play a little bit with spacing, borders and size hints to make
it prettier and easier to understand.

REVIEW: 109319

FIXED-IN: 0.6.0


KDE Base

David Faure committed changes in [nepomuk-core/KDE/4.10] /resource:

Don't lock the RM mutex just to check if our URI is empty, check it directly.

This leads to a major speed up in kmail, which I found to be very often
stuck on that RM mutex in the main thread, even though we prepare the resource
in a different thread (in asyncnepomukretriever) so all props are available.


Christian Mollekopf committed changes in [kdepim-runtime/KDE/4.10] /nepomukfeeder:

Fetch items per collection instead of the recursiveitemfetchjob.

Can greatly reduce memory usage, and isn't slower with the current implementation of recursiveitemfetchjob.


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

PrettyTree{Delegate,View}: better decorator action icon behaviour

We now only trigger the icon action only if mouse release ends up on
the same action that it was pressed on. We also block mouse move events
when mouse press happened on decorator action icon so that the view
behaves nicely.

Add visual feedback effect for mouse pressed on action icon. (icon shrink)

CCMAIL: Ralf Engels

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

Networking Tools

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

Combining settings in a singleton class so that there is no confusion about the current settings.

Up to now the settings for where new chats open were loaded by
ktp-text-ui on startup and not re-read anymore. Changing the settings
in the config dialog had no immediate effect; only after the next
start of ktp-text-ui it finally changed.

Now whenever the settings get asked for the singleton provides the
current value. Thus every change to the settings via the config dialog
will take effect immediately.

Also gives a way to easily add new settings in one place. Will be
useful for implementing the additional settings required by bug 282201
(make it configurable if "user is typing" gets show") which needs two
more bools.


REVIEW: 109268



Laurent Montel committed changes in [kdepim] /:

Start new project, try to add support for activity in kdepim*