Issue 127

7th September 2008 by Danny Allen

This Week...

A KPhotoAlbum developer sprint leads to various developments, including a new viewer and support for image "stacks". Initial lyrics support and a new "Albums" applet in Amarok 2.0. Support for export to OpenDocument text and HTML formats for certain file types in Okular. More functionality in the Plasma "Engine Explorer", an application for data engine development. More work on the "grouping taskbar" and "Weather" applet for Plasma, and new features in the wallpaper configuration dialog. A new Plasma wallpaper plugin, "Mandelbrot fractal viewer" based on Eigen. Lots of new settings across KWin-Composite effects. Start of code for a "Plasma loader" in Raptor. Experiments with using Jabber to propose/find network games in KSirK. Support for subprojects with CMake, and a generic "Source Formatter" plugin (with multiple backends) in KDevelop 4. Start of an OpenSync plugin for Akonadi. An Akonadi "server configuration" KControl module, intended for use in KDE System Settings. Support for adding files through command-line arguments in Ark. "Instant search" is implemented in KCharSelect. More work on a new IRC implementation, and improved Kiosk support in Kopete. NEPOMUK query service, and kosdwidget move to kdereview. Import of "LokaRest", an experimental framework to access RESTful web services. A new application, kReMail, is added to playground/pim. Import of "deKorator" KWin window decoration engine to playground/artwork, and a KDE4 port of Kvkbd into playground/utils. KColorEdit 2.0 is released.
Rob Scheepmaker introduces his work on "Extenders in Plasma":
I've been working on Extenders for my Google Summer of Code project, and while there are still a couple of known (and probably also unknown) problems, they are basically ready for use. I'd like to take this opportunity to explain and show what this extender thing actually is, and why it is awesome.

Thanks to extenders, it is now very easy for applet developers to embed relocatable widgets in your applet. Any QGraphicsWidget can be wrapped in a so-called "ExtenderItem", which allows the widget to be simply dragged anywhere by the user. Items that have been "detached" this way, can live on even when the applet that created them goes away, and can even be persistent between sessions. Widgets can also be reordered by the user, they can be collapsed and expanded, and custom actions can be registered for easy interaction. Take a look at the following simple screencast to get an idea about what all this means.

What is shown here is the kuiserver applet I made to test the extender API. It is located in KDE SVN playground at the moment (if you'd like to test it), but it will most likely move to kdebase for 4.2. The kuiserver can show any KJob, which can be file transfers (as shown here), but also the burning of a CD, the rendering of a 3d image - basically anything that takes some time. As you can see, the jobs that are shown can be moved around, detached (in which case they are persistent, so you'll see them again even after you restart your computer), and returned to its source (the little question mark icon, since there's no icon yet for "return to source"). Also, a couple of custom actions are registered by the applet to its ExtenderItems, allowing the user to pause, resume and stop its transfers.

One of the nice things about extenders is that they require very little work for a developer to use. Thanks to all the great feedback from the rest of the Plasma team, it has a very neat and easy to use API, where basically all you have to do is instantiate an Extender, and start adding ExtenderItems to it. For a more complete picture on how to approach extenders, you can take a look at the TechBase tutorial I wrote. It's still a bit of a work in progress, but I think it might be useful. The tutorial shows how to create a stripped down version of the kuiserver applet shown in the screencast.

So where to go from here? Well, there are lot's of places that extenders might be useful. To name a few: The notify applet. Imagine being notified of an important email, and being able to just drag that notification to somewhere on your desktop, or a ToDo applet on your panel, so you'll remember to answer that email once you've finished what you're working on. Or a system monitor applet, where you can simply detach the sensors that you are interested in. Or, since Plasma is all about clocks, a clock where you can detach different timezones. And once all kinds of applets start using this, you have the freedom to just drop almost any part of almost any applet together as you see fit. And that's the kind of flexibility Plasma is all about!
Parker Coates writes about his KDE game, "Killbots":
My name is Parker Coates. I'm 25 years old. I currently live in Sherbrooke, Québec, Canada. I program ultra-violet wastewater disinfection equipment for a living.

I've been working on my game, Killbots, on and off for the last two years. It's actually the first and only thing I've ever written in C++. I had just read a great introduction to C++ book and wanted to start a new project to test what I'd learned. I was a KDE user and had recently discovered the game "robots", so I thought a "robots" clone in KDE would be a great start.

In case your unfamiliar, "robots" is a classic, turn-based, UNIX console game in which the player tries to avoid being killed by attacking robots. The player cannot attack the robots directly, but instead must get them to collide with one another or the rubble of previous collisions. The game itself is quite simple, but can be surprisingly entertaining. The GTK port of "robots", GNOME Robots, added several new twists to the game, including two classes of robots, pushable junkheaps, and safe teleports, all of which have been included Killbots.

The game was originally called KRobots, a name which, interestingly enough, is now used by this non-KDE project: It was written in KDE3/Qt3 using QCanvas and used raster images for sprites. Due to my lack of experience with C++ and Qt, I ended up rewriting the entire application twice, because I kept coding myself into corners due poor design decisions.

By the time I had created something reasonably playable, I learned that the future lay with KDE4/Qt4, so I once again abandoned the existing code and started a fresh rewrite to KDE4 and QGraphicsView which was brand new at the time. SVG theming, custom rulesets, highscores and animations were slowly added. The application was renamed to Killbots, and eventually became respectable enough to move into the SVN playground. While there it has continued to gain polish, features and documentation and is now nearly release worthy.

Okay, so that was the introduction, now onto asking for favours.

First and foremost, i'd greatly appreciate having Killbots reviewed. Interface, game play, documentation and usability reviews are all welcome, but a code review would be most appreciated. As I mentioned, this is my first C++ application, so i'm extremely interested in any comments or suggestions on the code and/or application design. I'm a bit of a perfectionist, so i'd be glad to hear about even nit-picky issues or inconsistencies. Ideas for potential new features are also welcome, but lower priority.

Second, i'd like some input on what the logical next step is for Killbots. I remember there being a list of requirements somewhere that a game needed to meet before being considered for inclusion in KDEGames, but I can't seem to find it now. Does such a list exist?

There has also been talk lately of dividing KDE Games into "Minimal", "Extended", and "Extra" submodules. Obviously Killbots wouldn't fit in the Minimal set, but I question whether it would even be popular enough to go into the Extended set. I'm a bit apprehensive about the Extra submodule though, as it's my understanding that these would actually live in Extragear, which isn't automatically translated/packaged/released with the main KDE project. Thoughts on this would be appreciated.

Third is artwork. I've already spoken to Eugene Trounev about creating a new default theme, but if anyone else is interested in making a theme, the more the merrier. There are even basic instructions on how to do in the game handbook. I'm also in need of an application icon and icons for my three custom actions: "teleport", "teleport safely", and "wait out round". Any help with any of these would be greatly appreciated.


Commits 2908 by 245 developers, 12133 lines modified, 1425 new files
Open Bugs 16846
Open Wishes 14426
Bugs Opened 407 in the last 7 days
Bugs Closed 336 in the last 7 days

Commit Summary

Module Commits
Lines Developer Commits
Thomas McGuire
Gilles Caulier
Volker Krause
Pradeepto Bhattacharya
Allen Winter
Albert Astals Cid
Laurent Montel
Aaron J. Seigo
Kevin Ottens
Luboš Luňák

Internationalization (i18n) Status

Language Percentage Complete
Portuguese (pt)
Estonian (et)
Ukrainian (uk)
Swedish (sv)
Galician (gl)
Greek (el)
French (fr)
Low Saxon (nds)
Japanese (ja)
Spanish (es)

Bug Killers and Buzz

Person Bugs Closed
Tobias Koenig
Bram Schoenmakers
Pino Toscano
Thomas McGuire
Lucas Murray
Mark Kretschmann
Marc Mutz
Seb Ruiz
Aaron J. Seigo
Emanuel Schütze
Program Buzz
Person Buzz
David Faure
Stephan Kulow
Aaron J. Seigo
Torsten Rahn
Jonathan Riddell
Laurent Montel
Stephan Binner
Thiago Macieira
Zack Rusin
Adriaan de Groot

Commit Countries

Commit Demographics




  Bug Fixes Features Optimization Security Other



Development Tools

  [] []   []


  []    []


[] []    []

KDE Base

[] [] []   []


[] []    []


  []    []




[] []    []

Networking Tools

  [] []   

User Interface



  []    []


  [] []   []



There are 132 selections this week

Bug Fixes


Andrea Diamantini committed changes in /trunk/extragear/graphics/kipi-plugins/galleryexport:

Finally solved Connection Problems!! Now plugin connects to Galleries..
Its functionality are near to come back!

Diffs: 1, 2, 3 Revision 857187

KDE Base

Peter Penz committed changes in /trunk/KDE/kdelibs/kfile:

assure that the URL navigator gets activated when the path gets the focus

Michael Jansen committed changes in /trunk/KDE/kdelibs/kdeui:

Finally KShortcutsEditor should work 100% correctly regarding applying and undoing changes to local shortcuts.

# KKeySequenceWidget: Improve documentation and document that applyStealShortcut has the side effect of saving an action collection.

That works if you only change one shortcut so keep that method.

# KKeySequenceWidget: Emit a signal if a user agrees to stealing a shortcut. KShortcutsEditor listens to that signal and so hasn't to rely on applyStealShortcut()

Diffs: 1, 2, 3, 4, 5 Revision 856844
Aaron J. Seigo committed changes in /trunk/KDE/kdebase/workspace/plasma/shells/desktop:

bring up the containment's context menu on right click, something i've been meaning to do for a while and which happens to close bug 170475.


Tobias Koenig committed changes in /trunk/KDE/kdepimlibs/kabc/vcardtool.cpp:

Only store in JPEG format when the image has no alpha channel, otherwise the transparency information get lost...


Michael Pyne committed changes in /trunk/KDE/kdemultimedia/juk:

Fun thing to do with JuK:

Pause playback.
Type in something into the search widget
Press enter to play the first matched song.

A song will play alright, but the playingFile will be thought to be null for some reason.

I've tracked down that this is probably due to there being no selected item in the visible results when enter is pressed, so I've made the search widget's returnPressed() signal manually play the first listed match instead of relying on Playlist's returnPressed() signal to work.

Diffs: 1, 2, 3 Revision 855548


Development Tools

Aleix Pol Gonzalez committed changes in /trunk/KDE/kdevelop/buildtools/managers/cmake:

Let CMake work with subprojects.

This is a very usual use case and a place where many people found "buggy" the way to work because when importing a subproject made KDevelop to mess up because of the non-parsed CMakeLists.txt files placed in parent directories. Now KDevelop looks if there are and it parses them too.

**Warning** it will always look for it, it is not yet configurable in the project file (it is configurable in the .kdev4/project.kdev4 file, should be moved)

Now it is possible to parse a cmake subproject without parsing the other subdirectories below or in the same level.

It can be useful when you are working on a large project and you don't need the whole to be supported by KDevelop (for instance, when I'm working on KAlgebra in KDE-Edu, I don't need, let's say, the Marble buildtool information).

Diffs: 1, 2, 3, 4 Revision 856474
Cedric Pasteur committed changes in /trunk/KDE/kdevplatform:

New Source Formatter generic plugin.

It allows to use different backends to format the files but with just one Ui (eg one kCModule)
Supports custom themes for every plugin and every language

It is possible to format all the files in a project and the plugin will choose which plugin to use according too tyhe mime type and the chosen plugin for this language in the config dialog

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


Frederik Gladhorn committed changes in /trunk/KDE/kdeedu/parley/src:

Start a summary dialog to show after the practice.
Great for review after learning and voc tests...

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


Percy Camilo Triveño Aucahuasi committed changes in /trunk/extragear/graphics/kcoloredit:

* Open Recent Files ... done
* Full use of KUrl ... done
* Refactoring code of KColorEdit class [Main Window]

Diffs: 1, 2, 3, 4, 5, 6 Revision 855609
Brad Hards committed changes in /trunk/KDE/kdegraphics/okular/core:

Add support for export to OpenDocument text and HTML for TextDocumentGenerator-based generators:
- EPub format
- Fictionbook format
- OOO.

This depends on Qt 4.5. Thanks to Qt Software (or wherever Thomas Z. works) for QTextDocumentWriter!

It wouldn't be too hard to make this work for plucker (.pdb) format, but that format doesn't work for me.
It would be very hard to make it work for other formats.

Diffs: 1, 2, 3 Revision 855771
Jesper Pedersen committed changes in /trunk/extragear/graphics/kphotoalbum:

First step towards a new viewer.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 2 more) Revision 855816
Jan Kundrát committed changes in /trunk/extragear/graphics/kphotoalbum:

extend ImageInfo with fields for image stacking, image rating and GPS stuff

Diffs: 1, 2, 3, 4, 5, 6 Revision 856710
Jan Kundrát committed changes in /trunk/extragear/graphics/kphotoalbum:

New stack creation support in the GUI (no fancy dialog, no unstacking, no indication, no ... nothing, you name it, yet)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 856800
Jesper Pedersen committed changes in /trunk/extragear/graphics/kphotoalbum:

a tear off context menu now exists in the info box for configuring it

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Revision 856860
Jan Kundrát committed changes in /trunk/extragear/graphics/kphotoalbum:

Stacking should work reasonably now (yeah, that means unstacking, hurray!)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 857498
Tuomas Suutari committed changes in /trunk/extragear/graphics/kphotoalbum/SQLDB/Schema:

Add support for double precision floating points to DatabaseSchema

And as a totally unrelated side note, which was promised for the winner of the Go Kart race:
Congratulations to Jesper for winning the race! You're the man!

KDE Base

Siraj Razick committed changes in /trunk/playground/base/raptormenu/plasmoid/raptoid.cpp:

Stub code for Raptor Plasma Loader

Alexis Ménard committed changes in /trunk/KDE/kdebase/workspace/libs/plasma:

Now tooltip on kickoff works again, when hide/show it.

The popupApplet has now the capability to know if the dialog is displayed or not, then call popupEvent.

Diffs: 1, 2, 3, 4 Revision 855715
Christian Mollekopf committed changes in /branches/work/plasma-groupingtaskbar/plasma/applets/tasks:

implemented some group activation stuff

Diffs: 1, 2, 3 Revision 855805
Matthias Kretz committed changes in /trunk/KDE/kdebase/runtime/phonon/kded-module:

- list virtual ALSA devices from .asoundrc files
- list unplugged devices that were previously stored to the cache
- convert the data into the format as libphonon (ObjectDescription) needs it (so that conversion is done only once in the kded module instaed of every single Phonon app)
- rename AudioDevices that have the same name but different device number- ask pulseaudio for all its sinks and sources, so far all you get is debug output

Sebastian Kügler committed changes in /trunk/playground/base/plasma/runners/katesessions:

The Kate session runner now watches for changed sessions.

Daniel Laidig committed changes in /trunk/KDE/kdelibs/kdeui/widgets:

Use a simple search index for KCharSelect and implement instant search

This also makes searching in character details possible.
The indexing of Unihan data is currently disabled, since it increases the size of the index a lot.
Probably an option should be introduced for this.

The index is created on runtime in the background (via QtConcurrent), so the only time the UI could freeze a few milliseconds is if the user tries to search before the index is ready.

Rafał Miłecki committed changes in /trunk/KDE/kdebase/workspace/plasma/applets:

Let's make tooltip display time and date of every selected timezone.

Diffs: 1, 2, 3 Revision 856465
Luboš Luňák committed changes in /trunk/KDE/kdebase/runtime/kcontrol/componentchooser:

Add the possibility to bind the wm's configuration dialog to the kcm.

Diffs: 1, 2, 3 Revision 856682
Rafael Fernández López committed changes in /trunk/KDE/kdelibs/kutils:

Let's check if entries are immutable.
This lets kiosk disable the user being able to enable/disable plugins.

Matthias, Will and me have been talking about adding a new method to KPluginInfo with the signature: bool KPluginInfo::configEnabledKey(const QString &key) const, what will return if the given key is immutable or not, being it read from the proper config group (internally stored into KPluginInfo).

What do you think?

Aaron J. Seigo committed changes in /trunk/KDE/kdebase/workspace/plasma/tools/engineexplorer:

context menu on items that provides:

* on-demand updating of source
* removal of sources
* and soon... access to associated services

Matthias Fuchs committed changes in /trunk/KDE/kdeplasma-addons:

Option to display the author and the title of the comics

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 12 more) Revision 856804
Aaron J. Seigo committed changes in /trunk/KDE/kdebase/workspace/plasma/tools/engineexplorer:

start of service viewer

Diffs: 1, 2, 3, 4, 5 Revision 856817
Lucas Murray committed changes in /trunk/KDE/kdebase/workspace/kwin/effects:

Added automatic layout mode to the desktop grid effect.
Patch based off one by Christian Mollekopf.

Lucas Murray committed changes in /trunk/KDE/kdebase/workspace/kwin/effects:

Setting to disable wobbly windows for resizes or moves separately.

Christian Mollekopf committed changes in /branches/work/plasma-groupingtaskbar/plasma/applets/tasks:

added support for groups that demand attention or are active

Diffs: 1, 2, 3, 4 Revision 857066
Marco Martin committed changes in /trunk/KDE/kdebase/workspace/plasma:

new layout in the wallpaper configuration and some new features:
- setup ui to chose color and different scaling/cropping in slideshow mode
- textbox to set the containment name
- activity and theme now are before wallpaper section
- some reordering/aligning to conform to the HIG

Diffs: 1, 2, 3, 4, 5 Revision 857140
Aaron J. Seigo committed changes in /trunk/KDE/kdebase/workspace/plasma/tools/engineexplorer:

* add a status line when operations are in progress
* show the user the result of the operation

we can now successfully launch operations!

Diffs: 1, 2, 3 Revision 857155
Benoît Jacob committed changes in /trunk/playground/base/plasma:

New plasma wallpaper plugin: Mandelbrot fractal viewer.
Like your usual fractal wallpaper except it's live ;)

Important: this is a minimalistic implementation, only 360 lines of code, leveraging Plasma, Qt, Eigen. Not intended to compare to Fraqtive which is much more serious.

Still has nice features:
- uses as many cpu cores as you have
- non-blocking rendering, in separate thread(s)
- uses vectorization instructions (sse, altivec) if available
- switches automatically between single and double precision as needed
- tiled rendering, prioritizing tiles near the mouse event, so the user can browse very fast as the tiles he's most interested in are rendered first.
- no-frills monochrome gradient directly from divergence data:
let's not corrupt natural beauty with kitsch gradients.

- SSE2 required for now (but fixing that is just a matter of adding platform-detection logic).
- doesn't save/restore the view
- triggers a number of plasma bugs.

Most importantly: for now, use it in the Dashboard view, otherwise there are repainting glitches.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 5 more) Revision 857241
Christian Mollekopf committed changes in /branches/work/plasma-groupingtaskbar/plasma/applets/tasks:

added support for startup tasks

Diffs: 1, 2, 3, 4, 5 Revision 857277
Lucas Murray committed changes in /trunk/KDE/kdebase/workspace/kwin/effects:

Added option to dim the desktop with the dim inactive effect.

Lucas Murray committed changes in /trunk/KDE/kdebase/workspace/kwin/effects:

Added background window opacity setting to box switch.

Christian Mollekopf committed changes in /branches/work/plasma-groupingtaskbar/libs/taskmanager:

screen support implemented

Diffs: 1, 2, 3, 4 Revision 857435
Matthias Fuchs committed changes in /trunk/KDE/kdeplasma-addons:

Added support for strip-titles and alternative text (as tooltip).
Currently used by xkcd.

Sebastian Trueg committed changes in /trunk/playground/base/nepomuk-kde/usercontext:

Skeleton for the user context service.

Diffs: 1, 2, 3, 4, 5, 6 Revision 857600
Ben Cooksley committed changes in /trunk/playground/base/kdisplay/knotify:

Add the ability to set the osd background + text color through configuration options

Lucas Murray committed changes in /trunk/KDE/kdebase/workspace/kwin/effects:

Added option to not elevate selected window in box switch.

Diffs: 1, 2, 3, 4 Revision 857724
Lucas Murray committed changes in /trunk/KDE/kdebase/workspace/kwin/effects:

Added "advanced mode" to wobbly windows settings.

Diffs: 1, 2, 3, 4 Revision 857830


Tobias Koenig committed changes in /trunk/KDE/kdepim/kitchensync:

Bring back the nice intro page

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 855034
Volker Krause committed changes in /trunk/KDE/kdepim:

Add Akonadi OpenSync plugin.
So far mainly a skeleton and some wraping of the OSyncObjTypeSink callbacks, no real functionality yet.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 2 more) Revision 855039
Bertjan Broeksema committed changes in /trunk/KDE/kdepim/akonadi/resources/vcard:

Added a config dialog, which enables the user not only to select the vcard file but also to configure the readonly mode, autosave and autosave interval.

Diffs: 1, 2, 3, 4, 5, 6 Revision 855243
Allen Winter committed changes in /trunk/KDE/kdepim/korganizer/printing/calprintdefaultplugins.cpp:

Implement printing recurrence info for an Incidence.
Patch provided by Ron, Thanks!

Hope we can expect more from you.
I added a copyright for you.

Till Adam committed changes in /branches/kdepim/enterprise4/kdelibs-4.1-branch/kio/kfile/kfiledialog.h:

Finish support for native file dialogs on Mac.

Volker Krause committed changes in /branches/kdepim/enterprise4/kdepim/kmail/kmcomposewin.cpp:

Add charset autodetection.
This is more or less a complete reimplementation of the one in enterprise3 branch since kdelibs now provides the necessary facilities, making things a a lot easier.

We probably want to backport KEncodingProber to the enterprise4 kdelibs branch though.

Tobias Koenig committed changes in /trunk/KDE/kdepim/akonadi/resources:

Add a directory based resource for contacts that can be used for the standard address book in future.

Diffs: 1, 2, 3, 4, 5, 6 Revision 857553
Kevin Krammer committed changes in /trunk/KDE/kdepim/akonadi/resources/kcal:

Mostly reimplemented the resource. Should be able to handle sub resources now.
Still a couple of TODOs left.

Ugly: currently directly referencing ../kabc/kresourceassistant.h/.cpp either put it into a shared location or probably even move it to kdepimlibs/kresources

Diffs: 1, 2, 3 Revision 857874
Volker Krause committed changes in /trunk/KDE/kdepim/akonadi/kcm:

Add a server config KCM and let that show up in systemsettings, together with the already existing resource KCM.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 857904


Dag Andersen committed changes in /trunk/koffice/kplato/libs/ui:

Add printing gantt charts.

Diffs: 1, 2, 3, 4 Revision 856216


Leo Franchi committed changes in /trunk/extragear/multimedia/amarok/src:

initial lyrics support... kind of.
extended scripting interface to allow lyrics scripts to communicate w/ amarok extended scriptmanager to keep track of lyric scripts separately added plenty of lyrics-related debugging

**lyrics script does not work when loaded from amarok**
somehow, it only works if you copy/paste it into the script console. need to talk to peter to figure it out.

also, script for lyrc currently ignores any kde proxy, to be added later

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 8 more) Revision 855448
Leo Franchi committed changes in /trunk/extragear/multimedia/amarok/src:

add support for suggestions on the script-side of things.
the engine/applet don't support it yet though

Leo Franchi committed changes in /trunk/extragear/multimedia/amarok/src:

support framework for suggestions.
now will show a TODO when it gets suggestions

Diffs: 1, 2, 3, 4, 5, 6 Revision 855938
Seb Ruiz committed changes in /trunk/extragear/multimedia/amarok/src/context/applets/albums:

Give the Albums applet a makeover.
Modelled off the collection browser view, and responds to hover events and presents itself much more nicely.

Usability has improved, imo, although the SVG colour choices seem to cause it to blend into the background a bit. Some contrast is needed I think.
RFC compared to the previous version please.

Diffs: 1, 2, 3 Revision 856266
Leo Franchi committed changes in /trunk/extragear/multimedia/amarok/src:

add support for html lyrics, now a script can call showLyricsHTML and pass direct html to the lyrics applet

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 856704
Leo Franchi committed changes in /trunk/extragear/multimedia/amarok/src:

playlist support during collection scans.
amarok will now load found playlists during a scan.

however, still have not implemented duplicate checking - so if you rescan, they will show up again.
also, removed the reload-db call every time a playlist was added, because it seemed to stress some part of the playlistbrowser or db code and would make amarok crash.

you might need to jiggle amarok a little to get it to show them right after a collection scan is finished.

Diffs: 1, 2, 3 Revision 857631

Networking Tools

Christoph Thielecke committed changes in /trunk/playground/network/kvpnc:

dpd idle timeout support added (vpnc, vpnclient)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 855457
Tom Patzig committed changes in /trunk/playground/network/kbluetooth4:

- KblueLock support for Screen Unlock
- KblueLock log Away times

Diffs: 1, 2, 3, 4 Revision 855798
Alexander Rieder committed changes in /trunk/KDE/kdenetwork/kopete/protocols/irc:

work on irc protocol.
it's now possible to connect to a server

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 11 more) Revision 856866
Will Stephenson committed changes in /trunk/KDE/kdenetwork/kopete:

Add Kiosk support for contact context menu actions

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


Harald Hvaal committed changes in /trunk/KDE/kdeutils/ark/app:

Added basic implementation of adding files through command line arguments.

Diffs: 1, 2, 3, 4, 5 Revision 856607
Harald Hvaal committed changes in /trunk/KDE/kdeutils/ark:

Adding support for renaming already existing files in archivehandler and in overwritequery.
Progress dialog is now centered on screen for batch extract.

Diffs: 1, 2, 3, 4 Revision 857849


Gaël de Chalendar committed changes in /branches/work.jabber/ksirk:

First working draft of KsirK able to use Jabber to propose/find network games.
It uses a 'natural language' protocol to indicate/read in a standard MUC room what are the running games and where to connect to them

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 41 more) Revision 857189
Charles Huet committed changes in /trunk/playground/games/KGLEngineRefactoring:

added a system to allow collision detection only with certain item types

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 857469


Development Tools

David Nolden committed changes in /trunk/KDE/kdevplatform/language:

Actually call the destructors of deleted duchain data items when converting them to constant items.
This is needed so their temporary data is actually released for re-use.

This should reduce the endless memory-hunger of KDevelop, does not seem to be enough yet though.

Diffs: 1, 2, 3 Revision 856455
David Nolden committed changes in /trunk/KDE/kdevplatform/language/duchain/appendedlist.h:

Clear unused items in the temporary data manager, and never hold more than 250 allocated free items.
If there is more free items, they are deleted.

This is another approach to reducing the memory-usage, and seems to help a bit.

David Nolden committed changes in /trunk/KDE/kdevplatform/language/duchain/repositories/itemrepository.h:

- Keep track of all free space in the item repository, by not only keeping freed items, but also storing free ranges that were left while re-using space, and merging consecutive free space together.
- Add functionality to keep track of lost space(Neither referenced by free-items or by used items). This should always be null after this change.

This greatly reduces the size some of the .kdevduchain structures grow up to after some time.
For example my last persistent declaration table had a size of 150MB, where 70MB were lost, and 60 MB were in fragmented free-item lists.

Exactly the same table will have a size of 20 MB now. :-)

KDE Base

Harri Porten committed changes in /trunk/KDE/kdelibs/khtml/css/cssparser.cpp:

Optimized parser for CSS color values.
Gives me 3.5% speedup on the first skeleton movie compared to the version using QString::toInt().

Aaron J. Seigo committed changes in /trunk/KDE/kdebase/workspace/libs/plasma/applet.cpp:

don't repaint the entire item *every time* if the exposed area is just a small section.
this saves huge numbers of whole screen repaints.

Networking Tools

Joris Guisson committed changes in /trunk/extragear/network/ktorrent:

Revamped chunk memory management completely:
- Chunks are no longer loaded completely, only the parts which are needed
- During the download of a chunk, pieces will be saved immediatly if possible (i.e. the hash has been computed with it)
- Fixed bug causing mapped mode not be allowed for multifile torrents
- Dropped support for migrating very old current_chunks files (pre 1.2)

This reduces memory usage considerably

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


Stefan Majewsky committed changes in /trunk/KDE/kdegames/kdiamond/src:

Speed up startup by preventing early caching of remove animations.
Disable hint action when paused or finished. Only one paused state.

Diffs: 1, 2, 3, 4, 5 Revision 856522


Development Tools

Manuel Breugelmans committed changes in /trunk/KDE/kdevplatform/plugins/contextbrowser:

Context Browser improvements:

- Name change Context Browser -> Code Browser
- Proper toolview icon
- Dolphin style back & forward toolbuttons
- History reset action
- Reimplement lock, which now allows for record and playback
- Refactor ContextBrowserPlugin::updateViews() in (smaller) chunks
- Single navigation widget. Prefer declaration view over context view
- Restructure and rename of ContextBrowserWidget and related classes
- Various bug fixes.

Diffs: 1, 2, 3, 4 Revision 857576


Pino Toscano committed changes in /trunk/KDE/kdeedu/marble:

- add a structure for network plugins, interface and abstract class.
- decouple the QHttp stuff into an own QHttpNetworkPlugin, compiled statically, and leave HttpJob and abstract class.
- start adapting the HttpDownloadManager to use a network plugin for creating the HTTP jobs; at the moment no plugin is used, but the static QHttp-based one is.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 1 more) Revision 855032
Torsten Rahn committed changes in /trunk/KDE/kdeedu/marble/data:

- Better colors for temperature and precipitation maps.

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 856676
Torsten Rahn committed changes in /trunk/KDE/kdeedu/marble/data:

- Getting a Wikipedia logo ready that is provided without trademark / license problems.
Created by Torsten Rahn using Inkscape.

Diffs: 1, 2, 3 Revision 856814


Gilles Caulier committed changes in /trunk/extragear/graphics/digikam/imageplugins/emboss:

digiKam from trunk : "Et voilà".
The last image plugin is now ported to Editor Tool API!

Diffs: 1, 2, 3, 4, 5, 6 Revision 855799
Jan Kundrát committed changes in /trunk/extragear/graphics/kphotoalbum/Viewer/ViewerWidget.cpp:

KDE developers say that KProcess just rocks, so I'd better listen to them :)

Percy Camilo Triveño Aucahuasi committed changes in /trunk/extragear/graphics/kcoloredit/src:

KDE Base

Xavier Vello committed changes in /trunk/playground/ioslaves/kio_bookmarks:

Added documentation, at last.
Ready to review

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 855354
Josef Spillner committed changes in /trunk/playground/libs/webtech/lokarest:

- import of LokaRest, a still experimental framework to access RESTful web services
- homepage <a href=""></a>;

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 24 more) Revision 855403
Thiago Macieira committed changes in /trunk/KDE/kdebase/runtime/nepomuk/services/ontologyloader:

Half-assed attempt at making this use KIO

Joseph Burns committed changes in /trunk/playground/base/plasmagik:

Beginning of move to new UI

Michael David Howell committed changes in /trunk/playground/libs/webkitkde/kdewebkit:

The KIO/QtNetwork bridge (KdeNetwork) can now be compiled without the rest of WebKitKde.

Diffs: 1, 2, 3, 4 Revision 855985
Davide Bettio committed changes in /trunk/KDE/kdebase/workspace/plasma/applets/digital-clock:

digital clock's config dialog should be usable now.
Thanks to seele for precious and fundamental help. :)

Andreas Hartmetz committed changes in /trunk/KDE/kdelibs/kioslave:

- parse headers in a systematic way using a header parser written for the purpose.
this makes keeping header parsing free of bugs much less of a hassle.

with simple unittest - it actually helped me *a lot* so it's better than nothing.

it should be pretty fast, too.
in a test it parsed ~13 MB of headers per second on my phenom at 2GHz; this indicates that the old ad-hoc parser was likely not a bottleneck ;)

- some "safe" parsing helpers that know not to overflow a buffer and with clear semantics (advancing the read pointer if they recognize what they are made to recognize).
- dump the gets() / rewind() / setRewindMarker() business and replace it by unread() which puts data back into the input stream with less head-scratching about what exactly it does.
unread is both less complex and requires less variables in the already crowded HTTProtocol class.

- do not override read() because it's confusing. call the method to achieve the same goal (mainly unread support) readBuffered() instead.
- adapt getAuthorization() to pre-parsed headers
- small improvements like collapsing of switch cases and kdelibs-style formatting in significantly changed methods
- some explanatory comments
- some performance tweaking - real-world performance (i.e. loading websites) is hopefully better than before. mainly experimenting with buffer sizes and how exactly to read incoming data.
IIRC this included the funny new code in readChunked().
- probably something I forgot
- fix some small behavior bugs in header parsing, mainly in case of somehow incorrect headers though
- quite some testing to kill any bugs introduced. we'll see about the bugs...
- primitive multi-get support, not completely ready to use though. easier to commit it than to remove it for the checkin.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 856450
Aaron J. Seigo committed changes in /trunk/KDE/kdeplasma-addons/dataengines/twitter:

modernize this engine with a Service for updating, encapsulate the http requests in a DataContainer subclass, use KIO instead of QHttp and generally clean stuff up.

note that i haven't had a chance to actually test the engine; it compiles and the logic should be generally correct, but i need to update the applet as well as it utterly breaks with these changes.
i also want to add a Service UI to plasmaengineexplorer.

but that's all tomorrow's work =) for today ... we have this.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 856493
Sebastian Trueg committed changes in /trunk:

Moved nepomuk query service to kdereview.

The service consists of three parts:
1. The actual service to be moved to kdebase/runtime/nepomuk/services
2. The query client which provides a class to access the query service without fiddling with DBus. To be moved to kdebase/workspace/nepomuk
3. The nepomuk query library which provides shared classes used by service and client.

To be moved to kdebase/workspace/libs/nepomukquery (here I need input: this would make runtime depend on workspace. Is that possible? Any better solution?)

Matthew Woehlke committed changes in /trunk/KDE/kdebase/workspace/kcontrol/colors:

yes, the preview is required there; having to hit 'apply' just to see if the foreground you just changed is legible against the background is really bad

Burkhard Lück committed changes in /trunk/KDE/kdebase/apps/doc/kwrite/index.docbook:

documentation update for kwrite in kde 4.1
kwrite-devel please proofread and give feedback.

Sebastian Trueg committed changes in /trunk/kdereview/nepomuk/queryservice:

Fun! I actually solved the dbus interface generation problem.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 856750
Xavier Vello committed changes in /trunk/kdereview/kio_bookmarks:

Display intro message if no bookmarks
close html in echoHead($redirect)
about data

Diffs: 1, 2, 3, 4 Revision 856753
Aaron J. Seigo committed changes in /trunk/KDE/kdebase/workspace/libs/plasma:

don't rely on KConfigSkeleton actually creating groups in the config or even being useful in telling us what groups it knows about.

KConfigSkeleton is far too tightly coupled with the idea of KConfigDialog to be useful for half the things it should be useful for. =(

Diffs: 1, 2, 3 Revision 856847
Shawn Starr committed changes in /trunk/playground/base/plasma/applets/weather:

Display different data for the titlebar, add wind and hi/low temp if available.
Fix up how we parse 5 day forecast information.
We still have positional layout problems with resizing.
Display units for wind and temperature.

Ben Cooksley committed changes in /trunk:

Move kosdwidget to kdereview!

Joseph Burns committed changes in /trunk/playground/base/plasmagik:

More UI changes.
Packager Options page label adjustments.
Make the Structure Items look more like what the GHNS download items look like.

Diffs: 1, 2, 3, 4 Revision 857263
Ivan Čukić committed changes in /trunk/KDE/kdebase/workspace/plasma/design/CHANGELOG:

Lancelot changelog, as requested by Aaron

Ben Cooksley committed changes in /trunk:

Move kosdwidget out of kdereview, so that it can be integrated with a knotify osd plugin :)

Rob Scheepmaker committed changes in /trunk/KDE/kdelibs:

Add new JobTracker: KDynamicJobTracker, and make this the default job tracker for kio jobs.

This simple jobtracker registers to kuiserver, if it is available, and falls back to the oldschool dialogs if not.

Diffs: 1, 2, 3, 4 Revision 857441
Sebastian Kügler committed changes in /trunk/playground/base/plasma/applets/systray-refactor:

Enable battery in the systray and tell it to be 22px square.

Let's see if people notice this and complain :>

Diffs: 1, 2, 3 Revision 857496
Aaron J. Seigo committed changes in /trunk/KDE/kdebase/workspace/plasma/shells/desktop:

save the existing wallpaper plugin settings before writing new ones in; this preserves the old settings; this is still more brittle than i'd like to see, and will require some work inside of Containment itself at some point i think

Rafael Fernández López committed changes in /trunk/KDE/kdelibs/kfile/kfilewidget.cpp:

Let the user write relative paths on kfilewidget.
If you go to /foo/bar, and write on the file combo acme/file.txt, the kfilewidget will bring you to /foo/bar/acme, and then read file.txt.

This happens both when pressing Enter and when you accept the dialog by pressing OK.

I've doing some coding on this stuff (kfilewidget & kdiroperator), and this seriously needs some love.

Sebastian Kügler committed changes in /trunk/playground/base/plasma/applets/mid_control:

* futz with increasingly messy code
* read extenders tutorial
* delete half of it
* ...
* profit

... well, not quite.

I'm still getting crashes that I cannot place right now.
When adding the applet to the desktop, it shows up, and then blows up.

It works well in plasmoidviewer, so I wonder what's going wrong here.
And the popup doesn't show up yet.


Thomas McGuire committed changes in /trunk/KDE/kdepim/kmail/kmfoldercachedimap.cpp:

Fix indentation.

OTOH, 4-spaces indentation is pretty useful, as it replaces svn annotate:
I can immediately see that the code was written by till ;)

Kevin Krammer committed changes in /trunk/playground/pim/akonaditest/testsetups:

Adding a test setup for testing the KResource migration tool on contact data in three resources:
- standard KDE address book resource (file std.vcf in $KDEHOME) (no path in config)
- additional file resource in a separate directory (path in config)
- additional dir resource in a separate directory (path in config)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 16 more) Revision 855395
Thomas J. Gillespie committed changes in /trunk/playground/pim/kremail:

Added new app kReMail into playground/pim

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 2 more) Revision 855989
Dag Andersen committed changes in /trunk/KDE/kdepim/kdgantt:

Enable printing.
The code needs refactoring (it's a mess).
I've tried to reuse existing code (like QGraphicsScene::render()) but this makes things a bit difficult.
Also there seems to be problems with painter clipping and printer paper/page rect.

(I doubt these are qt bugs, hopefully, it's just my system acting up)

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


Benoît Jacob committed changes in /trunk/koffice/krita:

Please svn up eigen2!
This commit makes LineEquation a mere typedef to the new Eigen::Hyperplane (which has been designed among other things with Krita's code in mind).

This removes ~100 LOC from Krita.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 855083
Thomas Zander committed changes in /trunk/koffice/krita/ui/kis_shape_layer_canvas.cpp:

Make sure we tell the shape how to do antialiasing for both text and lines.
As a reminder; at high resolutions we want the simple black/white version of the text as a printer would make anti-aliasing look really ugly.


Seb Ruiz committed changes in /trunk/extragear/multimedia/amarok/src/covermanager/CoverFetcher.cpp:

Use Amarok's new Amazon accounts for the web key instead of personal developer accounts.

Seb Ruiz committed changes in /trunk/extragear/multimedia/amarok/src/context/applets/albums/AlbumsDelegate.cpp:

Use a smooth scaling resize for rendering the cover art in the albums applet.
Now it looks less jagged, but still not a very good rendering job.
Also does no caching and this method is slow.

TODO: use album->image( size );

Leo Franchi committed changes in /trunk/extragear/multimedia/amarok/src/scripts:

add lyricwiki script from Aaron Reichman.
talk about fast turnaround!

Diffs: 1, 2, 3, 4, 5 Revision 856352
Seb Ruiz committed changes in /trunk/extragear/multimedia/amarok/src/context/applets/currenttrack/CurrentTrack.cpp:

Reorder items in the current track item as discussed at Akademy.

Order is now:
Track, Artist, Album

Seb Ruiz committed changes in /trunk/extragear/multimedia/amarok/src/scripts/importer/main.js:

Now you all now the password to my Amarok database.

Leo Franchi committed changes in /trunk/extragear/multimedia/amarok/src/context/applets/video:

de-proxyify the video applet, otherwise phonon-xine can't show video.

this re-kills the applet position etc, because there is no good solution with this applet as a plasmoid.

what needs to be done is to re-write the video support as a custom overlay onthe GV instead of an applet. cheers.

Seb Ruiz committed changes in /trunk/extragear/multimedia/amarok/src/context/applets/albums/Albums.cpp:

Show tabs between track number and name.
Looks neater, but I think the tab stop may be too wide causing it to look funny.


Mark Kretschmann committed changes in /trunk/extragear/multimedia/amarok/src:

Use pre-rendered volume icon in the toolbar, cause QtSvg can't handle this one.

Seb Ruiz committed changes in /trunk/extragear/multimedia/amarok/src/context/applets/albums:

Create a specialised item for showing albums, which is also a Meta observer.
This let's us keep track of any changes in the meta data like changes to album art. Swish.

Diffs: 1, 2, 3, 4 Revision 857422
Leo Franchi committed changes in /trunk/extragear/multimedia/amarok/src/scripts:

make utf-8, i think, work. at least, chars like "'" seem to be functional.

i don't have any songs that i can test with, e.g. chinese or japanese lyrics, so please do so.

Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src:

Make clicking on a an album cover in the service info applet ( magnatune frontpage only atm ) actually append the album to the playlist.

This was a multi layered issue.
One problem was that, after the removal of the dbus functions I used previously, we were adding the XSPFPlaylist to the playlist before it had had a chance to actually load itself from the remote url.

Another issue was that for some reason, the QWebPage newer recieved mouse click events when using the proxy widget.

This has been worked around, for now, by once again making the applet use the plasma WebContent widget, but this has other issues, such as a several second lag between moving a scrolbar and the page actually updating.... :-/

Diffs: 1, 2, 3 Revision 857831

User Interface

Christoph Feck committed changes in /trunk/playground/artwork/dekorator:

Initial import of deKorator KWin window decoration engine

This is a straight port of the deKorator 0.3 version I got from <a href=""></a>;

This is my first commit, please give feedback :)

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


Guillaume Martres committed changes in /trunk/playground/utils/kvkbd:

KDE4 port of Kvkbd, it's based on Kvkbd 0.5 but a lot of things changed, it now uses Kdelibs coding style and only uses camelCase, a lot of variables and functions were also renamed for clarity (e.g. autores -> autoResize).

It runs fine but still has some old bugs of Kvkbd/KDE3 and a few new one.

See TODO file for things that still need work.

This is my first "real" KDE contribution (and my first commit too), I hope you like it ;)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 46 more) Revision 855470
Guillaume Martres committed changes in /trunk/playground/utils/kvkbd/src:

- switched back to a black background and a kvkbd 0.5-like arrow until the background is configurable
- correctly restore Kvkbd when closing with the numpad enabled
- removed all Qt3 support members

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 856194
Dario Freddi committed changes in /trunk/kdereview/doc/powerdevil/index.docbook:

Committing docbook.
Eventually needs refining, credits to annma for putting me on the right path.


Parker Coates committed changes in /trunk/playground/games/doc/killbots:

Application manual content is finally complete.
It may require editing, but at least it's all there.

Zack Rusin committed changes in /trunk/playground/games/kpicross/src:

a lot nicer graphics for the boardview (style not stylable though)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 856045
Parker Coates committed changes in /trunk/playground/games/killbots:

Just for kicks I added a CMake option to use QGraphicsView's OpenGL support.
Initial results: no observable difference.

Oh well, I only really did this to get a better understanding of CMake.

Diffs: 1, 2, 3 Revision 857701


Matt Rogers committed changes in /trunk/bugs/3.2/template/bug/create:

Add application version and kde version to the guided bug entry.

Now it's basically ready to replace our wizard (IMO) but I couldbe missing some things

Benoît Jacob committed changes in /branches/work/eigen2:

remove /branches/work/eigen2, we now develop in trunk/kdesupport/eigen2