prev
Issue 129
21st September 2008
by Danny Allen
next


This Week...
Various work across Plasma, including improved applet handles with monochrome icons, work on the Weather Plasmoid and the start of an extender-based notification applet. Continued development in PowerDevil, including support for suspend. Long-standing "slow deletion of many files" bug is finally fixed. A System Settings module for choosing the default file manager. Basic implementation of red eye reduction in Gwenview. A generator for G3/G4 fax documents in Okular. Support for filter plugins in Kst. More work on code completion in KDevelop 4. Start of a D-Bus interface in Lokalize. First working implementation of KMenuEdit global shortcuts. Work on supporting different resources in the Akonadi OpenSync plugin. The return of Ark context-menu actions. Liechtenstein, Oman, and San-Marino maps in KGeography. Previews of slide transition effects in KPresenter now happen directly on the affected slide. A KFormula widget is extracted from KOffice and moved into kdelibs for use in other KDE applications. Work on porting Keep, a backup utility, to KDE 4. NEPOMUK query libraries move from kdereview to kdebase/workspace, with the search KIO slave moving into kdereview. A KDE 4 port of KnowIt, a note taking application, is imported into KDE SVN. Eigen 2.0 Beta 1 is tagged for release.

Ryan P. Bitanga introduces QuickSand, an alternative KRunner interface:
QuickSand is an alternative interface heavily inspired by the "Primer" interface of Quicksilver in Mac OS X.


QuickSand differs from the current KRunner interface in several ways. QuickSand has 3 different display modes: "Icon Parade", "Selected Item", and "Text" mode. The default display mode is "Icon Parade". Instead of displaying a line-edit, QuickSand presents the user with a matches pane asking the user to type something to be searched. Upon typing, the search string is displayed on the upper left corner of the matches pane. If matches are found, the number of matches is displayed on the upper right corner of the match pane. The icons are of the matches are lined up horizontally in the match pane and a pop-up completion box is shown to guide the user in selecting the appropriate match. The user can scroll through the available matches by pressing the up and down keys (when the pop-up box is shown) or the left and right keys.


Hitting <enter> will select the match and display only the selected item. Clicking on the arrow on the upper right corner of the match pane will toggle between "Icon Parade" and "Selected Item" modes.


If the user would rather see a line edit, pressing the <.> (dot) key will change the display to "Text" mode. A line edit will replace the scrolling icons in the match pane.

One of the primary reasons for writing QuickSand was to provide support for multiple actions. For example a match for an open application window can have several actions associated with it. The window can be minimized, set on all desktops, etc. QuickSand supports multiple actions in the same manner as matches for a search. If a particular match has several actions associated with it, an action pane appears below the match pane with the first action selected. Pressing <tab> will switch to the action pane and the user can select from the various available actions in the same manner as matches.


Hopefully, QuickSand will be provided as an option in KRunner allowing users to select between the default interface and QuickSand.

Another future development would be support for actions that require objects/targets. For example given a match for a file "screenshot.jpg" and an action of "e-mail to...", a possible object would be "danny@commit-digest.org". Support for objects would be as simple as placing an object pane below the action pane and displaying it whenever the currently selected action requires an object.

Gopala Krishna evaluates the progress made in the Summer of Code project for Umbrello:
Hi, my name is Gopala Krishna and I am currently pursuing Engineering in Information Science at Bangalore, India.

Umbrello is a KDE tool for UML drawing and it comes with the kdesdk module. Umbrello has been ported to KDE4 but still there are some rough edges here and there.

Google Summer of Code 2008 gave me an opportunity to contribute to KDE and I worked on the GraphicsView port of Umbrello and brought graphics bling into it. My mentor was the awesome Kubuntero, Jonathan Riddell.

I started with the literal Q3Canvas to GraphicsView transformation and intially succeeded removing the Q3Canvas dependency entirely. Of course, this broke almost all the drawing. Doing lots of string changes with the help of emacs, I could get the drawing back.

To continue, I had two choices for UML diagram widgets:
  1. Tweak the sources to restore all the broken stuff (mouse handling and others)
  2. Redesign them utilizing all the goodies provided by GrapicsView. (obviously more work but more futuristic)
I chose the second option as I love challenges! The first step was to redesign the base classes separately in a new namespace so that I could port the UML widgets incrementally. This base classes supported additional functionality like minimum/maximum size support, gradient fills, and so on.

Next came widget resizing mechanism. The previous version allowed resizing only from the bottom-right corner. I wrote a new class called WidgetHandle - a QGraphicsItem which handles all the resizing (all 8 locations) for a UML widget and also changes mouse cursor appropriately on hovering along any of the 8 locations. Here is file snapshot ;)


While trying to port UML widgets, I observed that a lot of widgets needed to display text and hence every class had to do lots of font calculation for handling drawing and geometry.

I came up with an idea to isolate all text handling stuff and I encapsulated them into TextItem and TextItemGroup classes. I evaluated the performance before this step, and you can find the results of evaluation here.


TextItems is one of the coolest parts of the project according to me, as this step led to the addition of support for rich text handling, hovering effects and tooltips, alignment, and also in-place editing of Widget's text quite easily. Isn't that cool?

Now almost all the UML widgets use TextItemGroups and TextItems to display their text which has freed them from the individual versions of font calculation code.

Here are screenshots of Umbrello showing some bling!


I am currently working on a new implementation of LinePath used to draw AssociationWidget lines. It sports new features, like highlighting the segment or point on the LinePath when the mouse hovers over it (for improved usability!):


My future plans involve integrating my work into trunk/ as soon as possible so that KDE 4.2 includes my work. I have plans to make the undo/redo handling more robust and implement cut/copy/paste based on XMI. And with the Umbrello community support, I think this is achievable :-)

The code is available at http://websvn.kde.org/branches/work/soc-umbrello/.


Statistics
Commits: 2364 by 216 developers, 7670 lines modified, 1686 new files.
Open Bugs: 17094
Open Wishes: 14474
Bugs Opened: 322 in the last 7 days.
Bugs Closed: 227 in the last 7 days.

Commit Summary
Module Commits
/trunk/KDE
825
/trunk/l10n-kde4
309
/trunk/playground
214
/trunk/extragear
156
/branches/work
146
/branches/stable
146
/trunk/l10n-support
95
/trunk/koffice
79
/branches/extragear
76
/branches/KDE
75
Lines Developer Commits
470
Gilles Caulier
213
307
Thomas McGuire
153
82
Chusslove Illich
74
2056
Volker Krause
74
139
Laurent Montel
67
163
Aaron J. Seigo
66
123
Dario Freddi
60
138
David Faure
51
100
Michael Jansen
43
49
Allen Winter
41

Internationalisation (i18n) Status
Language Percentage Complete
Portuguese
100%
Ukrainian
100%
Swedish
99%
Galician
99%
Greek
98%
Estonian
97%
Low Saxon
92%
French
91%
Spanish
88%
Japanese
88%

Bug Killers and Buzz
Bug Killer Number Of Bugs Closed
Robert Knight
23
Jaime Torres
17
Pino Toscano
16
George Kiagiadakis
12
Aaron J. Seigo
11
Roman Jarosz
10
Seb Ruiz
9
Thomas McGuire
9
Luboš Luňák
8
Stephan Kulow
7

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 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
89 %       Male
9.91 %       (unknown)
0.910 %       Female
Motivation
64.1 %       Volunteer
20.0 %       (unknown)
16.0 %       Commercial
 
Ages
56.5 %       (unknown)
25.2 %       25 to 34
19.1 %       18 to 24
12.7 %       35 to 44
4.36 %       45 to 54
1.10 %       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 [*]

There are 143 selections this week.

Bug Fixes
KDE-Base
Germain Garand committed changes in /trunk/KDE/kdelibs/khtml:
* avoid NVidia+Qt4 buffer clearing problems, by making our widgets have a private buffer.
* for the same reason, always fully clear our shared opacity buffers - or we might get artifacts on NVidia cards such as on www.codetch.com/screenshots/
Diffs: 1, 2, 3, 4, 5 Revision 861057

Rafael Fernández López committed a change to /trunk/KDE/kdelibs/khtml/rendering/render_replaced.cpp:
Send mouse move events to the hovered widget, now listviews are highlighted correctly where the mouse is
Bug 164664: [regression] unexpected highlightning in select elements
Diff Revision 861919

David Faure committed changes in /trunk/KDE/kdelibs/kio:
Finally fixing bug 43356: "deleting files in directories with more than 3000 files gets painfully slow" (from 2002, with 260 votes)

With model/view we can finally update the view in a better way: by chunks instead of item-after-item. This required adding a itemsDeleted signal to KDirLister, and some figure-out-consecutive-removals logic in KDirModel using QBitArray (for beginInsertRows).

Results:
Deleting 5000 files with konqueror-4.1: 8 minutes (30 seconds stat'ing, 5 seconds deleting, and then 7'25" until the view refreshes).

Deleting 5000 files with konqueror-trunk: 15 seconds (2 seconds stat+deleting, 13 seconds until the view refreshes).
Bug 43356: deleting files in directories with more than 3000 files gets pain...
Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 862165

Luboš Luňák committed changes in /branches/KDE/4.1/kdebase/workspace/kwin:
Disable shadow with effects that transform windows, such as wobbly, since shadow currently can't handle that. (bug 161330)
Bug 161330: Wobbly windows kwin effect mini conflicts whit the shadow one
Diffs: 1, 2, 3 Revision 862313

Kevin Kofler committed changes in /trunk/KDE/kdelibs/khtml: