Issue 251

2nd September 2012 by KDE Commit-Digest Team


Aleix Pol
Martin Cigorraga

This Week...

KActivities enables logging of desktop events. Scripts can add menus to useractions menu in KDE-Workspace. Keyboard navigation works in Kickoff GUI. KWin's global D-Bus interface splits into two. New KNumber library in KCalc. New options in the KStars FOV calculator. Various optimizations: Ruby parser in KDevelop, Akonadi database accesses. Bugfixes in KDE-Workspace, KDE-libs, NEPOMUK, KStars, KDE-PIM, Calligra.


Commits 2423 by 181 developers
Open Bugs 21315
Open Wishes 15909
Bugs Opened 308 in the last 7 days
Bugs Closed 342 in the last 7 days

Commit Summary

Module Commits
Files Developer Commits
Laurent Montel
Aleix Pol Gonzalez
Xavier Besnard
Ben Cooksley
Boudewijn Rempt
Marco Martin
Ingo Malchow
Alexander Richardson
Chusslove Illich
Gilles Caulier

Internationalization (i18n) Status

Language Percentage Complete
Estonian (et)
French (fr)
Dutch (nl)
German (de)
Italian (it)
Danish (da)
Chinese Traditional (zh_TW)
Low Saxon (nds)
Catalan (ca)
Hungarian (hu)

Bug Killers

Person Bugs Closed
djarvie kde org
Jekyll Wu
Christoph Feck
Myriam Schweingruber
Laurent Montel
Thomas Lübking
Jarosław Staniek
Gilles Caulier
Hugo Pereira Da Costa
Thomas Zander

Commit Countries

Commit Demographics




  Bug Fixes Features Optimization Security Other



Development Tools

[] [] []   []


[] [] []   


[] [] []   

KDE Base

[] [] []   


[]   []   


[] [] []   





Networking Tools

  [] []   

User Interface

[] []    







There are 108 selections this week

Bug Fixes

Development Tools

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

Support iterating over lists of tuples while unpacking those.

Code example:
c = [(1, 2)]
for a, b in c: print a, b # a, b are ints

should fix

Aleix Pol Gonzalez committed changes in [kdevplatform/1.4] plugins/patchreview/patchreview.cpp:

Reuse the patch document instance pointer

Instead of opening a new one.
I got some crash there, unsure why, but it doesn't make sense to extract
it again anyway.

Aleix Pol Gonzalez committed changes in [kdevelop/4.4] projectmanagers/cmake/cmakemanager.cpp:

Improve the way we map to cmake's variables model

Now we raise a variable scope every time we enter a CMakeLists.txt file.
It solves a bug I reproduced many times with some test/CMakeLists.txt files
defining something like:

This while not removing the variable when exiting the scope would make it all fail.

BogDan Vatra committed changes in [android-qt/alpha4] src/android/jar/src/org/kde/necessitas/mobile/

Don't crash if DISABLE_KEYGUARD permission is not set.


Sven Brauch committed changes in [kdev-python] duchain/declarationbuilder.cpp:

Fix a crash when a container used in a foor loop has no content type


Akarsh Simha committed changes in [kstars] /dialogs:

Showing J2000.0 coordinates in the Details dialog.


1. Fix bugs and make sure that we are _actually_ showing J2000.0.

We _know_ this is not the case really, as per a recent discussion
on the kstars-devel Mailing List -- some stars have catalog
coordinates from a different epoch, but we assume they are J2000.0;

This leads to visible errors in matching DSS overlays, for example
(which I think I did notice at the Texas Star Party).

2. Improve the Astroinfo article on precession, to which the J2000.0
RA and Dec labels are hyperlinked. The article on precession
doesn't talk about epochs.

Aleix Pol Gonzalez committed changes in [analitza] /:

Fix crash when calling (x(x^2))^2

When resolving the type of an arithmetic function, check that all the
operands are valid first.

Akarsh Simha committed changes in [kstars] /projections:

Fix bug affecting Azimuthal Equidistant projection -- when the object
was in the center of the field in azimuthal equidistant (for instance,
by doing right click -> Center), the X,Y coordinates would become nan
and the object would not be drawn.

The bug was traced down to an x/sin(x), where the limiting case of x =
0 was not handled, resulting in a 0/0, yielding nan.


Andreas Cord-Landwehr committed changes in [rocs] src/Plugins/DataStructure/Graph/GraphStructure.cpp:

Fix allowed connections in Graph data structures.

Allow self-loops for all graphs, check non-multigraph property also
for directed graphs.

Jasem Mutlaq committed changes in [kstars] kstars/fitsviewer/fitsviewer.cpp:

Fix problem in loading 3D data cubes. KStars does not support loading of color FITS images, however, now it is able to read the first 2D image successfully.


Albert Astals Cid committed changes in [okular/KDE/4.9] /:

Fix Tools->review inconsistency when switching tool

FIXED-IN: 4.9.1

KDE Base

Dawit Alemayehu committed changes in [kde-baseapps] /src:

Fix for the issue where the focus goes to the location bar when opening a link
in new foreground tab.

FIXED-IN: 4.9.1
REVIEW: 105984

Kurt Hindenburg committed changes in [konsole] /:

Restore --notransparency option for NVIDIA users

Some NVIDIA users still require this option for Konsole to work as

This reverts 66b4a96e9353525703db77b189771a454f38f03d

Thanks to Matthias Kretz for patch/info.

FIXED-IN: 4.10

David Faure committed changes in [kde-baseapps] /src:

Fix crash when a part misbehaves and doesn't create a widget.

E.g. I just got this
KonqFrame::attach: The part KWDocument(0x28f5100, name = "document_0") didn't create a widget!
Testcase: konqueror <some .doc document on http>
(possibly with a broken koffice/calligra installation...)
(cherry picked from commit 637c39ae98c7a78d8cb359cb247ce97038bd2bce)

Craig Drummond committed changes in [kde-workspace/KDE/4.9] libs/taskmanager/launcheritem.cpp:

Don't associate an app to a launcher if both have valid but different launcher URLs.

Thomas Lübking committed changes in [kde-workspace] kwin/libkdecorations/kcommondecoration.cpp:

do not show clientmenu if button is down for 2nd click

if one clicks very fast, the timeout will coincident with the
second downtime (between press and release) what was used to be
interpreted as "still down"

REVIEW: 106227
FIXED-IN: 4.9.1

Jörg Ehrichs committed changes in [conquirere] src/core/queryclients/seriesquery.cpp:

fix SPARQL query for the series table model

Vishesh Handa committed changes in [nepomuk-core/KDE/4.9] services/filewatch/kinotify.cpp:

kinotify: Check if the dirIterators list is empty before iterating

Michael Pyne committed changes in [kdelibs/KDE/4.9] kdecore/util/kshareddatacache_p.h:

kshareddatacache: Use proper return value check for timedlock.

I discovered that the return value was being checked as if
pthread_mutex_timedlock used errno for return values while doing a code
review for bug 305023. In reality the only non-error return is 0,
anything else is an error code which is returned directly.

I'm making the fix now so it can join KDE Platform 4.9.1.

Jacopo De Simoi committed changes in [kde-workspace/KDE/4.8] plasma/generic/applets/devicenotifier/package/contents/ui/DeviceItem.qml:

Reserve space for text and free space bar

Reserve the height for the text and the
free space bar while invisible, to avoid jumpyness


Xuetian Weng committed changes in [kdeplasma-addons] applets/kimpanel/src/kimpanel.cpp:

fix update order, since we use lazy update. we need to ensure the order.

Martin Koller committed changes in [kde-baseapps] konqueror/src/konqcombo.cpp:

elide completion entries in the middle

The completion list did show the URLs as right-elided entries,
which is not optimal.
For filenames and man pages at least middle-elide is much more sensible.

FIXED-IN: 4.9.1
REVIEW: 106183

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

Fix uninitialized memory and logic error in PaintRedirector

The refactoring of Compositor starting with b1739c3 caused some
regressions due to variables in Workspace and Compositor not
being initialized. Furthermore there was a boolean logic error
in PaintRedirector causing the decorations not to paint.

Thomas Lübking committed changes in [kde-workspace] /:

ignore dockers for showingDesktop state

also use a common funciton to decide whether or
not to break the state

FIXED-IN: 4.9.1

Martin Koller committed changes in [kde-baseapps] /src:

strip line breaking characters from URL on text input

This patch removes line-breaking chars when an URL is entered.
Very handy if you paste URLs from e.g. an email which shows
the complete URL broken into multiple lines.

FIXED-IN: 4.9.1
REVIEW: 106184

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

Ignore SettingsCompositing changed in Aurorae

Not needed and causing troubles when restarting Compositing.

Martin Koller committed changes in [kdelibs/KDE/4.9] kimgio/eps.cpp:

fix bounding box in writing

A very old bug reappeared. Obviously Qt internals have changed since then.

FIXED-IN: 4.9.2
REVIEW: 106290

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

FileIndexer: Do not check for new files on startup

Only check for changes if the strigi version changes, cause in that case
their may be a new plugin or an earlier plugin may have been fixed.

REVIEW: 106256

Diffs: 1, 2, 3, 4 Revision 150a55d...
Hugo Pereira Da Costa committed changes in [kde-workspace] /:

properly deal with invalid colors when calculating cache keys.
using color.rgba() for an invalid color corresponds to solid black, which in turns conflicts with the cache
value for such color. We use "transparent black" instead.

Vishesh Handa committed changes in [nepomuk-core/KDE/4.9] services/fileindexer/indexscheduler.cpp:

FileIndexer: Fix a deadlock by making the mutex recursive

The following deadlock occurs during the first run of the
nepomuk-fileindexer, if you're on batery

QMetaObject::activate(QObject*, QMetaObject

This only happens during first run cause that is when the EventMonitor
is connected to the IndexScheduler

REVIEW: 106230

Vishesh Handa committed changes in [nepomuk-core/KDE/4.9] services/queryservice/folder.cpp:

QueryService: Use heuristics to determine when to re-run the query

Instead of running all the queries any time ANY data in the database

REVIEW: 106238


Allen Winter committed changes in [kdepim/KDE/4.9] akregator/src/articlelistview.cpp:

in restoreHeaderState(), make sure there is a model before attempting
to resize the title column.

FIXED-IN: 4.9.1

Laurent Montel committed changes in [kdepimlibs] /:

Fix Bug 230886 - allow (un)subscribing multiple folder at once

FIXED-IN: 4.10

Allen Winter committed changes in [kdepim-runtime/KDE/4.9] resources/pop3/pop3resource.cpp:

in showPasswordDialog(), wrap a new KPasswordDialog in a QPointer
for crash safety.

MERGE: 4.9
(cherry picked from commit c022193cb476d5e34eb65fc364bd071196ce3597)

Allen Winter committed changes in [kdepim/KDE/4.9] calendarviews/eventviews/month/monthitem.cpp:

in bgColor(), add a crash guard for todo == 0

FIXED-IN: 4.9.1

MERGE: master

Laurent Montel committed changes in [kdepim/KDE/4.9] messagecore/stringutil.cpp:

Fix Bug 305248 - kmail often crashes when hitting "l" (lower L) for a

list reply

We can't parse address but don't crash

FIXED-IN: 4.9.2

Laurent Montel committed changes in [kdepim/KDE/4.9] mailcommon/filter/filteractionwidget.cpp:

Waou ! fix crash when 2 filters had same i18n (found in french).

Will add i18nc for 4.10 but it doesn't crash now

Christian Mollekopf committed changes in [zanshin/pimstructure] /:

This fixes a crash triggered by a QSortFilterProxyModel on top of this model. It also fixes two issues which have been worked around in the tests.

I have yet failed to write a unit test for the actual issue.
The issue is likely related to what is mentioned in 18dbff53fec936b6ebfe78f3b33c5e82ba8626c5

Volker Krause committed changes in [kdepimlibs] akonadi/job.cpp:

Killing is wrong here, that will overwrite the error code we just set.

Also, the job has already been terminated by the session when we get here.

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

Fix Bug 305346 - KMail never automatically encrypts E-mail

config was not used

FIXED-IN: 4.9.1


Thorsten Zachmann committed changes in [calligra] stage/part/KPrViewModePresentation.cpp:

Fix unwanted offset after cancel slide show.

When running a presentation that does not fill the full screen e.g. due to
screen ratio and slide ratio do not match and the presentation is stopped
during the presentation there can be an offset in the slide after the presentation
mode is left. The offset happens only if the zoom level is smaller then the screen
or it is fit to screen/fit to width. Zooming in fixes the problem once the slide
is bigger then the screen.

Allan Anderson committed changes in [kmymoney] /plugins/csvimport:
Stephane Mankowski committed changes in [skrooge/Feature] /:

: On the Dashboard, scheduled transactions have wrong number of decimal places

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

Fixed a limited zooming bug in KoCanvasControllerWidget

When you tried to zoom-in/out with current zoom level equal to the
maximum/minimum allowed zoom level the canvas jumped, because the
preferred center used to change, but the zoom level not.

Now the setting of the new preferred center is part of
KoZoomController::setZoom so it can calculate the right value
of the offset basing on the real change of the zoom level.

Diffs: 1, 2, 3, 4, 5, 6 Revision 8913fa3...
Jarosław Staniek committed changes in [calligra/calligra/2.5] /kexidb/parser:

Query Designer: Make string concatenation operator || work


Jörg Ehrichs committed changes in [conquirere] /core:

Change Sparql Query/ResourceWatcher from QThread::moeToThread to QtConcurrent

In rare cases having the ResourceWatcher running in a thread lead to multiple access of the resource types and crash the program.
As threading is just needed to offer a more responsive startup it is done via QtConcurrent.

The ResourceWatcher and its connected slots for new/changed resources will be run in the main gui thread instead

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 4 more) Revision 347d18c...
Inge Wallin committed changes in [calligra] libs/odf/KoDirectoryStore.cpp:

Fix bug 305794: Uncompressed ODF is saved in wrong directory

This fix does that the old code tried to do but failed: Check if the
given path is a directory. But it does so using QDir so it's actually

FIXED-IN: 2.5.1
REVIEW: 106200

Stephane Mankowski committed changes in [skrooge/Feature] /:

: Account panel shows Edition - should be Addition

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

Fix deform brush painting

Bring back some removed code from iteratorsNG porting
o provide sampledRawData in KisRandomSubAccessor


Jarosław Staniek committed changes in [calligra] /:

Fix bug SQL Editor's history is not functional by removing it in 2.6

Also remove unused code in sql editor.



Sam Lade committed changes in [amarok] src/services/lastfm/LastFmTreeModel.h:

Fix lastfm build for some people

Some users, for reasons unknown, were getting QPixmap incomplete type
errors building the LastFm plugin.


User Interface

Hugo Pereira Da Costa committed changes in [kde-workspace] kstyles/oxygen/oxygenmdiwindowshadow.cpp:

Fix endless recursion with MDI shadows
Thanks Christoph Feck !
REVIEW: 106240

Hugo Pereira Da Costa committed changes in [kde-workspace] kwin/clients/oxygen/oxygenclient.cpp:

Fixed positioning of tabs when manually reordering with right mouse button
Made 'drop target' animation consistent with where tab is actually dropped
Cleanup code.

Hugo Pereira Da Costa committed changes in [kde-workspace/KDE/4.9] kstyles/oxygen/animations/oxygenmenubardata.cpp:

Fix bug when resetting motions to -1 on enter event (stupid !)


José Manuel Santamaría Lema committed changes in [krecipes] /:

Create a QValidator for MixedNumber.

Also I have added an incomplete mixednumber test. I needed it to solve a bug
which I introduced when I was working on this commit.

Furthermore, I removed the default value for locale_aware, in my opinion it's
too prone to mistakes.

This new validator isn't used yet, but it will be useful in the future.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 9 more) Revision a94b4b5...
Raphael Kubo da Costa committed changes in [ark/KDE/4.9] /:

Use a different D-Bus object path for each Ark::Part.

So far, all Ark::Part instances used the same D-Bus object path,
"/DndExtract", to receive drag'n'drop notifications.

This does not work correctly ever since we started supporting using Ark as
an embedded KPart (for previewing archived inside Konqueror or Rekonq, for
example). In this case, the object path is added to the embedder (the
`konqueror-5654' service, for example). If one previews multiple archives in
different tabs, multiple calls to QDBusConnection::registerObject() will be
made and only the first one will succeed, since we are always trying to
register the same path.

Fixing this involves touching separate parts of the code:

o Use a different object path for each KPart instance, just like
KateDocument or nsplugin do. We do this by keeping a static counter that
is incremented each time a KPart is created and is part of the path name.

o Use other, more specific mime types for the data we send when dragging
out of Ark. So far we used "application/x-kde-dndextract" and passed the
D-Bus service as its value. We now pass this value in the newly-created
"application/x-kde-ark-dndextract-service" mime type, and the object
path, which is now passed to ArchiveModel, in

o Also use a more specific interface name in the XML file. While here,
generate the .cpp and .h files with CMake instead of keeping these
auto-generated files around for no purpose.

o ArchiveModel::mimeTypes() has been adjusted to indicate the mime types we
actually use on drag'n'drop. The previous list was mostly bogus, as we
only use the mime types indicated above.

As it can be seen, applications which support drag'n'drop from Ark also need
to be adjusted to use the new D-Bus interface. Currently, the applications
are Dolphin, the Folderview plasmoid and a Stack Folder plasmoid in
playground. They are all going to be updated accordingly in tandem with this
commit to both KDE/4.9 and master. Users using SVN/git directly might
experience some trouble if they update one part but not the other, but there
is not much we can do in this case.

BUG: 304860
FIXED-IN: 4.9.1

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision c79d8db...
Jan Lepper committed changes in [krusader] krusader/KViewer/panelviewer.cpp:

FIXED: wrong error message about missing editor plugin
Don't show message about missing editor plugin
when it is available, but fails to open a file.


Development Tools

Aleix Pol Gonzalez committed changes in [kdev-ninja] kdevninjabuilderplugin.cpp:

Make sure the exists before reducing the target list

This way if we have a sub-project, the targets will be computed and no
unneeded stuff will be compiled

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

Improve usability of Reload All action

When reloading all files, don't reload the "Untitled %1" files, it doesn't
make sense and it shows an annoying dialog.

Michael Pyne committed changes in [kdesrc-build] kdesrc-build:

Add support for bootstrapping CMake.

This small buildsystem allows kdesrc-build to bootstrap CMake (from git,
obviously) onto a system that does not have a recent-enough packaged
version of CMake.

The "bootstrap" process is treated as module configuration, so
"configure-flags" is the relevant option (don't worry, those won't be
inherited from global configure-flags). The rest of the build/install
uses make as normal, which is implemented via fallback to

Niko Sams committed changes in [kdevelop/4.4] /gdb:

support multiple location breakpoints

- turn breakpoint numbers/ids into QString (as they can be "1.1")

David Narváez committed changes in [kdevelop/4.4] /gdb:

Add Thread and Frame Information on Execution

Moved the code that adds frame and thread information when not present
in the command already from the queueCmd method to the executeCmd
method and added some info at the debug strings to make clear that the
queued command will be modified upon execution. This is needed in order
to be able to queue commands whose information depend on previous
commands in the same queue.

REVIEW: 105210


Akarsh Simha committed changes in [kstars] /dialogs:

Add two abilities to the FOV calculator:

1. Have a pre-defined dropdown list of popular Eyepieces and their
apparent FOVs, in addition to manual entry.

2. Provide an option to compute the telescope focal length from
f-number and aperture diameter (in both mm and inch). Amateur
astronomers continue to cite their telescope specifications using
the diameter in inches and the f-number, eg: 8" f/8.


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


Albert Astals Cid committed changes in [okular] ui/pageview.cpp:

When there is only one page, "Opposite pages" should have no effect

FIXED-IN: 4.10.0

KDE Base

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

Allow Scripts to add menus to the UserActionsMenu

A script can register a callback through registerUserActionsMenu to be
informed when the UserActionsMenu is about to be shown. This menu calls
the Scripting component to gather actions to add to a Scripts submenu.

The Scripting component now asks all scripts for the actions, which will
invoke the registered callbacks with the Client for which the menu is to
be shown as argument.

The callback is supposed to return a JSON structure describing how the
menu should look like. The returned object can either be a menu item or
a complete menu. If multiple menu items or menus are supposed to be added
by the script it should just register multiple callbacks.

The structure for an item looks like the following:
text: "My caption",
checkable: true,
checked: false,
triggered: function (action) {
print("The triggered action as parameter");

The structure for a complete menu looks quite similar:
text: "My menu caption",
items: [
{...}, {...} // items as described above

The C++ part of the script parses the returned object and generates
either QAction or QMenu from it. All objects become children of the
scripts QMenu provided by the UserActionsMenu.

Before the menu is shown again the existing menu is deleted to ensure
that no outdated values from no longer existing scripts are around. This
means the scripts are queried each time the menu is shown.

FIXED-IN: 4.10
REVIEW: 106285

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

Introduce dedicated suspend and resume methods on Compositing interface

The new methods suspend and resume are meant to provide a better way to
influence the current compositing state than toggleCompositing. In
addition an overload setCompositing(bool) is added. The resume method is
implemented in a way that it can be used to try to start the compositor
again in case it failed.

Internally the method suspendResume is dropped as it does the same as
setCompositing just with inverted binary logic and worse name. The
compositingToggled signal is now emitted from within setup and finish to
ensure that especially the compositingToggled(true) signal is only
emitted if the Compositor could start.

Also the updateCompositingBlocking is adjusted to use the new dedicated
suspend and resume methods instead of the toggle method.

REVIEW: 106273

Diffs: 1, 2, 3 Revision 8836287...
Vishesh Handa committed changes in [nepomuk-core/query/ProperTesting] autotests/test/querytests.cpp:

QueryTests: Run the query beforing adding rows

Instead of having columns of (query, expectedResults), we have columns
of (actualResults, expectedResults). This way, we are sure that no other
tests data is intefering with our results.

Gregor Tätzner committed changes in [kde-workspace] /desktop/applets/kickoff/ui:

Add keyboard navigation to Kickoff GUI (within and among all Views)

Fixes regression in KDE 4.9. Enables movement between views with tab
FIXED-IN: 4.9.1
REVIEW: 106125

David Faure committed changes in [kdelibs/frameworks] /:

KSycoca now rebuilds the db by starting kded5 and calling 'recreate'.

This removes the dependency on KToolInvocation::klauncher() at compile time,
and on kdeinit/klauncher at runtime.

Diffs: 1, 2, 3, 4 Revision ed53067...
Aurélien Gâteau committed changes in [homerun] /:

Clean containment handling code:

- Take advantage of the presence of the "plasmoid" property to determine
whether we are running in containment mode
- Avoid warning on stderr when not running as containment.
- Use "isContainment" as property name instead of "embedded"

Aurélien Gâteau committed changes in [kde-workspace/KDE/4.9] kcontrol/colors/schemes/Oxygen.colors:

Improve contrast of Oxygen colors

It mainly improves readability of ActiveText over Window background

FIXED-IN: 4.9.2

Marco Gulino committed changes in [kde-workspace] /:

Added QJSON as optional dependency in kde-workspace, disabling chrome support in Bookmarks Runner if not found

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

Make the Compositor a proper Singleton

The Compositor class actually behaves like a Singleton so it should be
one. Therefore four static methods are added:
* self() to access the Singleton
* createCompositor() to be used by Workspace to create the instance
* isCreated() to have a simple check whether the Singleton is already
* compositing() as a shortcut to test whether the compositor has been
created and is active

The isCreated() check is actually required as especially Clients might
be created and trying to access the Compositor before it is setup.

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

Build option to disable the Oxygen window decoration

This build option is added to make it easier to build just KWin without
kde-workspace. This is a common requirement by developers wanting to
contribute to KWin and only want to build KWin but use everything else
from their normal distribution.

Building KWin standalone is very often difficult due to Oxygen. If the
library has changed it is not possible to build just KWin without also
building the workspace libs and if you do so you run into ABI problems
when trying to start KWin - either the decoration or the style is
crashing due to not matching libraries.

To circumvent this common issue for new developers this build option
is introduced to just exclude the Oxygen window decoration and defaulting
to Plastik.

Of course by default this option is turned ON, so that the Oxygen
decoration gets build. By default there is no change at all.

REVIEW: 106303

Diffs: 1, 2, 3, 4 Revision 989a62f...
Rohan Garg committed changes in [kde-workspace] libs/plasmagenericshell/scripting/scriptengine.cpp:

Make sure the plasma desktop scripts are sorted in the correct order

Instead of sorting the scripts according to their absolute paths,
which would cause scripts installed by packages to always end at
the top, scripts should be sorted by their relative path i.e.
plasma scripts from each directory that occurs in the path
should be sorted and then merged together to form a super list

REVIEWED BY: Marco Martin

Thomas Lübking committed changes in [kde-workspace] /effects/startupfeedback:

Make Startup Feedback Effect aka Bouncing Cursor respect global size for small icons

REVIEW: 106166
FIXED-IN: 4.9.1

Cedric Bellegarde committed changes in [kded-appmenu] /:

Add support for multi screen

Evan Teran committed changes in [kcalc] /:

implementing new knumber library which is a lot cleaner in implementation
simpler in design and can make use of MPFR for arbitrary precision
trig math

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 31 more) Revision 4cbe3bd...
Ivan Čukić committed changes in [kactivities] src/service/plugins/sqlite/activitymanager-plugin-sqlite.desktop:

Merge branch 'ivan/desktop-events-log'

- Enabled logging of desktop events
- Statistics plugin ignores applications set in the kcm
- Plugins are now regular modules.
(And their features can be queried like for normal modules.)
- Renamed sqlite plugin to resourcescoring

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

Splitting up of KWin's global D-Bus interface

Two new interfaces are introduced:
* org.kde.kwin.Compositing
* org.kde.kwin.Effects

The Compositing interface is generated from scriptable elements on the
KWin::Compositor class and the Compositor is exported as /Compositor.
It provides the general Compositing related D-Bus methods like whether
the compositor is active and toggling and so on.

The Effects interface is generated from scriptable elements on the
KWin::EffectsHandlerImpl class and the instance is exported as /Effects.
It provides all the effects related D-Bus methods like loading an effect
or the list of all effects.

This removes the need to have all these methods provided on the global
org.kde.KWin interface. For backwards compatibility they are kept, but
no longer provided by the Workspace class. Instead a new DBusInterface
is generated which wrapps the calls and delegates it to one of our three
related Singleton objects:
* Workspace
* Compositor
* EffectsHandlerImpl

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 2 more) Revision 63734bd...
Aleix Pol Gonzalez committed changes in [kde-runtime] /declarativeimports/core:

Improve QAbstractItemModel integration in Plasma.Core QML components

Introduces QAbstractItemModel to QDeclarative when setting up
the plasma core components.

This way we don't have to cast to the type ourselves and produce proper
QML errors if the type is not correct. This happened with Plasma::SortProxyModel.

REVIEW: 106267

Diffs: 1, 2, 3 Revision 64b17ff...


Inge Wallin committed changes in [calligra] /words/epub:

Move parsing of ODF metadata into a new class: OdfParser

Diffs: 1, 2, 3, 4, 5, 6 Revision 44c4f2b...
Yuri Chornoivan committed changes in [calligra] /:

Enabling Sheets to show plugin items on Configure Sheets/Plugins page
REVIEW: 106220

Boudewijn Rempt committed changes in [calligra/krita-sketch-rempt] /:

Implement multitouch painting in krita

This moves the multihand painting code into the freehand tool helper
and reorganizes the data to take care of multiple input points per
event, or generated output points (for multihand). The api is now much
simpler, the code a bit more complex.


* additional touch points during painting are not detected
* dropping touch points during painting is not detected
* it's not tested because the canvas doesn't show up for me.

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

Add current filename to the settings object

So that can be passed somehow from the recentimagesmodel to the settings
object, and from there queried by the main view's qml file, which can
ask the view to load it then by setting the document property.

That's not done yet... And similar things needs to be done for loading
from clipboard, from creating an image at a certain size or from a template.

Diffs: 1, 2, 3, 4, 5 Revision 700ae2d...

Networking Tools

Dan Vratil committed changes in [ktp-text-ui/kde-telepathy-0.5] /:

Display avatars in logs and more information in log header

REVIEW: 106228

Diffs: 1, 2, 3 Revision 5a5f22a...
Daniele E. Domenichelli committed changes in [ktp-text-ui/kde-telepathy-0.5] /:

Update the Account Icon toolbar item icon size when the toolbar icons size changes

Reviewed-by: Martin Klapetek

FIXED-IN: 0.5.1

Rohan Garg committed changes in [ktp-text-ui/kde-telepathy-0.5] /:

Use KTp::TextUrlData to parse URL's instead of custom parsing

REVIEW: 106261

User Interface

Hugo Pereira Da Costa committed changes in [oxygen-transparent] style/oxygenargbhelper.cpp:


Development Tools

Miquel Sabaté committed changes in [kdev-ruby] /:

Optimized the parser:

- Reduced significantly the memory usage for storing comments.
- Renamed the RAst struct to ast_t.
- Now the rb_compile_file just accepts one argument, containing all the
options. This is done because the contents and its length are already
calculated and, therefore, the parser can avoid potentially expensive
calls to strdup and strlen.

Diffs: 1, 2, 3, 4, 5 Revision e625f6c...
Aleix Pol Gonzalez committed changes in [kdevelop] projectbuilders/makebuilder/makebuilder.cpp:

Improve reaction when "install as root" is true.

If that's the case, create two jobs one for building and the other for
installing. This will make sure we're not building with root.


Percy Camilo Triveño Aucahuasi committed changes in [analitza/aucahuasi/analitzaplot] /:

Better behaviour when drawing polar curves (for cases where autoupdate is on and we have to use all the viewport). Also, new curve type: Implicit polar curve :). Polar curves (explicit and implicit) will have this notation: t:theta and r:radius

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 3bca711...
Percy Camilo Triveño Aucahuasi committed changes in [analitza/aucahuasi/analitzaplot] /:

In plotter2d if m_dirty is true then do not draw (the logic in the if is m_dirty==false then skip draw)

Diffs: 1, 2, 3 Revision 12ff914...


Mailson Menezes committed changes in [okular/tiled-rendering] core/tilesmanager.cpp:

Remove debug painting off tiles manager

The extra painting is for debug purposes only. It may change depending
on what the developer wants to fix and should not go upstream.

KDE Base

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

Split out the windowing system related part of SceneOpenGL

The handling for creating and managing the OpenGL context is
split out of the SceneOpenGL into the abstract OpenGLBackend
and it's two subclasses GlxBackend and EglOnXBackend.

The backends take care of creating the OpenGL context on the
windowing system, e.g. on glx an OpenGL context on the overlay
window is created and in the egl case an EGL context is created.
This means that the SceneOpenGL itself does not have to care
about the specific underlying infrastructure.

Furthermore the backend provides the Textures for the specific
texture from pixmap operations. For that in each of the backend
files an additional subclass of the TexturePrivate is defined.
These subclasses hold the EglImage and GLXPixmap respectively.

The backend is able to create such a private texture and for
that the ctor of the Texture is changed to take the backend as
a parameter and the Scene provides a factory method for
creating Textures. To make this work inside Window the Textures
are now hold as pointers which seems a better choice anyway as
to the member functions pointers are passed.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Revision 33e36b8...
David Faure committed changes in [kdelibs/frameworks] /:

Don't watch recursively for kconf_update files

Otherwise this triggers on $XDG_DATA_HOME/kconf_update/log/update.log
Everyone is installing the update files directly under kconf_update anyway.

Vishesh Handa committed changes in [soprano/2.8] /:

Optimize sending of LiteralValue over the socket

Instead of sending it as <literal-value-string><literal-value-type>.
Send it as a string/int/bool/whatever when possible, and only send it
with the full type as a last resort.

This results in code duplication, but that should be fixed by deriving
both the classes from a common class.

REVIEW: 106233

Vishesh Handa committed changes in [kdelibs/KDE/4.9] /core:

ResourceWatcher: add *count() methods for resources, properties and types

These count methods are faster than returning the full list and then
counting the number of items in the list.

This also fixes an infinite loop where a temporary Resource is created
when querying for the number of resources being watched. The temporary
Resource is deleted, which results in ResourceData::resetAll being
callled which again called ResourceWatcher::resources(), and
the cycle countinues.

Ported from nepomuk-core 7bef7c53d3b9a971c203ed4391bf19ac79f381f5

Diffs: 1, 2, 3 Revision 4a21717...
Vishesh Handa committed changes in [libstreams] /:

Add functions to determine the strigi version at runtime

This way applications can easily detect the current version of
libstreamanalyzer and change their behavior during runtime.

REVIEW: 106254

Diffs: 1, 2, 3 Revision 76519b4...
Vishesh Handa committed changes in [soprano/2.8] /:

Client: Cache the current bindings

Cache the current bindings when running the next() in a local variable.
This way we avoid asking for it during each operator[] and current.

Results in a MASSIVE performance boost - 6 secs vs 1 sec on a large
query which had a lot of bindings.

REVIEW: 106231


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

Now allow to remove specialmailcollection (need kdepimlibs)

Till Adam committed changes in [akonadi] server/src/handlerhelper.cpp:

Speed up statistics queries from O(n^2) behavior by avoiding a double inner join.

On Postgres 9.1 the query that uses two inner joins to limit the results
to collections with items with certain flags (like SEEN) is extremely
inefficient, for as yet unknown reasons. To work around this, we filter
manually by leveraging an in-memory cache of flag names to ids and using
those ids to filter.

Approved by vkrause.

Volker Krause committed changes in [kdepimlibs] akonadi/session.cpp:

Do not kill running jobs from Session.

This will become a problem once kill() will actually reconnect in this
case, as that's exactly what we are doing here already. So, reset the
running state before calling kill(), it does barely more than emitResult()

Allen Winter committed changes in [kdepimlibs] mailtransport/smtpjob.cpp:

in startSmtpJob(), use KPasswordDialog like we did in libksieve's
Session class.

MERGE: 4.9


Boudewijn Rempt committed changes in [calligra] /image:

Change QRegion to QRect in KisIndirectPaintSupport

Instead of adding a rect to a region for every dab, we coalesce the
footprints into a big rect. This makes painting faster, but at the end
of the stroke we do much more work since we bitBlt the whole united
rect to the target layer, instead of just the rects the stroke touched.

Note: we might be able to remove the mutex, too.

Thorsten Zachmann committed changes in [calligra] /flake:

Implement hatch background as defined in odf.

With this patch the different styles, freely defined angles and distance between
the lines of the hatch is supported.

This patch also changes the KoColorBackground to also use the d pointer of the
parent which reduces the memory needed for a KoColorBackground.

REVIEW: 106115

Networking Tools

Dan Vratil committed changes in [ktp-text-ui/kde-telepathy-0.5] logviewer/message-view.cpp:


Development Tools

Michael Pyne committed changes in [kdesrc-build] kdesrc-build:

Use a CMake-specific module-configured key for KDE builds.

Previous to this the GenericBuild fallback of 'Makefile' was used to
test if a configure step had been run, but this only works for CMake
when the default generator is being used.

The 'ninja' generator is available in the latest CMake and seems to be
popular. Instead of hard-coding support for ninja we just try to support
something CMake-specific. Those who wish to use ninja should be able to
use cmake-options to add the appropriate -G flag, and
custom-build-command to specify ninja.