Issue 288

19th May 2013 by KDE Commit-Digest Team


Marta Rybczynska

This Week...

In KDE Workspace, Battery Monitor improves the way multiple batteries are displayed; KWin introduces cross-fading with previous pixmap and adds Wayland seat and backend support; a new"Configure" button to notifications that opens KNotify settings for the app that emitted the notification. KStars gets a new Data menu and sees multiple menu reorganizations. Solid add support for the Power Supply property. Akonadi introduces NotificationMessageV2 that supports batch operations on set of entities. Calligra adds resource categorizing with tags. Amarok gains an audio analyzer visualization applet, fixes playing of tracks passed on command line; pressing enter when searching collections now adds found tracks to the playlist and clears the search bar. NetworkManagement adds initial Wimax support. Kopete gains a new history plugin based on sqlite. Print manager can filter the jobs again.


  Bug Fixes Features Optimization Security Other



Development Tools



[] [] []   


[] []    

KDE Base

[] [] []   []


[] []    []


[] [] []   




[] []    

Networking Tools

[] [] []   

User Interface



  [] []   





There are 65 selections this week

Bug Fixes


Akarsh Simha committed changes in [kstars] kstars/kstars.cpp:

Fix crash while exporting image

The crash in setLegendAlpha() while exporting images, introduced when
I separated the ExportImageDialog dialog from the ImageExporter
"backend", was (most likely) caused because of an uninitialized
ImageExporter pointer. This caused ImageExporter to never be
constructed, but used, naturally leading to a crash. This should
hopefully fix the bug. More testing is necessary, but preliminary
testing shows that it works.


Albert Astals Cid committed changes in [okular/KDE/4.10] core/annotations.cpp:

Fix clicking on notes being hard on high zooms

It is still not perfect because for some reason poppler is painting outside the boundaries box (or we are not creating/setting it correctly)
but at least now it's not ultra hard to click in a note application at high zoom

FIXED-IN: 4.10.4

KDE Base

Romário Rios committed changes in [kde-workspace] plasma/generic/applets/notifications/contents/ui/main.qml:

Notifications history popup now hides if it loses focues when there are no jobs runnning

REVIEW: 110420

Alex Turbov committed changes in [kate] /:

Do not add a space after comma if already present (just move cursor).
Do not add closing angle bracket if '<' typed in a middle of the word.
Do nothing if '<' typed in a comment.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 3 more) Revision 25748a8...
David Faure committed changes in [kde-baseapps/KDE/4.10] konqueror/src/konqmainwindow.cpp:

Fix crash when an xmlgui file has shortcuts for viewmode actions.

FIXED-IN: 4.10.4


David Faure committed changes in [kdepim/KDE/4.10] /:

Save current selection before clearing the messagelist.

And prevent losing that information when saving happens again, in
setStorageModel() (which has to stay, I think, for the case where kmail
sets the current folder directly, without messing with the selection)

Mario Bensi committed changes in [zanshin] src/core/projectstrategy.cpp:

Fix Drag and drop in ProjectStrategy

A todo is project if it has children or if is tagged like a project, in
the case the todo was not tagged, the drag and drop was broken because
the parent type returned StandardTodo instead of ProjectTodo.

Jan Kundrát committed changes in [trojita] src/Gui/Window.cpp:

Destroy the models immediately when returning from the settings dialog

Previsouly, there was a possibility that the SQL cache might be involved in some
activity at the time the nukeModels() was called. However, due to the delayed
deleting, the Model's actual destructor (which destroyes the cache, which ends
the active transaction) might be run only after the setupModels() has finished,
which meant that the newly-created sqlite connection hit a locked database.

Thanks to Stefan Kögl (hotte on IRC) for reporting.

Dan Vratil committed changes in [kdepim-runtime/KDE/4.10] /google/calendar:

Force full-resync if last sync was more than 25 days ago

Fixes 'The requested minimum modification time lies too far in the past'
error from Google Calendar resource that users saw after they returned
from vacation :-)

Also simplifies the code and speeds up sync by not fetching all existing
items before fetching data from Google (I probably copy-pasted it from
somewhere in the early days without actually understanding what's going on)

FIXED-IN: 4.10.4


Boudewijn Rempt committed changes in [calligra] krita/ui/

Do not crash when editing a filter mask on a clone layer

Some filters need direct access to a paint device, and the clone layer
doesn't have one. Return the original paint device in that case.


Mark Kretschmann committed changes in [amarok] /:

Fix file-browser becoming empty when a file was moved to trash.

This was caused by a Progress operation. I don't know why. Removing
the call made it work, and I don't think progress status is much
needed for moving stuff to trash.


Matěj Laitl committed changes in [amarok/v2.7.x] /:

MountPointManager: fix inability to deselect "Use MusicLocation"

...and also inability to clear the Local Collection if collection
folders are cleared.

* Fix inability to reverse "Use Music Location" decision and inability
to clear database once all collection directories have been unset.

This patch is a candidate for inclusion into 2.7.1


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

Playlist{Actions,Controller}: refactor code, fix queueing

The actual fix for bug was to remove the isPlayable() check in
TrackNavigator, however this fixes more potential problems (like the
queueing being affected by the current playlist filter) and cleans up
the code.

* Fix `amarok --queue` which didn't actually queue the tracks.


Networking Tools

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

Reload plugins immediatelly when config is saved

FIXED-IN: 0.7.0
REVIEW: 110440

Pali Rohár committed changes in /trunk/KDE/kdenetwork/kopete:

Automatically logout and login with suspend/resume

This patch logs off each account when PC is suspended and restores the online state of each account on resume.
This patch also addresses another problem of kopete: When the user was setting kopete to "Offline" and the network connection was lost and recovered kopete would reset all accounts to "Online".

Thanks Benni Hill for patch!

FIXED-IN: 4.11
REVIEW: 6511


Ian Wadham committed changes in [kjumpingcube] kcubeboxwidget.cpp:

Avoid a run-on of animation after New and Stop actions.


Development Tools

Aleix Pol Gonzalez committed changes in [kdevplatform] /:

Bear in mind that the project root might not be the repository root

In the git side, look up the project root.
In the consumer side, don't assume it's the root url.


Akarsh Simha committed changes in [kstars] kstars/kspopupmenu.cpp:

Move image and info links in the popup menu into dedicated submenus.

The popup menu for some objects would end up becoming too long because
of the number of information and image links. So moving them into
dedicated submenus helps keep the context menu short and improves
usability. Besides, grouping the links as image / info resources helps
users find them more easily.

I decided not to put the DSS / SDSS imagery under the image links
submenu, because they are available for any point on the sky (within
the footprints of the surveys). If we ever create a submenu for sky
surveys, it should possibly go in there.

Akarsh Simha committed changes in [kstars] kstars/kspopupmenu.cpp:

Add separator between image and info resources only if DSS is available.

It looks weird if there's a separator between Image Resources and Info
Resources, when there's nothing else between them. So if no DSS
imagery is available, but image / info resources are (eg: for
planets). Like this:

Xplanet (for eg.) >
Image Resources >
Information Resources >

If DSS images are available, things look better:

Angular Distance [ (eg.)
Image Resources >
Show DSS Image
Show SDSS Image
Information Resources >

So, it's best to throw in the separator only when DSS / SDSS links are

Akarsh Simha committed changes in [kstars] /:

Reorganize menus in KStars.

+ Created the "Data" menu and moved "Download New Data" (GHNS / KNS3)
and "Updates" (which provides options to update comet / asteroid /
supernova data) under it.

+ Moved the Observation Planner to the "Observation" menu.

+ Changed internal name of the Observation Menu from oal to

+ Indentation improvements

Diffs: 1, 2, 3 Revision 0c48734...


Marcel Wiesweg committed changes in [digikam] libs/progressmanager/statusbarprogresswidget.cpp:

Remove two timers of unknown purpose which create flicker after each database operation

Fabio D'Urso committed changes in [okular] part.cpp:

Make "Save As" default path point to where the file was opened from

FIXED-IN: 4.11.0
REVIEW: 110419

KDE Base

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

Introduce cross-fading with previous pixmap

Cross fading with previous pixmap is achieved by referencing the old
window pixmap. WindowPaintData has a cross-fade-factor which interpolates
between 0.0 (completely old pixmap) to 1.0 (completely new pixmap).

If a cross fading factor is set and a previous pixmap is valid this one
is rendered on top of the current pixmap with opacity adjusted. This
results in a smoother fading.

To simplify the setup the AnimationEffect is extended and also takes care
about correctly (un)referencing the previous window pixmap. The maximize
effect is adjusted to make use of this new capabilities.

Unfortunately this setup has a huge problem with the case that the window
decoration gets smaller (e.g. from normal to maximized state). In this
situation it can happen that the old window is rendered with parts outside
the content resulting in video garbage being shown. To prevent this a set
of new WindowQuads is generated with normalized texture coordinates in
the safe area which contains real content.

For OpenGL2Window a PreviousContentLeaf is added which is only set up in
case the crass fading factor is set.

REVIEW: 110578

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 2 more) Revision 0bb4902...
Kevin Funk committed changes in [kate] /snippet:
Kai Uwe Broulik committed changes in [kde-workspace] /generic:

Improve Battery Monitor with multiple batteries:
- Show Battery Name, if available, instead of just Battery 1, Battery 2,
- Don't add non-power-supply batteries to the overall percentage
- Drop "Show battery status for each battery", it is now always on,
given that in systray it only shows one icon anyway and now does that
right, and if there's a mouse you wouldn't want it to be not shown,
so it would show them anyway which is a contradiction to the setting

REVIEW: 110431

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

Egl Backend using a Wayland surface for rendering

This backend is able to composite on a Wayland surface instead of an X11
overlay window. It can be considered as a prototype for a Wayland session

For texture from X11 pixmap the backend uses XShm. This is far from
optimal, but the KHR_image_pixmap extension is not available in Mesa's
Wayland backend. It's a temporary solution till we have XWayland and
texture from Wayland buffer.

To use this backend one needs to specify the environment variable
KWIN_OPENGL_INTERFACE with "egl_wayland". In future KWin should probably
use this backend if the Wayland display env variable is defined.

To use this setup:
1. Have a normal X-Server running on e.g. VT7
2. Start Weston on VT1
3. Start a terminal on Weston
4. start KWin with:

DISPLAY=:0 KWIN_OPENGL_INTERFACE=egl_wayland kwin --replace &

This should map a Wayland surface to Weston showing the content of the X
setup. At the moment it's not yet possible to interact with the surface
as input events are not yet recieved in the backend.

There are still a lot of limitations as documented in the code.

Diffs: 1, 2, 3, 4, 5, 6 Revision 9cc9fa8...
Kai Uwe Broulik committed changes in [kdelibs] /solid:

Add support for the Power Supply property of UPower which indicates if a battery
is actually powering the machine (ie. laptop battery) or just reported by one
of your peripherals (eg. mouse, keyboard).
This will eventually allow other parties such as the battery notifier to disregard
them when calculating overall battery percentage or PowerDevil to notify about

REVIEW: 110384

Kai Uwe Broulik committed changes in [kde-workspace] /generic:

Add "Configure" button to notifications that opens KNotify settings for the app that emitted the notification

REVIEW: 110389

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

Add support for Wayland seat: keyboard and pointer

Rudimentary support for input events. Events from Wayland are forwarded
to X's root window using the XTest extension.

Currently supported:
* left/middle/right mouse button
* keyboard events

Not supported:
* additional mouse buttons
* mouse wheel
* touch events

Obviously this is a rather huge hack and is only intended till we have
XWayland support and proper input redirection inside KWin.

Diffs: 1, 2, 3 Revision c493fcb...
Kurt Hindenburg committed changes in [konsole] /:

Add GUI to alter profile setting handling Page Up/Down

This adds the GUI to setup the page up/down scrolling to either full
or half height.

The non-GUI code was in 3cd4d2e44031cfbbb84e6cda2fbdebf5c02042d6


Alex Turbov committed changes in [kate] /kate/pate/src/plugins:

`Insert Color` action now shows a completion-like widget w/ #colors used in
document (for quick reuse) instead of KColorDialog. Latter still can be opened
by pressing 'Other...' button in the widget.

Whooho! Much more easy to (re)use color selection now!
Pretty cool to edit CSS files!

José Millán Soto committed changes in [kde-workspace] /:

Modify Tasks applet to display in which activities a window is on

Shows information about the activities on which a window is available on the
tooltip of task items.

Depending whether the applet is configured to show tasks which are not
available in the current activity or not, the information displayed will be
If the applet is configured to show only tasks in current activity, only the
tasks which are also available in other activities will have this information
in the tooltip.

Two new methods were added to TaskItem, both of them returning QStringList
- activities: Returns the id of the activities on which the window is
currently available.
- activityNames: Returns the names of those activities.

Frank Reininghaus committed changes in [kde-baseapps] dolphin/src/dolphinviewcontainer.cpp:

Hide the message widget when the URL changes

Most error messages are only relevant when trying to open a URL, e.g.,
they inform the user that opening the URL failed. After the next
successful URL change, these errors are not relevant any more.
Therefore, it makes sense to hide the message widget automatically to
prevent that the user is forced to close it manually.

FIXED-IN: 4.11.0
REVIEW: 110369


Laurent Montel committed changes in [kdepim] /:

Allow to configure whitelist

Diffs: 1, 2, 3 Revision 1517d07...
Jan Kundrát committed changes in [trojita] /:

GUI: systray support

fixes #67
REVIEW: 110461

Diffs: 1, 2, 3, 4, 5, 6 Revision 84b2088...
Dan Vratil committed changes in [kdepim-runtime] /:

Merge branch 'akonadi-batch-notifications'

Demonstratively port the IMAP resource to Akonadi::AgentBase::ObserverV3 and
batch notifications.

Reviewed-By: Volker Krause

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

rfc2047: treat unrecognized encoding as utf-8 and don't enumerate the list of known codecs

Dan Vratil committed changes in [akonadi] /:

Merge branch 'batch-notifications'

Introduce NotificationMessageV2 that supports batch operations
on set of entities. It's used internally everywhere and is delivered
to clients via notifyV2() signal.

Backwards compatibility is ensured by emitting "V1" messages when
there's at least one client without "batches" capability listening.

Reviewed-By: Volker Krause

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

Add support for decoding of RFC 2231 parameter names

refs #639

Diffs: 1, 2, 3, 4, 5 Revision 17a4894...
Jan Grulich committed changes in [libnm-qt] settings/ipv6setting.cpp:

Use loading of IPv6 addresses from map from the old networkmanagement


Stephane Mankowski committed changes in [skrooge] /:

feature: Notifications and error messages are now based on KMessageWidget

Signed-off-by: Stephane Mankowski

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

Add resource categorizing with tags

Patch by Sascha Suelzer

FEATURE: Add resource categorizing with tags

Todo: keep the comboboxes synchronized

This improves the way the user can organize resources into named sets
that can be added, deleted and chosen from a drop down menu that I've
added to KoResourceItemChooser. This made the changes available to the
paintoppreset choosers, the gradient choosers and the pattern choosers.

Usage right now is:

Mostly mouse based version:
Right clicking any resource can assign it to or remove it from any tag.
There is an option to create a new tag for the resource as well.
It's fairly intuitive.

Mostly keyboard based version:
Resource dockers and popups start with an unfiltered view, in this view
the tag search bar at the bottom is disabled.

To add a tag category, press the plus button and enter a name for the tag.

This creates an empty view and enables the search text box at the bottom.

Terms in double quotes "like this" will be matched to the resource name

Entering terms without quotes will partial matching, good for filtering
many resources. filtering eraser would remove all resources with eraser in
their name.

Putting an exclamation mark in front of a term will exclude the term from
the set.

Pressing enter saves the set and will clear the search box, so we don't end
up with something like erase,sketch,fur,!paint,smudge_1,smudge_2,... etc

Once a set is defined, it can be used as a search term as well.
For example:
We've created a set that contains all erasers and is called 'erasers'.
If we switch to a different set and type [erasers] in the search box then
all the items of that set will be added to the current set, exclusions work
the same way.

Remarks about the patch:

Currently only adding and deleting categories is supported, renaming them
is in the code but lacks an UI feature, which I was unable to implement.
(I wanted the unfiltered view to be immutable and tried dis and enabling
the editable state of the drop down box based on which index was active,
but that introduced a segfault.)
All in all the UI parts I've written aren't exactly amazing, maybe
someone more experienced can take care of that? I can do it but it'd be
slow since I have very little experience with that.

I have removed the `show all' checkbox in the paintop preset docker and
all references to that functionality since it made filtering a bit more
complicated as well as just not making too much sense with the
improvements to the tagging system.

I have also removed the proxy adapter in KisPresetChooser since it
didn't do anything useful after these changes, yet required attention
since it overloaded some now improved functions.

Current shortcomings of the system, most of them are UI related:

- Since I used the already existing KoResourceTagging class to handle all
the tagging bits, and ultimately save tags to disk, in alphabetical
order, restarting Krita, and thus repopulating the combo boxes also
fills them in alphabetical order and not in the order they might have
been defined by the user.

- Adding a new tag in a pop-up chooser closes the popup since I used an
input dialog after failing to implement it with combobox editing.

- Combo boxes aren't updated for all item choosers of the same kind.
For example adding a few categories in the preset docker does not update
the combo box in the preset chooser popup that can be found in the toolbar.

I also had a crash at one point in time where some brush presets got
changed around in master and clicking some resources in the brush preset
box crashed the program, but I was not able to reproduce that after a
clean rebuild of my local workspace and changing presets around
externally, so it might not be an issue, but I'm including it for
completeness sake.

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

feature: Notifications and error messages are now based on KMessageWidget


Michael Pyne committed changes in [juk] /:

folder-scan: Support a list of folders to ignore when auto-scanning.

Feature initially authored by Tom Li (see the Review Request and bug for
more details).

The idea is that the Manage Folders dialog now will have a list of
folders that should not be automatically searched (which would override
the list of folders to scan on startup). This way you can avoid having
to completely change up your music layout on-disk just to keep JuK from
automatically grabbing songs you don't want or need managed from within

I ended up having to rework a bit to fix some corner cases (such as the
directory watcher which might flag new files under an excluded directory
after JuK startup), and avoid accidentally removing the ability to
manually select files under these excluded directories for addition to
the collection.

If a user does want to remove files that are already in the collection
list, they can enable the "File Name (Full Path)" column and then use
the search bar to find the offending path name, and select and remove
the files that are shown.

Note for posterity that the "Fixed In" version specifies the next
KDE-wide Software Compilation release, not the internal JuK version.

Thanks again to Tom for drafting the initial patch and being
extraordinarily patient while I tried to find time to review, re-review,
and make the finishing touches.



Mark Kretschmann committed changes in [amarok] /:

Add an audio analyzer visualization applet.

The analyzer code itself is lifted from Amarok 1.x and then adapted for our
needs. The architecture allows adding multiple different visualizations, both
2d (QPainter) and 3d (OpenGL). Currently I have only implemented the
"BlockAnalyzer" which is rendered with QPainter, so it's guaranteed to work

Due to limitations in Phonon-VLC (and libVLC), the analyzer currently
only works with Phonon-GStreamer.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 4 more) Revision 0009faa...
Matěj Laitl committed changes in [amarok] /:

Collection browser: pressing enter when searching appends to playlist

* Pressing enter when searching collections now adds found tracks to
the playlist and clears the search bar, this is a very convenient
way to populate your playlist.

Based on request from an anonymous commenter on

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

PlaylistController: fix inability to play just loaded tracks

...that was caused by asynchronism of playlists and MetaProxy::Tracks.
Now that we have TrackLoader which will magically solve all our
problems. :-)

This fixes Amarok not playing tracks passed to it via command line.

* Fix `amarok --play file.mp3` option didn't actually start playback.

@Anmol, now you can fix the "core" part of the bug 317385 as I outlined
in (please reopen the review).

@Ralf, this is the "recommended" way to handle asynchronism in tracks
and playlists now.


DIGEST: Amarok fixes playing of tracks passed on command line

Networking Tools

Dan Vratil committed changes in [ktp-kded-module] /:

Add 'Contact Details' action to incomming contact request menu

FIXED-IN: 0.7.0
REVIEW: 110445

Jan Grulich committed changes in [plasma-nm] /:

Add Wimax support

But needs to be tested!!

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 1 more) Revision 9e71a6c...
Pali Rohár committed changes in /trunk/KDE/kdenetwork/kopete/kopete/chatwindow/chatview.cpp:

Allow inviting users to groupchat by drag-n-dropping

Thanks Teemu Rytilahti for patch!

FIXED-IN: 4.11
REVIEW: 6628

Volker Härtel committed changes in /trunk/KDE/kdenetwork/kopete/plugins:

Another history plugin based on sqlite.

Most important changes:

- based on sqlite3 instead of xml-files

- import history button in config dialog

- import option added for the other xml-based history-plugin

- pidgin import improved

- test and skip duplicates on import (so it is possible to synchronize
regularly from a windows-pidgin installation for example)

- more speed in most cases

The main reason I began to rewrite the complete plugin was, that I had
dataloss by importing from pidgin with the old history plugin.
The months, which where imported from pidgin, did overwrite the kopete
history. This was unacceptable.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 13 more) Revision 1355293
Dan Vratil committed changes in [ktp-common-internals/kde-telepathy-0.6] KTp/logs-importer-private.cpp:

Strip wrapping HTML tags when importing logs from Kopete

Also disable check whether the logfile already exists in TpLogger and
just overwrite it. This allows users to reimport their Kopete logs

FIXED-IN: 0.6.2
Reviewed-By: David Edmundson


Daniel Nicoletti committed changes in [print-manager] /:

Make the printer filter work

Diffs: 1, 2, 3, 4, 5 Revision e92a5da...
Daniel Nicoletti committed changes in [print-manager] /:

Add back the feature to filter which jobs to shows

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



Akarsh Simha committed changes in [kstars] /:

Make supernovae update process asynchronous.

Make the supernova update process asynchronous so that it doesn't slow
down KStars startup even if the network connection is down.

To do this, the update method was split into two methods, one to
trigger the update, and the other to reload the data after the update
process is finished.

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

KDE Base

David Faure committed changes in [kdelibs/KDE/4.10] /kio:

CopyJob: replaced huge recursion with delayed invocation.

Otherwise there's a risk of filling up the stack, when copying a very
large number of files (and they are all available in the KDirLister cache).

FIXED-IN: 4.10.4


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

Networking Tools

Pali Rohár committed changes in /trunk/KDE/kdenetwork/kopete/libkopete/kopeteaccount.cpp:

Wait 20s before notifications (contact online/offline) are visible.
Before it was only 5s and it was not enought. Kopete more times spammed user about each online contact.


Andre Heinecke committed changes in [kdepim/gpg4win] kleopatra/utils/types.cpp:

Do not use forceActiveWindow to bringToForeground

The AttachThreadInput used by forceActiveWindow
interacts with gpgol that also uses AttachThreadInput
in a way that can cause a deadlock somewhere between
Kleopatra and gpgOl with outlook runing at 100% CPU.
The reason for this is not understood but just doing
a setForegroundWindow is actually all that we want here.


KDE Base

Michael Pyne committed changes in [kdelibs] /:

Fix type-punning/non-standard-aliasing issues.

Reported aeons ago as bug 259826, somehow evaded interest up to this

The issue is essentially that the C++ standard allows compilers to
optimize some forms of crazy type changes, which makes the flagged code
dangerous in the face of "future optimization improvements".

None of the flagged code was so crazy that it couldn't have been
implemented in a more straightforward fashion though. The only change
I'm not 100%-alright with is the change to dds.cpp, but that code has
other issues anyways (though I did test that it still works as much as I

However because of the risk of breakage I do not intend to backport.
Hopefully sufficiently-smart compilers will wait until the next major


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

Drop explosion effect

It has been unmaintained and mostly broken for years.

FIXED-IN: 4.11
REVIEW: 110513

Diffs: 1, 2, 3, 4, 5, 6 Revision 3395c61...
Vishesh Handa committed changes in [nepomuk-core] services/storage/backup/backuprestorationjob.cpp:

BackupRestorationJob: Start the % with 3%

Gives the user a sense that something is happening when restoring a

Normally, when the user resets a backup a large amount of time is spent
in removing the old database and loading all the ontologies, so they do
not receive any indication when that is happening. This way they at
least see a '3%'

Ralf Jung committed changes in [kde-workspace] kwin/options.cpp:

Change default refresh rate to 60Hz

This changes the default refresh rate (which KWin uses if it cannot get the rate from the screen) from 50Hz to 60Hz.
There are two reasons for this:
- When plugging out the last active screen, even without calling xrandr the X server changes the screen geometry to some built-in minimum (320x200), with, of course, no information about the refresh rate. As a result, KWin assumes 50Hz and restarts the compositor to accommodate for this change, only to change it again soon thereafter when there's a screen again.
- I know of nobody using a 50Hz screen. Most people use 60Hz, some use 120Hz, but 50Hz seems pretty rare to me.

REVIEW: 110454


Dan Vratil committed changes in [ktp-common-internals] /Models:

Perform foreign-character-insensitive matching with Qt::CaseInsensitive

FIXED-IN: 0.7.0

Aurélien Gâteau committed changes in [kdepim] /:

Merge Search and Stop buttons, move the Search/Stop button to the bottom