m (add newlines) |
(add filenames for starting points) |
||
| Line 31: | Line 31: | ||
=== Folder quick search should have "Search" as initial search text === | === Folder quick search should have "Search" as initial search text === | ||
| − | '''Starting point:''' | + | '''Starting point:''' kmmainwidget.cpp |
'''Difficulty:''' Easy | '''Difficulty:''' Easy | ||
| Line 40: | Line 40: | ||
=== Pressing enter in the filter dialog opens the help by default === | === Pressing enter in the filter dialog opens the help by default === | ||
| − | '''Starting point:''' | + | '''Starting point:''' kmfilterdlg.cpp |
'''Difficulty:''' Easy | '''Difficulty:''' Easy | ||
| Line 49: | Line 49: | ||
=== The default column sizes of the message structure viewer are too small === | === The default column sizes of the message structure viewer are too small === | ||
| − | '''Starting point:''' | + | '''Starting point:''' kmmimeparttree.cpp |
'''Difficulty:''' Easy | '''Difficulty:''' Easy | ||
| Line 58: | Line 58: | ||
=== Add an indicator to the composer's toolbar whether the mail is in plain text or HTML === | === Add an indicator to the composer's toolbar whether the mail is in plain text or HTML === | ||
| − | '''Starting point:''' | + | '''Starting point:''' kmcomposewin.cpp |
'''Difficulty:''' Easy | '''Difficulty:''' Easy | ||
| Line 67: | Line 67: | ||
=== Move aggregation, theme and sorting options to the menubar === | === Move aggregation, theme and sorting options to the menubar === | ||
| − | '''Starting point:''' | + | '''Starting point:''' kmmainwidget.cpp, messagelistview.cpp/core/widgetbase.cpp, configuredialog.cpp, kmmainwin.cpp/kmail_part.rc |
'''Difficulty:''' Medium | '''Difficulty:''' Medium | ||
| Line 76: | Line 76: | ||
=== Unify options to enable or disable the tooltips in the folder and message list === | === Unify options to enable or disable the tooltips in the folder and message list === | ||
| − | '''Starting point:''' | + | '''Starting point:''' configuredialog.cpp, folderview.cpp, messagelistview/core/view.cpp |
'''Difficulty:''' Medium | '''Difficulty:''' Medium | ||
| Line 85: | Line 85: | ||
=== Better handling of empty column titles in the message list === | === Better handling of empty column titles in the message list === | ||
| − | '''Starting point:''' | + | '''Starting point:''' messagelistview/core/themeeditor.cpp, messagelistview/core/view.cpp |
'''Difficulty:''' Medium | '''Difficulty:''' Medium | ||
| Line 94: | Line 94: | ||
=== [http://bugs.kde.org/show_bug.cgi?id=187041 Bug 187041]: Folder filter persistent after restart === | === [http://bugs.kde.org/show_bug.cgi?id=187041 Bug 187041]: Folder filter persistent after restart === | ||
| − | '''Starting point:''' | + | '''Starting point:''' kmmainwidget.cpp |
'''Difficulty:''' Easy | '''Difficulty:''' Easy | ||
| Line 103: | Line 103: | ||
=== [http://bugs.kde.org/show_bug.cgi?id=186803 Bug 186803]: Missing newline in folder tooltip === | === [http://bugs.kde.org/show_bug.cgi?id=186803 Bug 186803]: Missing newline in folder tooltip === | ||
| − | '''Starting point:''' | + | '''Starting point:''' folderview.cpp |
| − | '''Difficulty:''' Dead Easy | + | '''Difficulty:''' Dead Easy (although you need an IMAP account with quota support to test the problem) |
'''Description:''' | '''Description:''' | ||
| Line 112: | Line 112: | ||
=== [http://bugs.kde.org/show_bug.cgi?id=185069 Bug 185069]: After renaming a SMTP account, the identities are not updated === | === [http://bugs.kde.org/show_bug.cgi?id=185069 Bug 185069]: After renaming a SMTP account, the identities are not updated === | ||
| − | '''Starting point:''' | + | '''Starting point:''' configuredialog.cpp, identitydialog.cpp |
'''Difficulty:''' Easy to Medium | '''Difficulty:''' Easy to Medium | ||
| Line 121: | Line 121: | ||
=== [http://bugs.kde.org/show_bug.cgi?id=182581 Bug 182581]: KMail should warn when creating a filter without a filter action === | === [http://bugs.kde.org/show_bug.cgi?id=182581 Bug 182581]: KMail should warn when creating a filter without a filter action === | ||
| − | '''Starting point:''' | + | '''Starting point:''' kmfilterdlg.cpp |
'''Difficulty:''' Medium | '''Difficulty:''' Medium | ||
| Line 130: | Line 130: | ||
=== [http://bugs.kde.org/show_bug.cgi?id=156653 Bug 156653]: Changing the font size has no effect on the separate reader window === | === [http://bugs.kde.org/show_bug.cgi?id=156653 Bug 156653]: Changing the font size has no effect on the separate reader window === | ||
| − | '''Starting point:''' | + | '''Starting point:''' kmreaderwin.cpp, kmreadermainwin.cpp |
'''Difficulty:''' Medium | '''Difficulty:''' Medium | ||
| Line 139: | Line 139: | ||
=== [http://bugs.kde.org/show_bug.cgi?id=71945 Bug 71945]: Refresh IMAP cache even enabled when action can't be used === | === [http://bugs.kde.org/show_bug.cgi?id=71945 Bug 71945]: Refresh IMAP cache even enabled when action can't be used === | ||
| − | '''Starting point:''' | + | '''Starting point:''' kmmainwidget.cpp |
'''Difficulty:''' Easy | '''Difficulty:''' Easy | ||
| Line 148: | Line 148: | ||
=== [http://bugs.kde.org/show_bug.cgi?id=89446 Bug 89446]: Convert more settings to [[Development/Tutorials/Using_KConfig_XT|KConfigXT]] === | === [http://bugs.kde.org/show_bug.cgi?id=89446 Bug 89446]: Convert more settings to [[Development/Tutorials/Using_KConfig_XT|KConfigXT]] === | ||
| − | '''Starting point:''' | + | '''Starting point:''' kmail.kcfg |
'''Difficulty:''' Easy (but possibly boring) | '''Difficulty:''' Easy (but possibly boring) | ||
'''Description:''' | '''Description:''' | ||
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:
The steps for your first coding contribution are roughly like this:
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) |
Starting point: kmmainwidget.cpp
Difficulty: Easy
Description:
Starting point: kmfilterdlg.cpp
Difficulty: Easy
Description:
Starting point: kmmimeparttree.cpp
Difficulty: Easy
Description:
Starting point: kmcomposewin.cpp
Difficulty: Easy
Description:
Starting point: kmmainwidget.cpp, messagelistview.cpp/core/widgetbase.cpp, configuredialog.cpp, kmmainwin.cpp/kmail_part.rc
Difficulty: Medium
Description:
Starting point: configuredialog.cpp, folderview.cpp, messagelistview/core/view.cpp
Difficulty: Medium
Description:
Starting point: messagelistview/core/themeeditor.cpp, messagelistview/core/view.cpp
Difficulty: Medium
Description:
Starting point: kmmainwidget.cpp
Difficulty: Easy
Description:
Starting point: folderview.cpp
Difficulty: Dead Easy (although you need an IMAP account with quota support to test the problem)
Description:
Starting point: configuredialog.cpp, identitydialog.cpp
Difficulty: Easy to Medium
Description:
Starting point: kmfilterdlg.cpp
Difficulty: Medium
Description:
Starting point: kmreaderwin.cpp, kmreadermainwin.cpp
Difficulty: Medium
Description:
Starting point: kmmainwidget.cpp
Difficulty: Easy
Description:
Starting point: kmail.kcfg
Difficulty: Easy (but possibly boring)
Description: