Issue 290

2nd June 2013 by KDE Commit-Digest Team


Marta Rybczynska

This Week...

Kickoff shows new applications in a separate submenu "Recently Installed" for 3 days. KWin adds a helper effect for KScreen integration. Skrooge allows changing operation date through "Search & Process". In Amarok, TrackLoader and PlaylistController support for treating remote playlists as streams, OpenGL analyzers appear, analyzers are configurable now. Network Management allows configuring band/channel for adhoc wifi mode. KDE Telepathy supports persistent chats in the plasmoid. Bug fixes in Umbrello, Dolphin, KMail.


Commits 1556 by 155 developers
Open Bugs 21365
Open Wishes 15816
Bugs Opened 283 in the last 7 days
Bugs Closed 491 in the last 7 days

Commit Summary

Module Commits
Files Developer Commits
Laurent Montel
Aaron J. Seigo
Jan Kundrát
Burkhard Lück
Patrick Spendrin
Ralf Habacker
Yuri Chornoivan
Gilles Caulier
Christophe Giboudeaux
Zack Rusin

Internationalization (i18n) Status

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

Bug Killers

Person Bugs Closed
Martin Gräßlin
Jekyll Wu
Patrick Spendrin
Michael Bohlender
Vishesh Handa
Laurent Montel
Myriam Schweingruber
Anne-Marie Mahfouf
Gilles Caulier
Aleix Pol Gonzalez

Commit Countries

Commit Demographics




  Bug Fixes Features Optimization Security Other



Development Tools

[] [] []   


[] []    


[] [] []   []

KDE Base

[] [] []   


[] []    []


[] []    





Networking Tools

[] [] []   

User Interface







  [] []   

There are 64 selections this week

Bug Fixes

Development Tools

Ralf Habacker committed changes in [umbrello] /:

Fixed crash on adding sequence diagram messages by breaking recursive inheritance loops.

Thanks to Martin Briza for pointing to this bug.

Ralf Habacker committed changes in [umbrello/KDE/4.10] umbrello/dialogs/selectopdlg.cpp:

Enable guard against resursive inheritance loops to self.

Ralf Habacker committed changes in [umbrello] umbrello/widgets/messagewidget.cpp:

Fixed painting problem caused by displayed resizable corner of creation/lost/found messages,
which partially exceeds bounding rect.

Creation/lost and found messages are not resizable, so displaying resize corner makes no sense.

Ralf Habacker committed changes in [umbrello] /:

Fixed bug: Resizing synchronous message moves its position.

Ralf Habacker committed changes in [umbrello] /:

Fixed synchronous message painting artifacts.

Ralf Habacker committed changes in [umbrello] umbrello/widgets/messagewidget.cpp:

Fixed painting artifacts when creation message lenght is below arrow width.

This is done by do not drawing arrow when message length is below arrow width.


Rishab Arora committed changes in [kstars] kstars/oal/equipmentwriter.cpp:

Lens removal works correctly in Define Equipment.


Johannes Zarl committed changes in [kphotoalbum] /:

Don't try creating thumbnails for images not on disk.

This prevents the AsyncLoader (-> thumbnailViewer), and the automatic
search for videos without valid length/thumbnails from spawning
thumbnail jobs for images/videos that are not currently on disk.

Diffs: 1, 2, 3 Revision 3b8e010...
Albert Astals Cid committed changes in [okular] part.cpp:

Do compressed checks based on mime inheritance

Instead of using a hardcoded map

FIXED-IN: 4.10.4

Gilles Caulier committed changes in [digikam] /:

handle properly thumbbar visibility state when go/back to fullscreen an switch between icon-view and preview modes.
This include AlbumGUI and ImportUI

Diffs: 1, 2, 3, 4, 5, 6 Revision 4f892fb...
Aurélien Gâteau committed changes in [gwenview/KDE/4.10] lib/imagescaler.cpp:

Work-around for failure to update images after rotation

REVIEW: 110730
FIXED-IN: 4.10.4

Johannes Zarl committed changes in [kphotoalbum] /:

Run without video thumbnail/length support when mplayer is missing.

When mplayer is missing, just show a messagebox advising the user to
install mplayer instead of bailing out.
When mplayer is not available, also don't spawn video-related background

KDE Base

Emmanuel Pescosta committed changes in [kde-baseapps] /src:

Bug 196035 - middle clicking on archive files in dolphin does not open them in a new tab

When 'browse through archives' is enabled, open archive files
like folders on middle clicking, context menu -> new tab action
and context menu -> new window action.

REVIEW: 110487

Vishesh Handa committed changes in [kde-baseapps] dolphin/src/search/dolphinsearchinformation.cpp:

Dolphin Search: Do not use Nepomuk for hidden folders

Nepomuk does not index hidden folders

REVIEW: 110697
FIXED-IN: 4.11.0

Vishesh Handa committed changes in [kdelibs/KDE/4.10] /ui:

KEditTagsDialog: Avoid using QDialog::exec

QDialog::exec runs an event loop at waits for the dialog to be closed.
Running another event loop is generally not recommended cause it can
result in *other* events being process which one might not want.

In this particular case the ResourceLoader, which runs in another
thread, would emit the finished signal would result in the
FileMetadataWidget deleting all its previous content, which would
delete the TagWidget and its children aka the KEditTagsDialog => CRASH

Instead we now set the windowModality and use QDialog::open, which
returns immediately and then connect to the finished signal.

Backported from nepomuk-widgets 2080bc1d4fe7c249c28930b18f03741c53025b13


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

Fix Bug 320111 - kmail composer does not include mail signature when using an external editor

FIXED-IN: 4.10.4

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

Fix segfault due to deleted pruneTree call

Commit faea6a3132fe78fd25e84e7adeeb3edddb89b46b changed the behavior, some of
the messages still in the tree might now have a null pointer to the original
TreeItemMessage. I've hit this assert myself when switching mailboxes (but only
after a couple days).

REVIEW: 110675

Laurent Montel committed changes in [kdepim/KDE/4.10] ktnef/CMakeLists.txt:

Fix Bug 320454 - [kde-windows] ktnef lacks icon in the start menu (no kde4_add_app_icon command in the build system)

FIXED-IN: 4.10.4

Laurent Montel committed changes in [kdepim/KDE/4.10] libkdepim/multiplyinglineview_p.cpp:

Fix Bug 320072 - KMail crash: pressing enter in emtied header input field

(it tried to remove line -1 => crash)

FIXED-IN: 4.10.4

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

Fix a segfault when going back from the "one at a time" layout and other related bugs

Thanks to Brian Jackson (iggy on IRC) for a bugreport.

REVIEW: 110736


Friedrich W. H. Kossebau committed changes in [calligra/calligra/2.7] libs/odf/KoXmlReader.cpp:

fix KoXmlReader to break on error instead of trying on and on

REVIEW: 110719

thanks boemann for review

Somsubhra Bairi committed changes in [calligra] /:

Fixed the wrong implementation of clipboard brush popup blocking

Diffs: 1, 2, 3, 4, 5, 6 Revision 8768786...
Dmitry Kazakov committed changes in [calligra] /:

Major fixes for the Krita filtering system

Now there is no preview mask thing. All the preview is generated
by the strokes system is absolutely the same way as it is done
for real filtering. This effectively fixes two things:

1) Filter preview for masks
2) Fixes a crash when pressing OK while the preview update is running

The patch also removes the KisFilterHandler thing, because it made
switching filters in the filter dialog fail (you could switch them,
by it didn't have any effect). Now its work is done by a simple

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

Networking Tools

Jan Grulich committed changes in [plasma-nm] lib/editor/infinibandwidget.cpp:

Fix loading/saving transport mode in Infiniband widget

David Edmundson committed changes in [ktp-text-ui/kde-telepathy-0.6] filters/images/images-filter.cpp:

Remove alt tag from images inserted with ImageFilter

This alt tag never actually showed up (not sure why).
Removing this means the emoticon -> text swapping no longer occurs so images
remain after clicked

REVIEW: 110717

Pali Rohár committed changes in /trunk/KDE/kdenetwork/kopete:

Add Top Level group to Kopete::ContactList::self()->groups() and show it in Add contact dialog

FIXED-IN: 4.11

Pali Rohár committed changes in /trunk/KDE/kdenetwork/kopete/libkopete/kopeteaccount.cpp:

Wrap Edit account dialog into QPointer

* Edit account dialog using KDialog::exec() function which can lead to memory corruption and double free
* After this change Jabber edit account dialog stopped crashing when applying changes

FIXED-IN: 4.11


Daniel Nicoletti committed changes in [print-manager] /:

When CUPS starts or stops serverAudit is emitted on DBus,
so update the models, the UI and show appropriate error
message on the KCM and plasmoid if an error like not
being able to reach the server is set.


Development Tools

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

Let the project item delegate draw the display text

QItemDelegate::displayText insists in painting the background and it doesn't
use the style for painting it, so we are just painting the text ourselves


Aleix Pol Gonzalez committed changes in [kalgebra] /:

Make it possible to remove variables

Only in case there's no other variables that depend on this one.


Marcel Wiesweg committed changes in [libkface] /recognition-opencv-lbph:

Add a face recognizer based on OpenCV Local Binary Pattern Histograms.
Recognition rate without further optimization on the ORL database: 88.5%.

Thanks a lot to Philipp Wagner for all his work bringing this to free software.

Diffs: 1, 2, 3, 4 Revision 4d92de3...
Benni Hill committed changes in [gwenview] /:

Improve sharpness for downscaled jpeg images

REVIEW: 110743

FIXED-IN: 4.11.0

KDE Base

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

Translucency effect rewritten in JavaScript

Supported Features:
* move/resize
* active/inactive
* special window type
* window decoration as missing in AnimationEffect

The animations are cancelled when they go into an invisible state (e.g.
desktop changed, minimized) and are set again when the window becomes

Where a transition is useful, the window gets animated, e.g. start/finish
of move resize.

FIXED-IN: 4.11
REVIEW: 110747

Dominik Haumann committed changes in [kate] part/syntax/data/mediawiki.xml:

Improve MediaWiki highlighting

The patch provides the following improvements over the current MediaWiki syntax highlighting file:
- Highlight # within wiki links.
- Make templates syntax highlighting work within links.
- Allow tables within tables.
- Highlight the content between "source" or "syntaxhighlight" XML tags the same as within "pre" XML tags (in the future, this can be extended to support syntax highlighting of other languages within these tags).
- Proper highlighting for definition list.

Thanks to Adrián Chaves Fernández for the patch.

FIXED-IN: 4.11

Maarten De Meyer committed changes in [kde-runtime] /ikws:

Add insert query placeholder button to search provider dialog

Add a 'Insert query placeholder' button to the add/modify web shortcut
dialog. Clicking this button inserts \{@} in the shortcut URL lineEdit.

This makes it easy to add new web shortcuts.
Users don't have to remember and type the query placeholder.

FIXED-IN: 4.11
REVIEW: 110423
GUI: Button added to the add web shortcuts dialog.

David Faure committed changes in [kde-workspace] /desktop/applets/kickoff:

Show new applications in a seperate submenu named "Recently Installed" (for 3 days).

Patch by Wolfgang Bauer.

This patch makes kickoff remember all the .desktop files it sees (in kickoffrc).
The seen entries are saved as "id=date" pairs in the "Seen Applications" group.
Entries older than 3 days get their date set to empty, which means "don't show this entry anymore".
Also if there have no entries been saved yet, the date of all found entries is
set to empty as well. This prevents that all menu entries are shown in the
"Recently Installed" submenu on first start.

The "Recently Installed" submenu can be toggled on and off in the plasmoid's settings.

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

Helper effect for KScreen integration

This effect is controlled by KScreen. It fades out all windows when
KScreen requests this and gives feedback to KScreen once all windows are
faded out. This allows KScreen to adjust the screens in a flicker free

REVIEW: 110661

FIXED-IN: 4.11

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision edeaabe...
Vishesh Handa committed changes in [nepomuk-core] services/fileindexer/indexer/office2007extractor.cpp:

Office2007Extractor: Only add pageCount and wordCount for documents

The ontologies do not support it for presentations and spreadsheets


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

Merge branch 'very-compact-layout'


REVIEW: 110653
fixes #40
fixes #564

Diffs: 1, 2, 3, 4, 5 Revision cf6acad...
Laurent Montel committed changes in [kdepim] headerthemeeditor/themeeditorpage.cpp:

it's a good idea to store preview in theme zip too

David Edmundson committed changes in [ktp-desktop-applets] /:
Jan Kundrát committed changes in [trojita] /:

GUI: enable sizes and positions of various widgets

Fully separate settings are maintained for the wide and compact layout modes.
Nothing is saved/restored when in the one-at-time mode.

Diffs: 1, 2, 3, 4 Revision 2250385...
Vishesh Handa committed changes in [ktp-nepomuk-service] /:

Create and cache the contact groups

Earlier, if a group contained more than one contact then it the contact
group was created that many times cause a new SimpleResource was created
each time.

With this method we cache the contact groups so that they are only
created once, and once they have been created we do not unnecessarily
send a new SimpleResource to get merged into the existing contact group.

REVIEW: 110739

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

GUI: disable the wide mode on small screens

Suggested by Thomas Lübking.


Stephane Mankowski committed changes in [skrooge] /:

Allow changing operation date through "Search & Process"

Dmitry Kazakov committed changes in [calligra] /:

Ported filter application to the strokes system

Some of the filters can now be applied to the masks. Now there is
a small TODO:
1) Remove old filter threading code
2) Refactor KisFilterDialog not to create preview masks for masks

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 60 more) Revision 8b3de7d...
Stephane Mankowski committed changes in [skrooge] /:

feature: The restore file is now base on KMessageWidget

Diffs: 1, 2, 3, 4 Revision 7222dc1...
Elvis Stansvik committed changes in [calligra] plugins/textshape/dialogs/DockerStylesComboModel.cpp:

Ignore default styles in styleApplied.

DockerStylesComboModel::styleApplied may be called with the default
paragraph style as argument.

The function assumes that the source model can provide an index for the
supplied style (see the calls to indexForCharacterStyle). But the source
model explicitly avoids adding items for the default styles, so these
calls will return an invalid index, which results in a -1 being added as
a row to m_usedStyles. In the next call to styleApplied, this will
result in an invalid internalId being used to try to get the
corresponding style from the style manager. The invalid style pointer is
then used, resulting in the crash described in the bug.

This fix turns DockerStylesComboModel::styleApplied into a no-op if the
supplied style is either the default character style or the default
paragraph styles, since there will never be any items for these in the
source model.

REVIEW: 110506


Mark Kretschmann committed changes in [amarok] /:

Add OpenGL analyzers, and make analyzers configurable (right-click).

I've ported two OpenGL analyzers from Amarok 1.x. One of them shows
a whirly background, with disco lights in front (named "Disco"). The
second one shows something like bouncing balls between two walls
(named "Balls").

One of the main advantages of using OpenGL instead of QPainter is the
significantly lower CPU load, if you have anything resembling a GPU in
your computer.

I've also made the height of the widget configurable in 3 different

NOTE: The Balls Analyzer looks somewhat broken. I'll fix that.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 7c13919...
Matěj Laitl committed changes in [amarok] /:

Playlist sort widget: reimplement Shuffle "sort" as an action.

Remove now-unnecessary Shuffle handlers in sort-related functions.
Additionally, PlaylistController::moveRows() has been modified to help
with big move actions (validation complexity reduced).

Playlist::BreadcrumbItemMenu introduced to deduplicate logic between
Playlist::BreadcrumbItem and Playlist::BreadcrumbAddMenuButton.

GUI: In the playlist sort widget, the Shuffle menu entry is now
separated from other entries. Activating the entry no longer results in
a "Shuffle" sort level being added.

REVIEW: 110658

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

TrackLoader, PlaylistController: support for treating remote playlists as streams

...and use it in MainWindow::slotAddStream().

TODO: use this also for the "remote playlists are streams" hackery for
scripted services, at much more appropriate place than

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

Networking Tools

Lukáš Tinkl committed changes in [plasma-nm] /editor:

allow configuring band/channel for adhoc wifi mode


Diffs: 1, 2, 3 Revision 10e279d...


Marco Martin committed changes in [bodega-server] /:

Merge branch 'stats'


Aaron J. Seigo committed changes in [bodega-server] server/routes.js:

introduce optional anonymous browsing support

later we will want to make it possible to override this per-store

Aaron J. Seigo committed changes in [bodega-server/store_channels] /:

implementation of stores/list

this lists all stores associated with the person. re-uses the return
used for new store creation, which now always returns an array of store info

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


Development Tools

Ralf Habacker committed changes in [umbrello/KDE/4.10] umbrello/widgets/messagewidget.cpp:

Avoid painting artifacts by disabling resize corner for non resizable asynchronous messages too.


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

Use cached QImage instead of invoking KIcon::pixmap on broken files

KIcon is a cool class which can e.g. find the best available pixmap size based
on each request. However, its operations are rather expensive -- to the extent
that when I have most of my 63k images not available due to an unmounted NFS
share, KPA eats all CPU on this machine. This is how a backtrace from one thread
looked like:

#0 QByteArray::resize (this=0x7fffffffbdf0, size=<optimized out>) at tools/qbytearray.cpp:1433
#1 0x00007ffff326780a in QUtf8::convertFromUnicode (uc=<optimized out>, len=<optimized out>, state=0x0) at codecs/qutfcodec.cpp:143
#2 0x00007ffff3267985 in QUtf8Codec::convertFromUnicode (this=<optimized out>, uc=<optimized out>, len=<optimized out>, state=<optimized out>) at codecs/qutfcodec.cpp:522
#3 0x00007ffff326287b in QTextCodec::fromUnicode (this=<optimized out>, str=...) at codecs/qtextcodec.cpp:1375
#4 0x00007ffff3151b49 in QString::toLocal8Bit (this=0x7fffffffbe10) at tools/qstring.cpp:3767
#5 0x00007ffff319b71d in locale_encode (f=...) at io/qfile.cpp:72
#6 0x00007ffff319bd0e in QFile::encodeName (fileName=...) at io/qfile.cpp:515
#7 0x00007ffff4fbf4d1 in access (mode=4, path=...) at /var/tmp/portage/kde-base/kdelibs-4.9.5/work/kdelibs-4.9.5/kdecore/util/kde_file.h:181
#8 KIconThemeDir::iconPath (this=<optimized out>, name=...) at /var/tmp/portage/kde-base/kdelibs-4.9.5/work/kdelibs-4.9.5/kdeui/icons/kicontheme.cpp:707
#9 0x00007ffff4fbf6f2 in KIconTheme::iconPath (this=0x555555b3f7a0, name=..., size=112, match=KIconLoader::MatchBest)
at /var/tmp/portage/kde-base/kdelibs-4.9.5/work/kdelibs-4.9.5/kdeui/icons/kicontheme.cpp:492
#10 0x00007ffff4fb8fc8 in KIconLoaderPrivate::findMatchingIcon (this=<optimized out>, name=..., size=112)
at /var/tmp/portage/kde-base/kdelibs-4.9.5/work/kdelibs-4.9.5/kdeui/icons/kiconloader.cpp:1032
#11 0x00007ffff4fba458 in KIconLoaderPrivate::findMatchingIconWithGenericFallbacks (this=0x555555add130, name=..., size=112)
at /var/tmp/portage/kde-base/kdelibs-4.9.5/work/kdelibs-4.9.5/kdeui/icons/kiconloader.cpp:899
#12 0x00007ffff4fbb7ae in KIconLoader::loadIcon (this=0x555555b9d6f0, _name=..., group=KIconLoader::Desktop, size=112, state=0, overlays=..., path_store=0x0, canReturnNull=false)
at /var/tmp/portage/kde-base/kdelibs-4.9.5/work/kdelibs-4.9.5/kdeui/icons/kiconloader.cpp:1253
#13 0x00007ffff4fb22c0 in KIconEngine::pixmap (this=<optimized out>, size=..., mode=<optimized out>, state=<optimized out>)
at /var/tmp/portage/kde-base/kdelibs-4.9.5/work/kdelibs-4.9.5/kdeui/icons/kiconengine.cpp:104
#14 0x00007ffff4269ad9 in QIcon::pixmap (this=<optimized out>, size=..., mode=<optimized out>, state=<optimized out>) at image/qicon.cpp:684
#15 0x00005555556b2f8c in ImageManager::AsyncLoader::customEvent (this=0x55555cae9830, ev=0x7fffcc00bcd0) at /home/jkt/work/prog/kde/kphotoalbum/ImageManager/AsyncLoader.cpp:161

I have not profiled the application using callgrind this time -- the backtrace
looked suspicious enough. Instead, this patch simply prepares a single QImage in
advance and reuses it whenever a request for a broken image is made.

The updated version (v2) of the patch checks whether the previously used image
has a correct size, and if not, goes the slow KIcon path again. To me, this
smells like little bit too much work with a lock being held, but so be it.

REVIEW: 110651

KDE Base

Vishesh Handa committed changes in [nepomuk-core] /:

Directly connect to virtuoso for reads instead of going through the Storage Service

The Nepomuk Storage service no longer starts a local socket. All
communications now happen directly via ODBC to virtuoso. This results in
a 6-8x performance improvement.

We need to find a proper way of communicating the port number to connect
to and not use this hack, but otherwise this patch results in massive
performance improvements.

Writes still happen through the dbus interface.

Diffs: 1, 2, 3, 4, 5 Revision f7740f8...
Fredrik Höglund committed changes in [kde-workspace] kwin/scene_opengl.cpp:

kwin: Optimize shadow quad selection

Loop over the window quad list once instead of eight times when
selecting the shadow quads.

Networking Tools

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

[ #22056 ] Port internal time handling from QDateTime to time_t

46% of the load time was spent converting time to string to time_t ot QDateTime or vice versa. 95% of this can be avoided quite easily, so I will. While not very nice from a C++ point of view, a 46% bottleneck is just too bad to ignore.

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


Aaron J. Seigo committed changes in [bodega-server] sql/do_sql:

make update runs smoother

previously it was shift()ing the array passed in, leading to the first
item in the array being chopped which meant the first update was never
stored in updates/completed.

shift() was also returning an array object. needed to toString() it so
that we would have a string and a reliable check for .sql/.plsql endings



Gilles Caulier committed changes in [digikam] /:

factoring everywhere Genreal config group used to store main windows settings in RC file
Ensure that full screen settings is loaded at initialization of AlbumGUI.


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

Decouple attachment download from the lifetime of the enclosing GUI widget

Previously, the downlaod would get interrupted when the user switched to another
message -- and that would be rather counterintuitive.

REVIEW: 110681


Albert Astals Cid committed changes in [knavalbattle/KDE/4.10] src/networkdialog.cpp:

Make the network dialog a bit more beatiful

Acked by Roney
REVIEW: 110703