prev
Issue 16
23rd July 2006
by Danny Allen
next


This Week...
KDevelop gets new configuration framework functionality. The start of a Satellite tracks feature in KStars. Support for PDF data extraction, and speed optimisations in Strigi. New features in KPhotoAlbum (KPhotoAlbum is the new name for KimDaBa). Perspective grid support in Krita, with the implementation of a Bezier tool becoming feature-complete. More work on unit conversions in KRecipes. Porting of KRDC to KDE 4.

This week saw the launch of Season Of KDE, a complementary effort to the Summer Of Code. Unfortunately, only 24 projects could be selected from over 200 Summer Of Code entries to KDE. The Season Of KDE is a great initiative to provide entrants who were unsuccessful with their Summer Of Code applications with the mentoring support and development framework to persue their projects regardless. As Jakob Petsovits says,
This is great news. I'm impressed that not only a few, but rather a high number of 14 students do this without being paid. This is more than half of the original Summer of Code students!

There are some pretty impressive projects within the Season Of KDE initiative. The students participating in the Season Of KDE have 4 months to work on their project, which ends up being excellent timing for both the students and KDE - when combined with the fruits of the earlier Summer Of Code event, these contributions will have a notable positive effect on the KDE 4 offering.

Aron Boström writes about his Summer Of Code project, titled "GMail-style conversations for KMail":
Traditionally, e-mail software has arranged its e-mails in a flat list sorted by time of sending. Unfortunately, human cognition doesn't arrange e-mails this way. One step in the right direction is to thread the e-mails in a logical way, as KMail can do with e-mail and the Dot does with comments.

But threading is not enough. Actually, it's a bit *too* logical for most human minds to arrange e-mails in such a tree structure. Furthermore, KMail threads has some other problems:
  • It's hopeless to navigate in a thread of 70-80 e-mails since most relevant information is indented past the right margin.
  • A thread is sorted by its root e-mail and not by its most recent e-mail.
  • Sorting is based on the time an e-mail was sent, not by the time the e-mail arrived. I suspect that humans prefer to work best with a kind of mixture of these two.
  • The sorting of a folder isn't honored inside a thread.
My SoC project is to implement a third approach, which is supposed to fit us humans better. This work is based on my studies in cognitive science and computer science. However, this is too much work for just the summer, so initially I will just implement the conversation metaphor in KMail. The conversation metaphor is best known from the way GMail works, the Google web based e-mail.

The conversation metaphor groups all related messages as a conversation, much like KMail threads. But where threads are a tree, a conversation is a plain flat list. The whole conversation is sorted by the date and time of its most recently received message. In the e-mail view, the entire conversation is shown, but old and already read e-mails are collapsed per default. Thus, the unread e-mails are shown per default, but the older ones are easily accessible.

At this stage, all the main parts of the implementation are "there", but the e-mail view is terribly bad and doesn't support collapsing or expanding e-mails. Furthermore only dummy data is used, not the akonadi backend. The conversation list is pretty much "finished", but not "done".

When SoC ends I have some wider plans, but I'm keeping them to myself to avoid the risk of vaporware. I like hard code to show my ideas rather than fluffy words.

George Staikos explains the motivation and process behind the Unity web rendering engine experiment:
I'm writing to fill in some more details about this "Unity" project. It's just a codename for our port of WebKit "tip of tree" (what we call trunk) to Qt4. This was an experiment we decided to try in Trysil to see just how easy it would be to merge with WebKit in this fashion, and how WebKit compares to our KHTML. My experience told me that, with a group of 3-4 hackers, we could have a working demo in about 3 days. This turned out to be very close to accurate, and so we have the code that was imported into SVN.

Our approach was to modify the core of WebKit as little as possible and only add our own porting layer into the platform component. As a webkit committer, I will be responsible for merging patches upstream while we continue with this fork of the WebKit code. Apple has expressed interest in having as much as possible of this code merged upstream. I think we can even put our cmake files and platform directory into the WebKit SVN.

All in all, this simply means that we have a port of WebKit to Qt4. The interesting part starts here. We can wrap this port with a KPart and really compare it to KHTML in trunk. If it turns out to be roughly equivalent from a technology point of view, then I think it would be great to start porting all of our recent work into WebKit. I'm referring to the work done recently by Allan, Germain, and Maksim in particular. If we were able to keep sync with WebKit (and possibly do some organizational shuffling), we would have a much larger developer base for our engine, while at the same time reducing the impact on our own development team. I think this is a win all-around. In the future, if we don't like where WebKit is going, then we can re-fork, so we're never committed.

In terms of organization, I would insist that we are equal partners with Apple and all other WebKit developers if we go down this road. KHTML is as important to us as it is to them, and our contributions are just as significant. I think we can work together as a team, and it's definitely worth a try.

KDE release co-ordinator Stephan Kulow announces a new policy for kdelibs, the most significant change being the shift away from fortnightly development snapshots of kdelibs, with development work now concentrated on the genuine /trunk/KDE/kdelibs/ module.

KDE 3.5.4 will be tagged on the 24th July 2006.


Statistics
Commits: 2450 by 201 developers, 6363 lines modified, 1119 new files.
Open Bugs: 13036
Open Wishes: 11310
Bugs Opened: 250 in the last 7 days.
Bugs Closed: 202 in the last 7 days.

Commit Summary
Module Commits
/trunk/KDE
722
/trunk/www
506
/trunk/extragear
250
/branches/stable
203
/trunk/l10n
153
/trunk/koffice
141
/trunk/playground
135
/branches/work
98
/branches/KDE
81
/branches/koffice
63
Lines Developer Commits
297
Laurent Montel
145
249
Stephan Kulow
143
90
Ludovic Grossard
83
226
Gilles Caulier
76
4
Sandro Giessl
46
91
Sebastian Trueg
43
44
Andras Mantia
43
85
Krzysztof Lichota
42
86
Matthias Kretz
41
112
Allen Winter
36

Internationalisation (i18n) Status
Language Percentage Complete
Swedish
99.99%
Portuguese
99.97%
Danish
99.45%
Spanish
95.90%
Dutch
94.48%
Estonian
94.06%
French
93.95%
Italian
94.37%
Greek
93.44%
German
90.76%

Bug Killers and Buzz
Bug Killer Number Of Bugs Closed
Andreas Kling
49
Gilles Caulier
14
Mark Kretschmann
13
Seb Ruiz
11
Martin Aumüller
11
Tommi Tervo
11
Joris Guisson
10
Klaus Niederkrüger
10
Oliver Kellogg
8
Maks Orlovich
8

Program Buzz
Amarok
  2867
Kopete
  1282
K3B
  1011
Kate
  913
KMail
  889
SuperKaramba
  703
Kontact
  633
Kicker
  592
KDevelop
  589
Quanta
  435


Person Buzz
Waldo Bastian
  303
David Faure
  300
Aaron Seigo
  258
Kurt Pfeifle
  257
Scott Wheeler
  253
George Staikos
  251
Tom Chance
  237
Cornelius Schumacher
  235
Boudewijn Rempt
  228
Carsten Niehaus
  222
Contents
  Bug Fixes Features Optimise Security Other
Accessibility
Development Tools [*] [*]
Educational [*] [*]
Graphics [*] [*] [*]
KDE-Base [*] [*] [*] [*]
KDE-PIM [*] [*]
Office [*] [*] [*]
Konqueror
Multimedia [*] [*] [*]
Networking Tools [*] [*] [*]
User Interface [*]
Utilities [*] [*]
Games [*]
Other


Bug Fixes
Development Tools
Jakob Petsovits committed changes in /branches/work/kdevelop-pg/examples/csharp:
Bugfix time for the C# parser (with 17055 test case source files):
95% passed test cases are better than 64%.
Diffs: 1, 2, 3, 4, 5 Revision 565380

Educational
David Saxton committed a change to /trunk/KDE/kdeedu/kmplot/kmplot/constants.cpp:
Fix KCalc's reading of KmPlot's exported constants.
It is a bit dodgy atm since KmPlot stores constants as expressions (e.g. "2+3"), but KCalc expects just a number, so both have to be written to the config file.
Diff Revision 563443

Graphics
Gilles Caulier committed changes in /trunk/extragear/graphics/digikam:
digikam from trunk : camera gui improvement and fix :

- fix rename customizer rule about custom prefix widget focus (#127614)
- Add small icon on top/roght of camera ites to indicate download status (#131034)
- Fix some minor internal bugs.
- Polish implementation.
- using d private class to speed up compilation
- camera gui support digiKam theme now. A screenshot :

http://digikam3rdparty.free.fr/Screenshots/camera_gui_with_theme_and_icon_download_status.png

BUG: 127614, 131034
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 13 more) Revision 564596

KDE-Base
Allan Sandfeld Jensen committed a change to /branches/KDE/3.5/kdelibs/khtml/html/html_formimpl.cpp:
Fix for yet again broken replies in osnews.com.
This implements the behavior on DOM level instead of at parsing. This also
means that a reparsed DOM should work.
BUG: 116790
Diff Revision 563771

Clarence Dang committed a change to /trunk/KDE/kdelibs/kdeui/kselectaction.cpp:
You should not be able to interact with actions that are supposed to have been deleted in clear().

This fixes an inability to keep items in the KolourPaint "View / Zoom" menu selected. KolourPaint was calling setItems() every time a zoom level was selected (evil, yes). This called clear(). KolourPaint then called setCurrentItem() and an apparently-deleted item was selected.

When the event loop was re-entered, the apparently-deleted items were really deleted, hence currentItem() would now return -1.

Unfortunately, this will sometimes trigger an assertion in Qt. Watch qt-copy for my next
0140-signalbug.diff commit.
Diff Revision 564740

Robert Knight committed changes in /trunk/KDE/kdebase/apps/konsole/konsole:
Prevent flickering on the tab bar and slowness with prompts such as the one suggested in http://bugs.kde.org/show_bug.cgi?id=47684#c4 which set the Konsole session name by ignoring updates if the old and new title are the same and buffering multiple calls to update the window/session/etc. title and icons
Diffs: 1, 2, 3 Revision 564950

Robert Knight committed changes in /trunk/KDE/kdebase/apps/konsole/konsole:
* Fix display of bold text. This got broken sometime in the KDE 3.x series I think.
* Enable Qt 4 double buffering to eliminate flickering
* Performance improvements by drawing text in chunks (split up by appearence) rather than by character. Also cut down number of calls
to QPainter::eraseRect().

Tested with Vim , cgdb and a few colour charts.
Background images and tints are still not working yet - more to do on that.
Diffs: 1, 2, 3, 4, 5 Revision 565268

KDE-PIM
Andreas Kling committed a change to /branches/KDE/3.5/kdepim/kandy/src/modem.cpp:
Fixed the well-known problem with garbled device paths.
Patch has been lying around on bugzilla for over a year.

BUG: 39420
BUG: 45640
BUG: 47383
BUG: 96883
BUG: 104596
BUG: 101575
Diff Revision 564537

Multimedia
Jeff Mitchell committed changes in /trunk/extragear/multimedia/amarok/src:
Lots of things:
1) Fix regression that happened when I tried to sacrifice sanity for speed.
2) Fix a few other highly uncommon bugs no one was ever likely to encounter.
3) Make ATF not require a restart to be activated!

Please note...I can't test the final few changes I just made yet, but I will later...compiles fine though.
Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 564317
View Visual Changes (to 1 file)

Martin Aumüller committed changes in /trunk/extr