Projects/PIM/KMail Junior Jobs

< Projects‎ | PIM
Revision as of 15:18, 20 March 2009 by TMG (Talk | contribs)

Jump to: navigation, search


KMail Junior Jobs

On this page, you'll find small coding jobs for a beginner to work on. All these problems are relatively easy, some of them might even be one-liners. Of course, it is always a good idea to find your own thing to fix, the best motivation is scratching your own itch.

These tasks are intended for beginners with little or no experience programming with KDE. For those beginners, the biggest challenges are not actually the coding problems, but setting the development environment up, finding the correct place of code where the bug happens (in the jungle of all those source files) and interacting with the community, with the final step being sending the patch.

The knowledge prerequisite for those jobs are not that big. You should be familiar in C++, and knowing Qt a bit would help. Knowing kdelibs or KMail internals is not required, that can usually be picked up during coding.

For more general information, visit the following places:

  • KDE Techbase: Contains a lot of information about developing KDE, in particular a section on how to build KDE from source
  • KMail's HACKING file: Some KMail specific information.

The steps for your first coding contribution are roughly like this:

  1. Build KDE trunk from sources, including KDEPIM
  2. Set up your development environment, i.e. your editor or IDE
  3. Pick something to work on, like some of the things suggested below
  4. Start coding and fix the problem!
  5. Send in a patch

Should you need help, feel free to ask us in the #kontact IRC channel.

If you find some information missing, feel free to add it to this page after you learn it.

Below follows a list of junior jobs. It always includes a rough location where in the KMail sources to start.

This section needs improvements: Please help us to

cleanup confusing sections and fix sections which contain a todo

As you can see, the section below is not yet filled out. I'll try my best to fill it out. --TMG 23:33, 19 March 2009 (UTC)

Folder quick search should have "Search" as initial search text

Starting point: kmmainwidget.cpp

Difficulty: Easy

Description: The folder list on the left can have a similar quick search as the message list has, by enabling it in the configure dialog. However, it is missing the text "Search" that is shown by default in the message list quick search. It is your job to add that to the folder quick search as well.

The default column sizes of the message structure viewer are too small

Starting point: kmmimeparttree.cpp

Difficulty: Easy

Description: When starting KMail for the first time (i.e. empty kmailrc configuration file), the column sizes for the message structure viewer are not good. The name column is too small, although it should be the largest. KMail should provide good default column sizes for the default window size.

Add an indicator to the composer's toolbar whether the mail is in plain text or HTML

Starting point: kmcomposewin.cpp

Difficulty: Easy

Description: Currently, there is no easy way to see if a message will be sent as plain text or as HTML (+plain text). An indicator in the status bar would help here. Maybe the indicator should even be colored for a HTML message.

Move aggregation, theme and sorting options to the menubar

Starting point: kmmainwidget.cpp, messagelistview.cpp/core/widgetbase.cpp, configuredialog.cpp, kmmainwin.cpp/kmail_part.rc

Difficulty: Medium

Description: Currently, there are 3 little comboboxes next to the quick search dialog, that control the theme, aggregation and sort order. Experience has shown that people don't find it there. Your task is to clean this up a bit. Move the 3 little comboboxes to the menubar, as submenues of the View menu. Also, make those submenus available when right-clicking a header of the message list. Also, it would be nice to add settings to the configure dialog to change the default theme, aggregation and sort order.

Unify options to enable or disable the tooltips in the folder and message list

Starting point: configuredialog.cpp, folderview.cpp, messagelistview/core/view.cpp

Difficulty: Medium

Description: The message list and the folder list both have tooltips that can be enabled or disabled. However, the options for this are not in the same places. The folder list tooltip can be disabled by right-clicking the header of the folder list, while the message list can only be disabled in the configure dialog. Your job is to unify this: add an option to disable the folder list tooltip to the configure dialog, and an option to disable the message list tooltip to the message list header context menu.

Better handling of empty column titles in the message list

Starting point: messagelistview/core/themeeditor.cpp, messagelistview/core/view.cpp

Difficulty: Medium

Description: When using the classic theme, you can select additional columns by right-clicking the header. There are many icon-only columns here, like Action Item or Signature. For those icon columns, the column header text doesn't fit into the width, and this looks bad. Your job would be to add an option to the theme editor like Don't display column header text. This would simply show nothing as the column header, but still show the column names in the context menu. Also, the default themes should be adjusted to use this.

Bug 187041: Folder filter persistent after restart

Starting point: kmmainwidget.cpp

Difficulty: Easy

Description: When the folder quick search is enabled, a restart of KMail doesn't clear the folder. It should clear it, to avoid confusion and be consistent with the message list

Bug 186803: Missing newline in folder tooltip

Starting point: folderview.cpp

Difficulty: Dead Easy (although you need an IMAP account with quota support to test the problem)

Description: The screenshot of the linked bug report says more than 1000 words. Your job is to fix that bug.

Bug 185069: After renaming a SMTP account, the identities are not updated

Starting point: configuredialog.cpp, identitydialog.cpp

Difficulty: Easy to Medium

Description: Identities can be tied to an outgoing SMTP account with the Special Transport setting in the advanced tab. However, that setting is lost when an SMTP account is renamed. Your job is to find out why that happens and fix the problem.

Bug 182581: KMail should warn when creating a filter without a filter action

Starting point: kmfilterdlg.cpp

Difficulty: Medium


Bug 156653: Changing the font size has no effect on the separate reader window

Starting point: kmreaderwin.cpp, kmreadermainwin.cpp

Difficulty: Medium


Bug 71945: Refresh IMAP cache even enabled when action can't be used

Starting point: kmmainwidget.cpp

Difficulty: Easy


Bug 89446: Convert more settings to KConfigXT

Starting point: kmail.kcfg

Difficulty: Easy (but possibly boring)


KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V.Legal