Issue 116

22nd June 2008 by Danny Allen

This Week...

Work on a "Grid" containment for Plasmoids. A Plasma applet to monitor the WiFi signal strength (on Linux systems). Infrastructure in place for a network settings daemon in the NetworkManager Plasmoid. An Akonadi Plasma data engine, intended for initial use by a "Plasmobiff" applet. "Previewer", a new Plasmoid for previewing files using KParts technology. KDevPlatform (the basis of KDevelop4) gets a plugin for basic Git source versioning control. Start of resurrecting C# support in KDevelop. Key bindings added to display various debugging information in KStars. Progress in sound and scripting support in Parley. KTron gets a new maintainer, with work on porting to KDE 4 and moving to SVG graphics. "Find duplicates" tool in Digikam is now regarded as fully functional. Initial efforts at using PolicyKit for the management of system-wide fonts. Work on scrolling interaction in KOrganizer, and further development in the new "Message List View" of KMail. Copying music tracks to an MP3Tunes locker, and experimental auto-fetching of album artwork in Amarok 2.0. Support for authentication algorithm selection for WEP connections in KNetworkManager. Early beginnings of scripting plugin for KTorrent. Initial support for searching for placemarks, and undo/redo support in the "GeoShape" of KOffice. Beginnings of work on the "Presenter View" in KPresenter, with two synchronised canvasses. "Web forms" component of Kexi becomes based on the kde.org template, for consistency and accessibility reasons. Provisional .wav support in TagLib. Initial import of a Perldoc KIOSlave for KDE 4. Import of a KDE 4 port of sysinfo:/ (as seen in openSUSE 11). KDE 4.1 Beta 2 is tagged for release.
Szymon Stefanek introduces the concepts behind his Summer of Code for KMail, "Enhancements and porting to native Qt4":
Now that KDE 4.1 is about to be released and we should be doing bugfixes only, what are these large commits, file additions, deletions, moves, giant SVN merges that jump out in Commit-Digest once in a while?

...it's me playing in branches :)

Well... in fact it's me working on my Google Summer of Code project and specifically on KMail.

My Summer of Code project has the following goals:
  • Help, and possibly complete, the port of KMail to native Qt4
  • Replace the old Qt3-based KMHeaders with a super-cool "Message List View"
  • Implement a view for "whole threads" of messages
I'm actually in the middle of the project. Several widgets have already been converted to native Qt4 and i'm working on the super-cool "Message List View" which already displays the contents of folders.

Just to make you a bit curious about the sources i'll introduce an interesting problem encountered in the development: the message list view filling algorithm.

The Rich Message List View
When you click on a folder in any e-mail client you usually get its contents displayed in some window. The contents of a folder are obviously messages and you likely want the list to be displayed with some kind of "preferred arrangement". When you're searching for the latest messages received or sent you probably to want the messages to be sorted by date. When you're searching for a particular sender you might want the messages to be sorted by that field. When you're looking at a mailing list you usually want the messages to be arranged in trees which represent discussion threads. Many e-mail clients (soon including KMail) allow you to group the messages and threads by some kind of criteria. For example, you might want to group the messages by "smart" date ranges: "Messages received Today", "Messages received Yesterday", "Messages received Last Week", "Messages from Last Year"...

The mail folders can be very large. It's not unusual to find folders with more than 50000 messages inside (just stay subscribed to the linux-kernel mailing list - or kde-commits! - for some weeks and you'll end up having an example of such a folder). Scanning and organizing all the messages inside such a folder *will* be time consuming. The current KMail implementation is blocking in this sense and even if it uses clever optimisations it still tends to freeze for several seconds when opening a large folder. Freezing is a symptom we need to avoid.

So now you should be getting the big picture. Large folders but no freezing, grouping or no grouping, threading or no threading, sorting by that or by something else. How to approach such an algorithm?

Well.. the actual kmail-soc branch source code has an implementation for this :) I'll leave you the fun of finding the details by reading the comments in the source and i'll outline only the general idea.

First of all, we take care of the freezing problem. The idea is that the UI must be able to process events while the filling algorithm is running. KMail structure is not thread safe at all: multithreading is not an option. Calling "processEvents()" once in a while is also not very nice: it looks so "visual basic"-ish and may lead to a lot of unnecessary calls. So we approach the problem by idle time processing. This is a typical algorithm for UI-based programs.

We set up a zero-interval timer that the Qt core will trigger every time it has nothing else to do (that is, the event loop is "idle"). Once we're called we will be able to do a chunk of work. Idle time processing imposes an obvious restriction on our implementation: it *must* be interruptible. That is, it must be able to perform a part of the work, stop at a certain point and later resume exactly from that point.

The underlying folder is assumed to be a "flat" structure in that the messages can be retrieved by using a numeric index. The natural splitting approach is to cover a contiguous part of the message index space in each work chunk.

We start at the initial index and go upwards... well... the direction and order of the messages to access in the underlying storage is yet another part of the story but i'll omit it for now.

We actually define a "maximum chunk processing time" as a constant in the sources and while processing messages, once in a while, we check if we ran out of time. If we did, then we store our current index as initial index for the next job and return control to Qt. And this works nicely, even if the real-world implementation is really more complex than the one i've just described.

Next we take care of message threading. Have you ever wondered how your e-mail clients knows that a message is a reply to another message? The answer is, it either gets this information (and trusts) the sender's e-mail client or it attempts to guess. The basic idea is that each message should contain a "Message-Id" field with an unique ID string. Then every (direct) reply to that message should contain this unique ID in the "In-Reply-To" header field. This doesn't always work because of broken or featureless clients. There is also a problem when one of the thread messages is missing since it literally breaks the tree in two non-joinable pieces. So we have the "References-Id" field. Smart e-mail clients put there several unique identifiers of messages belonging to the same thread. There is a complex rationale for that we're using only one specific entry in that References-Id (see sources for more information). But anyway, we have two somewhat "direct" means for threading messages. Then there are hopeless e-mail clients which do not include these fields in replies. So we try to guess by looking at the subjects... but i'll leave the details here and go on with the algorithm.

Messages then "come in" from the folder in some order. The order does not necessarily need to be the "right one". That is, a reply to a message X may come in before the message X itself. This means that initially we'll miss the parent for the reply and *later* we have to find out that the original message is its (perfect?) parent. This complicates the things a bit since we can't just append the messages to the trees. We can append them when a perfect parent is found but when no parent is found we don't know if there will be one later. The current solution tries to keep the message without a parent unattacched as long as possible (during a single execution of the fill view algorithm) hoping that the parent will jump out. When we reach the end of the folder without finding the parent then the parentless child must be attacched to the view and shown to the user (even if an orphan, it's still a valid message).

But then the user presses the "check mail" button and new messages are downloaded from the server... and the missing parent suddently appears. Then we have an additional hazard: we must be able to change the hierarchy of the already displayed messages... and we must do it on-the-fly, possibly without bothering the user that might be actually reading *another* message in the same folder (and maybe, as per Murphy's Law, belonging to the very same thread).

Then we have message grouping. Determining the group that a *single* messsage belongs to is quite simple. A bigger problem comes out when we want to be able to group threads by something that is not the first e-mail in the thread. Maybe it's not totally obvious but think of a group of "all the discussions that had activity today". This is actually the group of threads for that the user has received at least one message today. To implement this, in certain configurations, groups must be held up until the end while in others they can be attached directly to the view.

Anyway, at the moment of writing, the sources in the kmail-soc branch have a nearly working 4 pass solution for the problem (which in fact has several additional hardcore details). It works but it's complex and hard to read. This might also mean that it will be hard to mantain in the future. Something must be done in this direction too.

Then there is the potential Akonadi port... but that's yet another part of the story. Ah, and skinning too! ...we have both eye-candy lovers and conservators that want the view "just like it was in KMail 1.0" :D


Well...I hope to have interested you at least a bit :)

I always try to make sure that the branch code compiles. You're encouraged to try it out and send feedback!

About Me
My name is Szymon Stefanek. I live in Italy and i'm studying Informatic Engineering at the University of Siena. Currently i've passed 29 of the 31 required exams and i'm planning to graduate in December 2008.

i'm an open source software enthusiast and I have written free code since 1998. i'm the leader of the KVIrc project that is actually in a mature state. Other developers are taking care of it and i'm trying to expand my horizons by joining another open source team.

I have used KDE since 1998. In the past, I have contributed some artwork and several pieces of my code have indirectly ended up in the KDE codebase.
Because we can't get enough of Parley, Daniel Laidig writes about how he is adding a welcome screen to Parley:
A few days ago I committed a rather small addition to Parley that changes the visual appearance a lot: a welcome screen. Until now, Parley appeared showing a table view which is not exactly the most beautiful appearance I can think of, and certainly doesn't give the impression that learning vocabulary is fun (which is true, but the aim of Parley should be to make it fun!).

One way to make Parley look more appealing and to make it easier to use at the same time was to introduce a welcome screen. This screen is displayed instead of the table when no document is loaded and provides easy access to the most important actions, like creating a new collection, opening existing collections, and downloading new files via Get Hot New Stuff. There is a list of recent files which coincidentally resembles the welcome page of Gwenview a lot and provides Goya-powered buttons for opening the file or directly start practicing. With this, in 99% of the cases you just need one click to get started, however users who prefer the old behavior can still choose to automatically open the last file in the settings dialog.

My hope is that this will not be the last change to create an even better user interface for Parley in KDE 4.2. Frederik and I were discussing to start using KParts for the different modules (welcome, editor and practice) to create a more consistent interface. I don't know yet how easy that will be, since KParts don't support dock widgets yet, but hopefully that will change in the next few months.

Statistics

Commits 2292 by 247 developers, 7529 lines modified, 1455 new files
Open Bugs 16678
Open Wishes 14277
Bugs Opened 463 in the last 7 days
Bugs Closed 421 in the last 7 days

Commit Summary

Module Commits
/trunk/KDE
693
 
/trunk/l10n-kde4
347
 
/trunk/extragear
240
 
/branches/work
216
 
/trunk/playground
215
 
/trunk/koffice
153
 
/branches/kdepim
97
 
/branches/stable
64
 
/branches/extragear
57
 
/trunk/www
42
 
Lines Developer Commits
1043
 
Marc Mutz
244
 
222
 
Hamish Rodda
81
 
139
 
Gilles Caulier
59
 
31
 
Frank Osterfeld
53
 
191
 
David Nolden
52
 
118
 
Lukas Appelhans
52
 
158
 
Stefan Nikolaus
50
 
189
 
Allen Winter
50
 
99
 
Albert Astals Cid
50
 
9
 
Ivan Čukić
45
 

Internationalization (i18n) Status

Language Percentage Complete
Ukrainian (uk)
99%
 
Portuguese (pt)
99%
 
Swedish (sv)
99%
 
Greek (el)
99%
 
Estonian (et)
95%
 
Galician (gl)
93%
 
French (fr)
92%
 
Japanese (ja)
90%
 
Low Saxon (nds)
90%
 
Spanish (es)
89%
 

Bug Killers and Buzz

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 131 selections this week

Bug Fixes

Educational

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

Nice catch Avgoustinos!
And in time for 4.1.

Editing languages should work now.
- after adding and then immediately removing a language one of the existing languages would be blown away
- reload the languages after they have been changed

David Capel committed changes in /branches/work/soc-parley/parley/src:

Fix fixes, timers added (for now its only invisible ones -- visible ones will come later)
the theme was updated so a button could be shown (makes things more obvious for testing purposes)

Note to the wise: distro kde4 packages can cause trouble...

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

Fix UI bugs in the Options window, Catalogs tab. Certain controls (the star magnitude limits and
deep-sky catalogs) did not enable the Apply button when modified. The deep-sky catalogs changed
the map immediately without needing Apply or Ok, which is inconsistent. Now these controls behave
like all of the other options: Apply, Ok, and Cancel should all work on them as expected.

Thanks for pointing this out, James.

Jason Harris committed changes in /trunk/KDE/kdeedu/kstars/kstars:

Fixing a usability issue in the options window.
Toggling the view toolbar buttons now toggles the corresponding control in the options dialog.
This is useful for those who keep the options window open while using the program.

TODO: there's no meta-option for deep-sky objects in the options window. I'll ask translators if it's ok to add one for 4.2.

Thanks for pointing this out, James.

Graphics

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

Deleting an image that was no longer on disk resulted in an error dialog telling that it could not be deleted.

Now it will just act as if it did actually delete it, and take the image out of the database.

KDE Base

Craig Drummond committed changes in /trunk/KDE/kdebase/workspace/kcontrol/colors/colorscm.cpp:

Always export colours to Qt.
Save setting of "Apply colors to non-KDE4 applications" to kcmdisplayrc (as it was in KDE3) - this file is also used by the style kcm.

Craig Drummond committed changes in /branches/KDE/4.0/kdebase/workspace/kcontrol/kfontinst:

Send password in url, not meta data.

Diffs: 1, 2, 3, 4, 5 Revision 821408
Sebastian Sauer committed changes in /trunk/KDE/kdebase/workspace/plasma/applets/systemtray/systemtraywidget.cpp:

Fix crash.
This is the first half of a solution for bug #164320 and only fixes the crash while they are still remaining layout-problems.

Well, since we have tagging tomorrow, let's at least get this one in for beta2.

Craig Drummond committed changes in /trunk/KDE/kdebase/workspace/kcontrol/kfontinst/kio/KioFonts.cpp:

Fix refreshing of system font list.
Fixes the case where a font is deleted from fonts:/System, and then the user tries to immediately re-add the same font.

Office

Thorsten Zachmann committed changes in /trunk/koffice/kpresenter:

* Fix loading of sound event action.

So finally the sound event action works.

Diffs: 1, 2, 3 Revision 822111

Multimedia

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

Really mostly fix bug 161168 (JuK crossfading is teh suck).

We cache the VolumeFaderEffect object and include it in the pipeline at all times. What this does is allows
the volume changing to go smoothly when we try to start changing the volume of our playing track.

In addition phonon-gst crashes if I try to remove the fader effect afterwards and skips horribly if I don't
cache the fader effect.

Unfortunately phonon-xine suffers from crackling sounds with the fader effect left in the chain, so now
phonon-gst is the best backend to use for JuK. Both sound much better during the fading process though,
although phonon-xine still suffers from initial high volume on the incoming song.

This pretty much works for me now though, so I'm closing the bug.

Casey Link committed changes in /trunk/extragear/multimedia/amarok/src/servicebrowser/mp3tunes:

Fixed Copy to Collection so you can now copy (read: download) mp3tunes tracks to some other
collection!

Diffs: 1, 2, 3, 4 Revision 821347
Mark Kretschmann committed changes in /trunk/extragear/multimedia/amarok/src:

Refactor Meta::Observer so that we automatically unsubscribe all Meta subscriptions in the dtor.

This fixes many issues, e.g. you are now actually able to listen to more than 5 tracks in a row without crashes ;)

Also, it makes the code simpler, since we don't have to do manual bookkeeping.

The important API change is that you now subscribe/unsubscribe to Meta objects with subscribeTo(MetaPtr) / unsubscribeTo(MetaPtr); these two methods are built into the Observer base.

This was quite a bit of work, but I think it was worth it :)

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

Utilities

Rolf Eike Beer committed changes in /trunk/KDE/kdeutils/kgpg:

Rework file decryption

If the decryption fails the filenames of those files are shown.
The error message given in this case is not perfect, but because we are in string freeze I reused one that already existed.

Before this for every file to decrypt one KgpgLibrary object was created and never deleted again.

Now only one object is created for every decryption job (which may contain several files at once) and afterwards is properly destroyed.

Games

Ian Wadham committed changes in /trunk/KDE/kdegames/kubrick/src:

Fix the integration of Singmaster moves with all menu actions.
Change Demo shortcut to Ctrl+D and the Down move to D.
Clean up and remove debugging outputs.

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

Features

Development Tools

Richard Dale committed changes in /trunk/KDE/kdebindings/csharp:

* Add C# Plasma bindings
* Marshallers for the QHash based types needed
* A generic plugin like korundum/kpluginfactory is needed to start the Mono runtime in embedded mode

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 43 more) Revision 821080
Gopala Krishna A committed changes in /branches/work/soc-umbrello/umbrello:

Added widget resizing functionality to NewUMLRectWidget.

Now the user can resize any NewUMLRectWidget by clicking and dragging on any of the eight resize handles.

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 821183
Manuel Breugelmans committed changes in /trunk/KDE/kdevelop/plugins/xtest:

Preliminary Check runner.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 38 more) Revision 822669
David Nolden committed changes in /trunk/KDE/kdevplatform/language/duchain:

Implement global item-repositories for the identifiers and use it.
This is a bit complicated because the identifiers need to be kept manipulatable, so they internally keep two different states using specialized private classes, one "in repository", and one "changed" state.

Since now most identifiers should be shared in the item repository, this will reduce memory-usage, and we can easily store them to disk centrally.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 822791
Evgeniy Ivanov committed changes in /trunk/KDE/kdevplatform/plugins:

Added gitplugin with basic functionality. It can be used to create git-based projects ('git init' and 'git add' would be used) and it can do 'git add/commit/remove' inside Projects View. Also there are some little tests and another code whish is not used now. Somewhere the code needs cleanup, but it's ok.

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

Educational

David Capel committed changes in /branches/work/soc-parley/parley/practice:

Hopefully getting sound support to work and an (unintentional) source reformat.

TODO: test sounds (does anyone have a practice file with sounds?)

Akarsh Simha committed changes in /branches/kstars/summer/kdeedu/kstars/kstars:

Binding key 'B' to print useful debug information about unnamed star memory allocation.

Diffs: 1, 2, 3, 4, 5 Revision 821213
Akarsh Simha committed changes in /branches/kstars/summer/kdeedu/kstars/kstars:

+ Adding key binding 'F' to verify StarBlockList integrity (checks for large jumps in magnitudes between neighbouring StarBlocks in an SBL)

+ Adding key binding 'G' to print the structure of the LRU Cache

+ Adding timing code to output time elapsed in various segments of the most recent draw() loop, bound to key 'B'

+ Fixing quite a few serious bugs

+ Adding more error / warning messages

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 821318
Avgoustinos Kadis committed changes in /branches/work/soc-parley/parley/src/scripts:

calling a C++ function from a script works!!

Diffs: 1, 2, 3 Revision 822347
Avgoustinos Kadis committed changes in /branches/work/soc-parley/parley:

connected with 2 scripts on the same signal and it worked!!

Diffs: 1, 2, 3, 4 Revision 822379
Avgoustinos Kadis committed changes in /branches/work/soc-parley/parley:

automatically connecting signals with script functions works

Diffs: 1, 2, 3, 4, 5 Revision 822380
Aliona Kuznetsova committed changes in /branches/work/soc-stepgame/step/step:

Svg graphics for anchor.
Caching for pixmaps and sub-pixel rendering

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 822510
Akarsh Simha committed changes in /branches/kstars/summer/kdeedu/kstars/kstars:

Adding functionality to optionally go into frugal and very-frugal memory management modes.
These modes are very buggy, but give an idea of the excess time taken to read the harddisk.

Diffs: 1, 2, 3, 4 Revision 822677
David Capel committed changes in /branches/work/soc-parley/parley/src/practice:

Now has the capability to store incorrect answer for future use, however, it doesn't atm.

The question is where should we store them? Statistics? In the KEduVocExpression? A wrapper class (yuck)?

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

Graphics

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

digiKam from trunk: "Et Voila !!!" Now the Find Duplicates tool from digiKam core is fully functional. This one is based on Haar wavelets fingerprints managed by new digiKam database.

A screenshot : <a href="/issues/2008-06-22/files/findduplicatesview3.png">http://digikam3rdparty.free.fr/Screenshots/temp/findduplicatesview3.png</a>;

Note: with KDE4, the old FindImages kipi-plugin become obsolete wit digiKam.

Andi Clemens committed changes in /branches/extragear/kde3/graphics/digikam:

Album names are searched as well now when using the quickfilter.

Andi Clemens committed changes in /branches/extragear/kde3/graphics/digikam:

beginning to implement a thread safe plugin

* removed ImageChangeEvent -> added EventData to WorkerThread class
* removed all functions calls to kDebug and kapp

Andi Clemens committed changes in /branches/work/~aclemens/removeredeyes:

added function to display the removed red eyes in the ImagesList view

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

KDE Base

Matej Svejda committed changes in /trunk/playground/base/plasma/applets/peachydock:

Simple scaling animation works

Diffs: 1, 2, 3, 4, 5 Revision 820900
Mark Andrew Jaroski committed changes in /trunk/playground/base/plasma/applets/wifi-signal-strength:

a little applet which monitors wifi signal strength on a Linux system

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 1 more) Revision 820920
Sebastian Kügler committed changes in /trunk/playground/base/plasma/applets/grid:

New cell applet.
It just paints a color.

The cell applet will fill the empty cells in the grid, provide hover effects and should be replaced when a new applet is put in its place in the Grid.

Right now, it has "yellow" as its single feature.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 821227
Viacheslav Tokarev committed changes in /branches/work/khtml-blaze:

add support for fill-opacity, stroke-opacity

it makes screenshots look fancy ;)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Revision 821327
Craig Drummond committed changes in /branches/work/kfontinst:

Initial stab at using PolicyKit for the management of system-wide fonts.

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

support multiple drag from applet browser and multiple drop on containment

someone went to all the trouble to make the pixmap painting cute for the multiple situation, but didn't do the actual drag bit =P

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

Configuration dialog to set number of rows and columns.

Since relayouting on the fly isn't implemented yet, you need to restart plasma to load the applet with the new settings.

A bit inconvenient, maybe...

Diffs: 1, 2, 3, 4 Revision 822071

KDE-PIM

Bertjan Broeksema committed changes in /trunk/KDE/kdepim/kpilot/conduits/keyringconduit:

Implemented add/delete records in the viewer.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 821256
Jarosław Staniek committed changes in /branches/kdepim/enterprise4/kdepim/kmail/kmcommands.cpp:

Add "Overwrite All" button when user saves multiple attachments - reduces annoying repeated questions in this case.

Szymon Stefanek committed changes in /branches/kdepim/kmail-soc/kmail:

Yet more work on the MessageListView.

The view filling algorithm is starting to become very powerful but also complex.
I guess I'll have to add a lot of comments.

Work in progress :)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 8 more) Revision 821655
Marc Mutz committed changes in /branches/kdepim/enterprise4/kdepim/kleopatra/newcertificatewizard:

Suggest to create an encryption-only certificate with the same parameters if a signing-only cert has been created just now, and vice versa.

Diffs: 1, 2, 3 Revision 821800
Thomas Thrainer committed changes in /trunk/KDE/kdepim/korganizer/views/monthview:

Add scrolling support to the new month view. Scrolling is possible now using the mouse wheel, PgUp and PgDown and the buttons provided next to the month view.

This also fixes some issues in the month view (wrong size of scene rect, incidence scrolling issues).

Diffs: 1, 2, 3, 4 Revision 822172
Stephen Kelly committed changes in /trunk/KDE/kdepim/kjots:

Add completion and validation to the link dialog drop down for kjots links.

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

Office

Carlos Licea committed changes in /trunk/koffice/filters/kpresenter/kpr2odf:

->Added the converter of the background: color, gradient (still incomplete) and picture
->Added the function to create the PageLayout (KPR only has one of those)
->Added the function to create the MasterPage (same, only one in KPR)
->Changed the id of the pages to "page(No)"

Diffs: 1, 2, 3 Revision 821020
Stefan Nikolaus committed changes in /trunk/koffice/kspread:

UI
Switch to KDE's notification system for parsing errors.

Diffs: 1, 2, 3, 4, 5, 6 Revision 821113
Lukáš Tvrdý committed changes in /trunk/koffice/krita/plugins/paintops/cpaint/scratch:

Working anti-aliasing lines with thickness support, code is ugly, but at least something working.

Lorenzo Villani committed changes in /trunk/koffice/kexi/webforms:

* Updated templates by adding some useful links in pages
* Kwebforms can now create new records
* Updated TODO list

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 821439
Benjamin Cail committed changes in /trunk/koffice/filters/kword/msword-odf:

some work on lists and headers. Headers now display, and there's support for different headers for odd and even pages. There's still some cleanup to do in the code, though, now that it's finally working.

Diffs: 1, 2, 3, 4 Revision 821584
Thorsten Zachmann committed changes in /trunk/koffice:

* let the action know its id so that we can get to its factory and option widget.
* added KoActionEventData base class that can be passed to the option widget
* added KoActionEventWidget base that is used for configuring the special event action.
* work on sound action:
* use commands so that undo/redo work
* added option widget
* added way tp get the sound data from the event action
* export sound collection so it can be used in plugins

The new sound event action is not yet used during the presentation.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 10 more) Revision 821671
Simon Schmeisser committed changes in /trunk/playground/office/geoshape:

Undo/Redo now works

As a side effect, the document get's flaged as "changed" now if you change the view.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 4 more) Revision 822004
Simon Schmeisser committed changes in /trunk/playground/office/geoshape:

Initial Support for searching for placemarks

undo/redo has yet to be done

Fredy Yanardi committed changes in /trunk/koffice/kpresenter/part:

Initial work for Presenter View feature, currently it is disabled by default, and if enabled it only shows two synchronized canvasses, one canvas on each monitor. I hope this doesn't break anything.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 822559
Fela Winkelmolen committed changes in /trunk/koffice/karbon/plugins/tools:

Semplify the outline path of the calligraphic shape.
A function to simplify path shapes is added in KarbonSimplifyPath.{cpp|h}

It's still a bit unpolished, and one piece is missing, but for what I needed it already does the job.

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

Multimedia

Matthias Kretz committed changes in /trunk/playground/multimedia/phonon/phononplay:

show a small window for buffer progress

Diffs: 1, 2, 3, 4 Revision 821049
Scott Wheeler committed changes in /trunk/kdesupport/taglib/taglib:

Provisional .wav support. Tag writing will probably be disabled by default...

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 2 more) Revision 822160
Casey Link committed changes in /trunk/extragear/multimedia/amarok/src/servicebrowser/mp3tunes:

Final touch up. With this commit you can copy tracks to your Mp3tunes locker via Amarok!
~yay

Diffs: 1, 2, 3 Revision 822461
Seb Ruiz committed changes in /trunk/extragear/multimedia/amarok/src/collection/sqlcollection/SqlMeta.cpp:

Implement autofetching of images if there is no cover set and the album is non-empty. Adding this as a preliminary test to get feedback as to whether we want to include it by default.

I'm going to say that this can use a lot of optimizing, there are a few pathological cases that I have thought of and haven't handled:
- Cover auto-fetched, user removes. Restart application, cover gets autofetched again.

Networking Tools

Helmut Schaa committed changes in /branches/work/knetworkmanager/knetworkmanager-0.7/src:

Allow authentication algorithm selection for WEP connections

Will Stephenson committed changes in /branches/work/~wstephens/networkmanager:

Add a test service app and config UI using plugins

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 821217
Will Stephenson committed changes in /branches/work/~wstephens/networkmanager:

loading/saving configuration using kconfigxt working now works for the test service

Diffs: 1, 2, 3, 4, 5 Revision 821425
Helmut Schaa committed changes in /branches/work/knetworkmanager/knetworkmanager-0.7/src:

Add basic tooltips to the tray icon again

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 822433
Joris Guisson committed changes in /trunk/extragear/network/ktorrent:

Added very early beginnings of scripting plugin

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

Utilities

Jason Kivlighn committed changes in /branches/extragear/kde3/utils/krecipes/src:

Allow deleting from the ingredient matcher, and also remove recipes when they are deleted, whether from the ingredient matcher itself or elsewhere.

Diffs: 1, 2, 3 Revision 822074

Games

Stas Verberkt committed changes in /trunk/playground/games/ktron:

New renderer class to render svg theme, rebuild parts of tron code to support it.

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

Optimization

Graphics

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

Speed up populating the datebar with a factor of 4.
Before it took 6 seconds to delete an image due to that, now it only take 1.5 second on my machine.

This speed up should also be there for any operation that changes the amount of images shown in the datebar.

Office

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

When pre-rendering a section, save its type so that the post renderer can choose which sections to render.
Make the html renderer only render appropriate sections at appropriate times.

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

Other

Development Tools

Joachim Eibl committed changes in /trunk/playground/devtools/kdiff3:

Ported kdiff3plugin to KDE4.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 820921
David Nolden committed changes in /trunk/KDE/kdevplatform/language/duchain/duchainutils.cpp:

Cache the icons used in the completion list, and force them to be loaded by converting them to a pixmap, and then back to an icon.

This was necessary because on my quite ok computer(Athlon 64 3200+), the completion list has become unusably slow due to permanent icon loading.

Since we're supposed to have an icon cache, and it was faster before, this seems like a bug in KDE.
However, it will always be faster creating and loading the icons statically like this.

For me this makes the completion-list usable again.

Hamish Rodda committed changes in /trunk/playground/devtools/kdevelop4-extra-plugins/java/duchain:

Use the new AbstractUseBuilder

It's incredible how much of this code is language-neutral :)

Richard Dale committed changes in /trunk/KDE/kdebindings/csharp/kimono/tutorials:

* Add a KDE hello world app as part of the tutorials

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 821527
Hamish Rodda committed changes in /trunk/playground/devtools/kdevelop4-extra-plugins/csharp:

Starting to resurrect c# support

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 11 more) Revision 821645
Manuel Breugelmans committed changes in /trunk/KDE/kdevelop/plugins/xtest:

Introduce dolphin like fade in/out selection instead of checkboxes. Use oxygen icons.

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

Educational

David Capel committed changes in /branches/work/soc-parley/parley:

Various changes

Languages to use are no longer hardcoded, and should follow parley's preferences.
The input box now follows the practice_text_translation_background element
The prompt text kinda follows the practice_text_background element (this needs work)

The useless eduwidget.h header is now gone.

Themes are now accessed through a .desktop file and are stored in $APPDIR/parley/themes/

TODO: gui fixes, get KNS repo up and working

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 820706
David Capel committed changes in /branches/work/soc-parley/parley/practice:

Fixed a cmake warning
It now closes when the practice is done and the quit action works.
The randomizer theoretically works, but in reality doesn't.

Diffs: 1, 2, 3, 4, 5, 6 Revision 820975
David Capel committed changes in /branches/work/soc-parley/parley/practice:

Enabling sound and image prompts -- for now they share the same layout element, but should never be shown at the same time, so it's not a big deal.

I still need to do more testing on sound prompts...

Diffs: 1, 2, 3 Revision 821019
Frederik Gladhorn committed changes in /branches/work/soc-parley/parley/src:

switch over to using the new practice - I'll enable the old stuff tomorrow

Diffs: 1, 2, 3, 4, 5, 6 Revision 821626
Frederik Gladhorn committed changes in /branches/work/soc-parley/parley/src:

enable old and new practice at the same time
see [x]old dialogs in practice menu

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 821880
Jason Harris committed changes in /branches/kstars/unfrozen:

After numerous requests: create an unfrozen branch for non-GSoC KStars development.

David Capel committed changes in /branches/work/soc-parley/parley/src:

A couple of changes:
* The bar now measures progress instead of % correct. TODO change the names of the elementIds to reflect this (perhaps "bar_background" and "bar")
* Incorrect entries are added to the back of the active vocab list. You now must answer them all correct to finish successfully.
* cmake now installs the themes...
* New design: the logic classes (Statistics, PracticeEntryManager, AnswerValidator, Hint) can now keep pointers to each other (since they will exist in every
mode); however, the other gui, ui, etc classes will still be in the void, since they are optional and volatile.
* Update of TODO

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

Graphics

Mike Fenton committed changes in /branches/work/kst/portto4/kst/src:

Cleanup and enable GradientEditor.

Diffs: 1, 2, 3, 4, 5, 6 Revision 821863
Andi Clemens committed changes in /branches/work/~aclemens/removeredeyes:

removed preview image, this is old code from a test application I once wrote.
It is only wasting memory.

KDE Base

Christopher Blauvelt committed changes in /trunk/playground/base/plasma/applets/networkmanager/settings:

We're getting there.
Now all the machinery is in place to have a workings settings daemon for ethernet and wifi.

Now I just have to work out the bugs.

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

No margins in small panels, makes the pager better usable for tiny panels.

Allen Winter committed changes in /trunk/playground/base/plasma/engines/akonadi:

the Akonadi engine, for plasmobiff plasmoid.

Diffs: 1, 2, 3, 4, 5 Revision 821141
Sebastian Kügler committed changes in /trunk/KDE/kdebase/workspace/plasma/applets/battery:

Make the minimumwidth depend on the label on top of the battery.

This fixes the label being cut off when (in horizontal panels) the width of the text label > content height.
Likewise for vertical panels, but here it's actually a different issue since the text cannot be printed without some clipping in really small panels --
text normally is a bit wider than tall.

Maybe just rotating the text makes sense ...?

Michael Pyne committed changes in /trunk/playground/ioslaves/kio_perldoc:

Initial import of a Perldoc ioslave for KDE 4

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 821224
Sebastian Kügler committed changes in /trunk/playground/base/plasma/applets/grid:

* loadApplets becomes initApplets
* loading of an applet gets two functions, one taking a pointer to an applet, the other one taking a name, which will load a new applet

Dragging an applet from the appletbrowser into one of the grid's cells now actually works, yay :-)

Fredrik Höglund committed changes in /trunk/KDE/kdebase/apps/plasma/applets/folderview:

Show a vertical scrollbar when there are more icons than will fit in the view, and add support for scrolling the view.

Alessandro Diaferia committed changes in /trunk/playground/base/plasma/applets/previewer:

a plasmoid with the aim of previewing files using KParts technology

Diffs: 1, 2, 3, 4, 5 Revision 822047
Jarosław Staniek committed changes in /trunk/KDE/kdelibs/kio/kfile:

Add native mode to KFileDialog without affecting its API

It is useful for MS Windows (and Mac?) for improving native experience.
Native mode is the default on Windows.
Users demanding powerful facilities of KDE dialogs can set the following in kdeglobals:

[KFileDialog Settings]
Native=false

The same setting shall be available in the forthcoming "Integration" page of KDE system settings on Windows/Mac.

Details:
- qtFilter() added for converting filters from KDE format to Qt format
- In KDE code, KFileDialog instances are allocated and QDialog::exec() is executed; since we are using static QDialog functions in the native mode, exec() is reimplemented to call them
- KFileDialogPrivate::Native member added for storing information for KFileDialog instances so we know what to do when exec() is called; moreoved selectedUrl*() and selectedFile() methods work as expected for native mode too
- on the other hand, static functions like KFileDialog::getOpenFileName(), check the "native" setting directly using static bool KFileDialogPrivate::isNative()
- setMimeFilter() sets filter for use in Qt dialogs
- KFileWidget is instantiated as the code uses its subwidgets but we do not show any widget, it does not seem to be overhead
- to add more consistency, KFileDialog::getExistingDirectory*() functions use native dialog only for native mode (before native dialog was always used through #ifdef'd code on Windows)
- _qt_filedialog_*_hook hooks are now only used for KDE mode; and similarly to getExistingDirectory*() change, qt_filedialog_existing_directory_hook is set for KDE mode on Windows too; make KFileDialogQtOverride a class since it looks and smells like a class
- fix declaration of _qt_filedialog_*_hook functions: Qt exports them using Q_GUI_EXPORT, not C linkage as "extern" word would suggest before
- Native::startDir() and staticStartDir() are used for getting default start dir value when executing exec(). Thus we can call setSelection() before calling exec().
- QFileDialog handlers: clear hooks as soon as native mode is detected (we cannot check native setting in KFileDialogQtOverride() before KComponentData is instantiated)

Michael Leupold committed changes in /trunk/KDE/kdelibs:

Separate kwalletd from kded and make it a stand-alone executable.
It's started whenever the Wallet client API needs it.

Disabling wallet support in the options makes kwalletd not launch.

Dirk Mueller committed changes in /trunk/playground/base/kio_sysinfo:

Import of a KDE4 port of sysinfo:/ as released with openSUSE 11.0, from <a href="http://svn.opensuse.org/svn/kio_sysinfo/trunk">http://svn.opensuse.org/svn/kio_sysinfo/trunk</a>;

Plan is to use this place to share code with other distributions using the same code, e.g. Fedora

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 25 more) Revision 822223
Thomas Georgiou committed changes in /trunk/playground/base/plasma/applets/toggle-compositing:

Add toggle-composting from kde-look with updates to new api

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 4 more) Revision 822281
Albert Astals Cid committed changes in /trunk/KDE/kdelibs/kdeui/widgets:

Make kcombobox minimumsize bigger if the lineedit is a KLineEdit and it's editable
otherwise looks ugly because the clear button will cover the last 2/3 letters of the biggest entry

Nobody opposed for a week.

KDE-PIM

Jason vanRijn Kasper committed changes in /trunk/KDE/kdepim/kpilot/lib/options.h:

- bumping version number in anticipation of targetted KDE release.
- also, here's hoping we get some increased usage that will make it important to know what version our little users are using. =;)

Allen Winter committed changes in /trunk/KDE/kdepim/akonadi/resources/CMakeLists.txt:

disable the openchange resource again.

1. we can't seem to build it again with a recent libmapi
2. there's a GSoC project for it and this way the student can hack away without creating a branch

Allen Winter committed changes in /trunk/KDE/kdepim/akonadi/clients:

The plasmobiff plasmoid has been moved into playground/base, per vkrause.

Marc Mutz committed changes in /branches/kdepim/enterprise4/kdepim/kleopatra:

Bye, bye, Kleo 0.40

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 3 more) Revision 821500
Till Adam committed changes in /branches/kdepim/enterprise4/kdebase-4.0.83:

Copy the tag over here for internal releasing of the Kontact for Windows alphas.

Bertjan Broeksema committed changes in /trunk/KDE/kdepim/kpilot/conduits/base/tests:

w00t first test working. So we now have actually the first sign that the category syncing is working (somewhat).

Diffs: 1, 2, 3, 4, 5, 6 Revision 822272
Thomas McGuire committed changes in /trunk/KDE/kdepim:

Merge most of Kleopatra and libkleo from the enterprise4 branch, as discussed on the release team mailing list.

This needs an up-to-date kdepimlibs.

Surprisingly, svnmerge didn't choke on the huge list of commits, there were only two conflicts, in kleopatra/tests/gnupg_home/pubring.kbx and kleopatra/pics/kleopatra_splashscreen.png
Since those were binary files, I simply manually copied them over from the e4 branch instead.

I'm sure I'll get the price for the longest commit message for this.

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

Office

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

HTML export the 'correct' way.
Instead of copying the pre-renderer, which is a complex piece of code, extend the existing pre-renderer and pre-rendered document object to support 'sections' as well as 'pages'.

This allows the html exporter to be much simpler as it just iterates over the sections/objects in the pre-rendered document.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 821586
Thomas Zander committed changes in /trunk/koffice/libs:

The toolbox is something I initially based on some hacks in Qt3, but those didn't really seem to work the same in Qt4 leading to rather a broken toolbox.

The correct solution was to write my own layout manager so I did.
The layout now is heightForWidth() capable, but QDockWidget does not yet support that. I hope to change that in the future to have even better usability for the toolbox.

A huge advantage of this toolbox is that the 2-columns concept is no longer hardcoded.
The layout is much more dynamic.

Diffs: 1, 2, 3, 4, 5, 6 Revision 822543
Lorenzo Villani committed changes in /trunk/koffice/kexi/webforms:

* New template: it's based upon kde.org website so produced web pages are more consistent with KDE in general
* Persistent table listing on the left
* Some small improvements toward accessibility
* Reorgainzed webroot contents
* New table look (a bit improved, IMHO)
* Adapted some of the code in Read.cpp toward accessibility

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 57 more) Revision 822841
Simon Schmeisser committed changes in /trunk/playground/office/geoshape:

There is now a fallback png image saved with every geoshape, so that other office programmes can display at least this tiny little bit.

Diffs: 1, 2, 3 Revision 822882

Multimedia

William Viana Soares committed changes in /trunk/extragear/multimedia/amarok/src/context/containments:

Fixes in the layouting. No huge applets anymore but still not perfect. Applets are only being painted correctly when the Contex View is resized. Still some weird behaviour when the CV takes all the availiable space.

Matthias Kretz committed changes in /trunk/playground/multimedia/phonon/CMakeLists.txt:

revert, phononplay depends on kdelibs and can't move to kdesupport/phonon :-(

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

Revert "Adding some text".

1) I don't get the joke
2) That's not a problem, but..
3) The dialog makes Amarok crash on startup, which is a problem

Love, markey :)

Jeff Mitchell committed changes in /branches/amarok/popupdropper:

Check in Popup Dropper, v. 2.5

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

Make the OSD look nice again. I dunno what the point of the code was that I removed, but somehow the OSD looks a hell of a lot nicer without it ;)

Marco Gulino committed changes in /trunk/playground/multimedia:

Adding mplayerthumbs (ported to kde4)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 16 more) Revision 822509
Matthias Kretz committed changes in /branches/work/phonon-xine-with-engine-per-stream:

rename to Xine TNG and make it compile on its own

Diffs: 1, 2, 3, 4, 5, 6 Revision 822516
Dirk Mueller committed changes in /tags/phonon/4.1.83:

tagging phonon 4.1.83 (beta2) release

Matthias Kretz committed changes in /tags/phonon/xine-tng-0.1:

making a standalone release of this backend. I need more testers and can't move to trunk until after 4.1.

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

Synch with PUD v. 0.2.6.5.
This version contains support for line separators (you can set your own pen) and fixes issues when setting various overlays to close or not close on drag leave.

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

Networking Tools

Albert Astals Cid committed changes in /trunk/extragear/network/kio_gopher:

At last someone (Riddell) realized that I had all this nonfree doc here and kicked me, sorry for sucking and thanks for the kick

Diffs: 1, 2, 3, 4 Revision 821232
Sebastian Sauer committed changes in /branches/extragear/kde3/network/kmldonkey/libkmldonkey:

Removed support for the gift-backend which was never fully done anyway and only provides us gcc-warnings now. Thanks again to Carsten Lohrke for the hint :)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 3 more) Revision 821627
Detlev Casanova committed changes in /branches/work/soc-kopete-jingle/kopete/protocols/jabber:

* First Jingle ideas in place;
* Old Jingle directory cleaned.

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

User Interface

Ivan Čukić committed changes in /trunk/KDE/kdeplasmoids/desktopthemes/slim-glow/dialogs/krunner.svg:

Krunner now uses standard slim-glow border for dialogs

Harald Sitter committed changes in /trunk/playground/artwork/Oxygen/firefox/Oxygen:

remove firefox 2 stuff

Diffs: 1, 2, 3, 4, 5, 6 Revision 822363
Harald Sitter committed changes in /trunk/playground/artwork/Oxygen/firefox:

Welcome to Firefox 3 :-D
First public release is probably going to be next week, so read the README and give the theme a testride.

It replaces (almost) all GTK/Tango icons ... < 10 are missing oxygenish replacements (no really important ones though)

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

Utilities

Marco Martin committed changes in /trunk/KDE/kdeplasmoids/applets/luna/luna.cpp:

translate the painter of the right amount when rotated, so if you live in southern hemisphere you can actually use this applet :P

Pino Toscano committed changes in /trunk/KDE/kdeplasmoids/applets/kolourpicker/kolourpicker.cpp:

once again, a wrong solution to a not-yet-identified (communication with me) problem
as i ask repeately, i would *like* to have explanations, not patches committed blindly -- thanks!

Games

Stas Verberkt committed changes in /trunk/playground/games/ktron:

Placing KTron back from unmaintained

Stas Verberkt committed changes in /trunk/playground/games/ktron:

Basic KDE 4 port

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 11 more) Revision 822144
Stas Verberkt committed changes in /trunk/playground/games/ktron:

First KTron version with cool snake graphics.

Eugene, thanks!!

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

Other

Allen Winter committed changes in /trunk/quality/krazy2:

kpartgui .rc files are now supported.
to start, the following checks are being done:
contractions, spelling, endswithnewline, i18ncheckargs

Diffs: 1, 2, 3 Revision 820816
Dirk Mueller committed changes in /tags/KDE/4.0.83:

KDE 4.1 Beta2

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