Issue 308

6th October 2013 by KDE Commit-Digest Team


Marta Rybczynska
Giacomo Barazzetti
Alex Fikl

This Week...

In KWin, screenedges KCM is adjusted to build against Qt5, uses QtQuick2 for the decoration preview list. Skrooge exports HTML and ODT from tables, gets better performances by avoid to refresh autocompletion on widgets after light transactions. In Calligra, Krita improves performance for gmic filters. Sflphone-kde makes TLS and SRTP features work again. Porting to KDE Frameworks 5 continues.


Commits 1698 by 139 developers
Open Bugs 21180
Open Wishes 15892
Bugs Opened 283 in the last 7 days
Bugs Closed 217 in the last 7 days

Commit Summary

Module Commits
Files Developer Commits
Laurent Montel
Aaron J. Seigo
Sebastian Kügler
Martin Gräßlin
Marco Martin
Aleix Pol Gonzalez
Sergio Luis Martins
Boudewijn Rempt
Albert Vaca Cintora
Burkhard Lück

Internationalization (i18n) Status

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

Bug Killers

Person Bugs Closed
Jekyll Wu
Christoph Feck
Thomas Lübking
Laurent Montel
Frank Reininghaus
Myriam Schweingruber
Julian Seward
Boudewijn Rempt
Andi Fischer
Albert Astals Cid

Commit Countries

Commit Demographics




  Bug Fixes Features Optimization Security Other



Development Tools

[] []    





KDE Base

[] [] []   []


[] [] []   


[] [] []   




[] []    []

Networking Tools


User Interface








There are 52 selections this week

Bug Fixes

Development Tools

Aleix Pol Gonzalez committed changes in [kdevelop] debuggers/gdb/debuggerplugin.cpp:

Improve plugin description(debugging plugins), which is shown in the About dialog.

Reuse the wording from the .desktop file which is more helpful.

Andi Fischer committed changes in [umbrello] umbrello/umlscene.cpp:

Fix multiple association widgets for single foreign key constraint.

Association labels and lines for foreign keys were duplicated each time an
entity constraint was saved. This was due to 'findAssocWidget' using the wrong
entity to find the association (i.e. the entity not holding the constraint

KDE Base

Eike Hein committed changes in [kde-workspace/KDE/4.11] libs/taskmanager/strategies/programgroupingstrategy.cpp:

Avoid ungrab on already-destroyed delegate by queueing signal.

Emmanuel Pescosta committed changes in [kde-baseapps/KDE/4.11] /src/views/versioncontrol:

Show the right version states for expanded items.

FIXED-IN: 4.11.3
REVIEW: 112980

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

Make sure that removeExpandedItems() also removes filtered items

This fixes the problem that filtered child items in Details View may
reappear when switching the view mode and the clearing the filter.

REVIEW: 112962
FIXED-IN: 4.11.3

Eike Hein committed changes in [kde-workspace] libs/taskmanager/taskgroup.cpp:

Fix rare out-of-bounds list indexing when inserting launchers.

Thomas Lübking committed changes in [kde-workspace/KDE/4.11] kwin/effects/cube/cube.cpp:

Ensure to not clip windows when painting the cube

FIXED-IN: 4.11.3

Dominik Haumann committed changes in [kate] part/view/kateviewhelpers.cpp:
Vishesh Handa committed changes in [nepomuk-core/KDE/4.11] tools/nepomukctl/main.cpp:

Enable compilation of nepomuk-core on mac

REVIEW: 112852


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

IMAP: detect UIDVALIDITY changes when they happen while a mailbox is already selected

No real-world IMAP server shall do this, ever, and expect the clients to work
well. That said, clients absolutely have to handle this reasonably. Given that
no server is known to do this (apart from an old version which does this at most
once for a user for reasons related to delayed mailbox allocation), it seems
acceptable to simply disconnect in this case.

Yes, it might be possible to reconnect to the mailbox. However, verifying that
all pending requests are killed reasonably is too much work for a condition that
no Trojita user will ever see, hopefully.

REVIEW: 113109

Dan Vratil committed changes in [kdepim-runtime/KDE/4.11] resources/imap/imapresource.cpp:

Disconnect session pool manually in ImapResource destructor

Otherwise the pool is disconnected when destroyed from QObject destructor.
Disconnecting while there's a task pending in ResourceScheduler leads to
calling QObject::invokeMethod() on the same QObject, which crashes, because
some of it's data has been already destroyed.

FIXED-IN: 4.11.3

David Edmundson committed changes in [ktp-contact-runner] src/contactrunner.cpp:
Laurent Montel committed changes in [kdepim/KDE/4.11] kmail/kmmainwidget.cpp:

Fix Bug 322666 - Misleading "Moving messages to trash failed. Please verify your trash in your IMAP account and retry." message

FIXED-IN: 4.11.3

Laurent Montel committed changes in [kdepim] kmail/editor/kmcomposewin.cpp:

Fix Bug 323246 - When pasting URLs the text should say "Add URL into Message as Text" instead of "Add URL into Message Text"

FIXED-IN: 4.12

Dan Vratil committed changes in [akonadi/1.10] /src/storage:

Map QString to text instead of Bytea with PostgreSQL backend

It's what suggested by QTSql.

It also happens to fix the recent issues raising around '\SEEN' errors
in SQL queries. It was visible because QTSql somewhat improve the postgresql
driver, and so... akonadi revealed its own bug.

REVIEW: 112976

FIXED-IN: 1.10.3

David Edmundson committed changes in [libkpeople] src/personpluginmanager.cpp:

Check plugin loaded correctly before adding to the list of plugins

This occured on broken installs where the .desktop file was installed
but the .so file was missing


Sahil Nagpal committed changes in [calligra] krita/plugins/filters/colorsfilters/kis_perchannel_filter.cpp:

Fixing Bug 322880: Saved Krita 2.6 color adjustment filter doesn't read properly in 2.8pre-alpha

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

Don't assert when storing a second deactivated sensor in the cache

This removes an assert that checks whether a deactivated
sensor is stored another time. This happens when you check,
modify, uncheck a sensor for one preset, then go to another
preset of the same paintop type that has that sensor activated
and you deactivate it.

The problem seems to be, afaict, that we try to remember
the settings of deactivated sensors, but do that per paintop
instance, not per preset.

There are two proper solutions:

* remove the caching of custom settings for deactivated sensors
* save customized but deactivated sensors to the presets

The question is, which one shall it be?

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

Do not assert or crash when passing empty list of buttons

Boudewijn Rempt committed changes in [calligra] /widgets:

Do not try to set a resource if the selection changes on deletion

With some versions of Qt, deleting a list widget changes the selection,
and that can cause a crash if we're trying to set the newly selected
item on an already delete KoCanvasResourceProvider.

So, make sure that the KoResourceItemChooser and KoResourceItemView disconnect
themselves completely on teardown.


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

Don't crash when trying to create the singleton out of a qapp parented AO

rationale: qapp kills q_global_statics (such as our backing object manager
thing) BEFORE its own children, when the children then get destructed
everything explodes because it tries to create a PASupport which tries
to mindlessly access an eventloop that is no longer present and everything
explodereds and there be brains and blood all over the place

Networking Tools

Xuetian Weng committed changes in [ktp-kded-module/kde-telepathy-0.7] telepathy-mpris.cpp:

always reload now playing text on settings change

REVIEW: 112992

FIXED-IN: 0.7.0

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

[ #30848 ] Make TLS and SRTP feature work again

It was broken since an undocumented daemon syntax change, probably a
long time ago (years?). All security feilds are now validated, everything
is saved correctly and there is now additional protections against this
happening again.

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


Valentin Rusu committed changes in [kwallet] /manager:

Fix crash on drag&drop inside the wallet editor

FIXED-IN: 4.12

Dan Vratil committed changes in [kgpg/KDE/4.11] transactions/kgpgeditkeytransaction.cpp:

Don't show error dialog when key change is successful

When editing a key, an error dialog is always shown, even when the
change is successful.

This is because KGpgKeyTransaction set initial result to TS_MSG_SEQUENCE,
but it does not set it to TS_OK when GPG returns GOT_IT (success)

REVIEW: 113032
FIXED-IN: 4.11.3


Development Tools

Milian Wolff committed changes in [kdevplatform] /:

Improve plugin description, which is shown in the About dialog.

Reuse the wording from the .desktop file which is more helpful.

REVIEW: 113030

Antonis Tsiapaliokas committed changes in [plasmate/plasmoidviewer2] /:

Add command line support for selecting the containment and the plugin

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

KDE Base

Martin Tobias Holmedahl Sandsmark committed changes in [konsole] /:

Check processes running when closing window

Instead of just counting the number of open sessions check what
processes are actually running in them when displaying the confirmation
dialog when closing a window.

Martin Gräßlin committed changes in [kde-workspace] /clients/aurorae/themes/plastik:

[aurorae] Plastik theme transits to QtQuick 2

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

Welcome back decoration KCModule!

And with that all kwinkcms are ported modulo kwincompositing which
is going to be replaced.

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

[kcmdeco] Use QtQuick2 for the decoration preview list

This introduces quite some changes. We cannot include a QQuickView
directly in the QWidget based UI as a replacement for the
QDeclarativeView used before.

Instead a QScrollArea is used as replacement for the view and a
QQuickView is embedded into a widget container in the scroll area's
view port. This allows us to keep the existing semantic of having a
native scroll bar synced with the list view. It might be an idea to
change this to QtQuickControls in future.

As the list view is now only inside the scroll area we do not need to
pass the slider width to the root context and can by that more easily
calculate the width of one decoration.

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

Welcome back KWin screen edges KCM

Screenedges KCM is adjusted to build against Qt5. Most notable
* no longer links kworkspace as ScreenPreviewWidget got moved into
the KCM
* ui file is adjusted to not crash (see git log of kcmdesktop)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 564e98b...
Martin Gräßlin committed changes in [kde-workspace] kwin/kcmkwin/CMakeLists.txt:

Welcome back KCM to configure Alt+Tab and friends

Martin Gräßlin committed changes in [kde-workspace] kwin/kcmkwin/CMakeLists.txt:

Welcome back kwinoption config modules

* Actions
* Advanced
* Focus
* Moving
* Window Behavior

Bhushan Shah committed changes in [kde-workspace] /generic/dataengines:

Port systemmonitor DataEngine

REVIEW: 113072

Diffs: 1, 2, 3, 4 Revision 531fd9c...


Dan Vratil committed changes in [kdepim-runtime] /:

Fetch full mail headers when not using disconnected IMAP

Using Headers scope will fetch only limited subset of mail headers, which
means that filters using headers not included in this set (like List-Id)
won't work, until the message is opened in KMail and full body is fetched
from the server.

Fetching all mail headers during RetrieveItemsTask will download slightly
more data, on the other hand we get perfectly working mail filters.

FIXED-IN: 4.12


Stephane Mankowski committed changes in [skrooge] /:

FEATURE:Export HTML and ODT from tables

Diffs: 1, 2, 3, 4 Revision 25cf550...
Sven Langkamp committed changes in [calligra] /ui/widgets:

bring back preset proxy adapter, now the preset strip only shows preset for the paintop

Allan Anderson committed changes in [kmymoney] /:

REVIEW:112947 - Interest category and amount disappear
when new fee entered in Dividend. Also, fixes for KEditWidget
visibility issues.

Boudewijn Rempt committed changes in [calligra] /main:

Make the openpane a drop target

For now, you can only drop one (1) file, not multiple, because of the
kpart/kdocument braindeadness...


Harald Sitter committed changes in [phonon-vlc] /:

implement attemptautoplay mechanic

iff MC::autoPlayTitles is enabled we catch EndedStates and try to
increment the title index by one. happens until we get from such an attempt
into playing|paused = success OR error = failure OR new source (which
aborts it all via resetMembers).

funny enough the title count supplied by the MC is always 0 because we
actually do not know. good stuff.

getting sick of these workarounds, slightly...

Diffs: 1, 2, 3 Revision 23fb9ea...

User Interface

Konstantinos Smanis committed changes in [kcm-grub2] /:

*ADDED: Preliminary submenu support.

This is a first attempt at implementing submenu support. The parsing
code et al. is just fine, but the QComboBox+QTreeView combination leaves
a lot to be desired.

Specifically, I couldn't find a proper way to match the currently
selected item in the view with the corresponding QModelIndex. QComboBox
only advertises the current text and index, which is not enough for a
unique '1-1' mapping. The current QPersistentModelIndex is hidden in the
private implementation, no can do about it.

Perhaps a different widget combination could yield better results.

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


KDE Base

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

Save memory and time in KFileItemModel by lazy-loading the "ItemData"

To reduce unnecessary memory comsumption and CPU usage, we only fill the
QHash<QByteArray, QVariant> if the methods data(int) or setData(int) are
called for the corresponding index, or the data is necessary for sorting
the model.

According to my tests, this patch reduces the memory usage when loading
a folder with 100,000 items by 17% in Icons View, and by 26% in Details

REVIEW: 112725


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

Parser: speed up atom parsing

This patch cuts the time spent in getAtom from 7.34% of the total runtime to
4.47%, as measured by the testFlagReSyncBenchmark (valgrind, clang 3.3). This
speed up is obtained by ignoring the high-level API of QByteArray and working on
raw char * instead.

REVIEW: 113118

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

Use pre-created instances when comparing flag names

The goal here was to elliminate in-place construction of QString instances only
to be destroyed later on when they go out of scope. This change cuts the time
spent in the isMarkedAsRead when running the testFlagReSyncBenchmark test from
2.69% of the total runtime down to 0.57% (clang 3.3). It might be interesting to
see how forcing the comparison to *always* hapen *only* on QString::d would end
up :), but it's rather tricky because that's a private member, of course. That
said, soemthing along the lines of [1] (inspired by [2] which is inspired by
[3]) *might* actually work here.

Tests which attempted to use std::binary_search ended up rather poorly; it seems
that clang 3.3 was not happy enough to inilne the various std::advance and
iterator_traits calls.


REVIEW: 113120

Diffs: 1, 2, 3, 4, 5 Revision 0c993a7...
Sergio Luis Martins committed changes in [kdepimlibs/KDE/4.11] /calendar:

Reuse the same Incidence pointers onDataChanged.

On dataChanged we get a new Item with a new payload, and we store
that item in mItemsById map. That payload will have a different
raw pointer than the one we already have internally, so
update the payload.

Reduces memory consumption.

Diffs: 1, 2, 3 Revision 77cd11f...


Lukáš Tvrdý committed changes in [calligra] /plugins/extensions/gmic:

Improve performance for gmic filters

o don't change the input layer colorspace to float 32-bit
o convert pixels using numContiguousColumns buffer
o simplify KisGmicSimpleConvertor
o add benchmarks for round-trip conversion
- QImage -> gmic -> QImage
- KisPaintDevice -> gmic -> KisPaintDevice
o benchmark conversion to and from gmic separatly
o do not bitblt, copy pixels directly to input layer for now

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 88f6905...
Lukáš Tvrdý committed changes in [calligra] /plugins/extensions/gmic:

Improve performance and stability of gmic

o add benchmarks for fast method converting Krita layers to gmic
o optimize converting Krita RGBA layers to gmic layer and back to Krita layers

KisGmicBenchmarks::testConvertToGmic(): 6,673 msecs
KisGmicBenchmarks::testConvertFromGmic(): 7,149 msecs

KisGmicBenchmarks::testConvertToGmicFast(): 59 msecs (113-times faster)
KisGmicBenchmarks::testConvertFromGmicFast(): 154 msecs (46-times faster)

Slow method with LCMS2 is used when the colorspace is different from RGBA.
Optimization is implemented as color-transformation that only scale
RGBA colorspace depth to float.

Now is the performance in pair with g'mic for gimp plug-in

o fix crash when closing gmic widget
o add more unit tests converting gmic-krita conversions
o add simple feedback that gmic filtering is done:
- window title contains information about running time of gmic filter

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

Better performances by avoid to refresh autocompletion on widgets after light transactions

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


KDE Base

Aaron J. Seigo committed changes in [plasma-mobile] contourd/location/network-engines/solid/SolidNetworkNotifier.cpp:

remove unused headers

fixes build when using newer networkmanager / kde-workspace as a base

Bhushan Shah committed changes in [kde-workspace] /ksysguard:

Port ksgrd library to KF5
REVIEW: 113056

Diffs: 1, 2, 3, 4, 5, 6 Revision 0cfbe6b...


Anmol Ahuja committed changes in [amarok] /:

Print playlist download errors to the debug log.