Issue 193

24th July 2011 by KDE Commit-Digest Team


Alexander van Loon
Marta Rybczynska
Jaka Kranjc
Shafqat Bhuiyan

This Week...

Calligra Stage gets a new user interface for creating and editing custom slide shows in it's Slides Sorter View. Gapless playback is implemented in Phonon-GStreamer. For rekonq adding favorites is made easier and a user interface option for configuring the do not track header is added, there are also updates to the SSL support. The Public Transport applet can now show stops in Marble with the updated OpenStreetMap data engine. In kdelibs we have an usability improvement in the Edit File Type button and an introduction of package cache for Plasma. Kate now correctly handles comments when doing static code wrap. Bugfixes were made to a very diverse range of applications, including KDevelop, Marble, and Network Management.
Ivan Čukić explains the use of the new activity manager which has seen much commit activity in the previous week.

The Activity manager is a service that handles user's activities and tracks the resources (documents, e-mails, contacts, web pages etc.) that the user opens.


The "activity" is an abstract concept which is intended to help the user organize her work. For example, activities can range from general "Web browsing" or "Gaming" to more specific like "Learning Physics 101", "Writing a paper on multi-dimensional fuzzy sets" or "Doing KDE Plasma development".

In Plasma and KWin, activities are exposed as different sets of desktop widgets and windows to allow users to create a per-task experiences with different desktop icons, widgets and applications that are specific to the task at hand etc.

One step more

While this separation was quite useful, it was only the first step. Namely, apart from having only different sets of tools for different tasks, it would be rather nice to have different 'favourite applications' in the application launcher (no point to show KDevelop in an artwork related activity), different recent documents list (why would you need a film you watched the day before while developing software), to show only important contacts for the activity you're in and similar.

The activity manager allows the program developers to be able to react to the changes in the current activity to be able to provide only relevant data.

User activity tracking

The new thing in the current version of the Activity manager, that was a long time in the making, and now is being developed as a part of the KDE Contour project, was the ability of the service to record the user's actions to be able to provide automatic scores to the accessed resources.

One of the things I never liked about the 'recent documents' system is the fact that it usually contains more items that the user will never need again than those that are important. Amarok has a nice way of scoring the songs based on how many times a certain song was listened to, whether it was explicitly chosen to play, whether the playback was interrupted by the user and similar.

We aim to do the same for most resources the user can access, but with some important changes. Currently, the score is calculated using the number of times the resource was opened, for how long it was kept open, and when was the last time the user accessed it.

In the future, the system will be improved by also tracking for how long a certain resource has had the focus. So, if you keep something open, but minimized, it will not get a high score.

This will make the 'recent documents' feature quite irrelevant and replace it with the 'important documents'.


While the main purpose was to have the system be able to understand what is important to the user, there are a few quite nice possibilities that arose from the fact we can now know what documents are open at a specific time.

The first is the global Share-Like-Connect system which will (apart from other things) allow the user to share the currently open document with friends, without the need to open a web browser, or an e-mail/IM client. Just select where you want it posted, or to whom, and all will be done automagically.

The second side-effect will be the ability to develop a truly document-based desktop and mobile environment compared to the today's application-centric systems.


Commits 2376 by 232 developers
Open Bugs 23418
Open Wishes 17490
Bugs Opened 403 in the last 7 days
Bugs Closed 471 in the last 7 days

Commit Summary

Module Commits
Files Developer Commits
Nilamdyuti Goswami
Marco Martin
Aaron J. Seigo
Yasen Pramatarov
Boudewijn Rempt
Yuri Chornoivan
Laurent Montel
Hugo Pereira Da Costa
Chusslove Illich
Burkhard Lück

Internationalization (i18n) Status

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

Bug Killers

Person Bugs Closed
Christoph Feck
kollix aon at
Myriam Schweingruber
lamarque gmail com
Aaron J. Seigo
Christophe Giboudeaux
Kurt Hindenburg
Alex Fiestas
Burkhard Lück
Julian Seward

Commit Countries

Commit Demographics




  Bug Fixes Features Optimization Security Other



Development Tools

[] []    


[] [] []   



KDE Base

[] [] []   []


[] []    


[] [] []   []




[] []    

Networking Tools

[] []    

User Interface








There are 63 selections this week

Bug Fixes

Development Tools

David Nolden committed changes in [kdevplatform] /:

Don't clear the area while switching the working-set as result of viewAdded().

This fixes possible crashes and makes the document-controller test work again.

Olivier Jean de Gaalon committed changes in [kdevelop] /cpp/cppduchain:

Fix DUChain double-lock assert/crash when visiting certain Ptr-to-member
Thanks to Povaddict for tracking down and the test.

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


Guillaume Martres committed changes in [marble/kde-4.7] src/lib/PlacemarkLayout.cpp:

PlacemarkLayout: avoid having deleted VisiblePlacemarks in m_paintOrder

setCacheData() runs qDeleteAll on m_visiblePlacemarks but did not remove
them from m_paintOrder. This could cause random crashes (semi-reproducible
at startup by moving/clicking the mouse before the map is loaded).
(cherry picked from commit 78980c378a7eff47fd68ad4b013f0d5c346315ef)

Bernhard Beschow committed changes in [marble] src/lib/StackedTileLoader.cpp:

StackedTileLoader: always use correct tile cost when adding a tile into the cache

* prevents Marble eating loads of memory

KDE Base

Kurt Hindenburg committed changes in [konsole] /:

Correct non-zero status notification such that it works.

The non-zero notification was being displayed for zero exit codes.

Thanks again to Jekyll Wu () for patch and research.


Aaron J. Seigo committed changes in [kdelibs] plasma/containment.cpp:

call Applet::sceneEventFilter; otherwise applet handles are broken on Applets that are also Containments

Kurt Hindenburg committed changes in [konsole] src/Vt102Emulation.cpp:

Fix $COLUMNS/$LINES after resizing.

The 2 were inverted previously.

Alex Fiestas committed changes in [kde-workspace] kcontrol/randr/randrscreen.cpp:

Use the first (highest) resolution in common instead of last used

The last used resolution can be wrong, can be incompatible or can be
just "ugly" if you hardware setup has changed. This is the common
use case for KRandRTray when you use it to setup quickly and easy a new
To fix this wrong behavior (which may end in an unusable system) instead
of loading the last used resolution we're not loading the highest
resolution in common.

As a practical case, my laptop has 1280x800 and my LCD is 1920x1080, for
an unknow reason my las used resolution was 1024x768 which is not
working at all in either of the screens.

Finally I just want to note that this is the behavior that any RandR
user expect, unify outputs at the highest (better) resolution.
(cherry picked from commit 717b4f18621da0355319e03c79dd5dc0576b2b51)

Alex Fiestas committed changes in [bluedevil] /:

Show always the knownDevices while running a discovery at the background

This fixes one of the most hated behaviors of kio_bluetooth, before this
commit we were scanning always for new devices so in order to use your
device via kio_bluetooth it had to be in discoverable mode (and of
of course you had to wait a bit).
Now, we're showing always the knownDevices first, and start a
discovery each 20s. If a folder is acceed the discovery is stopped.


Oswald Buddenhagen committed changes in [kde-workspace/KDE/4.7] klipper/klipper.cpp:

apply selection delay hack only to selection changes

FIXED-IN: 4.7.1

Christoph Feck committed changes in [kde-runtime] kcontrol/kded/kcmkded.cpp:

Enable sorting

FIXED-IN: 4.8.0

Alex Fiestas committed changes in [kde-workspace] kcontrol/randr/randrscreen.cpp:

Don't react if output changes, KRandRTray is not the only boy in town

If you change a config with the KCM and the KRandRTray is executed, when
you change your configuration KRandRTray will react on it and if you
have unityOutput activated, then KRandRTray will force that configuration
invalidating what you (user) did in the KCM.

This is yet another fix in the realm of "Don't do anything unless the
user ask for it".

Erlend Hamberg committed changes in [kate] part/vimode/katevivisualmode.cpp:

fixed: removing selection in visual mode commands like 'c' (Vi Mode)

Dominik Haumann committed changes in [kate] part/document/katedocument.cpp:

prevent word wrap from breaking comments

Aaron J. Seigo committed changes in [kde-workspace/KDE/4.7] libs/plasmaclock/calendar.cpp:

don't bother limiting the number of events shown.

the data is already there in memory, it's at most one month of data and starts from the date the user selected, and apparently users expect to see it all .. which makes sense.
while i was in there, made some minor improvements to the code (style, efficiency..)

Christoph Feck committed changes in [kdelibs] kio/kfile/kicondialog.cpp:

Fix returning icon names containing dots

FIXED-IN: 4.8.0

Andrea Iacovitti committed changes in [kdelibs/KDE/4.6] /rendering:

Fix infinite loop that can happen in some cases where colspan=0 or rowspan=0
because accessing empty structures. Tracking for not empty qmap by using
additional flag is redundant and buggy in this case.

(cherry picked from commit 543c2751da42c1664171685e25fbce594024d9cd)

Martin Gräßlin committed changes in [kde-workspace] kwin/libkwineffects/kwinglutils.cpp:

Fix regression introduced with 909b4efa

I still don't understand how I actually tested my patch
before committing. It was working, sigh. That were
several hours of annoyance including a git bisect presenting
my own commit I assumed to be correct. Sigh.


Andre Heinecke committed changes in [kdepim] ksendemail/main.cpp:

Add argument for the mail address again.

This argument had been removed in 3ce2855ab7abe1e7638c1d80dfb9cbf1ffcd6d59
Since then it has not been possible to use ksendemail to open
the messagecomposer with a prefilled "To: " field apart
from suppling the full Header.

This enables ksendemail again to function as the "default mail
application" on Windows correctly and open a Messagecomposer window
with a prefilled To: field (e.g. when opening mailto urls)

Stephen Kelly committed changes in [kdepim-runtime] migration/kjots/kjotsmigrator.cpp:

Set the content after setting the encoding.


Sebastian Sauer committed changes in [calligra] libs/kotext/KoTextEditor.cpp:

Fix Words crashes when editing some specific text with record changes turned on

Robby Stephenson committed changes in [tellico/2.3] /:

Remove accent marks for MovieMeter searches

The searches work better with accent marks removed.
Add unit test and correct character set for current unit test

Diffs: 1, 2, 3, 4, 5, 6 Revision 910041b...
Lukáš Tvrdý committed changes in [calligra] filters/libmso/shapes2.cpp:

Fix oval callout shape equation

OpenOffice equation was wrong. 'W' command specification
consists of "line is then drawn from the current point to
the start angle of the arc" but OOo does moveTo instead
and that is specification of 'V' command.


Rick Chen committed changes in [amarok] src/covermanager/CoverFetchUnit.cpp:
Harald Sitter committed changes in [phonon-gstreamer] /:

Fix ADO returning 0 samples forever.

Since 2 channel input buffers were thought to be chopped by
QVector::resize() the emitted data never went beyond returning 0 if the
initial samples were 0. This is because resize() actually removes
elements at the end of the vector, however since the vector is actually
used like a queue we need to chop at the front. This is now simulated
by using remove(0, n) with n = dataSize*channels.
Also fix mono processing, instead of manually memcopying and whatnot we
now create an implicitly shared copy vector and resize it to the size
we need to return. This either results in implicitly shared remaining
memory or, which is more likely, only copies the elements that are to
be emitted. Eitherway a massive gain in readability.

Networking Tools

Andrea Diamantini committed changes in [rekonq] /:

SSL fixes

I hope I addressed here a number of fixes in my first implementation:
- working hasSSLValid() function (checking cert validity and chain errors)
- escaping certificate strings
- typos (Sha256/Md5, supportedCipherBits/usedCipherBits)
- encryption check (at least I hope so)

Diffs: 1, 2, 3, 4, 5, 6 Revision 85f454f...
Ilia Kats committed changes in [networkmanagement/nm09] /:

make connection editor window modal instead of application modal.

Lamarque Souza committed changes in [networkmanagement/nm09] /:

Calculets connection list height based on default font height. Minimum
height is 28 pixels.

FIXED-IN: nm09

User Interface

Marco Martin committed changes in [contour] /qmlpackages/plasma-contour-homescreen/contents/ui:

bigger panel, more than 50%

and with the frame ging trough the bottom of the screen, without bottom border


Laszlo Papp committed changes in [gluon] creator/mainwindow.cpp:

Do not clean up the current scene if it is null (ie.: without project)

Mathias Kraus committed changes in /trunk/KDE/kdegames/granatier/src/bombitem.cpp:

fix visual bug, where the bombexplosion is not centered


Development Tools

Milian Wolff committed changes in [kdevplatform] /:

make use of new TestCore api and apply some general cleanup to the unit tests

this way all our unit tests now run in a temporary session
and are hence properly restartable and don't conflict with each other
which sometimes used to happen

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


Jérôme Sonrier committed changes in [kstars] /options:

Add checkboxes to select group of satellites

Jérôme Sonrier committed changes in [kstars] /options:

Add a search field on satellites option dialog

Burkhard Lück committed changes in [kalzium] plasmoid/applet/psePlasmoid/Molmasscalculator.cpp:

load kalzium catalog to display the translated periodic table names in the listbox

KDE Base

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

Move GLX detection from kwinglobals to CompositingPrefs

Removes the Extension::glxAvailable() from kwinglobals and
implements the functionality in CompositingPrefs, where it
is only needed. There used to be one additional check in
scene_opengl_glx.cpp which is moved into composite.cpp
before the OpenGL Scene is created.

REVIEW: 102002

Diffs: 1, 2, 3, 4, 5, 6 Revision 8dace03...
Kai Uwe Broulik committed changes in [kdelibs] kio/kfile/kpropertiesdialog.cpp:

GUI: Make "Edit File Type" button an actual button and make it more obvious.

REVIEW: 101800

Martin Gräßlin committed changes in [kde-workspace] kwin/lanczosfilter.cpp:

Add environment variable to enforce Lanczos Filter

By setting KWIN_FORCE_LANCZOS=1 the settings and
driver check are overwritten.

This should help to test mesa bug 33275

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

Build an additional kwin_gles binary

KWin gets compiled twice if OpenGL ES is available
and a second binary is created. It is linked against
the GLES effects and kwinglesutils and does not link
against OpenGL. The normal OpenGL variant is still
the "kwin" binary.

This is an intermediate step till we have the scene
as a loadable plugin. Then we will determine whether
OpenGL ES is supported in an external application
and load it as a plugin, otherwise we load the
OpenGL/GLX scene as a plugin.

REVIEW: 101979

Dominik Haumann committed changes in [kate/KDE/4.7] /app:
Alex Fiestas committed changes in [kde-workspace] plasma/desktop/shell/panelview.cpp:

Be sure that Panel is resized when needed (XRandR events)

REVIEW: 101968

Hugo Pereira Da Costa committed changes in [kde-workspace] /:

implemented individual animations configuration.

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


Volker Krause committed changes in [kdepim] messagecomposer/util.cpp:

Set content disposition header only on opaque S/MIME messages.

KMail doesn't care if it's also set on the multipart ones, but apparently
Apple Mail and Outlook do, in the worst case not displaying the mail
content at all.


Paul Mendez committed changes in [calligra] /:

Stage: New UI for Create/Edit Custom Slide Shows

Integrate new UI for manage/create custom slide shows in Slides Sorter View
Several visual improvements to slides sorter view.
Add undo/redo command for delete slides from custom shows.
Add unit tests for new commands.
REVIEW: 101820
GUI: New UI for manage/create custom slide shows on Stage

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 16 more) Revision f911dad...
Boudewijn Rempt committed changes in [calligra] krita/

Show a splashscreen while loading Krita.

The splash image is included from an xpm file since we cannot
use the application data directories before having setup all
the standard directories, so we cannot dynamically load a file.

Note that gimp and krita create xpm's that give lots of compile
warnings, so after changing the splash image, we need to add
a bunch of consts:


static char * splash_screen_xpm[]={


static const char * const splash_screen_xpm[]={

Sven Langkamp committed changes in [calligra] /:


Christian Esken committed changes in /trunk/KDE/kdemultimedia/kmix:

First version of MPRIS backend. Detects running MPRIS enabled applications.

Diffs: 1, 2, 3, 4, 5 Revision 1242584
Harald Sitter committed changes in [phonon/qml] /:

initial ARB FP drawing

- only does RGB32 (just like msink in pgst)
- only can do aspect retaining scaling (just like before)
- ludicrous design (literally not existant actually), final design will
probably assume a mixture of qtquick2 like surfaces and various painter
implementations (we need at least raster and GSLS, and since it is now
around anyway ARB - perhaps something X too?)

by default we render using raster, if gl is available and PHONON_PAINT
is set to either gl (which paints using qimage texture upload thru
qlcontext) or directgl (which uses the ARB shader program)

for testing you could for example run:
export PHONON_PAINT=directl
qmlviewer -opengl videoplayer.qml

Diffs: 1, 2, 3 Revision 3252bc5...
Trever Fischer committed changes in [phonon-gstreamer/plumbing] /:

FEATURE: Gapless playback!

Diffs: 1, 2, 3, 4 Revision 7ee1100...

Networking Tools

Andrea Diamantini committed changes in [rekonq/AddFavoriteBkContextMenu] /:

Provide a "click" mechanism to manage favorites

With this commit, you can add a favorite by right
clicking on the bookmark icon.

Diffs: 1, 2, 3, 4, 5 Revision 2586c70...
Ilia Kats committed changes in [networkmanagement/nm09] /:

Port all VPN-Plugins which support this to the new secrets flags system.
Add auth-dialogs for OpenVPN and PTTP.
Fix some minor bugs

Andrea Diamantini committed changes in [rekonq] /settings:

Added UI option to configure the "Do Not Track" feature


Friedrich Karl Tilman Pülz committed changes in [publictransport] /:

Show stops in marble using updated OpenStreetMap data engine

- New action in context menu of route items
- Only shown if the openstreetmap data engine is installed
- New source for the openstreetmap data engine: "getCoords", used by the
applet with source names like "getCoords publictransportstops [stopname]".
Doesn't always work, because the stop name must match exactly and shouldn't
exist multiple times, eg. in different cities.
Uses these filters with jxapi: [public_transport=*], [railway=tram_stop]
- Change OSM url from to
(not so overloaded server and new implementation in java)
- Plus: Route stop marker items now clipped and with an elliptic shape

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 4 more) Revision e1a1d33...
Raphael Kubo da Costa committed changes in /branches/KDE/4.7/kdeutils/ark:

Specify when the extraction dialog's settings should be followed.

On ExtractJob's side, we make the extraction options it received
publicly accessible.

On Part's side, we set a "FollowExtractionDialogSettings" option to
true only when the extraction dialog was used to extract files, and
only actually follow these settings (for now, open the destination
directory and/or quit Ark after the extraction) when that option is

FIXED-IN: 4.7.0



Akarsh Simha committed changes in [kstars] /skyobjects:

+ Separate the test for significant gravitational lensing around the
sun from the actual lensing calculation. Now there are two methods
-- checkBendLight() and bendlight(), the former doing the job of
checking whether the skypoint is close enough to the sun to be
lensed by its gravity.

+ [Major] Recompute coordinates of a SkyPoint only when about a minute
has passed since the last recomputation. This means that precession,
nutation, aberration, are calculated only when there are
sufficiently large changes in time. This is expected to increase the
speed of recomputing the skymap, although I have not tested the

This is also a potentially dangerous change. I've not tested to
check that precession is recomputed when the step is sufficiently

Akarsh Simha committed changes in [kstars] /skyobjects:

Short circuit a whole lot of proper motion, precession, nutation,
aberration calculations if the time change is insignificantly small
compared to the time-scales of these effects.

Potentially dangerous. I've already found one bug in my code which I'm
going to fix right away.

The two primary factors leading to slow drawing are the drawing itself
and the JIT Update on DeepStarComponent. While using OpenGL rendering,
the former bottleneck is not as dominant as the latter one. This is
expected to make significant differences to FPS in OpenGL mode. In
QPainter mode, there were noticable differences seen using a profiler,
but very little visible difference (although there was visual evidence
of some improvement).


Gilles Caulier committed changes in [digikam] /:

Big changes here in CameraGUI:

-Load camera icon view thumbnail on the fly. Do not load all of then at the first time, which time consuming.

-Reduce memory allocation of thumbs to only visible items.

-Reduce time loading at camera connection to only parse file system information not metadata from files, which time consuming.
Definitivly, camera connection duration is reduced by 10~20.

-Camera icon view are sorted by date from file system. Metadata are loaded on the fly, at the same time than thumbnails,
especially to display photo properties from tool-tips and right sidebar.
Note : at this commit, only USM camera is patched, GPhoto driver still todo.

-In camera drivers, simplify api and add new virtual methods to get full metadata container (not only exif). Always get metadata
through separate thread to reduce time latency in gui.

-In camera sidebar implementation, remove all dependencies to CameraIconView and CameraIconItem for future Qt4 model/view port
of camera icon view.

-Bug fix in UMSCamera driver about to load date time-stamp from file system : information is never stored through imagescanner.

-General implementation polish and optimizations, especially in camera item info container.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 9 more) Revision d877d44...
Gilles Caulier committed changes in [digikam] /:

Reduce memory allocation in CameraIconItem to store a class instance of GPItemInfo instead to realocate
a new object as a copy of info computed by camera driver.
Use everywhere a const ref of GPItemInfo as parameter instead a pointer.
Add relevant method in GPItemInfo and PhotoInfoContainer

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

KDE Base

Aaron J. Seigo committed changes in [kdelibs/libplasma2] /:

give package a cache for found items; make the dptr implicitly shared

this drops a 100k loop of copies from ~2700ms to ~37ms and a 100k loop
of copy-n-find from ~3900ms to ~40ms.

the cache addition is predicated on the idea that lookups of the same files will be frequent enough to warrant the small amount of extra memory usage for the cache. if that does not hold in practice (though it appears to) then this will not be a gain and in fact be a small net loss for memory footprint

the dptr change is predicated on the assumption that copies of Package will be frequent, and so must be low cost. this is known to be true. even if it wasn't, there is no down-side to this change. the upside are significant time and memory savings.

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


Elvis Stansvik committed changes in [calligra] libs/textlayout/KoTextLayoutTableArea.cpp:

Simplify / speed up table hit test by using qLowerBound().

REVIEW: 102049

Boudewijn Rempt committed changes in [calligra] /plugins/filters/fastcolortransfer:

FastColorTransfer: compute mean and sigma and store those in the config

We used to compute mean and sigma for the reference image in the
process(). This is wasteful, so compute those only once and store the
values in the config object.


KDE Base

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

Add a define KWIN_SHADER_DEBUG to all shaders

If the environment variable KWIN_GL_DEBUG is set to 1
the define KWIN_SHADER_DEBUG is added to the glsl
source code allowing to add some custom ifdefed
visual debug handling.

As an example it's added to scene-fragment.glsl to
paint everything in a greenish way.

Diffs: 1, 2, 3 Revision 909b4ef...


Thomas Zander committed changes in [koffice] libs/flake/KToolManager.cpp:

Disabling the feature of locked layers.

Essentially this feature makes sure that it disables all tools from doing anything
on a layer that is either not editable or not visible.
While this is a great feature, it makes parts of koffice unuasable due to the fact that all apps
support layers (due to it being part of Flake and ODF) but not all apps can handle them.
So you can end up in a situation where showcase or kword has shapes that are uneditable and
there is no GUI to show why and no GUI to fix the situation.
So disabling this feature until we solve this usability bug.