Issue 27

8th October 2006 by Danny Allen

This Week...

KBoard, a game canvas, gets several new chess-based themes, whilst KSokoban gets many new levels. KPhotoAlbum imports the winning entry from its Splashscreen Contest. Krazy and apidox (parts of the EBN test suite) move from playground into the kdesdk module. KBlog, a library to interface with various blogs, is imported into the PIM playground in KDE SVN. Work begins on a GStreamer backend for Phonon. More work on Yahoo Chatroom support in Kopete. Kexi Query Designer supports data sorting in design and SQL view. Painting experiments with Chinese brushes in Krita.
Scripting applications using higher-level languages is currently a hot topic within KDE, with KDE 4 set to feature scripting functionality throughout. Scott Wheeler expresses the general sentiment:
  • Having a "blessed" KDE scripting language for writing complete KDE applications is a good thing and allowing applications written in that language
  • A tangent to the main thread is adding scriptability to KDE applications
  • For the first sort of scripting, there's something of a concensus that Python or Ruby are the primary candidate languages
  • There hasn't been much language flaming between Ruby and Python; it seems most folks agree that they're both acceptable OO scripting languages, though there have been plugs a bit for one language or the other
  • There's some debate over what appropriate languages are for the latter; KJS (JavaScript) is currently advocated, but there's some debate over the merits of JavaScript
To qualify the first comment, even if your language of choice isn't the one taken, there's nothing lost. Currently all scripting languages are second class citizens in the KDE world. Promoting one to first-class status doesn't demote the others significantly. An "everybody wins, use what you want" solution really is just a way of rephrasing the current situation.
Boudewijn Rempt provides his KOffice-influenced viewpoint (emphasis added):
The thread is long, yes, but to say that matters have come to a conclusion, that it is possible to even arrive at an executive summary is premature. As far as I'm concerned, there have been no conclusive arguments in favor of Scott's summary. But since the discussion is now apparently to be held in blog form, here's my summary.
  • Blessing the use of scripting languages for writing complete applications is important. Equally important is not to bless a single language. Let's first see in which languages applications actually will be written. The really important thing is that among the set of tarballs that comprises a complete kde release can be applications completely written in a scripting language. Of course, apart from Python and Ruby there are no serious candidates.
  • There are still people who think that the current bindings to Qt and KDE of, for instance Python, are not completely mature and stable and that the maintenance of those bindings will cost kde-core hackers time. Come on, guys! Living under a rock is not healthy. We've had stable scripting language bindings for more than half a decade. They just didn't take off because kde doesn't package scripted applications, relegating them to the whims of distribution packagers.
  • Forcing users to script in Javascript is an act of unmitigated evil. Allowing them to do that is okay.
  • Making applications extensible through scripting should be done with Kross. Using Kross exposes a single API for your applications to D-Bus, Javascript, Python and Ruby. That means, no longer designing a separate DCOP API and a separate KJSEmbed API. It also means that people actually using the applications can code their extensions in the language they already know.
  • I'm fine with no, or just one, or two scripting languages allowed for extending or implementing kde-base and kde-core bits. I still think that Kross is better than just mandating kjsembed. Look at how cool Kross is: Kross 2.0 and DBus. Kross really is the definitive solution to scripting KDE, on a par with what BeOS had, maybe even better.
Richard Dale, KDE language bindings guru, provides a summary of the recent work on the QtRuby Ruby and Qyoto C# bindings:
Arno Rehn has added a uics tool which takes a Qt4 Designer file and generates C# code, and so you can now use Designer with Qyoto. Arno has also added Q_CLASSINFO class attribute and a Q_SCRIPTABLE method attributes. These attributes are used as part of the data to construct the QMetaObject for QObject based classes. He has also implemented the code for return values on slot invocations. The exciting thing about these changes is that we are quite close to getting the QtBus classes working with Qyoto, and you will soon be able to use DBus from C#.

I've been doing more work with QDBus in QtRuby. I've translated all the Qt4 dbus examples, and they all work except 'complexpingpong'. One nice thing I've added to Qt::DBusMessage is the ability to call methods on them as proxies, instead of having to invoke the call() method, with the target method name as a string. For example, you can call a method called 'query()' like this:

reply ="query",

Or call it more simply like this:

reply = iface.query(line)

In the first case 'reply' will be a Qt::DBusMessage, and you can check if it is ok with 'reply.valid?', and then extract the value with 'reply.value'. In the second case 'reply' is the return value of the method (a Ruby String in this example). So it works just as if it was a local method call.
In the upcoming week, KDE 3.5.5 will be released (11th October). On the 7th October, KOffice 1.6 was tagged in preparation for a release on the 16th October. Slightly-biased sources assure me that it is going to be an excellent release, one which will function comfortably until KOffice 2.0, currently the subject of intense development, is completed.


Commits 2675 by 219 developers, 5294 lines modified, 1338 new files
Open Bugs 13040
Open Wishes 11682
Bugs Opened 269 in the last 7 days
Bugs Closed 184 in the last 7 days

Commit Summary

Module Commits
Lines Developer Commits
Adriaan de Groot
Stephan Kulow
Christoph Cullmann
Laurent Montel
Dirk Mueller
Jarosław Staniek
Allen Winter
Oswald Buddenhagen
Gilles Caulier
Michal Ostrowski

Internationalization (i18n) Status

Language Percentage Complete
Swedish (sv)
Portuguese (pt)
Danish (da)
Spanish (es)
Dutch (nl)
Greek (el)
Italian (it)
Estonian (et)
French (fr)
German (de)

Bug Killers and Buzz

Person Bugs Closed
Lex Hider
Sebastian Trueg
Joris Guisson
Mark Kretschmann
Christoph Burger-Scheidlin
Maks Orlovich
Jarosław Staniek
Alexandre Pereira de Oliveira
Gilles Caulier
Tommi Tervo
Program Buzz
Person Buzz
David Faure
Adriaan de Groot
Stephan Kulow
Waldo Bastian
Jonathan Riddell
Philip Rodrigues
George Staikos
Boudewijn Rempt
Stephan Binner
Aaron J. Seigo

Commit Countries

Commit Demographics




  Bug Fixes Features Optimization Security Other



Development Tools

  []    []


  [] []   


  [] []   

KDE Base

  [] []   []


  []    []


  [] []   []




  [] []   

Networking Tools

[] [] []   

User Interface



[] []    





There are 57 selections this week

Bug Fixes

Networking Tools

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

Changes :
- Fixed bug in advanced choke algorithm
- Deselecting files without deleting data is now possible
- Deselecting files without deleting data is now the default action when you uncheck a file in the infowdiget
- Deselecting existing files at torrent load time, will not delete the file


Tom Albers committed changes in /trunk/extragear/utils/rsibreak/src:

- Allright, after two days I've finally tracked down this bug. The loadconfig did not get the correct value for the slider interval. By re-setting the config group it magically works again. If any guru can tell me why this is needed, you get a beer.
- Change default slider interval from 2 sec to 10 sec. Draining your system resources by default is not very friendly...


Development Tools

David Nolden committed changes in /branches/kdevelop/3.4:

Add initial support for namespace-aliases and namespace-imports. They are both stored into the code-repository and code-model now, and used through the namespace-aliasing system. Create facilities for efficient management and comparison of include-files for future header-parsing. Make the namespace-system aware of those facilities.

Together with some simple header-parsing (included headers need to be collected), and with a little work on making the resolution-system aware of those header-sets, that will allow near-perfect code-completion. A few other fixes.

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


Cies Breijs committed changes in /trunk/KDE/kdeedu/kturtle:

kturtle can now parse turtle code into c++ embeddable code, handy for developers

Diffs: 1, 2, 3, 4 Revision 591819


Pino Toscano committed changes in /trunk/playground/graphics/okular:

As suggested by our usability expert Florian, add a bar above the page view showing in case the document has embedded files, that can be clsed with the X button.

Diffs: 1, 2, 3, 4 Revision 591837
Aurélien Gâteau committed changes in /trunk/extragear/graphics/gwenview/gvcore:

Started to work on loading JPEG pictures immediatly rotated instead of loading
them then rotating them.

Jesper Pedersen committed changes in /trunk/extragear/graphics/kphotoalbum:

new splashscreen

Diffs: 1, 2, 3, 4, 5, 6 Revision 592785

KDE Base

Robert Knight committed changes in /trunk/KDE/kdebase/apps/konsole/konsole:

Allow views to be removed from a session. Better handling of terminal emulation size when a view is resized - Konsole looks through all of the visible views on a session and selects the largest number of lines and columns which can be displayed on all views.

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 590854
Oswald Buddenhagen committed changes in /trunk/KDE/kdebase/workspace/kdm/kfrontend/themer:

introduce new element <style/> to control the look of embedded widgets (frame, fonts, palette).

Diffs: 1, 2, 3, 4, 5 Revision 590880
Harri Porten committed changes in /trunk/KDE/kdelibs/kjs:

the parsing part of "import" support. if my old bison version is causing problems please run create_parser with a newer one.

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 592104
Torsten Rahn committed changes in /trunk/playground/base/marble/src:

Some algorithm for smarter text label positions that works without indication of importance.

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 592493
Joseph Wenninger committed changes in /trunk/KDE/kdelibs/kate/data:

Highlighting for django templates. Created by Matthew Marshall who is willing to maintain it

Matthias Kretz committed changes in /trunk/KDE/kdelibs:

Add supportsOpening to KProtocol{Info,Manager} and ++KSYCOCA_VERSION for it.
Use this method when you want to know whether a given URL can be opened with a KIO::FileJob (seekable).

Diffs: 1, 2, 3, 4, 5 Revision 592961
Aaron J. Seigo committed changes in /branches/KDE/3.5/kdebase/kicker:

lower the time the tip shows except for taskbar, pager and clock where it makes sense to have extended times (4s in this case) re-increase the time between tip reshows because too many reshows sucks on low powered cpus and also looks a bit stupid on the pager and taskbar (among other places, i'm sure) the idea is that the tip should show only on items that the user settles on, not to follow their mouse around randomly. yes, this is not how things like tooltips work but that's because those items do something differently and do it, quite honestly, rather poorly anyways.
the design of the kicker mouse overs is quite intentional and based on a fair amount of actual research, testing and reaching stated goals.

if you think there's something wrong in it, perhaps talk to me first because it may be your assumptions that are wrong rather than the code in kickerTip.cpp.

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


Friedrich W. H. Kossebau committed changes in /trunk/playground/pim/contactsapplet:

add action service Open in Google Maps

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 591111
Till Adam committed changes in /branches/kdepim/proko2/kdepim/kmail:

Implement top quoting support for signatures. There's a new config option to include signatures before quoted text, and a new entry in the composer's edit menu to prepend the current signature. Identity switching tries to remove the signature, if it finds it anywhere in the body, which has some risk, but I guess that's not a real issue. In top quote mode the signatures are added without -- seperator, as seems to be the convention.
(Kolab Issue 1385)

Diffs: 1, 2, 3, 4, 5, 6 Revision 593067


Martin Pfeiffer committed changes in /trunk/koffice/filters/kformula:

first commit for the new kformula filter taht parses old KFormula xml to MathML

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 591563
Boudewijn Rempt committed changes in /branches/koffice/1.6/koffice/krita/plugins/paintops/cpaint:

First attempt at chinese brushes: doesn't work, doesn't compile yet. Artwork and original code by Clara Chan. gauss.h and gauss.cpp is public domain code.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 21 more) Revision 591818
Boudewijn Rempt committed changes in /trunk/koffice/krita/plugins/paintops/cpaint:

Add cpaint to trunk.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 21 more) Revision 591939
Sebastian Sauer committed changes in /trunk/koffice/libs/kross:

more work on forms.

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 593045
Jan Hambrecht committed changes in /trunk/koffice/karbon:

Replaced old layer list view with a pretty one based on the KoDocumentSection stuff.
It is still basic, only showing layers/shapes and inserting layers does work, but looks much better than before.

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


Jeff Mitchell committed changes in /trunk/extragear/multimedia/amarok/src:

New crossfading option UI. Doesn't work right, probably because I don't really understand how crossfading is implemented. Trying to find out who does... :-)

Diffs: 1, 2, 3, 4 Revision 591560
Andy Kelk committed changes in /trunk/extragear/multimedia/amarok/src/mediadevice/mtp/mtpmediadevice.cpp:

Show progress bar while copying tracks from an MTP device.

Martin Aumüller committed changes in /trunk/extragear/multimedia/amarok/src:

move daap 'share my music' button to collection browser, as it's the collection that is going to be shared

Diffs: 1, 2, 3 Revision 591833
Peter C. Ndikuwera committed changes in /trunk/extragear/multimedia/amarok/src/playlistbrowser.cpp:

"Favorite tracks" default smart playlist now obeys "Use Scores" and "Use Ratings" setting.

Tim Beaulen committed changes in /trunk/KDE/kdemultimedia:

Start of the Phonon GStreamer backend.

It's not functional yet, just a copy of the fake backend.
I'll now port the fake backend to GStreamer.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 62 more) Revision 592052
Seb Ruiz committed changes in /trunk/extragear/multimedia/amarok/src/mediadevice/daap:

allow the user to hide music which is already in the local collection when browsing daap shares. The option to enable this is in the config page, which is very obscure location to put it. Probably should put the config button in the daap toolbar

Diffs: 1, 2, 3 Revision 592347

Networking Tools

Eike Hein committed changes in /trunk/extragear/network/konversation:

Stop systray flashing when cancelling a notification by clicking the OSD.

Ivan Vasic committed changes in /trunk/extragear/network/ktorrent:

Added ETA calculator class.

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

Added feature to remove torrent and data in context menu of view.

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

Added distinction in Completed status, there is now a seeding completed and a downloading completed. Seeding completed means that the torrent has reached it's max share ratio.

Eli MacKenzie committed changes in /trunk/extragear/network/konversation/scripts/media:

A complete replacement. Now has online help, can select an individual player or player type for reporting. Output formatting is centralized and much more flexible. Needs to be tested on $YourFavouritePlayer.

Ivan Vasic committed changes in /trunk/extragear/network/ktorrent/apps/ktorrent:

Systray now reflects current bandwidth usage.

Big thanks to Diego R. Brogna for providing this patch.

Andre Duffeck committed changes in /trunk/KDE/kdenetwork/kopete/protocols/yahoo:

fetch list of chatrooms for the selected category and display it in the dialog.

Diffs: 1, 2, 3, 4, 5, 6 Revision 593095
Andre Duffeck committed changes in /trunk/KDE/kdenetwork/kopete/protocols/yahoo:

join room for real

Diffs: 1, 2, 3, 4, 5, 6 Revision 593395

User Interface

Nuno Fernades Pinheiro committed changes in /trunk/playground/artwork/Oxygen/theme/svg/actions:

new icons

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 592142
Nuno Fernades Pinheiro committed changes in /trunk/playground/artwork/Oxygen/theme/svg/actions:

new icons

Diffs: 1, 2, 3, 4 Revision 593189
Nuno Fernades Pinheiro committed changes in /trunk/playground/artwork/Oxygen/theme/svg/actions:

new icons

Diffs: 1, 2, 3, 4, 5, 6 Revision 593245
Nuno Fernades Pinheiro committed changes in /trunk/playground/artwork/Oxygen/theme/svg/actions:

new icons

Diffs: 1, 2, 3, 4, 5, 6 Revision 593260


Chris Huebsch committed changes in /trunk/playground/edu/kdissert/src/kdissert:

[Feature] Extend align feature with distribute feature, allowing to spread space between items equally.

Diffs: 1, 2, 3, 4, 5, 6 Revision 592055
Bram Schoenmakers committed changes in /trunk/extragear/utils/rsibreak/src/rsirelaxpopup.cpp:

Do not use hardcoded colors for the relax popup, use the KDE wide color scheme instead.

Tom Albers committed changes in /trunk/extragear/utils/rsibreak:

Add hi22 icons, thanks to Lee Olson.


Anders Widell committed changes in /trunk/KDE/kdegames/ksokoban:

Added more levels. Fixed saving number of completed levels.

Diffs: 1, 2, 3, 4 Revision 591607
Maurizio Monge committed changes in /trunk/playground/games/kboard/themes:

* Added Shogi SVG theme (at the moment only usable ad theme to play chess)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 7 more) Revision 592148
Maurizio Monge committed changes in /trunk/playground/games/kboard/themes/Pieces:

* Added XiangQi pieces theme! (also usable as a usual theme in chess)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 11 more) Revision 592837
Maurizio Monge committed changes in /trunk/playground/games/kboard/themes/Pieces:

Improved shogi and xiangqi pieces.

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



Cies Breijs committed changes in /trunk/KDE/kdeedu/kturtle/src:

fixed a lot of memleaks... (from 42,084 to 536 bytes definitely lost)
thanks valgrind people, i could not figure it out without...
thanks coolo, for pointing it out to me...
thanks annma for putting it on my agenda...

the remaining memleaks seem out of my control

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


Marcel Wiesweg committed changes in /trunk/extragear/graphics/digikam/libs:

Stop blink timer when ICC data is loaded
(Previously, the timer would run and triggered a full repaint every 200ms)

KDE Base

Robert Knight committed changes in /trunk/KDE/kdebase/apps/konsole/konsole:

Performance improvement when scrolling - especially with large terminal windows. The emulation now gives hints to the display about how the image has scrolled since the last update, which allows the display to scroll using QWidget::scroll() and avoid redrawing lots of text. Unfortunately it seems that Vim and terminal emacs don't use the terminal facilities to scroll the display, so it doesn't help those particular programs.

Diffs: 1, 2, 3, 4, 5, 6 Revision 591193


Sebastian Sauer committed changes in /trunk/koffice/libs/kross:

* improved caching of methods at the python-backend. ~10% more performance.
* made sequence_slice in pythonextension work as expected.
* some more work on forms.

Diffs: 1, 2, 3, 4, 5, 6 Revision 593358


Alexandre Pereira de Oliveira committed changes in /trunk/extragear/multimedia/amarok:

Faster searching on playlist and startup, due to some optimizing in string usage.
Patch by Ovidiu Gheorghioiu. Thanks!

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

Networking Tools

Jernej Kos committed changes in /trunk/extragear/network/kftpgrabber/src:

Rewritten the browser widget - it is now KFileView based and that brings some speed optimisations when displaying a large amount of files.

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


Development Tools

Allen Winter committed changes in /trunk/KDE/kdesdk/ebn:

We will commit all tools for the English Breakfast Network (EBN) here.

KDE Base

Will Stephenson committed changes in /trunk/KDE/kdelibs/solid:

Start using KNetwork::KIpAddress in place of QStrings, should make things more robust down the line

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 591656
Oswald Buddenhagen committed changes in /trunk/KDE/kdebase/workspace/kdm/kfrontend:

while the theming engine is sufficiently similar to gdm's one to make creating theme variants for both gdm and kdm from one source simple, it is certainly not true that kdm can directly use gdm themes. so don't claim it.
let's see how many people this upsets ... :}

Diffs: 1, 2, 3, 4 Revision 593219


Christian Weilbach committed changes in /trunk/playground/pim/kblog:

Initial import.

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


Boudewijn Rempt committed changes in /trunk/koffice/krita/plugins/viewplugins:

Removed the screenshot plugin: it was not well-integrated, not portable and not easy to maintain or use. External screen grabbers can be used, to, for instance d&d the image into krita.