[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