I would like to improve the KMail user interface by introducing some new features and in the meantime help in the native Qt4 port. The main task would be to create a new message-list widget with great display capabilities and possibility of message grouping. The secondary tasks would be to implement a full-thread message view and help in remodeling the existing list/tree widgets in order to use the new Qt4 model-view approach. As a side effect I would also take care of some of the UI-related bugs and wishes reported by the users on bugs.kde.org.
I'm using KMail daily since years. It's a great application and I would like to help improving it yet more. My Google Summer of Code will serve as a kickstart in KDE development and will include the following tasks.
This task is present in the KDEPIM project ideas and it seems to be pending since 2006. The main goal is to compact message the view in order to allow having a three column layout for the main window, even on non-very-widescreen monitors. My idea is to introduce the following additions over the main goal.
1.a) Create a custom tree-like widget that handles rich text items.
The items will contain multiple lines of text with different attributes and possibly multiple icons. The widget will be configurable and will try to be backward compatible. That is, it will be possible to configure it in order to mimic closely the current Q3ListView behavior.
The widget could be useful also in other KDE applications so it could eventually end up in the kdeui library.
"Sketch" screenshots:
1.b) Support displaying logical message groups: "Today", "Yesterday", "Last Week"...
The groups will be displayed as separate trees with the group name as root item and the messages as children sub-trees. The root item appearance will resemble a paragraph header.
This is a widely requested and discussed feature. See http://bugs.kde.org/show_bug.cgi?id=41889 , for example.
1.c) Allow for additional sorting methods that can be chosen on-the-fly.
An example would be to have two date based sorting methods: one that considers only the top-level items (sort by thread start date) and another one that sorts by the latest message in the thread. This might also allow for switching from threaded view to a flat list on-the-fly (without the need of opening the options dialog, clicking apply etc...).
This task is another bugtrack wishlist entry: http://bugs.kde.org/show_bug.cgi?id=32400 .
1.d) Explore the possibility of having a minitools-like command bar attached to a side of the message view.
The kmail toolbar has only the most important operations in the default installation. Customizing the toolbar is an advanced operation that users often overlook. Marking a message as "To Do" is a very useful feature that is mostly unused since "too far" from the common user. Having such operations available on a small default command bar might enhance user's experience with KMail.
Another way to provide the same quick commands could be to implement graphical buttons in the message tree view described above.
1.e) Provide short message previews as tooltips.
I think that the task title is self-explanatory. You can see an sketch of the feature in the screenshot below.
Also this is task has been proposed in 2006. The idea is to allow the user to view a whole thread of messages in a single window. The messages should be properly ordered, formatted and possibly indented.
A closer look at the sources is needed in order to identify the feasible implementations but actually the guess is that it could be done by concatenating multiple messages in a single html file or maybe by using a scrollable view embedding multiple existing message viewers.
Qt4 has introduced a new approach to list and tree view widgets. They now offer a very different API and require the user code to be restructured in order to apply to the new model-view paradigm.
KMail has still several instances of "old style" list/tree widgets that substantially need a major rewrite. I will try to take care of as many as possible.
My name is Szymon Tomasz 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 opensource software enthusiast and I write 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 horizonts by joining another opensource team.
I'm using 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. I'm experienced in using the Qt library and have an idea about the KDE sources layout. I have already posted a first small patch that implements an "old style" to native Qt4 widget port and it has been evaluated as good by some developers found on the #kontact IRC channel.
I use the necessary development tools (subversion, gdb, valgrind...) since years and I'm accustomed to bazaar-like remote collaboration with others.
I'm native in two languages: Italian and Polish. I can read, write and speak English correctly enough to understand and be understood.
My curriculum vitae is available here.
| Approx. Date | Time Span | Task | Details |
|---|---|---|---|
| April 15 | Two Weeks | Project Startup |
|
| May 1 | 1 Month | Begin coding |
|
| June 1 | 1 Month | Code the message-list |
|
| July 1 | 1 Month | Code the full-tread view and other filler tasks |
|
| August 1 | 2 Weeks | Mentor Evaluation |
|
| August 15 | - | Project End |
|