prev
Issue 18
6th August 2006
by Danny Allen
next


This Week...
Support for PostScript page deletion and editing of metadata in KViewShell, and for using a SQL backend with KPhotoAlbum (feature derived from KexiDB). Strigi gets support for inotify. Plasmagik, an application to assist developers in making "Plasmoids" (Plasma applets), is imported into KDE SVN. Rendering development work continues in the Unity web rendering engine. Work stars on a "Magnetic Outline Selection" tool for Krita.

Tom Albers introduces his new project, KTU, which stands for KDE Translation Updater - a tool for using and managing interface translations fresh from the KDE source repository:
A couple of weeks ago I started working on KTU. The idea is to create an interface to fetch translations straight from KDE SVN and install them for the user. Translations can be downloaded and installed on a per-application basis.

A great use of KTU is in providing feedback to new translators, as they no longer have to wait untill there is a new point release of KDE to see their work, and of course, using KTU (with its GUI interface) is a lot better then installing translations manually and trying to keep track of them.

The development of KTU completes an old wish from me from several years ago. At that time I created a proof-of-concept based on some bash scripts and kdialog dialogs. Adriaan de Groot then helped to port it to C++, but we ran into some technical problems (read: I did not know any C++ or Qt) and we lost interest due to lack of time, and KDE transitioning from CVS to SVN did not help either.

I have just released version 0.0.2 with a bunch of features; some screenshots and tarball at kde-apps, kubuntu packages are available at my repository.

I would love for users (especially those involved in the translation scene) to try out KTU and give me feedback!

Though not thought to be humanly possible, Andreas Kling has crushed his record of 102 bugs last week, with a mighty 121 bugs closed this week. This is an achievement so great that i'm running out of worthy adjectives!


Statistics
Commits: 2427 by 194 developers, 5511 lines modified, 1677 new files.
Open Bugs: 13012
Open Wishes: 11399
Bugs Opened: 316 in the last 7 days.
Bugs Closed: 361 in the last 7 days.

Commit Summary
Module Commits
/trunk/www
525
/trunk/KDE
484
/trunk/l10n
298
/branches/stable
237
/trunk/playground
187
/branches/work
184
/trunk/extragear
174
/trunk/koffice
104
/branches/koffice
67
/branches/KDE
52
Lines Developer Commits
271
Laurent Montel
126
112
Thomas Nagy
56
107
Dirk Mueller
52
54
Ludovic Grossard
48
46
Rinse de Vries
46
90
Marcus Furlong
45
145
Rainer Endres
34
93
Nicolas Goutte
33
88
Thomas Zander
33
87
David Saxton
33

Internationalisation (i18n) Status
Language Percentage Complete
Portuguese
99.99%
Swedish
99.54%
Danish
99.47%
Spanish
96.84%
Dutch
96.22%
Estonian
94.36%
French
93.92%
Italian
94.19%
Greek
93.20%
German
91.48%

Bug Killers and Buzz
Bug Killer Number Of Bugs Closed
Andreas Kling
121
Alexandre Pereira de Oliveira
25
Luboš Luňák
24
Joris Guisson
16
Stefan Nikolaus
15
Martin Aumüller
13
Seb Ruiz
12
Roman Jarosz
9
Stefan Borggraefe
8
Oliver Kellogg
7

Program Buzz
Amarok
  2922
Kopete
  1314
K3B
  1006
KMail
  905
Kate
  889
SuperKaramba
  701
Kontact
  640
KDevelop
  628
Kicker
  572
Quanta
  455


Person Buzz
Tom Chance
  275
Waldo Bastian
  265
Scott Wheeler
  246
George Staikos
  245
Kurt Pfeifle
  236
Boudewijn Rempt
  225
David Faure
  222
Aaron Seigo
  212
Carsten Niehaus
  205
Jonathan Riddell
  202
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
Andreas Pakulat committed changes in /branches/work/kdevelop-qmake4/buildtools/qmake:
Fix various bugs reading/writing project files, now Qt4 support is really working.
Diffs: 1, 2, 3, 4, 5 Revision 567865
View Visual Changes (to 1 file)

KDE-Base
Kurt Hindenburg committed changes in /branches/KDE/3.5/kdebase/konsole/konsole:
Fix to display bold. For those for whom bold worked in KDE 3.5.3, this is the regression fix. For those, like me, for whom bold never work, this is the fix.

No patch is needed for KDE4 as bold works there.
Bug 131770: no bold is displayed in konsole
Diffs: 1, 2 Revision 570194

KDE-PIM
Ingo Klöcker committed changes in /branches/KDE/3.5/kdepim/kmail:
Fix bug 126837 (KMail does not correctly detect UTF-8 encoding)
Fall back to automatic encoding if we encounter an unknown encoding.
Bug 126837: KMail does not correctly detect UTF-8 encoding
Diffs: 1, 2 Revision 568026

Allen Winter committed changes in /branches/KDE/3.5/kdepim/libkcal/libical/zoneinfo:
Fill in some gaps missing from libical's zoneinfo.
These are simply copies of existing .ics files.

The hard part comes now: To create new .ics files
for ~15 zones that exist in /usr/share/zoneinfo/zone.tab
but don't exist in the libical zoneinfo database.
Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 568936

Multimedia
Seb Ruiz committed a change to /trunk/extragear/multimedia/amarok/src/playlistbrowseritem.cpp:
Some podcasts come with no date, so they will be ordered by the insertion order in the feed.

This fixes a regression brought upon by the changes in the parsing in podcast feeds.
Remove the ElementList class - there is no need to do sorting of the feed before we insert it.
Diff Revision 567834

Andreas Kling committed changes in /trunk/extragear/multimedia/amarok/src/dbsetup.ui:
Don't show MySQL settings when compiled with PostgreSQL support only.
Bug 120194: postgresql setup box contains mysql related options
Diffs: 1, 2 Revision 569848
View Visual Changes (to 1 file)

Networking Tools
Joris Guisson committed changes in /trunk/extragear/network/ktorrent:
Made sure that average speed is displayed as zero when a torrent is imported
Diffs: 1, 2, 3 Revision 567803

Utilities
Jason Kivlighn committed changes in /trunk/extragear/utils/krecipes/src:
-Clean up the USDA weight portion of the import.

What it does now is looks at a list of known units and prep methods.
If the unit of an entry is in the list, it'll create a weight entry
using it. This way, an arbitrary number of units won't end up being
created, only those in the list can be created from the import.

The unit is considered the part before a comma, the rest is the prep method.
Once the unit is accepted, it checks that the prep method matches one of
the acceptable entries. If it does, it adds the weight using that prep
method. If not, it stills adds the entry, but without whatever extra
info the USDA entry held (which most often isn't of importance).

-Fix some indexes in the SQLite database. Some weren't being created
which would slow things down a bit.
Diffs: 1, 2, 3 Revision 570167

Features
Development Tools
Allen Winter committed changes in /trunk/playground/devtools/krazy:
added Andreas' new passbyvalue plugin (a C++ program)
Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 568051

Jakob Petsovits committed changes in /branches/work/kdevelop-pg/src:
Implement backtracking for kdevelop-pg.
(Also known as LL(k) for poor people ;)

The new backtracking construct "try/rollback" is able
to replace all your hand-adapted lookahead hacks.
Use it for conflicts that require arbitrary-length LL(k) lookahead.
Don't use it when you can determine the upcoming rule with
simple [: LA(2).kind == Token_BLAH :] checks.


Old solution
(with lookahead_is_conflicting_item_1() being defined somewhere else):

(
[: lookahead_is_conflicting_item_1() == true :]
var1=conflicting_item_1
|
var2=conflicting_item_2
)

New solution:

try/rollback(var1=conflicting_item_1) catch(var2=conflicting_item_2)


It works this way:
- try to derive conflicting_item_1
- if there are no parsing errors, proceed.
- if there are any errors, go back to the token where
conflicting_item_1 started, and derive conflicting_item_2.
On errors, conflicting_item_1 is not assigned to var1.

Note that if you have multiple annotated items inside the try block
("try/rollback(var1=item1 var2=item2) catch(...)")
and there are parsing errors in item2, then the item1 node is still
assigned to var1. So, it's best to only have single items inside
a try block.

This commit also renames recover(...) to try/recover(...),
as there are many similarities to try/rollback.

If the grammar is using either try/recover or try/rollback constructs,
you now have to provide custom stuff for parser state management:
- a struct named parser_state containing all the variables
that may change during parsing. (It can also be an empty struct.)
- two parser class methods:
* copy_current_state() returns a new parser_state object, or 0
* restore_state() restores the variables in the given
parser_state object back to the parser class.

This is required for a clean rollback or recovery, for parsers
that change some state variables in code segments.
(Like the ltCounter variable in the Java and C# parser.)

Also, the yy_expected_token() and yy_expected_symbol() methods
must now return void instead of bool.

Sorry for the long commit message :]
Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 9 more) Revision 568589