prev
Issue 98
17th February 2008
by Danny Allen
next


This Week...
Configuration and layout work in Plasma. A whole load of Plasma backports from trunk to the KDE 4.0 branch (for KDE 4.0.2). Plasma applets begin to be ported to use WebKit from Qt 4.4. Color blindness simulation for KMag. Work on support for button form fields, and support for encrypted ODF documents in Okular. More developments in the porting and maintanence of Kooka. Remote KABC resource and an Akonadi to KCal bridge in Akonadi. UPnp integration in Kopete. A rewritten upload plugin for KDevPlatform (used in Quanta and KDevelop). Continued work on a new projection framework in Marble. Undo/Redo work using a "piece table" in Okteta. Optimisations in Kalzium, Amarok, and KGet. A KControl module for configuring imaplib resources in Mailody, and a module for managing emoticon themes in KDE. Start of work on Puck, a tool to convert the Plasma XML user interface format into C++ code. Experiments with a KDE 4 version of Kommander. A branch of KDEPrint to experiment with refactoring and porting to Qt 4.4 (for KDE 4.1). Decibel and the Plasma "Luna" and "Trash" applets move to kdereview. KSystemLog moves into kdeadmin. Import of Smoke and Ruby Plasma bindings. KDE 3.5.9 and KOffice 1.9.95.3 (KOffice 2 Alpha 6) are tagged for release.

Norbert Frese introduces his work on KIO-GIObridge:
The aim of KIO-GIObridge is that all desktop applications and file-managers share the same network transparency layer for working with network file systems like FTP, SFTP, SMB, WEBDAV, etc. Therefore KDE4, Gtk, and 3rd party applications can access the same file-server resources without logging in twice or facing other inconsistencies. At the moment we have two incompatible network transparency systems, running in the same desktop session for different groups of applications. Also, with the existence of two frameworks, a lot of 3rd party applications were locked out, as they didn't want to decide on one of them.

KIO-GIObridge is an optional adapter for KIO to use the new GIO/GVFS (the successor of GNOME-VFS) to handle the protocols mentioned above. GIO/GVFS has been chosen, because it's independent from desktop specific libraries, daemons and toolkits and only depends on D-Bus and GLib. Another advantage of GIO/GVFS is its "stateful" mount daemons: All the communication to a certain share is handled by a single mount daemon process. The life-cycle of those mount daemons is user-controllable (mount/unmount), similar to kernel or FUSE mounts.

KIO-GIObridge is implemented as "multi-protocol" IO-slave which delegates calls to GIO/GVFS and provides it's own implementation of remote:// to list GVFS mounts and let users "unmount" them. To use KIO-GIObridge it's necessary to patch kdelibs to support "multi-protocol" IO-slaves. Additionally, it's required to compile Qt4 with GLib-Main-Loop support (which is default on many distributions already).

There is also some experimental code in the KIO-GIObridge package, which extends Solid to handle GVFS mounts. With this extension, network mounts will pop up in the "places pane" just like other drives. Whether this is desirable is still being discussed.

KIO-GIObridge is almost finished and usable, but the translation of error-codes, dir-entries and the implementation of certain KIO file operations might still need some fine-tuning.

Along with KIO-GIObridge it would be advantageous to implement the "Desktop Bookmarks Storage Specification", to fix another file-management interoperability bug.

The plan is to have KIO-GIObridge finished as an optional extension for KDE 4.1. GIO/GVFS should be pretty mature by then, as it will be shipped with the next GNOME release.

As development on Kommander, the visual scripted application environment, has been quiet for quite a while, I asked Eric Laffoon for a development update:
Kommander development has been largely static for some time. Originally it was worked on by Marc Britton and it was extended by Michal Rudolf, who also did the new parser. I've mostly played my usual role in interface specification and test, though I have fixed a few bugs. Recently, [3] was getting burned out working on Quanta4 and so for a break we decided to put some polish on Kommander for KDE3. As it happens I'm building my internal business management tools with Kommander.

Currently we are not planning to do any further development on the KDE3 Kommander, but we do have a nice plugin system in place, so if I start to go nuts and want something to do I could add a stackwidget or something. I'm playing with a few plugin ideas that would be useful to me and anything good will be released on the web site. We've had discussions with other KDE developers about bringing the Kommander executor into the main KDE packages, like kdebase, so that it can reliably be there for end users and for developers wanting to use it to extend applications. One key stumbling block has been the issue of security, which we addressed with the 3.5.9 release and using an executable bit. In the future I'm looking at using digital signatures and MD5 sums with an online database where people creating and sharing applications can enable validation automatically and any discovered exploits could revoke an application's certificate. This would get around nag screens if the embedded key signature looked up a valid MD5 for the window in the database. Otherwise it would be up to the user to set the executable bit.

The current development for Kommander is in maintenance mode and bug fixing for now, but the current offering is quite competent. Andras is planning within a month or so to build a KDE4 executor. There are advances in Qt4/KDE4 that would offer differences in widgets and functionality, but for now it is possible to alter the executor to use DBUS instead of DCOP and simply port. This would mean you could run any (or almost any) Kommander program now in KDE4 natively. It would mean that you could develop new Kommander programs in the current editor for KDE4. It would even be possible to create plugins for specific KDE4 functionality.

Early availability of a more capable Kommander in KDE4 and the possibility of the executor being included with KDE base packages offers a promising future for Kommander. It may be possible to attract more developers. Kommander offers distinct advantages for prototyping and extending applications with visual scripting, as well as small to medium applications and command-line front ends. KDE4 development of Kommander will focus also on language neutrality. Currently any DCOP/DBUS enabled language has full access to internal commands, signals and slots and everything.

I have been having discussions with [person4], the author of Kross, about how to go about multi-language implementation. His suggestion was to create a Qt plugin. Regardless, this will not be difficult. Currently Kommander maps all it's functions in a registration process so that they are available in the Function Browser. Our idea for KDE4 is to make internal functionality directly accessible to any scripting language, which DBUS bindings already does nicely and this is widely available. Our further idea is to get users of other scripting languages involved in creating registration files that make their language functions appear in the Function Browser. Some of this may be possible automatically, but I'd like to see the ability to enable the Function Browser to be usable for PHP or Python or whatever, providing assistance for build in functions!

The thinking here is potentially revolutionary. Applications are visually drawn. Much of the functionality is calling compiled functions, so you have speed advantages similar to a compiled application and interface design even easier than most scripting GUIs. By incorporating multiple language support, the core tools can benefit from and provide benefits for various languages. The final element of the puzzle is that once the core design tool is built the extentions and supplemental tools can be built with Kommander. A new widget or project tool would support all users and projects could be built by teams of people using different languages for their parts.

The one final issue for KDE4 is at least a few months out, and that is how to build the new editor. It looks like the new Qt4 Designer may support what we need for visual design, just as it appears we may also be able to use the KDevelop platform too. We're using it for Quanta because it is so flexible and brings so many tools to the table.

It will probably be third or fourth quarter of 2008 before we can introduce a new KDE4 editor with new functionality, unless we have new developers involved, volunteer or sponsored. The objective will be to offer a tool that is accessible for novice developers to create small programs, and useful for more experienced developers for small to medium size projects. It will encompass any and all aspects of KDE development and offer most of the functionality. The small trade off will be offset in ease and speed of development and the fact that you can create custom plugins for whatever you need.

My hope for Kommander is to produce a tool that develops the critical mass that no scripting GUI tool has ever had because it has "no religion" when it comes to the dogma of languages. All are welcome. Also, Kommander does not care how visual elements are created and is natively "typeless", reducing the workload for the developer and reducing potential errors when creating programs. Modern computers are faster and more powerful, so a small trade off for ease of use is an idea whose time has come. Anyone wishing to get involved in development or sponsor this project is welcome to contact me.


Statistics
Commits: 2944 by 245 developers, 6750 lines modified, 1558 new files.
Open Bugs: 15948
Open Wishes: 13642
Bugs Opened: 310 in the last 7 days.
Bugs Closed: 303 in the last 7 days.

Commit Summary
Module Commits
/trunk/KDE
342
/trunk/l10n-kde4
262
/branches/stable
145
/trunk/extragear
114
/branches/KDE
97
/trunk/playground
82
/trunk/kdesupport
57
/branches/work
36
/trunk/www
34
/trunk/koffice
34
Lines Developer Commits
49
Khoem So
49
103
Gilles Caulier
41
83
Laurent Montel
38
98
Aaron J. Seigo
37
36
Andras Mantia
30
29
Chusslove Illich
29
60
Allen Winter
27
73
Pino Toscano
26
25
Eric Laffoon
24
69
Volker Krause
23

Internationalisation (i18n) Status
Language Percentage Complete
Portuguese
98%
Greek
95%
Swedish
95%
Japanese
92%
Estonian
86%
German
86%
Polish
85%
French
85%
Dutch
85%
Spanish
85%

Bug Killers and Buzz
Bug Killer Number Of Bugs Closed
Matt Rogers
49
Aaron J. Seigo
40
George Goldberg
32
Thomas McGuire
30
Pino Toscano
25
Joris Guisson
12
Peter Penz
12
Andras Mantia
11
Aleix Pol Gonzalez
7
Albert Astals Cid
7

Program Buzz
Amarok
  12280
KMail
  4840
K3B
  4275
Kopete
  3403
KDevelop
  2900
Kate
  2599
Solid
  2475
Plasma
  1988
Kontact
  1673
Kaffeine
  1541


Person Buzz
Tobias Hunger
  5020
Aaron Seigo
  3108
David Faure
  2610
Stephan Kulow
  1934
Allen Winter
  1521
Torsten Rahn
  1405
Adriaan de Groot
  1293
Laurent Montel
  1084
Jonathan Riddell
  1081
Sebastian Kügler
  894
Commit Countries

Commit Demographics
Sex
94.7 %       Male
7.25 %       (unknown)
1.72 %       Female
Motivation
50.5 %       Volunteer
40.3 %       (unknown)
12.7 %       Commercial
 
Ages
60.7 %       (unknown)
23.8 %       25 to 34
7.90 %       18 to 24
7.37 %       35 to 44
3.35 %       45 to 54
0.491 %       Under 18


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
Eric Laffoon committed a change to /branches/KDE/3.5/kdewebdev/kommander/editor/connectioneditor.ui:
Fixed usability issues. Not only was valuable space being wasted, it was too easy to forget to press connect because it was out of the visual and mouse path. Corrected, and current button placement still suggests usage.
Diff Revision 774126
View Visual Changes (to 1 file)

Eduardo Robles Elvira committed changes in /trunk/KDE/kdesdk/kate/plugins/symbolviewer:
Fix a kate crash when closing it and having loaded the kate's symbols viewer plugin.

The problem was that there was a nasty casting from KatePluginSymbolViewerView to Kate::PluginView, but KatePluginSymbolViewerView didn't inherit Kate::PluginView; so that when Kate::PluginView::writeSessionConfig() was called, the method was not found and kate crashed.

I tried first to just make KatePluginSymbolViewerView inherit from Kate::PluginView, but that doesn't work because that would be inheriting from two QObject subclasses (it inherits from KXMLGUIClient already) and that's not allowed by Qt.

So the solution was just creating a KatePluginSymbolViewerView2 and having KatePluginSymbolViewerView as a delegate. Can I backport this fix to KDE 4.0?
Diffs: 1, 2 Revision 775583

Eduardo Robles Elvira committed a change to /trunk/KDE/kdesdk/kate/plugins/findinfiles/kategrepdialog.cpp:
I've noticed that in KDE4, the "Find in Files" kate plugin doesn't have directory completion anymore for the "Folder:" combo box.

In the code I see cmbDir->completionObject()->setMode(KUrlCompletion::DirCompletion);. So in theory, it does have directory completion. I looked at the code in the Filesystem Browser to see how does it get completion working, and it seems that they manually create the completion object. I've done that, and it works.

Looking at the code of KCompletion* KCompletionBase::completionObject(), it's quite clear to me that what was happening is that completionObject() created a KCompletion object intead of a KUrlCompletion object.
Diff Revision 775753

Educational
Inge Wallin committed changes in /trunk/KDE/kdeedu/marble:
Fix issue with integer overflow and some cleaning.

We have found a number of places where integer overflow occured due to squaring of the radius. The radius can potentially be very big (it measures the current radius of the earth in pixels, which can get big in high zoom levels) and squaring it can cause overflow.

This patch fixes all instances that I could find by using either 64 bit integers or doubles.
Diffs: 1, 2, 3, 4, 5, 6 Revision 773138

KDE-Base
Vincenzo Di Massa committed changes in /trunk/playground/base/strigiplasmoid:
Fixed the kio_strigi kioslave. It was just nice to finish porting and debugging it.

I just did it for fun... when I made it work again they (#kde-devel) told me commit.

Here it is.

Waiting for webkit now?