[Kde-pim] Google Summer of Code Application - KMail
Szymon Stefanek
pragma at kvirc.net
Wed Mar 26 05:17:36 GMT 2008
Hi all!
I plan to apply as a student in Google Summer of Code and I've spotted
the small paragraph about KMail in the ideas page.
It's about improving the message view by supporting multiline text.
I'm using KMail daily since years and I'd like to take care of the task
and maybe contribute other code around. GSoC would be also my entry point
to KDE development.
The simple "multiline text" task IMHO might be too "small" for GSoC so my
proposal contains more ideas and also a generic "help in the Qt4 port" to
fill in the time span that may remain at the end of the project.
I would like to have some feedback about the proposal
and maybe some hint about a possible mentor.
First of all I've played a bit with the current kmail trunk and came
out with the following screenshots:
http://labs.pragmaware.net/misc/kmailsnap1.png
http://labs.pragmaware.net/misc/kmailsnap2.png
http://labs.pragmaware.net/misc/kmailsnap3.png
http://labs.pragmaware.net/misc/kmailsnap4.png
http://labs.pragmaware.net/misc/kmailsnap5.png
This is how a multiline message view could look like.
The shots are obtained by hardcore hacks in the Qt3-compat
headeritem painting code and by some gimping (4 and 5).
Here are the keypoints of the application.
- Create a message view with rich items.
I'd actually like to have more than just multiline.
Rich items that allow painting multiple text items and multiple
pixmaps on multiple lines.
In the screenshots you can see some examples. The sender is left aligned
in the first line, the date is right aligned in the first line
and the subject is left aligned and elided in the second line.
We have more space so we also can display more state pixmaps.
We could explore the possibility of grouping toplevel items.
Examples of groups might be "Today", "Yesterday", "Last Week", "Last Month",
"Search Results" etc... (see http://labs.pragmaware.net/misc/kmailsnap4.png
for example).
Multiline items would rule out simple sorting by clicking on the column.
I'd be then tempted to remove the columns at all and specify sorting by a
combo box. (still in http://labs.pragmaware.net/misc/kmailsnap4.png).
This would allow for more sorting rulesets possibly more sophisticated.
Sorting could include grouping rules as described above.
All this stuff would require a custom widget to be defined. Well, we could
use QTreeView but it would add several constraints to the ideas expressed
above. With grouping it would be something similar to a specialized
QTreeView with different kinds of rich-text items, no branches and no
column headers.
Implementing a totally custom widget could introduce problems with styling
but would also allow for great optimisations: the message view must be fast.
Such a custom widget could be useful also for other applications. Korn for
example. It could eventually end up in kdeui.
- Implement tooltip based message preview in the view.
Such a tooltip is faked in http://labs.pragmaware.net/misc/kmailsnap5.png
- Port the message view to native Qt4
Actually the message view is implemented by using the Qt3 support
classes. I will port it to use only native Qt4 classes and maybe
adapt it to use the standard model-view architecture (to be discussed
in detail).
- Implement the relevant configuration items/pages for all of the above.
- Remove Qt3 support from kmail sources and other relevant places
I see that there are still several instances of Q3*/K3* classes
floating around. I'd like to help in replacing them with native Qt4 code.
Result at the end of GSoC: kmail (and maybe other apps) no longer requiring
Qt3 support. I already have a certain experience in porting huge apps
from one major version of Qt to another :)
Other related hints are obviously welcome.
--
Szymon Stefanek
------------------------------------------------------------------------------
-
- Will design spacecraft for food.
-
------------------------------------------------------------------------------
_______________________________________________
KDE PIM mailing list kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/
More information about the kde-pim
mailing list