Issue 313

10th November 2013 by KDE Commit-Digest Team


Marta Rybczynska
Alex Fikl
Giacomo Barazzetti

This Week...

In KDE Frameworks, new KColorSchemeManager supports changing color scheme in apps. Kate adds an option to flash matching brackets. Krita allows multibrush to use an angled axis and have an option to show the axis; new implementation of the brush outline display. KStars sees major update of Ekos and KStars FITSViewer tool. Trojita adds support for more decoding formats.


Commits 1566 by 130 developers
Open Bugs 21262
Open Wishes 15917
Bugs Opened 297 in the last 7 days
Bugs Closed 340 in the last 7 days

Commit Summary

Module Commits
Files Developer Commits
Laurent Montel
Albert Astals Cid
Boudewijn Rempt
Aaron J. Seigo
Milian Wolff
Harald Sitter
Friedrich W. H. Kossebau
Sebastian Kügler
Kevin Funk
Burkhard Lück

Internationalization (i18n) Status

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

Bug Killers

Person Bugs Closed
Jekyll Wu
Gilles Caulier
Volkan Gezer
Aleix Pol Gonzalez
Boudewijn Rempt
Christoph Feck
Thomas Lübking
Ralf Habacker
Myriam Schweingruber
Veaceslav Grecea

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

Aleix Pol Gonzalez committed changes in [kdevplatform/1.6] shell/plugincontroller.cpp:

Don't show a message box when a plugin couldn't be loaded

IPlugin has a hasError method that is used to check if the plugin could
initialize itself. It's used to make sure that the runtime dependencies
are met, such as checking that git, cmake and ninja are installed.

Having a message box for those is too intrusive, given that if the user
needs the tool and doesn't have them installed, he'll have a bigger
problem than not having the plugin in KDevelop. Instead, a kWarning() is
provided, so we can tell our users to check the console output if one of
these problems happen.

Kevin Funk committed changes in [kdevelop/4.6] languages/cpp/cpplanguagesupport.cpp:

Don't crash in case of dangling updates

DUChain::waitForUpdate does QApplication::progressEvents() in a while-loop and
waits for an update from the background parser. In case the application
is shut down, CppLanguageSupport eventually is deleted, but the
while-loop may still be running. When the call to
DUChain::waitForUpdate inside
CppLanguageSupport::switchDefinitionDeclaration returns, 'this' is
already invalid and the subsequent call to CppLanguage::standardContext
ends up in SIGSEGV.
Hence, always check if the context returned by waitForUpdate(...) is
valid and return immediately if not.

Milian Wolff committed changes in [kdevplatform] shell/documentcontroller.cpp:

Don't crash in Okteta when opening non-existing file.

We now enforce a text/plain mimetype for non-existing files. This
then triggers the creation of a katepart editor view which gracefully
handles the case of non-existing files.


Jonathan Marten committed changes in [kooka] /:

Fix preview area auto-detection apparently not working when the
scanner background is white.

It did work really, but the UI was not intuitive because the
threshold slider sets the absolute value of the threshold. It works
as would be expected for black background - low threshold working
upwards from full black - at the left end of the slider, but for
white background the high threshold working downwards from full
white was at the right end of the slider. So if the scanner
background is white the user has to not only set the combo
appropriately but also move the tolerance slider to the other end
of its range. It's not obvious that the latter has to be done.

Now, the tolerance slider works the same way for either black or
white background - low threshold meaning less variation accepted
is at the left. The slider range is reduced to 50 (from 255) for
easier adjustment within the useful range. This also simplifies the
area detection code, black and white being treated identically with
only the averaged pixel values being adjusted for white.

Fix initial enabling of auto-detection and its GUI.
Do not turn on auto-detection on initial startup.
Make dust size GUI work (if it is enabled at compile time,
usually it is not).

Rationalise the Previewer class's member variables and names.
Not much point in having a PreviewerPrivate unless everything
is there, it just creates complexity.

Marcel Wiesweg committed changes in [digikam] /threadimageio:

Ensure to use a copy of an image in a load thread if the thread only requests
read-only, but exif rotation / post processing require modification of data from the cache.
This is meant to fix all mysterious crashes in the ImageHistogram calculation.
(as I cannot reproduce the bug, I cannot prove it is a fix)

Thanks to Simon Munton for his investigations.

Marcel Wiesweg committed changes in [digikam] /:

Do not store a QWidget in a static variable to retrieve the IccProfile for thumbnails.
This crashes in case the thread is used from a non-UI thread.
Instead, store the IccProfile when the widget is set. This is not perfect, the
previous solution was not perfect either.
Note: For thumbnails, the profile setting is global for performance reasons

KDE Base

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

Only do a fast pre-sorting when "Sort by Name" is used

This is a follow-up to commit 0e9f4a398735cfc19ae783d2ab054d2400d95416,
which tries to speed up sorting the items naturally by their name using
the idea that a fast non-natural pre-sorting already sorts the items
mostly correctly and thus reduces the number of expensive natural

This change only makes sense if the view is really sorted by "Name". In
other cases, the pre-sorting will most likely not be useful.

Thanks to Christoph Feck for pointing this out!

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

Do not add dialog to DialogShadows before it became visible at least once

Calling DialogShadows::self()->addWindow(...) will create the low level window.
If this is called before the property windowFlags is evaluated the window flag
X11BypassWindowManagerHint has no effect as that one must be present when the
window is created through the low level xcb call.

This was breaking declarative KWin scripts as KWin's windows need to have the

REVIEW: 113700


Sergio Luis Martins committed changes in [kdepim/KDE/4.11] calendarviews/todo/todomodel.cpp:

Don't dereference null pointer.

It's normal for it to be null. When you drag a to-do out of a parent
and it becomes an orphan destTodo is null.

FIXED-IN: 4.11.4

Christian Mollekopf committed changes in [kdepimlibs/KDE/4.11] /:

Fixed refcounting in ETM and Monitor

This is a combination of several commits in order to fix the buffering
in the ETM.

In particular it incorporates the following changes:


Fixed fetching of items that exited the buffer after being referenced.

After a collection exits the buffer after being referenced,
the monitor no longer emits updates for this collection.
It is therefore necessary for the ETM to refetch the items to get missing updates.

2. (regarding the removal of the MAXITEMS limit)

Don't keep outdated copies of items.

A collection is purged if reference counting is used and a collection
exits the buffer after being referenced. By not purging the items, it becomes
possile that we miss updates, and when refetching the collection because it's
referenced again, we don't emit change notifications because the items were in the model already.

Since we anyways have to fetch all items, we can as well purge all items.

* compare revisions and emit change notifications if necessary in itemsFetched
* Still emit notifications in the monitor for modifications only


Only buffer a collection after the refcount reaches zero.

Before, a collection that was dereffe'd at least once would
already be buffered (although the refcount is still >0), resulting in
the buffer being occupied by reffe'd collections (which is pointless).

REVIEW: 113680
FIXED-IN: 4.11.4

Christian Mollekopf committed changes in [kdepimlibs/KDE/4.11] /:

Fix ImapStreamParser CRLF skipping.

With the code before it was possible that either the carriage return or
the newline was not yet parsed, resulting in it ending up as part of the
payload. This resulted in broken payloads, depending on how the data was
read from the socket.

REVIEW: 113577

Diffs: 1, 2, 3 Revision bbf9661...
Allen Winter committed changes in [kdepim] calendarviews/list/listview.cpp:

don't chop-off the summary at 37chars in the treewidget column

FIXED-IN: 4.11.4

Allen Winter committed changes in [kdepimlibs] ktnef/ktnefparser.cpp:

save TNEF attachments with their filename property, when possible.

FIXED-IN: 4.11.4


Dmitry Kazakov committed changes in [calligra] /:

Fix painting when a Canvas or Dab is mirrored and/or Rotated

The angle should flip *only* when the dab is mirrored, not the canvas.

This patch also adds a very detailed unittest for it :)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 6817ebe...
Sven Langkamp committed changes in [calligra] krita/ui/widgets/kis_preset_selector_strip.cpp:

scroll to first entry in the preset strip when switching paintop

Dmitry Kazakov committed changes in [calligra] /:

New implementation of the brush outline display

This patch effectively fixes two things:
1) Makes the outline painted correctly of rotated/mirrored canvas or/and dab.
This is achieved by using a special class for making all the transforms.
The class is called KisCurrentOulineFetcher.

2) Fixes the Drawing Angle sensor on the mirrored canvas, which has become
broken quite recently.

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


Harald Sitter committed changes in [phonon/4.7] phonon/audiooutput.cpp:

Ensure the PulseAudio envrionment is set up when running older backends

This ensures that pre-4.7 backends (expecting the environment to be
set up by libphonon) retain working volume control.

FIXED-IN: 4.7.1

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

SqlRegistry: fix assert fail in SqlScanResultProcessor by always returning the correct track

What happened:
1. User has 1.mp3, copies it as and edits some tags of Both files do *not* have AFT tag embedded.
2. Amarok registers the new file.
3. Users restarts Amarok (needed to reproduce because of internal state)
4. User renames back to 1.mp3 by overwriting it, Amarok catches it
5. Amarok does not associate new 1.mp3 with the old 1.mp3 because it finds
previous entry by uid (file hash) instead.
6. Amarok tries to remove entry for the old 1.mp3, but
SqlRegistry::getTrack( int urlId ) erroneously returns the new entry
7. SqlScanResultProcessor correctly asserts out, refusing to delete the
incorrect entry.

The fix is to enhance SqlRegistry::getTrack( int urlId ) to double-check
that it indeed returns the correct entry.



Matěj Laitl committed changes in [amarok] /core-impl/collections/db/sql:

SqlMeta: fix off-by-one index in SQL results

...we had this error since commit b1bf9011 in 2010, but nobody noticed. :)
This is because it resulted in just slower paths taken, (but still with
some unwanted side-effects)

Networking Tools

David Edmundson committed changes in [ktp-common-internals/kde-telepathy-0.7] KTp/im-persons-data-source.cpp:

Fix contacts not being updated when blocked status changes

REVIEWED-BY: Sven Brauch

FIXED-IN: 0.7.1

Jan Grulich committed changes in [plasma-nm] kded/secretagent.cpp:

Properly remove secrets when a connection is removed

David Edmundson committed changes in [ktp-send-file/kde-telepathy-0.7] /:

Fix a a signal/slot signature mistmatch Tp::ContactPtr to KTp::ContactPtr

Signature updates for change from Tp::ContactPtr to KTp::ContactPtr

The signal signature for ContactGridWidget::selectionChanged changed in ktp-common-internals and so the connection to the OK button in the UI never got the message to enable itself.

FIXED-IN: 0.7.1
REVIEW: 113605

Dan Vratil committed changes in [ktp-text-ui/kde-telepathy-0.7] lib/chat-text-edit.cpp:

Move cursor at the end of line when moving through sent messages

When moving through history of sent messages in text-ui, move the cursor
at the end of the text. This is in par with Kopete and Konversation

FIXED-IN: 0.7.1


Development Tools

Sven Brauch committed changes in [kdev-python/python3-coninstallable] /:

Make the Python 3 plugin co-installable with Python 2

You can install both plugins next to each other, but only one of them will
work for some reason (removing one makes the other work).
The debugger plugin will need separate considerations.

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

KDE Base

Martin Klapetek committed changes in [kde-workspace] /ksplashqml/themes:

Port the original KSplash4 theme to QML as "Classic"

REVIEW: 113630

Diffs: 1, 2, 3, 4, 5 Revision dae2241...
Dominik Haumann committed changes in [kate] part/script/data/indentation/latex.js:

add Latex indenter

Dominik Haumann committed changes in [kate] /:

new feature: flash matching brackets

Kate already highlights matching brackets. This commit adds the feature
of flashing the matching bracket. The flashing animation takes 250 ms.

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

[kwin] Window specific rule for decoration color scheme

Adds a new force rule to specify the color scheme to use on the window
decoration. The scheme is stored by the name of the .colors file name.
So for Oxygen.colors the value is Oxygen.

When loaded the scheme is located and the full path to the colors file
is used. This is because the X property also uses the full path.

Diffs: 1, 2, 3 Revision c4c76c5...
Martin Gräßlin committed changes in [kdelibs/frameworks] /kconfigwidgets:

New KColorSchemeManager to support changing color scheme in app

This class is inspired by functionality offered by e.g. Krita and
Digikam to allow the user to select a different color scheme for the

This manager simplifies this task and also ensures that the required
property on QApplication is set, so that a QStyle can pass the scheme
to the window manager/compositor for the windows of the application.

REVIEW: 113685

Diffs: 1, 2, 3, 4, 5, 6 Revision 1bfaf65...
Sebastian Kügler committed changes in [kde-workspace] plasma/generic/applets/systemtray2/package/contents/ui/ExpandedStatusNotifier.qml:

Basic component for statusnotifiers


Allen Winter committed changes in [kdepim] /:

show timezone comboboxes if start/end datetime is not our local timezone

so for example if you a meeting that starts at 8pm you might suspect
that doesn't refer to your local timezone. now you don't have to guess.

Laurent Montel committed changes in [kdepim] /:

Add new engine

Diffs: 1, 2, 3, 4 Revision 83a2180...
Laurent Montel committed changes in [kdepim] /:

Add support for knode

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Revision fae8a19...
Laurent Montel committed changes in [kdepim] /printing/grantlee:

Add logo support

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

Add support for decoding format=flowed delsp=yes

RFC 3676 specifies that these extra spaces in format=flowed shall be eaten when
the DelSp=yes is used.

REVIEW: 113687

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 234cee4...
Laurent Montel committed changes in [kdepim] /printing/grantlee:

Add support for photo

Diffs: 1, 2, 3 Revision 28112bb...
Laurent Montel committed changes in [kdepim-runtime] /knotes:

Implement alarm support

Laurent Montel committed changes in [kdepim] /ksieveui/templates:

Load templates

Laurent Montel committed changes in [kdepim] /:

Add support for download new printing themes

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


C. Boemann committed changes in [calligra] plugins/textediting/spellcheck/BgSpellCheck.cpp:

Make spellchinking work with more dictionaries.

I believe this fixes a long standing bug for many people why spellchecking doesn't work

Boudewijn Rempt committed changes in [calligra] /plugins/tools/defaulttools:

Allow multibrush to use an angled axis and have an option to show the axis

This feature allows multibrush to function with an axis that is rotated:
this means for the mirror mode it will use the rotated axis to mirror
over. Additionally a checkbox is added to allow the user to display the
axis being used for mirroring, symmetry and translation.

Awesome patch by Michael Martini. Thanks!

Networking Tools

Leon Handreke committed changes in [ktp-text-ui] lib/notify-filter.cpp:

Introduce new notification types for messages received in group chats

Removed highlight notification type for 1-to-1 chats. There are now the
following 6 notification types for received messages:
* 1-to-1 chat message received (active/inactive window)
* Group chat highlight received (active/inactive window)
* Group chat message received (active/inactive window)

REVIEW: 113134


Aleix Pol Gonzalez committed changes in [muon/2.1] /backends/ApplicationBackend:

Make the update cache Transaction to mark the apt backend as progressing

This way we get a nice progress bar when updating the cache.


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

Add anagram feature.

Now words that are correct in the language of the document and anagrams
of the original word are also counted as a correct entry. For example if
the word is three and the user enters ether the word is counted as correct.
Developed as Summer of KDE by Ajay Singh

Alexander Schuch committed changes in [konquest] /:

Improve "end turn" action handling.

The recently added KStandardGameAction::endTurn() action now has an own
default shortcut of Ctrl+E. The button is added to the toolbar by default.

Furthermore, the "end turn" button now is enabled/disabled depending on the
game state. It no longer is possible to end the turn while in the middle of
a send fleet command sequence.

Use the very same condition for enabling/disabling the custom "end turn"
button and the "end turn" action. This required some code cleanup.

The custom palette for the game board now colours disabled elements darker
so that they actually look disabled.

REVIEW: 113528

Diffs: 1, 2, 3, 4 Revision 814a136...



Jasem Mutlaq committed changes in [kstars] /:

Major overhaul for Ekos and KStars FITSViewer tool.

+ Proper support for -32 and 32 bit FITS.
+ Reorganized CCD capture code to be more robust.
+ Auto focus updated to capture subframes of either auto or user selected stars.
+ Added autostretch to the FITS Viewer tool bar.

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


Jonathan Marten committed changes in [kooka] /:

Big rewrite of ImageCanvas to use a QGraphicsView

Let that do all the hard work of drawing and scaling. Eliminates
having to paint the selection box outside a paint event, allows
multiple highlights with different styles and them not being
erased by the selection box.

Selection area API cleaned up for consistent interpretation of
the rectangle: functions and signals using a QRect refer to
absolute image pixels, while those using a QRectF specify a
proportion of the image size.

Lots of other API cleaned up, consistently named and documented.

Update OCR result image position tracking. Get the ImageCanvas to
detect the click and perform the coordinate conversion, so that
OcrEngine doesn't have to know about its implementation.
OcrEngine::eventFilter() is now OcrEngine::slotImagePosition()
and much simpler.

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

KDE Base

Dominik Haumann committed changes in [kate] part/view/kateviewinternal.cpp:

optimize: only alter bracket matching ranges if needed

Alex Fiestas committed changes in [bluedevil/obexftp-bluez5] /kio/obexftp/daemon:

Rewrite obexftpdaemon, preapre for new way of doing obexftp.

The idea goes as follow:

The KDED will keep track only of sessions the rest will be done in the
slave, for example this is how listDir will look like:

-KIO asks KDED for a session
-KDED returns an already existing one, or creates a new one
-KIO then uses that sessionPath to call listDir

All KDED operations will be Async, all KIO Sync.

When a kio-slave needs a sessionm, will ask the KDED, in the case where

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision b526c50...
Sebastian Kügler committed changes in [kde-workspace] /generic/applets/systemtray2/package/contents/ui:

More repaint and powerfriendly needsattention animation

This animation is visually almost the same as the one it replaces, but
saves 80+% of the repaints, which can lead to large areas being

The trick here is instead of using a curve that is flat at the start
(but still leads to repaints) by sleeping at first, and then
accelerating much faster, thereby emulating the more rapid acceleration
of the longer animation at the end of the first animation.

Positive side-effect: By moving the pause animation at the end of the
first cycle we now react almost half a second faster to the change in

Networking Tools

Shaheed Haque committed changes in [krdc] vnc/vncclientthread.cpp:

Reduce reconnect attempt frequency

Connection attempts once per second seems quite reasonable, 10 per
second was overkill.

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

[ #34120 ] Re-implement noise supression

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


Jan Grulich committed changes in [plasma-nm] kded/secretagent.cpp:

Don't store all secrets passed from the password dialog

Secrets from connections where we explicitly set that secrets should not
be saved or where secrets are not required should not be stored after we
pass them to the password dialog.


KDE Base

Martin Gräßlin committed changes in [kde-workspace] /scripts/desktopchangeosd/contents/ui:

Adjust DesktopChangeOSD to QtQuick 2.0

The OSD does not yet work properly, though. It exposes the problem
that the window is broken once it got hidden.

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

[kwin] Drop testapp for detecting whether direct rendering works on glx

The main purpose of the opengl testapp was to set the environment
variable LIBGL_ALWAYS_INDIRECT if direct rendering is not supported
before glx gets initialized.

With Qt5 we may no longer set this environment variable. QtQuick
requires direct rendering. On IvyBridge QtQuick is crashing if the
variable is set. Thus we are no longer allowed to set it and thus the
complete test becomes pointless.

The test app basically whitelisted most drivers anyway, the only
drivers which were problematic are the proprietary Catalyst drivers.
It that's still a problem we can also disable OpenGL compositing on
those drivers through the recommendation in the GLPlatform.

This also means that the KWIN_DIRECT_GL variable is no longer useful.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Revision 4599195...
Martin Gräßlin committed changes in [kde-workspace] CMakeLists.txt:

Re-enable building of appmenu directory

Only a limited subset is used as the topmenu is disabled given that
it's QGraphicsScene based and uses Plasma widgets.


Pali Rohár committed changes in [kopete/KDE/4.12] protocols/jabber/libiris/src/xmpp/xmpp-im/xmpp_vcard.cpp:

Update libiris from commit e1e776b5b7752dca7b9383677850f72dc7375fdb

Ignore /[\r\n]+/ in vcard base64 photo


Michel Ludwig committed changes in [kile] src/data/complete/tex/minted.cwl:

Add CWL file for the 'minted' package

Thanks to Thomas Braun!