Issue 323

19th January 2014 by KDE Commit-Digest Team


Marta Rybczynska
Alex Fikl
Giacomo Barazzetti

This Week...

Kate gets new features in the vim mode. All built-in effects move into a library KWin links against. KTranscript module for dynamic translation moved from KJS to QtScript. KDE-PIM starts supporting gdrive and KNavalbattle makes the ship red if it cannot be placed instead of hiding it. Umbrello makes Enable/Disable Undo option work. Bug fixes in Okular, Konsole, KDE-PIM, Calligra.


Commits 1668 by 147 developers
Open Bugs 21339
Open Wishes 15946
Bugs Opened 262 in the last 7 days
Bugs Closed 193 in the last 7 days

Commit Summary

Module Commits
Files Developer Commits
Laurent Montel
Cornelius Schumacher
Sayak Banerjee
Burkhard Lück
Yuri Chornoivan
Shantanu Tushar Jha
Gilles Caulier
Aleix Pol Gonzalez
Valentin Rusu
Chusslove Illich

Internationalization (i18n) Status

Language Percentage Complete
Brazilian Portuguese (pt_BR)
French (fr)
Dutch (nl)
Estonian (et)
Galician (gl)
Italian (it)
Danish (da)
Hungarian (hu)
Catalan (ca)

Bug Killers

Person Bugs Closed
Jekyll Wu
Christoph Feck
Thomas Lübking
Maarten De Meyer
Albert Astals Cid
Aleix Pol Gonzalez
Harald Sitter
Boudewijn Rempt
Laurent Montel
Dmitry Kazakov

Commit Countries

Commit Demographics




  Bug Fixes Features Optimization Security Other



Development Tools



[] []    



KDE Base

[] [] []   


[] []    


[] [] []   





Networking Tools

[] []    

User Interface

[] []    




[] []    []


  []    []

There are 49 selections this week

Bug Fixes


Andreas Cord-Landwehr committed changes in [artikulate] /:

Add CourseFilterModel.

This fixes inconsistent data handling in CourseModel which caused
invalid/undefined model states and non-obvious crashes (especially
when downloading GHNS courses.

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


Albert Astals Cid committed changes in [okular] /:

Use DPI of current screen for PDF rendering

Includes some fixes from Albert:
* kscreen cmake fixes
Don't make libkscreen mandatory, give the proper version we need
* Fix the @since
* Kill Resolution and use a QSizeF
I first thought QSizeF didn't make sense, but well what's a dpi if not a number of pixels in width and some others in height?
* Remove unwanted const
* Remove unneeded utils.h includes
* Fix comments on realDPIXY()
* Make it compile in non X11

REVIEW: 111829

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Revision ed35594...
Albert Astals Cid committed changes in [okular] /:

Don't try to print something with invalid sizes

Unfortunately as we can't add new strings to stable versions it'd say "unwnown error" if that happens
Don't think it's too bad since this shouldn't be happening much

KDE Base

Frank Reininghaus committed changes in [kdelibs] kdeui/widgets/kmessagewidget.cpp:

Do not use a shortcut for the KMessageWidget's "Close" action

This fixes the problem that the standard "Close" shortcut Control+W
might conflict with, e.g., the "Close Tab" shortcut in Dolphin.

FIXED-IN: 4.13.0
REVIEW: 114686

Kurt Hindenburg committed changes in [konsole] /:

Fix double click can only select text within visible region

Double-clicking on text will highlight text not on the visible screen.
This is the 2nd part of this patch. The first part for triple clicking
highlighting the entire line is already in 2.12.

Thanks to Yichao Yu for this big patch.

REVIEW: 111441

FIXED-IN: 2.13

Alexander Neundorf committed changes in [kate] /kate/katebuild-plugin:

build plugin: add support for Intel icpc error messages

The format looks a bit different, an example is included in the
source file.
For gcc users still only one regex will be tested (after the first successfull one).
Intel users will have a bit more overhead.
I didn't measure it, but now the regex is checked only once, and after
that no additional searching in the string is done anymore, so it may
be even a bit faster.


Fabian Kosmale committed changes in [pykde4/KDE/4.12] tools/pykdeuic4/

Add further parameter to compileUI if PyQt is newer than 4.10.0

As the method signature changed in 4.10.0, one needs to pass an
addional parameter; the empty string is a good default value
To prevent breaking pykde for older PyQt versions, the old signature
is called if the version is < 4.10.0

REVIEW: 115082


Laurent Montel committed changes in [kdepim] /storageservice/yousendit:

Now we can delete on yousendit server

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

Close IMAP mailbox before renaming it

Some IMAP servers don't allow renaming a currently SELECTed
mailbox, so we close it before RENAMEing it.

REVIEW: 114996

FIXED-IN: 4.12.1

Christian Mollekopf committed changes in [kdepim-runtime] resources/imap/sessionpool.cpp:

Try to avoid another crash in the imap resource.

This crash might have appeared when:
* KIMAP::LoginJob fails with connectionLost
* SessionPool::onLoginDone calls cancelSessionCreation
* the emit connectDone will hiddenly leave the function and
call IMAPResource::onConnectDone which again calls SessionPool::disconnect
thus potentially deleting all Sessions (although with deleteLater()).
* cancelSessionCreation later calls killSession again with the pointer
that is potentially already deleted using deleteLater from the call to
* The code finally crashes in killSession when calling QObject::disconnect on
the apparently invalid session pointer.

The analysis is based on the backtrace in 322440 (duplicate of 319776).

Note that this analysis makes only sense if the deleteLater was actually
executed for some reason (we somehow entered the eventloop),
and that I never managed to write a testcase reproducing the issue.

Since I'm out of ideas I try anyways, also, code that leaves the function
in the middle of the function due to signals gives me headaches.

REVIEW: 114995


Dmitry Kazakov committed changes in [calligra/calligra/2.8] /:

Fixed the Unsharp Mask filter

Now it has the following features:
1) Uses Gaussian for the initial blurring instead of home-grown
circle mask
2) Supports floating point Radius value
3) Fixed the bug with wrong channelFlags are feed to the blur algo.
They didn't contain alpha channel before, resulting in really weird
results generated.
4) Uses Luminocity masking instead of mixing colors directly in RGB

Stephane Mankowski committed changes in [skrooge] /:

Weboob import from paypal ignores dates and creates account "0"

Dmitry Kazakov committed changes in [calligra/calligra/2.8] /:

Fixed FFTW convolution worker to work properly in wraparound mode

It had at least two problems:
1) Some memory offset problems causing random pixels accessed
2) Wrapped line iterators working incorrectly when the access rect
was larger than the wrap rect. The rect iterator still has this
problem, but at least tells the user that the result is undefined.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 7 more) Revision 613079f...
Jarosław Staniek committed changes in [calligra] kexi/plugins/forms/widgets/kexidbcombobox.cpp:

Fix bug: data is not saved in form combo boxes

Subwidget is not focusable but the form requires focusable
widget in order to manage data updates so let it be this KexiDBComboBox.

Networking Tools

Daniel Kreuter committed changes in [choqok] helperlibs/twitterapihelper/twitterapimicroblog.cpp:

Fixing twitter favorites.

Fixed creating / destroying of twitter favorite tweets.

User Interface

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

Make notifications disappear after some time


Roney Gomes committed changes in [knavalbattle] /:

Do not hide ships when they cannot be placed.

Some methods in the Delegate classes were too much procedural to my
like. I don't see with good eyes a method that should return a bool
returning a pointer instead.

To get rid of this, Delegate::canAddShip() now returns bool and when we
need to get a pointer to the next ship to be placed, nextShip() -- which
became public -- does its job.

This is not everything, the coolest part of this commit is that now
sprites will turn red when a ship can't be placed and green when this is
not the case. Just like some RTS games do. :-)

Just between us, having no sprites at all wasn't very user friendly.

FIXED-IN: 4.13.1

Chao Feng committed changes in [kbreakout] src/mainwindow.cpp:

Fix Bug 329845 - menu is invisible after closed kbreakout in fullscreen mode

Merge patch from Marian.


Development Tools

Vlas Puhov committed changes in [kdevelop] debuggers/gdb/debuggerconfigwidget.ui:

Turn "whats this" messages into tooltip messages.

Obviously no one reads "whats this" messages, so let's show it
as tooltips, they are not so long after all. Also clarify some messages.

Ralf Habacker committed changes in [umbrello] /:

Made 'Enable/Disable Undo' setting real working.

Niko Sams committed changes in [kdevplatform] /externalscript:

Allow external scripts to execute on folders if using %d parameter

Currently external scripts can only be run on files.

This patch allows calling them from project view context menu on folders under the following condition:
- %d parameter is used
- file related parameters (%s, %u, %f, %b or %n) are not used

When calling the script in any other way nothing changes - the directory of the current file will be passed as %d parameter.

REVIEW: 114582

Diffs: 1, 2, 3, 4 Revision 344fa7c...


David Narváez committed changes in [kig/geogebra] /:

Implemented the Parsing Mechanism for Geogebra

Based on XSLT 2.0 and QtXmlPatterns. The XSLT provided is just a proof
of concept that should be fleshed out - and the code should be modified
accordingly to handle all the different types of objects.

I am actually not sure every possible object can be built using this
mechanism but many objects can be created by just selecting the object
type and stacking the parent objects so this should get us far.

Diffs: 1, 2, 3, 4, 5 Revision 0d1e529...

KDE Base

Michal Humpula committed changes in [ktexteditor] /:

move speel check dialog to bottom view bar

The ui is reasonably finished. The code could survive more polishing
but works mostly as expected.

REVIEW: 115080
GUI: spellcheck is now in bottom view bar

Diffs: 1, 2, 3, 4, 5, 6 Revision 6bd160e...
Kevin Krammer committed changes in [ki18n] /:

Ported KTranscript script engine use from KJS to QtScript

The KTranscript plugin allows the use of JavaScript binding for runtime
dynamic translations.
This replaces the KJS based code with equivalent QtScript based code.

REVIEW: 115485

Diffs: 1, 2, 3, 4 Revision 6d405c3...
Michal Humpula committed changes in [kate/frameworks] /filetree:

filetree: add menu action to forget edit/view history


Michal Humpula committed changes in [kate/frameworks] /filetree:

filetree: add close&delete action to ctx menu


Miquel Sabaté committed changes in [kate] /:

vimode: added the sentence text object.

REVIEW: 115081

Diffs: 1, 2, 3 Revision 50593e3...
Michal Humpula committed changes in [kate] /:

vi-mode: enable numbered registers for "q" command

Reported-by: Jerome Leclanche

Bernd Buschinski committed changes in [kdelibs/KDE/4.12] /:

kjs: Implement ES6 acosh, asinh, cbrt, cosh, exmp1, log1p, log10, sign, sinh, tanh, trunc Math Functions
REVIEW: 114449

Michal Humpula committed changes in [kate/frameworks] /:

add more actions to filetree menu

reload, close others, print, print preview


Bernd Buschinski committed changes in [kdelibs/KDE/4.12] /:

kjs: Implement ES6 Number isFinite, isInteger, isSafeInteger, isNaN and add MAX_SAFE_INTEGER, MIN_SAFE_INTEGER constants
REVIEW: 114464


Laurent Montel committed changes in [kdepim] /:

Look at to implement gdrive support

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 9ef3968...
Laurent Montel committed changes in [kdepim] /storageservice:

Add support for copy file/folder in . Add missing enum CopyFolder

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


Christian David committed changes in [kmymoney/add-onlinebanking] /:

Editing SEPA credit-transfers keeps the beneficiary name

Minor improvement.


Harald Sitter committed changes in [dragon] src/mpris2/mediaplayer2.cpp:

Support for the CanSetFullscreen property specified by MPRIS2

REVIEW: 114909
FEATURE: 4.13.0

Networking Tools

Andrea Scarpino committed changes in [choqok] microblogs/pumpio/pumpioaccount.cpp: set OAuth consumer key/secret in setters

Those where empty when the account is created and registered

Andrea Diamantini committed changes in [rekonq] /:

Implement the "clear urlbar action"

You just need to add it (OUT of the urlbar) with
right click --> configure main toolbar.

Is this enough guys?

PS: Thanks alouali for the idea ;)

User Interface

Aleix Pol Gonzalez committed changes in [plasma-framework] /declarativeimports/qtextracomponents:

Create a new Clipboard component

Can be used to keep track of the clipboard by setting and fetching
information from it.

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


Jaime Torres Amate committed changes in [knavalbattle/multipleShips] /:

utilities for the several ships patch

* Implement a bool canAddShipOfSize(size). When a ship of size size
can not be placed, then the AI or the player should start again. The
other option is to implement an Undo.
* Implement a clear() method to be able to start again
* In the battleField also add another hidden board with the cells having
only two status (free, busy) to be able to know the availability of the
It is easier for me in this way than the other way (sending a signal
to clear the ship borders when the shooting starts).

Also, done Roney suggestions.

Moved from reviewboard to branch

Diffs: 1, 2, 3, 4 Revision 2ac9da2...
Ian Wadham committed changes in [palapeli] /:

Provide space on the puzzle table for the solution of the puzzle.

This change automatically provides space for the solution whenever the
pieces are shuffled and laid out. The option is configurable, using a
combobox, to provide space at Center (default), Top Left, Top Right,
Bottom Left or Bottom Right, or it can provide no space (option None).
The default (Center) reduces the dragging effort in large puzzles.

Diffs: 1, 2, 3, 4, 5 Revision 70d0090...


Marco Martin committed changes in [kdeclarative] /:

use KDeclarative namespace for framework classes

KDeclarative has very generic class names, therefore a bad practiche for
public symbols.
this moves it under KDeclarative:: namespace as discussed in the sprint

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


KDE Base

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

Only load datasource + action plugins on demand

This gives not only faster startup time, but allows tests to load only
the fake data source, without loading plugins first.

Reviewed-by: Martin Klapetek

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

Reduce timeout of startupfeedback to a sensible default

It's 2014 and we don't have to wait half a minute for an application
to start. In fact we mostly get false positives due to applications
not handling correctly startup notifications for already running
instances (e.g. click on link in email).

So let's reduce to a default which doesn't look like a broken setup.

REVIEW: 115046

Diffs: 1, 2, 3 Revision 486c4b8...
Emmanuel Pescosta committed changes in [kde-baseapps] /src/views/versioncontrol:

Use the QMap iterator instead of foreach(key, map.keys()) in UpdateItemStatesThread::run()
and in VersionControlObserver::slotThreadFinished().

So we get O(n) complexity instead of O(n*logn), and O(1) memory instead of O(n).
Thanks to Thiago Macieira for providing this information.

FIXED-IN: 4.13
REVIEW: 115018

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

Turn built-in effects into a library kwin links against

As all effects have always been compiled into the same .so file it's
questionable whether resolving the effects through a library is useful
at all. By linking against the built-in effects we gain the following
* don't have to load/unload the KLibrary
* don't have to resolve the create, supported and enabled functions
* no version check required
* no dependency resolving (effects don't use it)
* remove the KWIN_EFFECT macros from the effects

All the effects are now registered in an effects_builtins file which
maps the name to a factory method and supported or enabled by default

During loading the effects we first check whether there is a built-in
effect by the given name and make a shortcut to create it through that.
If that's not possible the normal plugin loading is used.

Completely unscientific testing [1] showed an improvement of almost 10
msec during loading all the effects I use.

[1] QElapsedTimer around the loading code, start kwin five times, take

REVIEW: 115073

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 35 more) Revision af4eff1...
Emmanuel Pescosta committed changes in [kde-baseapps] /src/kitemviews:

Calculate all item size hints at once.

The speed up is really small, but theses changes are mostly straightforward and make the code a bit nicer - break
the KStandardItemListWidgetInformant::itemSizeHint beast into three smaller functions.

FIXED-IN: 4.13
REVIEW: 112979

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


Boudewijn Rempt committed changes in [calligra] /image:

Band-aid the fill algorithm

This does two things:

* Cut down the memory usage of the map by 75%. The map was an array
of enum, which is int, which is four bytes per item, and the allowable
values per item were 0, 1, 2. For which a char is enough. Well, 2 bits
is enough, but that's too much fiddling for now.

* Before I noticed the preceding, I implemented a frugal way of handling
the map, using a tiled paint device. That cannot run out of memory thanks
to the swapper. So if, if, if the allocation of the map of quint8 fails
due to bad_alloc, fall back to this frugal implementation.



Ian Wadham committed changes in [palapeli] /:

Refactor parts of Palapeli::Scene into GamePlay: first working version.

Methods relating to the puzzle table as a whole have been moved from
Palapeli::Scene into Palapeli::GamePlay, including puzzle loading and
shuffling, puzzle saving and restoring, victory animation and progress
reporting. This is to provide a simpler, more generic Palapeli::Scene
class that can be used in multiple scenes, i.e. the original puzzle
table and any number of piece-holders for use in solving large puzzles.

The main methods remaining in Palapeli::Scene are adding and removing
pieces, moving pieces, merging (or joining) pieces and signalling
changes in the state of the puzzle and its pieces.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 495f91a...


Anton Kreuzkamp committed changes in [qmlweb] /:

Refacture context handling.

This commit contains a complete rewrite of the context handling stuff in QmlWeb.
Now the context is a handles as a stack of all component contexts above, to
reflect how QML actually works.

Moreover now the root QML Item won't be a child of the DOM-node the user gives,
but it will take that node as its DOM-node, reducing the number of DOM-nodes
used. Also now the root element won't be able to use "anchors.centerIn: parent"
anymore, as it does not have a parent anymore (it doesn't have one in Qt as
well). Instead now the implicitWidth and implicitHeight of the root element is
set to reflect the size of the root DOM-node resp. the window size.

This commit brings in a bug with e.g. states in conjunction with components.
Look for the next commit for a fix.