Issue 103

23rd March 2008 by Danny Allen

This Week...

Support for "undo closed windows" in Konqueror. GetHotNewStuff support for Plasma themes. Konsole, Konqueror, and Kate session selection added in Plasma applet form. New Plasmoids: "Generic Folder View", "System Command", KNotify-based "Popups", "Quick Launch", and to display data from Kalzium. Digikam now uses Phonon for video and audio previews, with improved use of Phonon in Dragon Player. Start of NEPOMUK support in Gwenview. A NEPOMUK "Social Query Daemon" for viewing storages across a network, and work on tagging GUI's for NEPOMUK using Dolphin. Work on services and queries, with the removal of the engine system (now using Phonon only) in Amarok 2. Continued development in Konsole. Various functional improvements in KTurtle. Support for synonyms in Parley. Support for custom themes in KNetWalk. A system tray application for Akonadi. Initial implementation of a remote desktops dock widget for KRDC. Work on the "reports" functionality of Kexi. Several long-awaited improvements in KCron. KDiamond moves from kdereview to kdegames. KAgenda moves to playground. Initial import of Palapeli, a jigsaw puzzle game.
Thomas Thrainer talks about his work on the "Todo" view of KOrganizer:
I've started working with KOrganizer because of a little annoyance I had with the "Month" view: it was not scrollable. As soon as I solved this issue, Allen Winter pointed me to the "Todo" view.

At this time, the view used quite a few Qt 3 and KDE 3 compatibility classes, and didn't look very nice. It definitely needed some love. As I looked through the code I found more and more points which I didn't like, and there were also some obviously broken spots (FIXME's, TODO's, etc.). At about the same time I stumbled across the Qt Model/View/Delegate concept, and really liked the idea. So I decided to rewrite the "Todo" view using this concept, and learn about Qt and KDE development at the same time.

So up to now, I have recreated most of the functionallity of the old "Todo" view. The biggest changes are under the hood where the view/delegates are clearly separated from the data. This results in much cleaner code, and leaves more work to the Qt/KDE libraries.

One quite visible change is the ability to edit todo's in-place. With the old "Todo" view, todo's could be edited using the context menu which changed from column to column. I didn't like to change the context menu in this non-obvious way, so now clicking on data of an already-selected todo displays an editor to edit this data in-place. This was also inspired by one of Aaron Seigo's blogs where he points out that it is hard to right-click on touchscreens!


As I was asked for new and unseen screenshots, here is what I am currently working on:


I created a widget for selecting categories of todo's in-place. The same widget is also used in the quick-search combo box at the top of the view.

Currently, there is no such combobox-with-checkboxes widget in Qt or KDE, and as it was not as trivial to create as I thought it should be, maybe that's an idea for kdelibs?

The new "Todo" view is still work in progress. There are some remaining issues and I already have a couple of ideas to improve it further.

Also, with Akonadi around the corner, it will eventually be ported to the new data storage mechanism as well. But this shouldn't be too hard, because it already uses the Model/View concept and is therefore quite flexible concerning the data source.
Henry de Valence introduces a replacement for the KWorldClock stand-alone application, the "World Clock" Plasma applet.
I'm working on a Plasmoid that is a replacement for the KWorldClock program.

My plan is to match and then exceed the functionality of the original KWorldClock program, but as a Plasmoid. It shows you the time in different places and a map of the world showing night and day. Instead of using the method that the original program used, I'm using Marble to do it. This means it's much simpler and easier, and more extensible.

The configuration menu right now lets you choose the position of the map; you can choose to center the map over the daylight (like the way the old KWorldClock worked) or you can choose to centre the map over a longitude of your choice, so you can have it centred over where you live. However, the input uses a simple KIntSpinBox, so you can't select minutes and seconds. I'd like to replace it with a custom widget that inputs degrees/minutes/seconds.


I plan on making a KML file that has timezone data in it, so that you can see all the timezones overlaid on the map. Obviously, you need to have something that shows the actual clock. I'm considering a couple ways of doing this, including having a mouseover that shows the time at the mouse point, or having mini-clocks at the bottom that can be moved to show the time in that longitude, or they might have lines going up to a point; I haven't decided yet.
John Tapsell announces a new feature in KSysGuard, "Process Monitoring":
KSysguard can now monitor the input and output of any running process. This includes stdin, stdout, etc, open files, open network connections, etc. The video shows 'bash' being monitored. Red is used to indicate data being written by the process and blue for data being red by the process. ANSI escape codes are allowed to override those colors.


This is a very useful debugging tool. It allows you to quickly and easily see exactly what a process is writing or reading to file or to the network. Or it can be used by admins to see what their users are typing into bash, etc.
PolishLinux have produced a very good visual changelog of the upcoming (and still incomplete!) KDE 4.1 release which is well worth looking at, as it shows the functional impact of the changes recorded in these weekly Digests.

Statistics

Commits 3010 by 234 developers, 6108 lines modified, 1207 new files
Open Bugs 16336
Open Wishes 13858
Bugs Opened 269 in the last 7 days
Bugs Closed 150 in the last 7 days

Commit Summary

Module Commits
/trunk/l10n-kde4
804
 
/trunk/KDE
797
 
/trunk/extragear
288
 
/trunk/playground
220
 
/branches/stable
185
 
/trunk/koffice
151
 
/branches/extragear
121
 
/branches/KDE
87
 
/trunk/kdesupport
85
 
/trunk/kdereview
58
 
Lines Developer Commits
367
 
Gilles Caulier
164
 
132
 
Thanomsub Noppaburana
132
 
94
 
Khoem Sokhem
94
 
198
 
Laurent Montel
87
 
176
 
Volker Krause
74
 
178
 
Jarosław Staniek
60
 
56
 
Chusslove Illich
56
 
197
 
Nikolaj Hald Nielsen
51
 
197
 
Luboš Luňák
51
 
144
 
Tom Albers
48
 

Internationalization (i18n) Status

Language Percentage Complete
Portuguese (pt)
99%
 
Greek (el)
97%
 
Swedish (sv)
92%
 
Japanese (ja)
92%
 
Dutch (nl)
88%
 
Ukrainian (uk)
87%
 
German (de)
86%
 
Brazilian Portuguese (pt_BR)
86%
 
Polish (pl)
85%
 
Low Saxon (nds)
85%
 

Bug Killers and Buzz

Person Bugs Closed
Seb Ruiz
14
 
Pino Toscano
10
 
Luboš Luňák
10
 
Andreas Pakulat
9
 
Leonardo Finetti
9
 
Gilles Caulier
8
 
Thomas McGuire
8
 
Keith Isdale
7
 
Maks Orlovich
6
 
Tommi Tervo
5
 
Program Buzz
Amarok
9815
 
K3B
4875
 
KMail
4840
 
Kopete
3320
 
KDevelop
2595
 
Plasma
2489
 
Kaffeine
2037
 
Kate
2001
 
Solid
1873
 
Kontact
1790
 
Person Buzz
David Faure
2110
 
Stephan Kulow
1749
 
Aaron J. Seigo
1390
 
Torsten Rahn
1367
 
Jonathan Riddell
1132
 
Laurent Montel
1030
 
Stephan Binner
782
 
Thiago Macieira
668
 
Zack Rusin
638
 
Adriaan de Groot
631
 

Commit Countries

Commit Demographics

Sex

Age

Contents

  Bug Fixes Features Optimization Security Other

Accessibility

     

Development Tools

     []

Educational

[] []    []

Graphics

  []    

KDE Base

[] [] []   []

KDE-PIM

  []    []

Office

  []    []

Konqueror

     

Multimedia

[] [] []   []

Networking Tools

  []    []

User Interface

     

Utilities

  []    []

Games

  []    []

Other

     

There are 117 selections this week

Bug Fixes

Educational

Aleix Pol Gonzalez committed changes in /trunk/KDE/kdeedu/kalgebra:

* Fixed some polar functions issues and improved FunctionTest.
* Fixed lambda issue.
* New example feature for the dictionary.

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

KDE Base

Ivo Anjo committed changes in /branches/KDE/4.0/kdebase/apps/kinfocenter/info/info_linux.cpp:

Fixed usage of stream.atEnd() in various places, it doesn't work for files in /proc (as per QFile docs).

Fixes interrupts, io-ports, scsi, sound, dma channels and devices not working on linux.

Kinfocenter is back to its former qt3 glory.

Dirk Mueller committed changes in /branches/KDE/4.0/kdelibs/solid/solid:

backport bugfixes from /trunk, mostly to make it work with Qt 4.4

Diffs: 1, 2, 3, 4, 5, 6 Revision 786613
Robert Knight committed changes in /trunk/KDE/kdebase/apps/konsole/src/ViewContainer.cpp:

Limit tab names to a maximum of 20 characters to prevent one or two tabs from taking up the entire width of the tab bar and requiring the user to scroll to see more.

Longer tab titles are trimmed to the right-most 20 characters with an elide inserted at the front.

David Faure committed changes in /trunk/KDE/kdebase/apps/konqueror/src:

The fact that text/html derives from text/plain brought back a bug that I fixed in 2002:
"embed katepart and then type a website URL -> loaded into katepart".

The test for mimetype inheritance in changeViewMode came from bug #108542, but that was wrong [the current mimetype shouldn't matter, only what the view supports, otherwise viewing a text/plain file or a C++ file in katepart changes what happens when opening a text/html file later on].

... and in kde4 it should be different anyway with dolphinpart handling all main viewmodes.

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

Multimedia

Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src/context/engines/wikipedia/WikipediaEngine.cpp:

I think I finally got the Wikipedia engine sorted out.

The issue is that when searching with the (band) postfix, wikipedia does not always return a result. In that case the postfix should be removed and the engine should try again, this was not happening however.

Features

Educational

Mauricio Piacentini committed changes in /trunk/KDE/kdeedu/kturtle/src:

Command line functionality to KTurtle, code by Aleix Pol.

This adds an interactive command line mode for testing TurtleScript commands.

Diffs: 1, 2, 3, 4, 5 Revision 786388
Carsten Niehaus committed changes in /trunk/KDE/kdeedu/kalzium:

Initial version of the new Kalzium plasmoid

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 7 more) Revision 786682
Carsten Niehaus committed changes in /trunk/KDE/kdeedu/kalzium/plasmoid:

Again many changes.
The applet is now showing the letter "B".

That is not exactly spectacular but the letter is the Symbol of the 4th element and is loaded from the XML.

That proves that this somehow works now :-)

Diffs: 1, 2, 3 Revision 786688
Carsten Niehaus committed changes in /trunk/KDE/kdeedu/kalzium/plasmoid:

This is probably the most ugly Plasmoid on earth, but it works.

Diffs: 1, 2, 3, 4 Revision 786976
Cies Breijs committed changes in /trunk/KDE/kdeedu/kturtle/src:

another unatomic commit... (surviving without always on wireless broadband luxury)

* editor is disabled during a run, but scrollbar should still be usable
* make error list more sensible
* highlight first error by default
* remove root element and heading from tree inspector
* remove numbering of the variable and function inspectors
* heading of tables now align left
* column sizes more same
* direction chooser fixes, generally more usability
* direction chooser canvas pimping + disabling of previous direction when 'direction' command selected

hope you like it -- especially have a look at the pimped 'direction chooser'.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Revision 787074
Torsten Rahn committed changes in /trunk/KDE/kdeedu/marble/src:

First attempt for a Settings dialog in Marble (just looks nice, doesn't do anything yet).

Diffs: 1, 2, 3, 4 Revision 787833
Carsten Niehaus committed changes in /trunk/KDE/kdeedu/kalzium/plasmoid/applet:

Adding the first version of the new applet: Did you Know

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 788033
Carsten Niehaus committed changes in /trunk/KDE/kdeedu/kalzium/plasmoid:

Ok, it works.
The getFact() stuff needs a real lib in libkdeedu which I could also use in Kalzium.

I always wanted to have a way to generate a quiz, that lib could be used there as well.

Diffs: 1, 2, 3, 4, 5 Revision 788922
Frederik Gladhorn committed changes in /trunk/KDE/kdeedu/parley/src/entry-dialogs:

Create a dock widget for synonyms. No functionality there yet.

Diffs: 1, 2, 3 Revision 789085
Frederik Gladhorn committed changes in /trunk/KDE/kdeedu/parley/src:

Allow to add synonyms in the gui.

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

Graphics

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

digiKam from trunk (KDE4) : add thumbbar behind preview area from AlbumGUI when preview mode is used (F3).

Icon view filter available to status bar and TagFilters still suitable to change thumbbar contents in live.

Thumbbar items can display Rating of pictures. More information about thumbbar items are available using pop-up tool tips is you enable this option in config dialog.

A fresh screenshot is available at these url:

- with Digikasa color theme : <a href="/issues/2008-03-23/files/thumbbar4albumgui.png">http://digikam3rdparty.free.fr/Screenshots/thumbbar4albumgui.png</a>;
- with Desert color theme : <a href="/issues/2008-03-23/files/thumbbarwithpreviewmode.png">http://digikam3rdparty.free.fr/Screenshots/thumbbarwithpreviewmode.png</a>;

Cyrille Berger Skott committed changes in /trunk/playground/graphics/krita2-plugins/experimental:

introduce HumanBody a plugin to display a wireframe human body as a decorator, currently only the decorator is available

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 9 more) Revision 787538
Cyrille Berger Skott committed changes in /trunk/playground/graphics/krita2-plugins/experimental/HumanBody:

introduce a tool to edit the body

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 2 more) Revision 787652
Aurélien Gâteau committed changes in /trunk/KDE/kdegraphics:

Started to implement Nepomuk support.

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 787671
Gilles Caulier committed changes in /trunk/extragear/graphics/digikam/digikam:

digiKam from trunk : media-player view now use KDE4::Phonon API to render preview of Video and Audio files.

Diffs: 1, 2, 3 Revision 788454

KDE Base

Fredrik Höglund committed changes in /trunk/playground/base/plasma/applets:

Add the beginnings of a generic folder view applet.

Diffs: 1, 2, 3, 4, 5, 6 Revision 786400
Sebastian Trueg committed changes in /trunk/playground/base/nepomuk-kde:

Added the "Nepomuk Social Query Daemon" + Client.

A very fancy name for a very simple thing: it allows to query the nepomuk store of everyone (!) in the local network running the nsqd. The services are discovered using KDNSSD.

While this is not really an end-product since it lacks security features it shows what is possible with the Soprano/Nepomuk framework.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 7 more) Revision 786573
Eduardo Robles Elvira committed changes in /trunk/KDE/kdebase/apps:
Sebastian Trueg committed changes in /trunk/KDE/kdelibs/nepomuk/core/ui:

Added the possibility to draw a disabled rating.

The KRatingWidget uses this automatically to draw itself in a disabled state.

Diffs: 1, 2, 3, 4, 5 Revision 786656
Robert Knight committed changes in /trunk/KDE/kdebase/apps/konsole/src:

If the terminal application is not interested in mouse events and the display's scroll bar is not movable then send Up/Down key press events to the terminal instead.

This makes it possible to scroll up and down in 'less' and other applications using the mouse wheel. One key press is sent for every 5 degrees of mouse wheel rotation. Typical mouse wheels operate in steps of 15 degrees which equals 3 lines scrolled per notch. This default is the same as Vim's default mouse wheel scroll step.

As in gnome-terminal and others, this has side effects such as the mouse wheel scrolling through history results in the shell if the shell is run in a program such as screen.

Jeremy Paul Whiting committed changes in /trunk/KDE/kdebase/workspace/plasma/containments/desktop:

added support for downloading plasma themes from kde-look.org, note that a few untar to the wrong place (need a subfolder in the tarball)

Diffs: 1, 2, 3, 4, 5 Revision 787132
Fredrik Höglund committed changes in /trunk/playground/base/plasma/applets/folderview:

Add support for rubber band selections.

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

Add support for setting background and foreground colors of a session's displays using the Xterm Operating System Controls escape sequences.

See the "Operating System Controls" section on this page:
<a href="http://rtfm.etla.org/xterm/ctlseq.html">http://rtfm.etla.org/xterm/ctlseq.html</a>;

Other colors and multiple color sequences are not supported.

xtermcontrol --fg=<color> --bg=<color> now work as expected.

In addition to standard color names ("green","blue","red") etc, Qt also accepts SVG color names:

<a href="http://www.w3.org/TR/SVG/types.html#ColorKeywords">http://www.w3.org/TR/SVG/types.html#ColorKeywords</a>;

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

Display a warning message in the terminal in red if starting the session fails because the binary does not exist or if the shell crashes or exits with a non-zero status code.

In these cases, also prevent the tab from being closed automatically.

If the binary for the session cannot be found, display a warning and try to fall back to $SHELL or as a last attempt, /bin/sh.

This should mean that users should always be given a semi-functional basic environment if their profiles get messed up, the shell program gets uninstalled etc.

Alex Merry committed changes in /trunk/kdereview/plasma/dataengines/nowplaying:

Bring back XMMS support. Players are now shared pointers, so we don't delete players before we're finished with them.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 10 more) Revision 788040
Germain Garand committed changes in /trunk/KDE/kdelibs/khtml:

CSS 3 - Media Queries

cf. <a href="http://www.w3.org/TR/css3-mediaqueries/">http://www.w3.org/TR/css3-mediaqueries/</a>;

This is a full implementation supporting all media features, for both visual and paged media types we support.

It is based on the partial implementation found in WebCore.
With some refactoring work, fixes, and implementation of the missing bits.

This module allows web content writers to query the capabilities of the client's output device (be it a screen, a printer, etc.) and automatically select CSS styles that are best suited to it.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 16 more) Revision 788248
Laurent Montel committed changes in /trunk/playground/base/plasma/applets:

Start to re-add load konsole profiles as plasmoid

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 788364
Sebastian Trueg committed changes in /trunk/KDE/kdebase/runtime/nepomuk:

Finally the nepomuk server supports a backend change. So from now on if a user updates soprano and suddenly has the sesame2 backend (which now uses RPATH and should thus, be easier to set up) the NepomukServer will pick that up and convert the old data using a KJob (so it should show up in the UI server, right?)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 8 more) Revision 788520
Sebastian Trueg committed changes in /trunk/KDE/kdelibs/nepomuk/core:

Two new things. One pretty major.

1. (not the major one) Added a massupdate job which handles updates of tags in an async KJob

The same job will soon be used in Dolphin to not block the GUI while rating or commenting a large number of files. The plan is to at some point make this class public API.

2. (the pretty major thing) Nepomuk::MainModel is a new class (not yet in the public API but I am thinking about it) that connects to the nepomuk server transparently.

Thus, while previously one would have to create a Soprano::Client::DBusClient and call createModel (if one did not want to use the ResourceManager) one can now simply create a MainModel.

But the major thing is that MainModel does not use DBus for communication anymore but the local socket connection which is much faster. D-Bus is only used for signal relaying and as a fallback.

Thank you, Trolltech, for QLocalServer and QLocalSocket which made this possible (previously this did only work on linux).

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 788523
Sebastian Trueg committed changes in /trunk/KDE/kdebase/apps/dolphin/src:

This is the first step towards a better looking and more usable metadata GUI.
- A nicer comment widget shows a popup to edit the comment.
- A tag cloud replaces the ugly tagwidget from libnepomuk.

The plan is to use Dolphin as a testbed to optimize the look and then move at least the tagcloud to libnepomuk to make it available for all apps since this is a common feature.

So please test it and provide feedback. The layout is still cluttered. So we also need feedback on that. And of course on the usability.

Apart from the GUI Dolphin now uses the mass metadata update job to perform metadata updates on many files in an async KJob without blocking the GUI.

This is another candidate for public API at some point.

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

always behave like a button in the panel, just like icons.

make me wonder if Plasma::Icon shouldn't be FormFactor aware itself?

David Faure committed changes in /trunk/KDE/kdelibs:

Added KProtocolManager::protocolForArchiveMimetype(), to be able to handle archive-kioslaves generically in dolphin and konqueror; as discussed with Urs Wolfer.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 788624
Diego Iastrubni committed changes in /trunk/KDE/kdelibs/kate/render:

Improve the right-to-left/BiDi support of katePart:
The direction of each line is detected automatically, by the count of LTR/RTL chars in that string, and RTL lines will be automatically alligned to the right.

This patch is a work in progress, and I still need to fix some things:
* cursor movement in RTL paragraphs is still wrong
* when resizsing the window RTL paragraphs are not re-aligned, I think an internal redraw is needed.
* let the user specify the direction of the line manually, since this algorithm will fail some times.
* when LRM, RLE and all those chars are in the beginning of the line - obey that direction, and ignore all others.
* make a visual hint (like tabs or spaces?) for special invisible BiDi chars.
* this works pretty good in kwrite, but in kate it behaves funny, need to test this much more.
* more testing :)

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

Add support for displaying session number in tab titles using a '%#' marker or via "Insert -> Session number" in the profile editor.

Luboš Luňák committed changes in /trunk/KDE/kdebase/workspace/kwin:

Reduce the difference between noborder requested by the application and set by the user - they're now interchangeable.

Which means that Alt+F3/Advanced/No border can put the window decoration back on the KRunner window regardless of what Plasma or any other app thinks.

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

KDE-PIM

Tom Albers committed changes in /trunk/KDE/kdepim/akonadi:

Start of a tray application for Akonadi!

Diffs: 1, 2, 3, 4, 5, 6 Revision 788387
Tom Albers committed changes in /trunk/KDE/kdepim/akonadi/tray:

Listen to changes on the DBus, adjust the menu items accordingly and show a passive popup when the server is started or has been stopped.

Diffs: 1, 2, 3, 4 Revision 788606

Office

Adam Pigg committed changes in /trunk/koffice/kexi/plugins/reportspgz:

Lots of changes here
* Made a single library, as its unlikely that any of backend/* will be used outside the plugin
* Added much more scripting ablilty (and more to come)
* Moved all scripting related clases to backend/renderer/scripting
* Started creating classes to allow scripting of sections and objects
* Added an on_render event for rendering sections, though the way this is stored in the report is likely to change

For a sample on how to script, have a look at <a href="/issues/2008-03-23/files/Simple_Database2.kexi">http://www.piggz.co.uk/Simple_Database2.kexi</a>; in the rptRainfall report, just double click on the 'detail' header to open the script editor.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 23 more) Revision 786217
Cyrille Berger Skott committed changes in /trunk/koffice:

* up the requirement to the upcoming OpenCTL 0.9.2
* add a pigment ctl module with some "utils" functions
* add a decent default function to convert to QImage
* add the start of a CTL based XYZ32F
* make Color Conversion Transformation Factory aware that they can be limited to working with a specific profile
* fix rgb hdr color space conversion, alpha shall not be pseudo-gamma corrected
(* the perspective grid tool was ported, remove the message)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 29 more) Revision 786387
Erlend Hamberg committed changes in /trunk/playground/office/krone:

start of keeping ExpenseTable and ExpenseProperties synchronized.

Maybe MVC is a better idea?

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 787272
Erlend Hamberg committed changes in /trunk/playground/office/krone:

rewrote expense table to use MVC and wrote an expenses model

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 787274
Erlend Hamberg committed changes in /trunk/playground/office/krone:

added a preferences window. loading/saving of files works

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 787289
Emanuele Tamponi committed changes in /trunk/koffice/krita/plugins/painterlyframework:

Y.A.A. (Yet Another Algorithm...)

This new algorithm removes completely remove the mixture approach used since now.

Now, I build the absorption and scattering spectrum "from scratch", using mathematical minimization. The coefficient are previously found, and then used here. No fancy mathematics in C++ then :)

The illuminant profile format has changed, I'm preserving the old format in a separate dir.

To avoid crashes, you should remove your share/apps/krita/illuminants directory before make install.

Enjoy!

PS: Even if you can see some mixing result using the alpha transparency, this is not supposed to work and will *not* work for every color.

To have correct mixtures with this colorspace, you've to wait the painterly paintop.

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

Multimedia

Ian Monroe committed changes in /trunk/KDE/kdemultimedia/dragonplayer/src/app:

use the new phonon api for subtitle and audio track selection

the only remaining Xine dependency is the DVD menu button

Diffs: 1, 2, 3, 4 Revision 786368
Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src:

Make adding, removing and changing services work without restarting Amarok.

Currently implemented as a brute force approach that clears all services and starts over, but this has the advantage of handling all corner cases, such as adding or removing services based on the config of one ( multiple ampache services,... )

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 786497
Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src:

Add a currentTrackAction to all Magnatune tracks to allow purchasing/downloading ( depending on membership status ) of the album containing the track. One click downloading from the tray menu is actually pretty damn cool! :-)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Revision 786615
Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src/servicebrowser:

Initial work on making some services ( the sql based ones ) act as track providers.
It works but there are a few issues that needs to be sorted out stil...

Mainly, it obviously does not work when the service that knows about a given url has not been loaded.

Also, why on earth, when loading a playlist, do we pass the url of the playlist itself, and not the ulrs of the tracks in contains, to trackForUrl!!??

Diffs: 1, 2, 3, 4, 5 Revision 786648
Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src/servicebrowser:

Services can now be loaded on the fly, even if they are not configured to be loaded, if we think they might be usefull for providing info about a url.

Since the plugin factories now act as proxies to the actual service collections, there is no need to manually add these as track providers any more.

This feature might call for a config option as people might be annoyed at services being loaded even when they have explicitly disabled them in the config.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 7 more) Revision 787068
Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src:

Make advanced queries ( artist:"Brad Sucks" ) work again

Diffs: 1, 2, 3 Revision 787458
Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src:

Add full "Group by" support to Magnatune. Still a few bugs and crashes left in for good meassure.

I also should really factor this stuff out to make it usable for other services, but I wanted to get the basics working first!

Diffs: 1, 2, 3, 4, 5 Revision 787472
Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src/servicebrowser:

factor out some stuff and add full "group by" support to Jamendo, between this and advanced filtering, Jamendo is actually becoming usable!!

Diffs: 1, 2, 3, 4, 5 Revision 787527
Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src:

Add an action to all Magnatune tracks to show the artist of the currently playing track in the Magnatune service.

This builds on top of all the other little details I have hacked into submission during today ( grouping in the services, advanced filtering... )

Other services will get a simmilar treatment, and this should be really simple to do now that the basics are in place.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 787553
Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src:

First of all, yes, unfortunately this commit destroys quite a bit of history in the scriptable service directory, but as nothing in there has really been useful up to this point ( I wrote it all, so I think I am a good authority on that ), I dont think this is a major loss...

So, what does this huge commit actually do?

1. Add a redesigned scriptable service with a sane DBus API consisting of only 3 functions. Make amount of levels configurable and make everything completely dynamic
2. Make the service scripts use the same callback method as regular scripts
3. Integrate scriptable services with the service manager, making it possible to run and stop service scripts from there
4. Add a new service category to the scriptmanager
5. Add ( recreate ) a simple cool streams service script. This one works really nicely
6. Add a deme file browser script. This one is mainly for testing the scriptable services and currently contains some hardcoded paths, so it should not be included in a release ( it is also basically useless, but I had to have something to test agains when I had no internet )
7. Fix a ton of bugs and crashes in the new scriptable service.

All in all, not bad for a few days in a small wodden cabin with a girlfriend who is busy studying for an examn... :-)

And to all the people I have been telling that there would be no scriptable service in 2.0, sorry, but I changed my mind!

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

Networking Tools

Roman Jarosz committed changes in /trunk/KDE/kdenetwork/kopete:

Add non-intrusive notification system
* Service messages (e.g. authorization requests) are queued so user won't be bothered with unimportant messages.
* User can view the service messages in Kopete main window.
* A green flag in status bar or optionally KNotification will inform the user about new service messages.

New classes:
AddedInfoEvent - event which should be created when a contact added you into the contact list or requested authorization.
InfoEventManager - contains all info event objects
InfoEvent - base class for all info events
InfoEventWidget - widget for Kopete main window

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 14 more) Revision 786805
Urs Wolfer committed changes in /trunk/KDE/kdenetwork/krdc:

Initial implementation of a remote desktops dock widget. This widget allows quick access to bookmarks, recent connected desktops and zeroconf deteced remote services.

Work in progress, hidden by default.Also fix a problem with showing / hiding the zeroconf tab in some cases.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 788579
Urs Wolfer committed changes in /trunk/KDE/kdenetwork/krdc:

Various improvements and fixes:
* greatly optimize full screen toolbar: only create bitmaps and update actions when toolbar is visible.
* fix problems when zeroconf tab was visible (and not the first or second tab)
* minor code style changes

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

Utilities

Eike Hein committed changes in /trunk/extragear/utils/yakuake:

* Starting Yakuake a second time now toggles the window state, making it possible to open and retract Yakuake from a panel button or similar. Improves consistency with the main window activation mechanic of other single-instance KDE applications, and provides an easier way to get at the application UI than the D-Bus interface in case of a hotkey screwup.

* Disabled standard startup notifications ("Launch Feedback" for Yakuake).

Nicolas Ternisien committed changes in /trunk/KDE/kdeadmin/kcron:

* Improve errors management
* Rewrite and simplify most part of KCron
* Add right action buttons list for a easier action access
* Improve command line parsing, to avoid the saving of good command line
* Reimplement and rewrite the TaskEditorDialog, by allowing a minute per minute selecting, and a smarter displaying.
* Able to add multi-lines comments on variables and tasks
* Clean API
* All known bugs are now closed, KCron seems to be ready for KDE 4.1

It just needs a icon from KDE Artist team

Games

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

Lots of changes all over the place, including:
- Internal terminology is now more consistent.
- Ruleset keys are more consistent.
- Ruleset selector has been much improved.
- Work around to get keyboard navigation working.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 9 more) Revision 786351
Stefan Majewsky committed changes in /trunk/KDE/kdegames/doc/kdiamond:

KDiamond documentation. (Did not work last time do to unexpected behavior of the kdesvn client.)

Diffs: 1, 2, 3 Revision 786376
Stefan Majewsky committed changes in /trunk/KDE/kdegames/kdiamond:

* All items on TODO list have been addressed.
* Optimized constructors.
* Introducing RendererPrivate class (replacing global vars in Renderer implementation code).
* Make size of border independent of diamond count.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 2 more) Revision 786623
Fela Winkelmolen committed changes in /trunk/KDE/kdegames/knetwalk/src:

Added support for custom themes.

Diffs: 1, 2, 3, 4, 5, 6 Revision 786756
Stefan Majewsky committed changes in /trunk/playground/games/palapeli/src:

Usability improvements:
* command line options to adjust scene width/height
* advanced mouse wheel commands: shift+wheel = horizontal panning, ctrl+wheel = zooming* visual scene boundary (very temporary graphical design; it's just there to have an indication)

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

Optimization

KDE Base

Aaron J. Seigo committed changes in /trunk/KDE/kdebase/workspace/plasma/applets/tasks:

share the background painter between items.
prevents lots of look ups on disk that are just needless and a lot of overhead for the svg objects.

however, i don't have a svg theme with such a background to test it.

jamboarder, can you test it with your theme? thx.

Rafael Fernández López committed changes in /branches/work/goya:

Improve painting speed by adding a timer => this will need to be configurable so a user could say what interval he/she would want for updating.

TODO: check the way of getting the index where an action was performed

Luboš Luňák committed changes in /trunk/KDE/kdebase/workspace/kwin/workspace.cpp:

Keeping a QTimer around rather than using QTimer::singleShot() is more efficient, gives 1295->1320fps improvement with glxgears.

Peter Penz committed changes in /trunk/KDE/kdebase/apps/dolphin/src:

Performance boost for previews that are already available in the cache: apply the previews in larger blocks instead of applying them immediately after getting the signal 'gotPreview' from the PreviewJob.

Now the previews in Konqueror and Dolphin are as fast as in the good old KDE 3 days :-)

Multimedia

Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src/servicebrowser/servicesqlcollection.cpp:

Speed up the Jamendo and Magnatune trackForUrl by a factor ~20

Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src/servicebrowser/servicesqlquerymaker.cpp:

A bunch of optimizations. This sort of breaks the nice clean and very symmetric way of querying ( at least a little bit ) but it speeds up Jamendo by a huge amount ( actually makes the service usable ) and Magnatune gets even faster

Other

Development Tools

Andreas Pakulat committed changes in /trunk/KDE/kdevelop/plugins/appwizard/importproject.cpp:

There's no autotools support in Kdevelop4 currently, so don't pretend we can import projects of that type.

Fixes import for custom makefile projects.

Laurent Montel committed changes in /trunk/KDE/kdesdk/kate:

First step to port kicker session menu to plasmoid

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

Educational

Carsten Niehaus committed changes in /trunk/KDE/kdeedu/kalzium/src:

Remove the mean mass.

There is no other application/website/book I know showing this dataset so I think removing it makes sense.

Carsten Niehaus committed changes in /trunk/KDE/kdeedu/kalzium/plasmoid:

Adding a subdirectory 'applet' to prepare for more plasmoids to come

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 7 more) Revision 788032
Jason Harris committed changes in /trunk/KDE/kdeedu/kstars/kstars/data/kstars.png:

Committing new splash screen from Nuno Pinheiro... thanks Nuno!

Anne-Marie Mahfouf committed changes in /trunk/KDE/kdeedu/klettres:

add a Ruby script which extracts the KLettres data from KDE svn and tars it per language.

Might be useful for distributions to ackage additional data.
Is also useful to synch l10n and KNS repository.

Diffs: 1, 2, 3 Revision 788791

KDE Base

Jarosław Staniek committed changes in /trunk/KDE/kdelibs/kdeui/kernel:

(reviewed, Windows only)

As discussed before in the thread [1], there are problems with running KUniqueApplications on Windows because previous dbus service has not been unregistered, resulting in "KUniqueApplication: Can't setup D-Bus service. Probably already running." and forced app quit.

Now e.g. KMail runs just fine every time I executed it, what was not the case before (when we needed to kill klauncher and/org dbus-daemon - rather not an option for end users we're starting to demo KDE apps on Windows to :)).

There are sane arguments that certain fixes should be performed at the dbus level, but for now we have another month after the initial discussion and there is nothing better that this KDElibs-level fix.

Thus, this change as temporary.

[1] <a href="http://lists.kde.org/?t=120294760700003&r=1&w=2">http://lists.kde.org/?t=120294760700003&r=1&w=2</a>;

Jeff Mitchell committed changes in /trunk/KDE/kdebase/workspace:

Begin the breaking up of solidshell into specialized components so that it can be portable.

Right now solid-hardware is not built; if you want the functionality of solidshell, use solid-[powermanagement,bluetooth,network] as they currently are exactly what solidshell used to be.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 3 more) Revision 786917
Sebastian Kügler committed changes in /trunk/KDE/kdebase/workspace/plasma/applets/digital-clock:

Revert David Bettio's avoid to show timezone when using local timezone.

Some use cases have been ignored. If something like this is to go in, we'll need solutions for those first. (Especially thinking of multiple clocks where "Local Timezone" is actually useful and needed information.

Please use review board for anything non-trivial, especially changes in the UI of a default Plasmoids. And please also be responsive afterwards :)

Jeff Mitchell committed changes in /trunk/KDE/kdebase/workspace/solid/solidshell:

solid-hardware now builds and works properly... no platform dependencies remain

Diffs: 1, 2, 3 Revision 787024
Marco Martin committed changes in /trunk/playground/base/plasma/applets/svgpaneltest:

reimporting back SvgPanelTest, it turns out it's quite handy for theme designers

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 787732
Louai Al-Khanji committed changes in /trunk/playground/base/plasma/applets/svgpaneltest:

Add systemcommand plasma applet.

Sebastian Trueg committed changes in /trunk/KDE/kdelibs/kdecore/config/kconfig.h:

Added a quickstart for KConfig/KSharedConfig based on the techbase howto. IMHO it is important to have the standard usage in here as it is the first place one looks as a reference.

And I personally keep forgetting how to use KConfig since I normally only do it once per project.

Laurent Montel committed changes in /trunk/playground/base/plasma/applets:

Port konq profile to plasmoid (based on kate session applet)

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 788020
Peter Penz committed changes in /trunk/KDE/kdebase/apps/dolphin/src:

QListView does not support having a margin for grids.

Originally it has been tried to bypass this by overwriting QListView::visualRect(), but this has some side effects (see #155378 and #155575). The clean approach is to return a proper size hint in the file item delegate.

Currently a custom item delegate has been made for Dolphin, but we'll discuss whether it makes sense providing this feature already in KFileItemDelegate...

Germain Garand committed changes in /branches/KDE/3.5/kdelibs/khtml:

and also the youtube miniature thingy because my daughter says so

Dmitry Suzdalev committed changes in /trunk/playground/base/plasma:

Add initial and very-very early version of something that is going to become an engine and an applet for displaying knotify popups with plasma

Currently you can expect nothing from it functionality wise and visualisation wise :)

So enjoy ;)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 3 more) Revision 788157
Norbert Frese committed changes in /trunk/KDE/kdelibs/kio/bookmarks:

The purpose of this is sharing file-management shortcuts (KFilePlacesModel) with other desktops. See: <a href="http://freedesktop.org/wiki/Specifications/desktop-bookmark-spec">http://freedesktop.org/wiki/Specifications/desktop-bookmark-spec</a>" target="_blank">http://freedesktop.org/wiki/Specifications/desktop-bookmark-spec">http://freedesktop.org/wiki/Specifications/desktop-bookmark-spec</a>;

KBookmark:
* stores the icon-name in metadata (owner="http://freedesktop.org") instead of as an attribute of the bookmark tag. This seems more conforming to XBEL.
* migration code for bookmark files where the icon is stored in the old place.
* store and retrieve the mime-type of bookmark items (according to the desktop-bookmark-spec): new methods KBookmark::setMimeType() and KBookmark::mimeType())
* use mime-type to pick the right icon (if no icon is specified).
* new public method to access metadata by owner: KBookmark::metaData()
* add xmlns: declarations when creating a new bookmarks document

KBookmarkManager:
* Introduces a new KBookmarkManager type: "external". In this mode KBookmarkManager uses KDirWatch for change monitoring (rather than DBus).

Diffs: 1, 2, 3, 4 Revision 788191
Lukas Appelhans committed changes in /trunk/playground/base/plasma/applets:

Add initial Quicklaunch-Applet :)

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 788200
Sebastian Trueg committed changes in /trunk/kdesupport/soprano/backends/redland:

Ok, finding this stupid error took me a whole day again!

apparently one has to create one world instance for each storage created. Now why is that not stated in the documentation? Who knows. Anyway, now using multiple redland models all over the place works! :)

Why did I not catch this before? Well, all tests worked. This only happened when, in nepomuk, I created a bunch of memory models.

No idea why there were never any problems with the unit tests.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 2 more) Revision 788496
Jakub Stachowski committed changes in /trunk/KDE/kdelibs:

Discussion with Celeste Paul convinced me that this is not a good gui at all.

So I'm removing it before someone actually uses it.

It will be replaced with model that can be plugged into listbox or combobox.

Diffs: 1, 2, 3, 4, 5, 6 Revision 788903
Dmitry Suzdalev committed changes in /trunk/playground/base/plasma/applets/notifier:

Renaming applet to "notify".
Old name "notifier" clashed with Device Notifier that has the same applet name.

If someone has cool-name-ideas, ping me, mail me, send me a snail mail :)
(Btw, "notify" is a nice name too :P)

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

KDE-PIM

Tom Albers committed changes in /trunk/KDE/kdepim/akonadi/clients:

KAgenda goes to playground.

Tobias Koenig committed changes in /trunk/KDE/kdepimlibs:

Welcome libakonadi-kde to kdepimlibs!

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 129 more) Revision 788342
Tobias Hunger committed changes in /trunk/playground/pim/decibel:

Remove decibel in playground. It is in kdereview now.

Frode M. Døving committed changes in /trunk/KDE/kdepim/akonadi/tray:

D-Bus interface "skeleton" for akonaditray.

Need to figure out the auto-generation of the .xml file and probably move around and rename some stuff.

It's a start.

Diffs: 1, 2, 3, 4 Revision 788976

Office

Cyrille Berger Skott committed changes in /trunk/koffice/libs/pigment/CMakeLists.txt:

don't put insult in a cmakelists.txt file

Multimedia

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

All sorts of interesting code, hacks and voodoo spells to make Amarok adapt to changes in color themes without the need for a restart.

There are a few items ( such as the volume slider ) which are not updated correctly just yet, but most items are. Also a few fixes to make the sidebar svg's look better on dark themes

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 12 more) Revision 786285
Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src/playlist/PlaylistGraphicsItem.cpp:

Update the playlist item text elements to use the correct background color when changing color themes.

This goes a long way to help us avoid such small inconviniences as black text on a black background...

Nathan Bradshaw committed changes in /trunk/playground/multimedia/musicbrainz:

Initial SVN import of musicbrainz lib

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 19 more) Revision 786606
Nathan Bradshaw committed changes in /trunk/playground/multimedia/musicbrainz:

Clean up a few loose ends and rename testapp to brainzscanner

Diffs: 1, 2, 3, 4 Revision 786797
Dan Meltzer committed changes in /trunk/extragear/multimedia/amarok/src/osd.cpp:

Work on making the osd widget both obey the color scheme and look prettier.

This poor baby still has a good ways to go.

Ian Monroe committed changes in /trunk/extragear/multimedia/amarok/src:

Removed the Amarok engine system.

We've been good together, but it's time to part.
Please don't call.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 19 more) Revision 788156
Orville Bennett committed changes in /trunk/extragear/multimedia/amarok/src/MainWindow.cpp:

Commit changes to menu structure discussed on the ML +code cleanups to previous changes.

Yes Menu goes from Amarok -> Playback for now.

Dan Meltzer committed changes in /trunk/extragear/multimedia/amarok/src:

Commit work on animating the progress slider.

This is pretty cool! It's still a bit wild, as theres some double->integer conversion in a few places that makes things jump around... gotta figure out how to smooth that out.

Also weird things happen when pausing and stopping, but that happens all over amarok, not just in the slider... so I'm not sure if It's related to these changes or not.

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

Networking Tools

Urs Wolfer committed changes in /trunk/KDE/kdenetwork/krdc:

Completely change the behavior of entering special keys (like Ctrl+Alt+Del).

Do not show a modal dialog which needs to be closed after every key sequence; instead replace it with a toggle action which can be enabled to fetch every possible key (all except some X server shortcuts like Ctrl+F1) while the remote desktop has the focus.

This should improve the the workflow quite a lot.

Please note that KWin shortcuts like Alt+Tab are not active while this mode is active and the remote desktop has the focus.

Utilities

Laurent Montel committed changes in /trunk/kdereview:

Move autostart in kdereview

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 1 more) Revision 786404
Anne-Marie Mahfouf committed changes in /trunk/kdereview:

start an emoticonkcm doc, not finished yet!

I don't find it in KHelpCenter though and the Help button stays disabled in SystemSettings: any hint on how to get it enabled would be nice, thanks

Diffs: 1, 2, 3, 4 Revision 786668
Carlo Segato committed changes in /trunk:

move emoticons kcm to kdebase

Games

Stefan Majewsky committed changes in /trunk:

Move KDiamond from kdereview to kdegames module. (Messages missing.)

Diffs: 1, 2, 3, 4 Revision 786350
Pierre-Benoit Besse committed changes in /trunk/playground/games/kapman:

- Highscores are now blocked for cheaters
- Some minor corrections on QTest units

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 1 more) Revision 787223
Stefan Majewsky committed changes in /trunk/playground/games/palapeli:

Start new game Palapeli, a jigsaw puzzle.

Made by me and Felix Lemke who is waiting for an SVN account.

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