https://techbase.kde.org/api.php?action=feedcontributions&user=Dymo&feedformat=atomKDE TechBase - User contributions [en]2024-03-29T00:58:50ZUser contributionsMediaWiki 1.40.2https://techbase.kde.org/index.php?title=Schedules/KDE4/4.1_Feature_Plan&diff=22103Schedules/KDE4/4.1 Feature Plan2008-03-16T16:35:12Z<p>Dymo: /* kdelibs */</p>
<hr />
<div>__NOTOC__<br />
= Instructions =<br />
<br />
Deadline for adding entries here for the 4.1 release is '''31 March 2008'''.<br><br />
Entries added after that date will be scheduled for the 4.2 release.<br />
<br />
todo => not started yet<br><br />
in-progress => started, but not completed yet<br><br />
done => completed<br />
<br />
= kdelibs =<br />
{| class="sortable" border="1" cellpadding="5" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;"<br />
|- style="background: #ececec; white-space:nowrap;"<br />
! Status !! Project !! Description !! Contact<br />
{{FeatureDone|kdeui|Add KFadeWidgetEffect to easily add fading UI transitions to KDE applications|kretz@kde.org|Matthias Kretz}}<br />
{{FeatureDone|kross|Add QtScript support|mail@dipe.org|Sebastian Sauer}}<br />
{{FeatureDone|Phonon KCM|More UI feedback|kretz@kde.org|Matthias Kretz}}<br />
{{FeatureInProgress|kdeui|Goya, a framework for inserting controls into itemviews in a really easy and fast way|ereslibre@kde.org|Rafael Fernández López}}<br />
{{FeatureInProgress|kdeui|Shortcut schemes for KDE applications|adymo@kdevelop.org|Alexander Dymo}}<br />
{{FeatureInProgress|kmimetypetrader/kbuildsycoca|Replace use of profilerc for ordering applications with new mimeapps.list standard|faure@kde.org|David Faure}}<br />
{{FeatureInProgress|knewstuff|Support caching, and speed up the interface through use of Models/Views and goya|jeremy@scitools.com|Jeremy Whiting}}<br />
{{FeatureInProgress|Phonon KCM|Handle advanced devices|kretz@kde.org|Matthias Kretz}}<br />
{{FeatureInProgress|KDEPrint|Reintroduce KDEPrint in some form, depending on what Qt4.4 delivers.|john@layt.net|john Layt}}<br />
{{FeatureInProgress|KIO|speed limits on KIO Transfers|nolis71cu@gmail.com|Manolo Valdes}}<br />
{{FeatureTodo|KCalenderSystem|Complete migration of Jalali, Hijri, and Hebrew calendars to new code base.|john@layt.net|john Layt}}<br />
{{FeatureTodo|KCalenderSystem|Add new calendar systems: Indian Civil (Saka), Ethiopean, Chinese, Pure Julian, Pure Gregorian. (Note, not all may live in kdelibs or be available as a global calendar system)|john@layt.net|john Layt}}<br />
|}<br />
<br />
= kdepimlibs =<br />
{| class="sortable" border="1" cellpadding="5" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;"<br />
|- style="background: #ececec; white-space:nowrap;"<br />
! Status !! Project !! Description !! Contact<br />
{{FeatureTodo|Akonadi|Move the Akonadi development library from kdepim.|vkrause@kde.org|Volker Krause}}<br />
{{FeatureTodo|gpgme++2|newly designed gpgme++ (multithreaded, exceptions, less event loop integration: better for Windows)|marc@kdab.net|Marc Mutz (Gpg4win)}}<br />
|}<br />
<br />
= kdebase-apps =<br />
{| class="sortable" border="1" cellpadding="5" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;"<br />
|- style="background: #ececec; white-space:nowrap;"<br />
! Status !! Project !! Description !! Contact<br />
{{FeatureInProgress|Dolphin|Refactor view-action handling to a DolphinViewActionHandler to share more code with DolphinPart|faure@kde.org|David Faure}}<br />
{{FeatureInProgress|Dolphin|Simplify selecting of files in the single-click mode (based on http://aseigo.blogspot.com/2006/04/icons.html).|peter.penz@gmx.at|Peter Penz}}<br />
{{FeatureInProgress|Dolphin|Details-view: Allow to open folders as tree (turned off per default).|peter.penz@gmx.at|Peter Penz}}<br />
{{FeatureTodo|Dolphin|Provide optional tooltips for files and directories.|peter.penz@gmx.at|Peter Penz}}<br />
{{FeatureTodo|Konqueror|Session management (save/restore session/restore from <br />
crash).|edulix AT gmail DOT com|Eduardo Robles Elvira}}<br />
{{FeatureInProgress|Raptor|The KDE4-Application-Menu}}<br />
|}<br />
<br />
= kdebase-workspace =<br />
{| class="sortable" border="1" cellpadding="5" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;"<br />
|- style="background: #ececec; white-space:nowrap;"<br />
! Status !! Project !! Description !! Contact<br />
{{FeatureTodo|Color KCM|Add 'smart setting' of extended colors|mw_triad@users.sourceforge.net|Matthew Woehlke}}<br />
{{FeatureTodo|Color KCM|Add KDE3 scheme import|mw_triad@users.sourceforge.net|Matthew Woehlke}}<br />
{{FeatureTodo|KDEPrint|reintroduce KDEPrint Print Management tools, e.g. KCM, kprinter, kjobviewer, etc. Depends upon progress of kdelibs side of KDEPrint and Qt4.4 feature set.|john@layt.net|john Layt}}<br />
{{FeatureTodo|krunner|Revamp GUI.|riccardo@kde.org|Riccardo Iaconelli}}<br />
|}<br />
<br />
= kdebase-runtime =<br />
{| class="sortable" border="1" cellpadding="5" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;"<br />
|- style="background: #ececec; white-space:nowrap;"<br />
! Status !! Project !! Description !! Contact<br />
{{FeatureTodo|nepomuk|Service that monitors file rename and delete operations and updates the metadata accordingly. kded module already exists in playground. problem: depends on inotify.|trueg@kde.org|Sebastian Trueg}}<br />
|}<br />
<br />
= kdeaccessibility =<br />
{| class="sortable" border="1" cellpadding="5" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;"<br />
|- style="background: #ececec; white-space:nowrap;"<br />
! Status !! Project !! Description !! Contact<br />
{{FeatureDone|KMagnifier|Add color blindness simulation|mw_triad@users.sourceforge.net|Matthew Woehlke}}<br />
{{FeatureTodo|KMagnifier|Refactor color menu, re-add invert, add color-shift modes to help people with color blindness|mw_triad@users.sourceforge.net|Matthew Woehlke}}<br />
|}<br />
<br />
= kdeadmin =<br />
{| class="sortable" border="1" cellpadding="5" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;"<br />
|- style="background: #ececec; white-space:nowrap;"<br />
! Status !! Project !! Description !! Contact<br />
{{FeatureDone|KSystemLog|KSystemLog, a Log Viewer Tool. Move from kde-apps|nicolas.ternisien@gmail.com}}<br />
{{FeatureInProgress|KCron|Do some refactoring in KCron|nicolas.ternisien@gmail.com}}<br />
{{FeatureInProgress|KCron|Improve ergonomy and general interface|nicolas.ternisien@gmail.com}}<br />
{{FeatureTodo|KCron|Convert KCron into a KCM Module, to use it in System Settings|nicolas.ternisien@gmail.com}}<br />
|}<br />
<br />
= kdeartwork =<br />
{| class="sortable" border="1" cellpadding="5" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;"<br />
|- style="background: #ececec; white-space:nowrap;"<br />
! Status !! Project !! Description !! Contact<br />
|}<br />
<br />
= kdebindings =<br />
{| class="sortable" border="1" cellpadding="5" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;"<br />
|- style="background: #ececec; white-space:nowrap;"<br />
! Status !! Project !! Description !! Contact<br />
{{FeatureTodo|Smoke2|Move Smoke2 to kdebindings-trunk.|kde-bindings@kde.org|KDE-bindings developers}}<br />
{{FeatureTodo|PHP-Qt|Move PHP-Qt to kdebindings-trunk.|kde-bindings@kde.org|KDE-bindings developers}}<br />
|}<br />
<br />
= kdeedu =<br />
{| class="sortable" border="1" cellpadding="5" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;"<br />
|- style="background: #ececec; white-space:nowrap;"<br />
! Status !! Project !! Description !! Contact<br />
{{FeatureInProgress|KAlgebra|Calculator Plasmoid|aleixpol@gmail.com|Aleix Pol}}<br />
{{FeatureInProgress|KAlgebra|Vector support|aleixpol@gmail.com|Aleix Pol}}<br />
{{FeatureInProgress|KEduca|Rewrite of the classic test writing/taking application|matt@milliams.com|Matt Williams}}<br />
{{FeatureInProgress|Parley|Redesigned main window|frederik.gladhorn@kdemail.net|Frederik Gladhorn}}<br />
{{FeatureInProgress|Parley|Vocabulary Plasmoid|frederik.gladhorn@kdemail.net|Frederik Gladhorn}}<br />
{{FeatureInProgress|KBruch and KPercentage|Merge in 1 app|pete@pmurdoch.com|Peter Murdoch}}<br />
{{FeatureTodo|KAlgebra|Variables share between calculations|aleixpol@gmail.com|Aleix Pol}}<br />
{{FeatureTodo|KTurtle|Export canvas as image|piacentini@kde.org|Mauricio Piacentini}}<br />
{{FeatureTodo|KTurtle|Optional rulers/grid for canvas units|piacentini@kde.org|Mauricio Piacentini}}<br />
{{FeatureTodo|Parley|Declinations|frederik.gladhorn@kdemail.net|Frederik Gladhorn}}<br />
{{FeatureTodo|Parley|Rewrite of practice|frederik.gladhorn@kdemail.net|Frederik Gladhorn}}<br />
{{FeatureTodo|Step|A physics simulator, move from playground to kdeedu module|ks.vladimir@gmail.com|Vladimir Kuznetsov}}<br />
|}<br />
<br />
= kdegames =<br />
{| class="sortable" border="1" cellpadding="5" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;"<br />
|- style="background: #ececec; white-space:nowrap;"<br />
! Status !! Project !! Description !! Contact<br />
{{FeatureInProgress|KBlocks|Finish display of points and level (waiting for Qt4.4 with WidgetsOnCanvas to land in qt-copy) and move to kdereview/kdegames|piacentini@kde.org}}<br />
{{FeatureInProgress|KGoldRunner|Improved theming and animation|mikelima@cirulla.net}}<br />
{{FeatureDone|Kollision|Move to kdereview/kdegames|p.capriotti@gmail.com|Paolo Capriotti}}<br />
{{FeatureTodo|KBreakout|Finish it, and move it from playground to kdegames|fela.kde@gmail.com}}<br />
{{FeatureTodo|KGoldRunner|Also see kdegames/kgoldrunner/TODO|ianw}}<br />
{{FeatureTodo|KGoldRunner|Hot new stuff support for themes and levels|mikelima@cirulla.net}}<br />
{{FeatureInProgress|KGoldRunner|Sound support and theming|mikelima@cirulla.net}}<br />
{{FeatureTodo|KGoldRunner|Startup screen|mikelima@cirulla.net}}<br />
{{FeatureTodo|KMahjongg|Reimplement the Board Editor|piacentini@kde.org}}<br />
{{FeatureTodo|KNetWalk|Add support for loading new themes|fela.kde@gmail.com}}<br />
{{FeatureTodo|KNetWalk|Better scoring system|fela.kde@gmail.com}}<br />
{{FeatureTodo|KNetWalk|New graphic system|fela.kde@gmail.com}}<br />
{{FeatureTodo|KShisen|Port to KScoreDialog|piacentini@kde.org}}<br />
{{FeatureTodo|Kubrick|New game, 3D OpenGL - move to playground|ianw}}<br />
{{FeatureTodo|Kubrick|Polish up the features|ianw}}<br />
{{FeatureTodo|Kubrick|Port to Qt4 and KDE4|ianw}}<br />
{{FeatureInProgress|KDiamond|New game, move to kdegames|majewsky@gmx.net}}<br />
{{FeatureInProgress|KSquares|Multiplayer support|josef}}<br />
{{FeatureTodo|KGGZ|Add kggzcore and kggzdmod libraries|josef}}<br />
{{FeatureTodo|KGGZ|Add new Qt4-based core client as successor to the old KDE3-based KGGZ|josef}}<br />
|}<br />
<br />
= kdegraphics =<br />
{| class="sortable" border="1" cellpadding="5" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;"<br />
|- style="background: #ececec; white-space:nowrap;"<br />
! Status !! Project !! Description !! Contact<br />
{{FeatureDone|Okular|Encryption support for ODF generator|bradh@kde.org}}<br />
{{FeatureInProgress|Okular|Improved form support (add missing types, handle the fields better).|pino@kde.org|Pino Toscano}}<br />
{{FeatureInProgress|Okular|Centralized text & graphics antialias configuration.|pino@kde.org|Pino Toscano}}<br />
{{FeatureDone|Okular|Better Text-To-Speech integration: speech the whole document, the current page or the selection.|pino@kde.org|Pino Toscano}}<br />
{{FeatureTodo|Okular|Support for document layers (mostly in PDF documents).|pino@kde.org|Pino Toscano}}<br />
{{FeatureInProgress|Okular|EPub backend.|elylevy@cs.huji.ac.il|Ely Levy}}<br />
{{FeatureInProgress|Okular|Backward direction for text search.|pino@kde.org|Pino Toscano}}<br />
{{FeatureDone|Gwenview|Implement undo system|aurelien.gateau@free.fr|Aurélien Gâteau}}<br />
{{FeatureTodo|Gwenview|Support for tagging with Nepomuk|aurelien.gateau@free.fr|Aurélien Gâteau}}<br />
{{FeatureTodo|Gwenview|Kipi support|aurelien.gateau@free.fr|Aurélien Gâteau}}<br />
{{FeatureTodo|Gwenview|Thumbnail bar in view and fullscreen modes|aurelien.gateau@free.fr|Aurélien Gâteau}}<br />
{{FeatureTodo|Gwenview|Crop ratio|aurelien.gateau@free.fr|Aurélien Gâteau}}<br />
{{FeatureTodo|Gwenview|Red eye correction|aurelien.gateau@free.fr|Aurélien Gâteau}}<br />
|}<br />
<br />
= kdemultimedia =<br />
{| class="sortable" border="1" cellpadding="5" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;"<br />
|- style="background: #ececec; white-space:nowrap;"<br />
! Status !! Project !! Description !! Contact<br />
{{FeatureDone|Dragon Player|A simple Phonon-based videoplayer application|ian.monroe@gmail.com|Ian Monroe}}<br />
{{FeatureInProgress|Dragon Player|Make Dragon indipendent from Xine|ian.monroe@gmail.com|Ian Monroe}}<br />
{{FeatureInProgress|Dragon Player|File Manager|David Edmunson}}<br />
|}<br />
<br />
= kdenetwork =<br />
{| class="sortable" border="1" cellpadding="5" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;"<br />
|- style="background: #ececec; white-space:nowrap;"<br />
! Status !! Project !! Description !! Contact<br />
{{FeatureDone|KGet|Torrent-Support|l.appelhans@gmx.de|Lukas Appelhans}}<br />
{{FeatureDone|KGet|Group-Settings|l.appelhans@gmx.de|Lukas Appelhans}}<br />
{{FeatureDone|KGet|Transfer-Settings|l.appelhans@gmx.de|Lukas Appelhans}}<br />
{{FeatureDone|KGet|Webinterface|uwolfer@kde.org|Urs Wolfer}}<br />
{{FeatureDone|Kopete|OTR Encryption support|michael_zanetti@gmx.net|Michael Zanetti}}<br />
{{FeatureInProgress|Kopete|Bring back chat style and emoticon selection via knewstuff2|earthwings@gentoo.org|Dennis Nienhüser}}<br />
{{FeatureInProgress|Kopete|UPnp Support|mattr@kde.org|Matt Rogers}}<br />
{{FeatureInProgress|Kopete|Updated contact list interface (uses Qt 4 rather than Qt 3)|mattr@kde.org|Matt Rogers}}<br />
{{FeatureInProgress|Kopete|MSNP15 implementation for MSN|mattr@kde.org|Matt Rogers}}<br />
{{FeatureInProgress|KGet|MultiSource-Downloading|l.appelhans@gmx.de|Lukas Appelhans}}<br />
{{FeatureTodo|KGet|Nepomuk-Integration|l.appelhans@gmx.de|Lukas Appelhans}}<br />
{{FeatureTodo|[http://decibel.kde.org Decibel]|Decibel, a framework for real time communication services. Move from playground/pim|info@basyskom.de|Tobias Hunger}}<br />
|}<br />
<br />
= kdepim =<br />
{| class="sortable" border="1" cellpadding="5" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;"<br />
|- style="background: #ececec; white-space:nowrap;"<br />
! Status !! Project !! Description !! Contact<br />
{{FeatureDone|[http://wiki.kde.org/ktimetracker ktimetracker]|Column-specific whatsthis-help| |Thorsten St&auml;rk}}<br />
{{FeatureDone|[http://wiki.kde.org/ktimetracker ktimetracker]|Combined search and add task widget| |Thorsten St&auml;rk}}<br />
{{FeatureDone|[http://wiki.kde.org/ktimetracker ktimetracker]|Drag&Drop| |Thorsten St&auml;rk}}<br />
{{FeatureDone|[http://wiki.kde.org/ktimetracker ktimetracker]|File management (file->load)| |Thorsten St&auml;rk}}<br />
{{FeatureDone|[http://wiki.kde.org/ktimetracker ktimetracker]|Managing history| |Thorsten St&auml;rk}}<br />
{{FeatureDone|[http://wiki.kde.org/ktimetracker ktimetracker]|Tracking tasks by active applications| |Thorsten St&auml;rk}}<br />
{{FeatureDone|[http://wiki.kde.org/ktimetracker ktimetracker]|Whatsthis-help dependant on if a task has been created| |Thorsten St&auml;rk}}<br />
{{FeatureDone|KAddressbook|Ability to add LDAP search results to distribution lists|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KAddressbook|copy/cut/paste context menu items|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KAddressbook|Indication of which resource folder a contact belongs to|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KAddressbook|Read-only view for contacts in read-only folders|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|Kleopatra|Ability to search in internal and external certificates at the same time|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|Kleopatra|New, tabbed, mainwindow design|marc@kdab.net|Marc Mutz (Gpg4win)}}<br />
{{FeatureDone|Kleopatra|General UI Server|marc@kdab.net|Marc Mutz (Gpg4win)}}<br />
{{FeatureInProgress|Kleopatra|OpenPGP support|marc@kdab.net|Marc Mutz (Gpg4win)}}<br />
{{FeatureTodo|Kleopatra|Konqueror and Dolphin Kleopatra plugins|marc@kdab.net|Marc Mutz (Gpg4win)}}<br />
{{FeatureDone|KMail|Ability to easily create todos with reminders from emails|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|Ability to open messages from search results when the reader is hidden|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|Better invitation update emails showing what changed|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|Better, natural language search criteria names|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|Better reminder visualization in very small events|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|Clickable status columns|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|Client side configurability of warnings in shared folders|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|Colored ribbons for indication of signing and encryption status in the composer|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|Configuration option for whether invitation emails are automatically deleted or not when having been acted upon|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|Copy/paste and drag and drop from/to the mail composer|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|Display of quota information in foldertree tooltips|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|Drag and drop and copy and paste support in the search result viewer|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|Drag and drop from the mail reader window and mime-tree viewer|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|Drag and drop of folders|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|Editing of attachments from the composer|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|Export and import of filters|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|Favorites Folder|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|Folder quicksearch|m.koller@surfeu.at|Martin Koller}}<br />
{{FeatureDone|KMail|Harmonization of actions in main and standalone mail reader windows|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|IMAP Server storage of non-standard flags|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|Improved quota warnings|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|Improved TNEF attachment handling|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|Initialize full search from quicksearch on request|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|lost+found recovery of locally changed folders that lose access rights|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|Override font and fontsize for standalone message viewers|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|Per-folder identity configurability|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|Recursive IMAP cache troubleshooting|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|Resizable recipients area in composer|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|Support for creating new mails based on received mails (Resend)|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|Support for immediate sync of resource folders|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|Support for soft line breaking|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|Tab navigation through groups in the address completion|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|Text snippets with shortcuts and variable expansion in the composer|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|Warning about active out-of-office scripts|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KNotes|Ability to print notes|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KonsoleKalendar|Support "file" and "localdir" resources|winter@kde.org|Allen Winter}}<br />
{{FeatureDone|Kontact|Config option to close despite system tray|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|Kontact|Harmonization of component naming in sidebar, configuration, summary view|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|Kontact|Right-aligned component navigation toolbar|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|Kontact|Ubiquitous sync actions|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KOrganizer|Ability to have both distribution lists and addresbook extension visible|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KOrganizer|Aggregated reminders view|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KOrganizer|Better default resource colors|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KOrganizer|Faster initial loading of kolab resources|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KOrganizer|Forwarding and delegation of invitations|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KOrganizer|Improved coloring of agenda view items|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KOrganizer|Improved event printing|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KOrganizer|More readable Kolab resource folder labels|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KOrganizer|Side-by-side calendar view|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KOrganizer|Support for by-value attachments|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KOrganizer|Timeline calendar view|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KOrganizer|Month view scrolling, paging, mouse-wheeling|tom_t@gmx.at|Thomas Thrainer}}<br />
{{FeatureInProgress|KMail|HTML Signatures|yez@familieschepers.nl|Edwin Schepers}}<br />
{{FeatureInProgress|Kontact|New Planner summary; combines Appointment+To-do+SpecialDates into 1 pretty summary|winter@kde.org|Allen Winter}}<br />
{{FeatureTodo|[http://kblogger.pwsp.net KBlogger]|KBlogger, a blogging application| christian_weilbach@.web.de|Christian Weilbach}}<br />
{{FeatureTodo|KAlarm|New option to specify reminder times in minutes|djarvie@kde.org|David Jarvie}}<br />
{{FeatureTodo|KAlarm|Prevent multiple identical error messages accumulating for the same alarm|djarvie@kde.org|David Jarvie}}<br />
{{FeatureTodo|KAlarm|Remember main window show/hide options used when KAlarm closed instead of setting them in Preferences dialog|djarvie@kde.org|David Jarvie}}<br />
{{FeatureTodo|KAlarm|Remove alarm daemon and do all scheduling in kalarm itself|djarvie@kde.org|David Jarvie}}<br />
{{FeatureTodo|KAlarm|Replace simple repetitions by recurrence sub-repetitions to reduce confusion|djarvie@kde.org|David Jarvie}}<br />
{{FeatureTodo|KAlarm|Simplification and improvements to alarm edit dialog|djarvie@kde.org|David Jarvie}}<br />
{{FeatureTodo|KMail|Aggregated attachment view in the mail header area of the reader window|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KMail|Decryption on demand in reader window|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureTodo|KMail|Improved error messages and audit log for cryptographic operations|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureTodo|Kontact|Support for Kontact wide profiles|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureTodo|KOrganizer|Ability to jump to the right day in the agenda from invitation mails|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureTodo|KOrganizer|Drag and drop in the free-busy view|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KOrganizer|Drag and drop of attachments|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KOrganizer|Merge of the attachment view in into the main page|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KOrganizer|Merge of the free-busy and attendee views for easier scheduling|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureDone|KOrganizer|Redesigned incidence editor UI|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureTodo|KOrganizer|Support for comments in replies to invitations|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureTodo|KOrganizer|Support for extended free-busy lists|kdepim@kdab.net|Kolab Konsortium}}<br />
{{FeatureInProgress|KPilot|Finish Keyring conduit, base conduit code and test cases, category syncing|jkasper@kde.org|Jason 'vanRijn' Kasper}}<br />
{{FeatureTodo|KPilot|Port old conduits to new base conduit architecture and KDE4/Qt4|jkasper@kde.org|Jason 'vanRijn' Kasper}}<br />
|}<br />
<br />
= kdesdk =<br />
{| class="sortable" border="1" cellpadding="5" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;"<br />
|- style="background: #ececec; white-space:nowrap;"<br />
! Status !! Project !! Description !! Contact<br />
{{FeatureDone|Cervisia|New context menu entry "Add to Ignore List"|christian.loose@hamburg.de|Christian Loose}}<br />
{{FeatureDone|Lokalize|Move this application (formerly known as Kaider) from extragear|shafff-at-ukr.net|Nick Shaforostoff}}<br />
{{FeatureInProgress|Cervisia|A file view based on KDirModel|christian.loose@hamburg.de|Christian Loose}}<br />
{{FeatureInProgress|Lokalize|various Translation Memory enhancements|shafff-at-ukr.net|Nick Shaforostoff}}<br />
{{FeatureInProgress|Lokalize|XLIFF support|shafff-at-ukr.net|Nick Shaforostoff}}<br />
{{FeatureTodo|KAppTemplate|Add a Plasmoid template|annma@kde.org|Anne-Marie Mahfouf}}<br />
{{FeatureTodo|KAppTemplate|Add a PyQt template|annma@kde.org|Anne-Marie Mahfouf}}<br />
{{FeatureTodo|KAppTemplate|Add a Ruby template|annma@kde.org|Anne-Marie Mahfouf}}<br />
{{FeatureTodo|KAppTemplate|Add DBUS support|annma@kde.org|Anne-Marie Mahfouf}}<br />
{{FeatureTodo|KAppTemplate|Make a GUI for it|annma@kde.org|Anne-Marie Mahfouf}}<br />
{{FeatureTodo|Lokalize|Kross-based scripting|shafff-at-ukr.net|Nick Shaforostoff}}<br />
{{FeatureTodo|Lokalize|QA: glossary checklists|shafff-at-ukr.net|Nick Shaforostoff}}<br />
|}<br />
<br />
= kdetoys =<br />
{| class="sortable" border="1" cellpadding="5" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;"<br />
|- style="background: #ececec; white-space:nowrap;"<br />
! Status !! Project !! Description !! Contact<br />
|}<br />
<br />
= kdeutils =<br />
{| class="sortable" border="1" cellpadding="5" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;"<br />
|- style="background: #ececec; white-space:nowrap;"<br />
! Status !! Project !! Description !! Contact<br />
{{FeatureTodo|Okteta|bytelevel editor (successor to KHexEdit). Move from playground/utils.|kossebau@kde.org|Friedrich W. H. Kossebau}}<br />
|}<br />
<br />
= kdevelop =<br />
{| class="sortable" border="1" cellpadding="5" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;"<br />
|- style="background: #ececec; white-space:nowrap;"<br />
! Status !! Project !! Description !! Contact<br />
|}<br />
<br />
= kdevplatform =<br />
{| class="sortable" border="1" cellpadding="5" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;"<br />
|- style="background: #ececec; white-space:nowrap;"<br />
! Status !! Project !! Description !! Contact<br />
|}<br />
<br />
= kdewebdev =<br />
{| class="sortable" border="1" cellpadding="5" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width: 100%;"<br />
|- style="background: #ececec; white-space:nowrap;"<br />
! Status !! Project !! Description !! Contact<br />
|}</div>Dymohttps://techbase.kde.org/index.php?title=Projects/KDE_Relicensing&diff=15754Projects/KDE Relicensing2007-11-08T15:26:58Z<p>Dymo: /* Current Reply List */</p>
<hr />
<div>== KDE GPL v2.0 Relicensing effort ==<br />
<br />
=== Why does it matter ? ===<br />
<br />
A couple of KDE dependent projects or even libraries have moved or are going to move to GPLv3 ([http://gpl3.palamida.com:8080/ State of GPLv3 movement]). <br />
<br />
Unfortunately, GPL v3 is incompatible with GPL v2. This means that it is not possible to create a project linking GPL v2 and v3 code together. There is no problem for projects which are licensed GPLv2+ (version 2 or above).<br />
<br />
A few parts of KDE are currently licensed as GPLv2 only. So far we have no reason to believe that this was something other than an oversight. However, we still need to validate with the individual copyright holders that a relicense to GPLv2+ or GPLv2+v3 is okay with them. <br />
<br />
Therefore, in an effort we're trying to identify the contributors that have contributed under the terms of GPLv2 and where the "+" part was not explicetly mentioned. If we know that all contributors agreed to a relicense, we can go ahead and flip the license of the individual source file.<br />
<br />
== How can I help ? ==<br />
<br />
By identifying a contributor who as contributed under the terms of GPLv2 (use kdesdk/scripts/relicensecheck.pl on the file in question), and contacting him if he wasn't already contacted. Ask him the following questions: <br />
<br />
* Are you okay with relicensing your contributions done under GPLv2 to GPLv2+?<br />
<br />
* Are you okay with relicensing your contributions done under GPLv2 to GPLv2 or GPLv3 ?<br />
<br />
* Are you okay with relicensing your contributions done under LGPLv2 to LGPLv2+?<br />
<br />
* Are you okay with relicensing your contributions done under LGPLv2 to LGPLv2 or LGPLv3?<br />
<br />
* Are you okay with the KDE e.V. deciding on a future licensing change to your code, should that be necessary?<br />
<br />
=== Whats next? ===<br />
<br />
# you checkout relicensecheck.pl from trunk/KDE/kdesdk/scripts<br />
# you run it on the file or directory in question<br />
# you interpret the result. check each commit that is being complained about carefully. Try to get the copyright's holder's permission. if you get it, update the whitelist in the script.<br />
# review the list of declared copyright holders in the file.<br />
# if you're all clear, change the license to the most liberal license possible. Document your change verbosely in the SVN commit log.<br />
<br />
== Current Reply List ==<br />
<br />
* Please keep the list sorted by family name!<br />
* Please only use "YES" or "NO"<br />
<br />
{| border="1"<br />
! Name !! GPLv2->GPLv2+ !! LGPLv2 -> LGPLv2+ !! GPLv2 -> GPLv2+v3 !! LGPLv2 -> LGPLv2+LGPLv3 || KDE e.V. decides<br />
|-<br />
|Bastian, Waldo || NO || NO || YES || YES || YES<br />
|-<br />
|Broadstone, Matt || NO || NO || YES || YES || YES<br />
|-<br />
|Dymo, Alexander || YES || YES || YES || YES || NO<br />
|-<br />
|Faure, David || YES || YES || YES || YES || YES<br />
|-<br />
|Granroth, Kurt || YES || YES || YES || YES || YES<br />
|-<br />
|Herden, Jens || YES || YES || YES || YES || YES<br />
|-<br />
|Hoeglund, Fredrik || NO || NO || YES || YES ||<br />
|-<br />
|Kainhofer, Reinhold || YES || YES || YES || YES || YES<br />
|-<br />
|Kellet, Alexander || YES || YES || YES || YES || YES<br />
|-<br />
|Knight, Robert || YES || YES || YES || YES || YES<br />
|-<br />
|Kulow, Stephan || YES || YES || YES || YES || NO<br />
|-<br />
|Mantia, Andras || NO || NO || YES || YES || YES<br />
|-<br />
|Martyn, Greg || YES || YES || YES || YES || YES<br />
|-<br />
|Montel, Laurent || YES || YES || YES || YES || YES<br />
|-<br />
|Moore, Richard || NO || NO || YES || YES || YES<br />
|-<br />
|Mueller, Dirk || YES || YES || YES || YES || NO<br />
|-<br />
|Mutz, Marc || YES || YES || NO || NO || NO<br />
|-<br />
|Sand, Espen || YES || YES || || || YES<br />
|-<br />
|Schlaeger, Chris || NO || NO || YES || YES || NO<br />
|-<br />
|Seigo, Aaron || YES || YES || YES || YES || YES<br />
|-<br />
|Tapsell, John || YES || YES || YES || YES || YES<br />
|-<br />
|Trueg, Sebastian (Exception: K3b) || YES || YES || YES || YES || YES<br />
|-<br />
|}<br />
<br />
== Current TODO List ==<br />
<br />
* Matthias Kretz<br />
* KDAB<br />
* Tobias Koenig<br />
* Matthew Woehlke<br />
* Casper Boemann<br />
* Craig Drummond<br />
* Lubos Lunak<br />
* Daniel Teske<br />
* Dawit Alemayehu<br />
* Oswald Buddenhagen<br />
* Laurent Montel<br />
* Alex Zepeda<br />
* Thomas Leitner<br />
* Stephan Kulow<br />
* Lars Knoll<br />
* Kevin Ottens<br />
* Daniel Molkentin<br />
* Simon Hausmann<br />
* Maksim Orlovich<br />
* Sirtaj Singh Kang<br />
* Will Stephenson<br />
* Karol Szwed<br />
* Thorsten Roeder<br />
* Joseph Wenninger<br />
<br />
== Current list of problematic directories ==<br />
<br />
<pre><br />
kdeadmin/ksysv/<br />
kdeadmin/kuser/<br />
kdeartwork/kscreensaver/kdesavers/<br />
kdebase/apps/kappfinder/<br />
kdebase/apps/keditbookmarks/<br />
kdebase/apps/konqueror/settings/filetypes/<br />
kdebase/apps/konqueror/settings/kio/<br />
kdebase/apps/konqueror/src/<br />
kdebase/apps/konqueror/src/tests/<br />
kdebase/apps/lib/konq/<br />
kdebase/apps/nsplugins/viewer/<br />
kdebase/runtime/kcontrol/componentchooser/<br />
kdebase/runtime/khelpcenter/<br />
kdebase/runtime/kpasswdserver/<br />
kdebase/runtime/kurifilter-plugins/fixhost/<br />
kdebase/runtime/kurifilter-plugins/localdomain/<br />
kdebase/runtime/nepomuk/strigibackend/<br />
kdebase/runtime/phonon/xine/<br />
kdebase/workspace/kcontrol/background/<br />
kdebase/workspace/kcontrol/input/core/<br />
kdebase/workspace/kcontrol/input/xcursor/<br />
kdebase/workspace/kcontrol/kfontinst/apps/<br />
kdebase/workspace/kcontrol/kfontinst/kcmfontinst/<br />
kdebase/workspace/kcontrol/kfontinst/kio/<br />
kdebase/workspace/kcontrol/kfontinst/lib/<br />
kdebase/workspace/kcontrol/kfontinst/strigi-analyzer/<br />
kdebase/workspace/kcontrol/kfontinst/thumbnail/<br />
kdebase/workspace/kcontrol/kfontinst/viewpart/<br />
kdebase/workspace/kcontrol/krdb/<br />
kdebase/workspace/kcontrol/style/<br />
kdebase/workspace/kdm/kfrontend/<br />
kdebase/workspace/kmenuedit/<br />
kdebase/workspace/ksplash/ksplashx/<br />
kdebase/workspace/ksysguard/gui/<br />
kdebase/workspace/ksysguard/gui/ksgrd/<br />
kdebase/workspace/ksysguard/gui/SensorDisplayLib/<br />
kdebase/workspace/ksysguard/ksysguardd/<br />
kdebase/workspace/ksysguard/ksysguardd/FreeBSD/<br />
kdebase/workspace/ksysguard/ksysguardd/Irix/<br />
kdebase/workspace/ksysguard/ksysguardd/Linux/<br />
kdebase/workspace/ksysguard/ksysguardd/NetBSD/<br />
kdebase/workspace/ksysguard/ksysguardd/Solaris/<br />
kdebase/workspace/ksysguard/ksysguardd/Tru64/<br />
kdebase/workspace/ktip/<br />
kdebase/workspace/libs/kdm/<br />
kdebase/workspace/libs/ksysguard/processui/<br />
kdebase/workspace/libs/plasma/widgets/<br />
kdebase/workspace/plasma/dataengines/filebrowser/<br />
kdebase/workspace/solid/kcm/<br />
kdebase/workspace/solid/networking/tests/<br />
kdebindings/csharp/qyoto/tools/csrcc/<br />
kdebindings/csharp/qyoto/tools/uics/<br />
kdebindings/ruby/qtruby/tools/rbrcc/<br />
kdebindings/ruby/qtruby/tools/rbuic/<br />
kdebindings/ruby/qtruby/tools/rbuic/ruby/<br />
kdebindings/xparts/xpart_notepad/<br />
kdeedu/klettres/src/<br />
kdeedu/kstars/kstars/indi/drivers/ccd/<br />
kdeedu/kstars/kstars/indi/drivers/focuser/<br />
kdeedu/kstars/kstars/indi/drivers/telescope/<br />
kdeedu/kstars/kstars/indi/drivers/video/<br />
kdeedu/kstars/kstars/indi/libs/webcam/<br />
kdeedu/kturtle/src/<br />
kdeedu/kturtle/src/interpreter/<br />
kdeedu/libkdeedu/extdate/<br />
kdeedu/marble/src/lib/geodata/<br />
kdeedu/marble/src/lib/geodata/data/<br />
kdeedu/marble/src/lib/geodata/handlers/gpx/<br />
kdeedu/marble/src/lib/geodata/handlers/kml/<br />
kdeedu/marble/src/lib/geodata/parser/<br />
kdegames/knetwalk/src/<br />
kdegraphics/gwenview/lib/<br />
kdegraphics/okular/generators/chm/kio-msits/<br />
kdegraphics/okular/generators/chm/lib/<br />
kdegraphics/okular/generators/comicbook/<br />
kdegraphics/okular/generators/plucker/unpluck/<br />
kdegraphics/okular/generators/spectre/libspectre/<br />
kdegraphics/okular/generators/spectre/libspectre/ghostscript/<br />
kdelibs/cmake/automoc/<br />
kdelibs/kde3support/tests/<br />
kdelibs/kdecore/tests/<br />
kdelibs/kdeui/tests/<br />
kdelibs/kfile/tests/<br />
kdelibs/kinit/tests/<br />
kdelibs/kioslave/http/kcookiejar/<br />
kdelibs/kioslave/http/kcookiejar/tests/<br />
kdelibs/kjsembed/examples/editor/<br />
kdelibs/kpty/<br />
kdelibs/phonon/kcm/<br />
kdelibs/phonon/tests/<br />
kdelibs/solid/examples/tutorial6/<br />
kdelibs/solid/tests/<br />
kdenetwork/kopete/doc/t2/<br />
kdenetwork/kopete/doc/t3/<br />
kdenetwork/kopete/protocols/irc/<br />
kdenetwork/kopete/protocols/jabber/libiris/cutestuff/legacy/<br />
kdenetwork/kopete/protocols/jabber/libiris/cutestuff/network/<br />
kdenetwork/kopete/protocols/jabber/libiris/cutestuff/util/<br />
kdenetwork/kopete/protocols/jabber/libiris/iris/include/<br />
kdenetwork/kopete/protocols/jabber/libiris/iris/jabber/<br />
kdenetwork/kopete/protocols/jabber/libiris/iris/xmpp-core/<br />
kdenetwork/kopete/protocols/jabber/libiris/iris/xmpp-im/<br />
kdenetwork/kopete/protocols/oscar/liboscar/utils/<br />
kdenetwork/kopete/protocols/qq/<br />
kdenetwork/kopete/protocols/yahoo/libkyahoo/<br />
kdepim/akonadi/resources/openchange/<br />
kdepim/akonadi/server/sqlplugin/<br />
kdepim/kaddressbook/xxport/<br />
kdepim/kdgantt/<br />
kdepim/kdgantt1/<br />
kdepim/kleopatra/utils/<br />
kdepim/kmail/<br />
kdepim/libkleo/ui/<br />
kdepimlibs/kcal/libical/vzic-1.3/<br />
kdepimlibs/kcal/versit/<br />
kdepimlibs/kioslave/sieve/<br />
kdepimlibs/syndication/tests/<br />
kdepim/views/conversationview/<br />
kdesdk/kioslave/svn/ksvnd/<br />
kdesdk/kompare/komparepart/<br />
kdevelop/buildtools/managers/automake/tests/<br />
kdevelop/plugins/qtdesigner/internals/<br />
kdevplatform/interfaces/<br />
kdevplatform/test/common/<br />
kdewebdev/kommander/editor/<br />
kdewebdev/kommander/factory/<br />
kdewebdev/kommander/plugin/<br />
</pre><br />
<br />
== Current top 30 of possible contributors to GPLv2-only files ==<br />
<br />
<pre> 23647 sequitur<br />
20801 gerken<br />
20659 craig<br />
17365 rdale<br />
17080 tokoe<br />
15023 dfaure<br />
13945 lunakl<br />
9339 arnorehn<br />
8703 thorsen<br />
8273 coolo<br />
7458 cies<br />
7448 mutlaqja<br />
7424 rogowski<br />
6018 gyurco<br />
5692 djurban<br />
5531 mrudolf<br />
5525 aacid<br />
5446 ogoffart<br />
5299 mkretz<br />
5245 winterz<br />
4216 cschlaeg<br />
4152 johnflux<br />
3652 waba<br />
3327 fredrik<br />
3138 chehrlic<br />
2944 mlaurent<br />
2916 teske<br />
2661 kniederk<br />
2614 martyn<br />
2484 lypanov<br />
</pre></div>Dymohttps://techbase.kde.org/index.php?title=Projects/Summer_of_Code/2007/Ideas&diff=9255Projects/Summer of Code/2007/Ideas2007-03-16T13:20:15Z<p>Dymo: /* KDevelop & Quanta */</p>
<hr />
<div>This page is an open list for ideas for the 2007 edition of [http://code.google.com/soc Google Summer of Code]. It will remain editable while the submission process is open.<br />
<br />
This list is not exhaustive. It is just a collection of some ideas. To get further ideas, you can also look at our [http://wiki.kde.org/tiki-index.php?page=KDE%20Google%20SoC%202006%20ideas list of ideas for the year 2006]<br />
<br />
Before proceeding, please read the [[Projects/Summer of Code/2007/Participation|participation instructions]]. They are useful for students and developers alike. Before editing this page, please take a look at the [[#Notes on editing this page|Notes on editing this page]] section at the end.<br />
<br />
== Past ideas ==<br />
<br />
You may want to take a look at the [http://wiki.kde.org/tiki-index.php?page=KDE%20Google%20SoC%202006%20ideas ideas page for 2006]. Some of the ideas there are still valid today.<br />
<br />
== Project ideas ==<br />
<br />
These ideas were contributed by our developers and users. They are sometimes vague or incomplete. If you wish to submit a proposal based on these ideas, you may wish to contact the developers and find out more about the particular suggestion you're looking at. <br />
<br />
If there is no specific contact given you can ask questions on the general KDE development list kde-devel@kde.org. See [http://www.kde.org/mailinglists/ the KDE mailing lists page] for information on available mailing lists and how to subscribe.<br />
<br />
When adding an idea to this section, please try to include the following data:<br />
:* if the application is not widely known, a description of what it does and where its code lives<br />
:* a brief explanation<br />
:* the expected results<br />
:* pre-requisites for working on your project<br />
:* if applicable, links to more information or discussions<br />
:* mailing list or IRC channel for your application/library/module<br />
:* your name and email address for contact (if you're willing to be a mentor)<br />
<br />
=== KDE Libs ===<br />
<br />
==== KPassivePopup ====<br />
''' Project Information:''' [http://api.kde.org/cvs-api/kdelibs-apidocs/kdeui/html/classKPassivePopup.html KPassivePopup] is the class that displays information next to taskbar icons, system tray icons or windows without interrupting the user. It is used both directly and by KNotify and is part of libkdeui.<br />
<br />
'''Brief explanation:''' Convert KPassivePopup to use QSvg for the frame etc. this would allow it to be much more flexible in its visual appearance and could allow us to eliminate the various custom implementations that are floating around. This would include examining these forks and ensuring the same functionality could be cleanly incorporated.<br />
<br />
'''Expected results:''' The intended result would be a single implementation of KPassivePopup that could be reused without copying code by applications such as Kopete that currently maintain their own versions.<br />
<br />
'''Knowledge Pre-Requisite:''' A prequisite would be knowledge of Qt/KDE and the ability to setup a KDE build environment. Knowledge of SVG would obviously be a big help.<br />
<br />
'''Mentor:''' Richard Moore <rich@kde.org>, Aaron Seigo <aseigo@kde.org>.<br />
<br />
==== Solid ====<br />
<br />
Solid is the KDE hardware abstraction layer, that enables KDE programs to get consistent results when running on different platforms.<br />
<br />
* Plasma integration with Solid: Plasma uses the term 'data engine' to describe inputs to Plasma applets ('plasmoids'). Multiple applets may make use of a data engine. One task would be to write data engines for Solid interfaces for hardware status monitoring and control via Plasma.<br />
<br />
* Media player support in Solid: Currently there is no high level support for portable media player devices in Solid. Applications such as Amarok have had to develop their own media player abstraction layers. Having this functionality in Solid would create exciting possibilities, for example, adding podcasts directly to your media device from a browser, or storing files received via IM directly on the media device.<br />
<br />
* Scanner support in Solid: On Linux, scanner support uses the SANE library. To make scanners accessible from KDE applications on other platforms, a Solid wrapper to the most frequently used scanner functions and a SANE backend would make a good Summer of Code project for a student interested in imaging on Linux.<br />
<br />
==== Phonon ====<br />
<br />
==== KHTML ====<br />
<br />
==== KJS - Scripting Modules ====<br />
<br />
''' Project Information:''' KJS is KDE's JavaScript engine that was originally developed for the Konqueror Web browser. It as a light-weight, standalone library that can easily be embedded into other applications to make them scriptable.<br />
<br />
Besides being restricted to running in the sandbox of an application usage for text and file processing or other administrative or server side tasks in a command line interpreter are thinkable. Consider what made e.g. Perl successfull. What's lacking are modules providing the necessary functions.<br />
<br />
'''Brief explanation:''' The project would start out with gathering an overview of typical functions found in other scripting languages like Perl, Python and Tcl. The most important ones would then be selected and implemented in (at first) C++ modules that are dynamically loaded by the KJS command line interpreter. An example would be the classic [http://www.mozilla.org/js/js-file-object.html File] object that could then be imported with an "import File;" directive by the user.<br />
<br />
'''Expected results:''' A set of low-level modules like File, CGI, JSON or similar with a documented set of constructors, functions and properties. They should form the base for pure JavaScript modules to be build on top.<br />
<br />
'''Knowledge Pre-Requisite:''' Some C++ programming knowledge is required. Knowledge about other scripting languages like Python and Perl would be advantageous.<br />
<br />
'''Mentor:''' Harri Porten <porten@kde.org>.<br />
<br />
==== Sonnet ====<br />
<br />
'''Project Information:''' Sonnet will be the future grammar, spell-checking and language detection framework in kde. <br />
<br />
'''Brief explanation:''' Make kateparts compatible and integrated with Sonnet framework.<br />
<br />
'''Expected results:'''<br />
* Be allowed to use inline spell-checking in kile (latex front-end based on kateparts) or in the comments of a source file.<br />
* Would be wonderful if the grammar and language detection also work with latex files.<br />
<br />
'''Knowledge Pre-Requisite:''' I don't konw but probably C++, parsers, kate parts and language studies.<br />
<br />
'''Mentor:'''<br />
<br />
==== Kross ====<br />
<br />
'''Project Information:''' [http://kross.dipe.org Kross] is a modular scripting framework that provides a complete framework to embed scripting interpreters like Python, Ruby and KDE JavaScript transparently into native applications to bridge the static and dynamic worlds together.<br />
<br />
'''Brief explanation:''' While Kross does already provide access to Python, Ruby and KDE JavaScript, Java is missing. With a Java backend we could provide access to JDBC databases, Hibernate, Sandboxes and all the other goodies.<br />
<br />
'''Expected results:'''<br />
* Target is to implement a Java backend and offer Java as another supported scripting backend in Kross.<br />
* Propably just bridge or at least provide access to QtJambi.<br />
* Unittests and clean code :)<br />
<br />
'''Knowledge Pre-Requisite:''' knowledge of C/C++, be able to get into the dark details of embedding Java.<br />
<br />
'''Mentor:''' Sebastian Sauer <mail@dipe.org><br />
<br />
==== KDEPrint -- UI redesign ====<br />
<br />
'''Project Information:''' [http://printing.kde.org KDEPrint] is the well known and very advanced printing platform common to all KDE applications.<br />
<br />
'''Brief explanation:''' Redesign user interfaces related to printing. Improve usability.<br />
<br />
''' Expected results:''' Produce an improved set of graphic interfaces to KDE's printing technology, based on usability reports already available and using new (original) usability ideas.<br />
<br />
'''Prerequisites:''' C++, KDE/Qt programming, experience with design and creation of usable UI.<br />
<br />
'''Mentor:''' Cristian Tibirna <tibirna@kde.org><br />
<br />
<br />
==== KDEPrint -- porting to CUPS > 1.2 ====<br />
<br />
'''Project Information:''' [http://printing.kde.org KDEPrint] is the well known and very advanced printing platform common to all KDE applications.<br />
<br />
'''Brief explanation:''' Port the current KDEPrint code to supporting CUPS later than 1.2, both in KDE-3.5 and KDE-4 branches.<br />
<br />
''' Expected results:''' Based on the already very well thought out interface to CUPS-1.1, work is necessary for supporting new features and following bug fixes in the latest incarnation of CUPS, the most important backend of KDEPrint.<br />
<br />
'''Prerequisites:''' C, C++, KDE/Qt programming, writing code following specifications.<br />
<br />
'''Mentor:''' Cristian Tibirna <tibirna@kde.org><br />
<br />
<br />
==== KDEPrint -- porting to Qt-4.3/KDE-4 ====<br />
<br />
'''Project Information:''' [http://printing.kde.org KDEPrint] is the well known and very advanced printing platform common to all KDE applications.<br />
<br />
'''Brief explanation:''' Port the KDEPrint code of KDE-4 branch to latest Qt-4/KDE-4 libraries technologies.<br />
<br />
''' Expected results:''' This task requires a thorough analysis of technologies used by KDEPrint in the previous (KDE-3.5) incarnation and replacement as needed with new or improved equivalents from Qt-4/KDE-4. Use of the new intercommunication technologies (D-Bus) and new notification technologies is required.<br />
<br />
'''Prerequisites:''' C, C++, KDE/Qt programming, willingness to learn D-Bus as well as KDE-4 APIs.<br />
<br />
'''Mentor:''' Cristian Tibirna <tibirna@kde.org><br />
<br />
==== KDEPrint -- add support for LinuxPrinting's on-line drivers query ====<br />
<br />
'''Project Information:''' [http://printing.kde.org KDEPrint] is the well known and very advanced printing platform common to all KDE applications.<br />
<br />
'''Brief explanation:''' Add support to KDEPrint for the new [http://www.linux-foundation.org/en/OpenPrinting/Database/Query OpenPrinting Database] which allows on-line search for new (locally unavailable) drivers for printers during printer installation.<br />
<br />
''' Expected results:''' This task requires a good learning of the OpenPrinting Database Querying interface. Getting accustomed with KDEPrint's printer installation algorithms is also required. Target platform is KDE-4 but time permitting, a port to KDE-3.5 would be welcome.<br />
<br />
'''Prerequisites:''' C, C++, KDE/Qt programming<br />
<br />
'''Mentor:''' Cristian Tibirna <tibirna@kde.org><br />
<br />
==== KIConLoader: SVG Render Cache ====<br />
''' Project Information:''' {{class|KIconLoader}} is the class the fetches icons from disk on demand and returns pixmap data for use on screen. This project would add an on-disk binary cache to be used for SVG icons.<br />
<br />
'''Brief explanation:''' [http://aseigo.blogspot.com/2007/03/efficient-scallable-icons.html See my blog entry here for a description of the problem].<br />
<br />
'''Expected results:''' A transparent cache that would increase the efficiency of SVG icon usage at runtime, with the possibility of adding runtime composition capabilities to {{class|KIconLoader}}.<br />
<br />
'''Knowledge Pre-Requisite:''' A prequisite would be the ability to setup a KDE build environment. Qt/KDE programming knowledge is not a high requirement for this task, though the student will obviously be picking some of that up as they go. Experience with similar projects involving caching would be good.<br />
<br />
'''Mentor:''' Aaron Seigo <aseigo@kde.org>.<br />
<br />
('''Note:''' KIconLoader would benefit from a generic cache, not limited only to SVG but usable also for PNG icons. See the second paragraph of the benefits section in the blog entry for reasons [less disk seeking]. I think it would make sense to change this to a generic cache for KIconLoader. Lubos Lunak <l.lunak@kde.org> )<br />
<br />
=== KDE Base applications ===<br />
<br />
==== Konqueror - userscripts ====<br />
''' Project Information:''' The goal of this project would be to implement and integrate into KDE4 a [http://www.konqueror.org/ Konqueror] equivalent of FireFox's [http://en.wikipedia.org/wiki/Greasemonkey Greasemonkey] plugin to allow installing and running user scripts. The project could start of from this [http://www.kde-apps.org/content/show.php?content=51482 existing GPL-ed code].<br />
<br />
It seems that someone is already well on their way to completing this already: http://namshub-kde.blogspot.com/2007/01/more-work-on-konquerors-user-scripts.html<br />
<br />
'''Expected results:''' A Greasemonkey equivalent for Konqueror that allows (de)installing and running Greasemonkey compatible user scripts.<br />
<br />
'''Knowledge Pre-Requisite:''' C++ programming skills<br />
<br />
==== Konqueror & Dolphin - file manager ====<br />
<br />
* Ability to extract files from RPM packages<br />
<br />
==== Plasma: icon placement ====<br />
'''Brief explanation:''' Ordering the icons on the desktop has always been a pain for the users. They invent a certain arrangement (images top left, devices lower right, ...) and try to stick with it. Whenever they drop something to the Desktop folder in their filemanager, or when they plug in a new device the icon appears at an arbitrary location. Using clustering techniques and meta information about the existing icons, it would be possible to determine the most useful location for a new icon on the desktop.<br />
<br />
'''Expected results:''' Improve the icon placing strategy of kdesktop (plasma) using clustering techniques.<br />
* Try various clustering algorithms ([http://en.wikipedia.org/wiki/Data_clustering Wikipedia Data Clustering] might help) and choose the one most suitable for the task<br />
* Implement an icon placement strategy in plasma, using the chosen clustering algorithm.<br />
<br />
'''Knowledge Pre-Requisite:''' Familiarity with clustering algorithms or motivation to study them, C++/Qt coding skills<br />
<br />
==== KWin -- Tiling Support ====<br />
''' Project Information:''' [http://websvn.kde.org/trunk/KDE/kdebase/workspace/kwin/ KWin] is the KDE window manager, an application responsible for managing all windows.<br />
<br />
''' Brief explananation:''' Some window managers (e.g. Ion or wmii) have the ability to divide the screen to smaller sections which make it simpler to work with several windows at the same time (window maximize only to its tile, etc.).<br />
<br />
'''Expected results:''' Implemented tiling support in KWin.<br />
<br />
'''Knowledge Pre-Requisite:'''<br />
:# C++, Qt/KDE (KWin doesn't use much functionality from Qt and KDE libraries besides basic classes though)<br />
:# X11/Xlib knowledge beneficial. X11 parts are mostly abstracted in KWin, but it's possible at least little knowledge might be required (it should be possible to learn necessary things while working on the project though).<br />
:# Multiple-monitor (Xinerama) setup beneficial. KWin already has Xinerama support, parts of which possibly could be used as a base for tiling support. With tiling support implemented, Xinerama support should be implemented as tiles representing Xinerama screens.<br />
<br />
'''References:'''<br />
:# Wikipedia window manager [http://en.wikipedia.org/wiki/Window_manager entry]<br />
:# KDE bug [http://bugs.kde.org/show_bug.cgi?id=59338 #59338]<br />
:# KDE bug [http://bugs.kde.org/show_bug.cgi?id=107554 #107554]<br />
:# [http://modeemi.cs.tut.fi/~tuomov/ion/ Ion]<br />
:# [http://www.suckless.org/wiki/wmii wmii]<br />
<br />
'''Mentor:''' Lubos Lunak <l.lunak@kde.org>.<br />
<br />
==== KWin -- Improved Xinerama Support ====<br />
''' Project Information:''' [http://websvn.kde.org/trunk/KDE/kdebase/workspace/kwin/ KWin] is the KDE window manager, an application responsible for managing all windows.<br />
<br />
''' Brief explanation:''' Xinerama (and various implementations known also as e.g. MergedFB or TwinView) is an X server extension that merges two or more physical monitors into one large display. KDE already provides a decent support for Xinerama, but there is still room for improvement, in particular, different monitors are linked together even in cases when it might be more beneficial to have them independent, for example with virtual desktops.<br />
<br />
'''Expected results:''' Improved Xinerama support in KDE/KWin. Specifically, making virtual desktops on different Xinerama displays independent, per [http://bugs.kde.org/show_bug.cgi?id=107302 KDE bugreport #107302], and related fixes/changes.<br />
<br />
'''Knowledge Pre-Requisite:'''<br />
:# C++, Qt/KDE (KWin doesn't use much functionality from Qt and KDE libraries besides basic classes though)<br />
:# X11/Xlib knowledge beneficial. X11 parts are mostly abstracted in KWin, but at least little knowledge will be required (it should be possible to learn necessary things while working on the project though).<br />
:# Multiple-monitor (Xinerama) setup. Although it is possible to use [http://ktown.kde.org/~seli/fakexinerama/ Fake Xinerama] for making a single monitor act like a Xinerama setup, real Xinerama setup is strongly recommended.<br />
<br />
'''References:'''<br />
:# Wikipedia window manager [http://en.wikipedia.org/wiki/Window_manager entry]<br />
:# Wikipedia Xinerama [http://en.wikipedia.org/wiki/Xinerama entry]<br />
:# KDE bug [http://bugs.kde.org/show_bug.cgi?id=107302 #107302]<br />
<br />
'''Mentor:''' Lubos Lunak <l.lunak@kde.org>.<br />
<br />
==== Strigi: chemistry and biology support ====<br />
<br />
''' Project Information:''' [http://www.vandenoever.info/software/strigi/ Strigi] is a promosing alternative to other desktop<br />
search tools, like Beagle/Kerry. It has a plugin architecture that allows writing indexing plugins for a specific area, or specific enhanced purposes. Available are both inline plugins (written in C++), as well as plugins that call programs written in other languages via the command line. Strigi is showing progress towards integration to semantic desktop ideas, as in the [http://nepomuk-kde.semanticdesktop.org/xwiki/bin/view/Main/ Nepomuk] project. This allows chemical information to be semantically marked up, and easily retrieved.<br />
<br />
'''Brief explanation:''' The idea of this project is to integrate chemistry and biology knowledge into the KDE desktop, by writing chemistry and biology aware plugins for Strigi. Exact molecule searching on the hard disk will be supported via the [http://www.iupac.org/inchi InChI]. For the rest, normal free text searching will do fine for now. Generation of InChI's will be done via [http://openbabel.sf.net/ OpenBabel], for files supported by the [http://chemical-mime.sourceforge.net/ Chemical MIME]'s (which has existing KDE support) and [http://freshmeat.net/projects/kfile_chemical/?branch_id=60776&release_id=231404 kfile-chemical] (which is available for KDE3 and KDE4). Optionally, the student can incorporate the chemical text mining tool [http://wwmm.ch.cam.ac.uk/wikis/wwmm/index.php/Oscar3 OSCAR3] developed in Cambridge, UK, to extract InChI's from text documents, like PDF, HTML, etc. Here Strigi's jstream technology come in handy, as it will provide a plain text version for all those formats. Extraction of biochemical information is much easier, as these files commonly plain text already.<br />
<br />
'''Expected results:''' Strigi plugins that: <br />
:# extract meta data for (bio)chemical files defined by the Chemical MIMEs, via the kfile-chemical kfile plugins, <br />
:# process files with a (subset of) (bio)chemical MIME with OpenBabel to generate an InChI for indexing, <br />
:# (optionally) use OSCAR3 to process plain text and create InChIs for molecules found in that text. Additionally, the student is invited to propose a useful ontology for marking up the extracted chemical and biological information.<br />
<br />
'''Knowledge Pre-Requisite:''' knowledge of C++ is a requirement, as is high school education in chemistry and biology.<br />
<br />
'''Mentor(s):''' Carsten Niehaus <cniehaus@kde.org>, <br />
Jerome Pansanel <j.pansanel@pansanel.net>, Egon Willighagen <egonw@user.sf.net>, Jos van den Oever" <jvdoever@gmail.com><br />
<br />
'''Mailing list:''' [http://sourceforge.net/mail/?group_id=171000 strigi-devel@lists.sourceforge.net]<br />
<br />
=== KDE Edu ===<br />
<br />
==== A 3D Molecular Editor ====<br />
''' Project Information:''' There are several 3D molecular editors, but only few open source programs, such as [http://www.uku.fi/~thassine/projects/ghemical/ Ghemical]. The GPL-ed [http://openbabel.sf.net OpenBabel project] open chemistry library has expanded its usefulness improving chemistry software. This resulted in, among other things, an application and library called [http://avogadro.sourceforge.net/ Avogadro]. [http://edu.kde.org/kalzium/index.php Kalzium] and Avogadro will soon merge a lot of code so that both apps share an underlying rendering library for molecules (using OpenGL). Avogadro already has basic "molecule construction" capabilities. The goal of this project is to extend these such to yield a 3D editor suitable for basic molecular drawing and visualization for high school and university students.<br />
<br />
'''Expected results:''' The improved application would be based on the new OpenGL based rendering code, and able to construct common organic molecules (such as [http://chem-file.sourceforge.net/data/carboxylic_acids/2R-2-1S-1_2-dihydroxyethyl-4_5-dihydroxy-furan-3-one_en.html this one]). The 3D-display code inside Kalzium will be reused and expanded to handle, for example, protein "ribbon" views, surfaces, and surface-mapped functions like electronic charge. Additional features such as configurable labels (for atoms, protein residues, etc.) and flexibility to change rendering for individual atoms or bonds would be welcome.<br />
<br />
'''Knowledge Pre-Requisite:''' Basic Qt-knowledge and basic chemistry knowledge. OpenGL experience welcome.<br />
<br />
'''Mentor:''' Carsten Niehaus (cniehaus at kde dot org)<br />
<br />
'''Mailing list:''' kalzium at kde dot org<br />
<br />
==== MARBLE - Adding a 2D View ====<br />
<br />
''' Project Information:''' Marble is a Qt 4-based generic virtual globe widget which is meant to integrate well with the KDE desktop to provide basic input and visualisation facilities for geographical data. Marble currently lives in http://websvn.kde.org/trunk/playground/base/marble/ and the author would like to see Marble be included with KDE-Edu soon. More information: [http://www.kdedevelopers.org/node/2429 the Marble description].<br />
<br />
'''Brief explanation:''' To be properly integrated with other applications a 2D View for Marble will be needed in addition to the preferred 3D View (e.g. for merging functionality of KGeography and Marble). Three steps are suggested:<br />
:# reuse the current rendering engine in 2D mode<br />
:# write an optimized approach for the 2D case and thereby refactor parts of Marble (especially the texture mapping)<br />
:# include adding proper access methods for applications and the user interface<br />
<br />
Depending on the knowledge of the applicant the refactoring part can be extended.<br />
<br />
'''Expected results:''' adding the 2D View Mode to Marble. Optionally, if enough time is available, integrate that view mode in another application like KGeography.<br />
<br />
'''Knowledge Pre-Requisite:''' basic knowledge of C++ is a pre-requirement. Basic highschool trigonometry knowledge would be helpful. Other useful skills, but not mandatory are:<br />
* Qt experience<br />
<br />
'''Mentor:''' Torsten Rahn <rahn@kde.org>. <br />
<br />
'''Mailing list:''' The kde-edu mailing list: http://lists.kde.org/?l=kde-edu&r=1&b=200702&w=2 .<br />
<br />
==== MARBLE - OpenStreetMap, GPS, Almanac, improved KML support ====<br />
<br />
''' Project Information:''' Marble is a Qt 4-based generic virtual globe widget which is meant to integrate well with the KDE desktop to provide basic input and visualisation facilities for geographical data. Marble currently lives in http://websvn.kde.org/trunk/playground/base/marble/ and the author would like to see Marble be included with KDE-Edu soon. More information: [http://www.kdedevelopers.org/node/2429 the Marble description].<br />
<br />
'''Brief explanation:''' There are a lot of other interesting projects that would make a nice Google Summer of Code 2007 project each on their own. Keep in mind that all those should be introduced in an unobtrusive manner as Marble is aimed at casual users without much technical knowledge. So a larger part should be dedicated on the usability (Of course it needs to work, too ;-):<br />
:# Basic support for GPS devices: Introduce an interface to support GPS tracks and / or provide support for the GPX format. Co-Mentor: Inge Wallin.<br />
:# Basic support for OpenStreetMap ( http://www.openstreetmap.org ). The applicant should find a way to incrementally download data collected by the Open Street Map project. This should happen in the background.<br />
:# Marble Almanac: The applicant should extend the current placemark info dialog into a module of its own that compiles together various geographical information from different sources (like the CIA fact book).<br />
:# Improve KML capabilities. Currently Marble has very basic KML support already. Although Marble won't be able to support the whole range of KML tags that e.g. Google Earth supports, it would be nice if support could be made more standards compliant. The student should be able to refactor the current code and introduce an improved design.<br />
<br />
'''Knowledge Pre-Requisite:''' All these projects require that the student is a self-starter and will be able to do some research concerning the topics on their own. Beyond that you should have basic C++ knowledge. Prior Qt experience is a plus.<br />
<br />
'''Mentor:''' Torsten Rahn <rahn@kde.org>, Co-Mentor for GPS support: Inge Wallin <inge@lysator.liu.se> <br />
<br />
'''Mailing list:''' The kde-edu mailing list: http://lists.kde.org/?l=kde-edu&r=1&b=200702&w=2 .<br />
<br />
==== Step interactive physical simulator ====<br />
<br />
'''Project Information:''' Step is interactive physical simulator for education. It is very young program recently ported to KDE4. You can find more about it here:<br />
http://edu.kde.org/step/ .<br />
<br />
'''Note:''' This entry is added by author of the Step who want to apply to SoC as a student himself and seeking for mentor (as suggested on kdeedu mailing list).<br />
<br />
'''Brief explanation:''' In order to be useful and to be included in kdeedu Step needs a lot more features than it currently has (it is only two month old). I propose adding the following features to Step (the list will be filtered to fit in SoC timeframe):<br />
:# Simulation (StepCore library):<br />
:## collision detection with friction (I hope this will be ready before summer)<br />
:## movement restrictions (joints) (it can be ready too)<br />
:## global error estimation<br />
:## molecular dynamics (2d gas, 2d fluid)<br />
:## Brownian motion<br />
:## soft bodies and massive springs<br />
:## API polishing<br />
:# GUI (Step itself):<br />
:## threading (do calculations in separate thread)<br />
:## user-editable notes in experiment<br />
:## units for all quantities, unit conversions<br />
:## sidebar with nice descriptions for all bodies and its parameters (main properties, physical laws about it, real-world examples, ...)<br />
:## custom graphics for various quantities (for example v(t) or v(x) - user can select what exactly to plot).<br />
:## custom controllers to interactively control body parameters during simulation (for example user can add slider to control mass of the body and even assign hotkeys to it).<br />
:## knewstuff for sharing experiments<br />
:## tutorials (series of experiments with explanations)<br />
:## GUI polishing<br />
<br />
'''Mentor:'''<br />
<br />
=== KDE PIM libraries and applications ===<br />
<br />
==== KPilot - Enhance Record based syncing ====<br />
<br />
''' Project Information:''' KPilot is the KDE application which synchronizes Palm OS PDAs with various KDE applications, including KMail, KAddressbook and Calendar. KPilot makes use of the pilot-link library to handle the interaction between the device and the conduits. These conduits are plugins which handle the actual synchronization of the items. For more information see [http://www.kpilot.org]<br />
<br />
'''Brief explanation:''' The vast majority of KPilot's conduits are record-based in nature. This means that the logical program flow for each of the conduits is very much the same in that they will each: <br />
<br />
:# Open a Palm database<br />
:# Retrieve either all records or just the changed records<br />
:# Open a PC data store<br />
:# Retrieve either all or changed records<br />
:# Handle tri-directional syncing, conflict handling, and merging changed data<br />
:# Then write the resolved data sets back to the PC and Palm data stores <br />
<br />
But the current conduit framework does not abstract this common functionality into a set of base classes as it should. This has resulted in a lot of duplicated code throughout KPilot's conduit base, and each conduit has its own way of handling this common functionality. Understandably, this has led to bugs in the syncing algorithms and has made maintainability of the conduits (and KPilot) a much more difficult thing than it should be. For every conduit, the maintainer has to learn how the actual syncing is done. To make matters worse, there are a couple of conduits which don't sync correctly because of a incomplete implementation of handling records.<br />
<br />
'''Expected results:''' The student will create an improved framework for KPilot's record-based conduits and (re)implement a (new) conduit as a proof of concept.<br />
<br />
:# Documentation about the syncing process of a record based conduit.<br />
:## Sequence diagrams detailing sync logic for each of the major scenarios: HotSync, FullSync, Copy PC to Handheld, Copy Handheld to PC<br />
:## Class diagram detailing:<br />
:##* Inheritance hierarchy<br />
:##* Class relationships<br />
:# Implementation of the abstract record based conduit in the KPilot library.<br />
:# (Re)implementation of a (new) Conduit as proof of concept.<br />
<br />
'''Knowledge Pre-Requisite:''' basic knowledge of C++ is a pre-requirement. Other useful skills, but not mandatory are:<br />
* Qt experience<br />
* Pilot-link experience<br />
<br />
'''Mentor:''' Adriaan de Groot <groot@kde.org>, Jason 'vanRijn' Kasper <vR@movingparts.net>.<br />
<br />
'''Mailing list:''' The kde-pim mailing list: http://lists.kde.org/?l=kde-pim&r=1&w=2.<br />
<br />
==== KitchenSync ====<br />
<br />
KitchenSync is the frontend to the generic synchronization system [http://www.openysync.org OpenSync]. It is supposed to become the standard syncing solution for KDE. Right now it already supports synchronization of KDE PIM data with a wider variety of mobile devices like phones and PDAs as well was synchronization with other applications like Evolution or Google calendar.<br />
<br />
KitchenSync works pretty well as OpenSync, but doesn't yet cover all functionality OpenSync provides. The goal of this project would be to improve that. For example the configuration GUIs for the various OpenSync plugins would need some work.<br />
<br />
This project requires some knowledge in KDE programming. It will also involve collaboartion with the OpenSync team, so some experience with C is helpful.<br />
<br />
'''Mentor:''' Cornelius Schumacher <schumacher@kde.org><br />
<br />
==== KOrganizer Theming ====<br />
<br />
KOrganizer Theming: In the real world calendars are made from paper and carry lots of pretty pictures, witty sayings, historical data or similar things. Compared to that calendar programs are extremely plain. One of the intents of the CalendarDecoration plugin interface for KOrganizer was to make it possible to add theming to the calendar views, so that you can add all the fun things which make paper calendars more than just a bunch of papers with dates on it. Combined with the KNewStuff technology this could bring much more color to our desktops and make KOrganizer interesting to people which currently wouldn't think of using a calendar program.<br />
<br />
'''Mentor:''' Cornelius Schumacher <schumacher@kde.org><br />
<br />
=== KDE Games ===<br />
<br />
==== Kombinaton - AI Engine ====<br />
<br />
''' Project Information:''' Kombination is a KDE4 scrabble clone. The project would be adding an artificial intelligence interface and at least one engine. Kombination currently lives in trunk/playground/games/kombination/ and the author would like to see Kombination be included with KDE Games soon. More information: [http://home.gna.org/kombination/ the Kombination web page].<br />
<br />
'''Knowledge Pre-Requisite:''' basic knowledge of C++ is a pre-requirement. Basic knowledge of Scrabble rules is a must too. KDE and Qt skills will be useful but not mandatory.<br />
<br />
'''Mentor:''' Albert Astals Cid <aacid@kde.org>. <br />
<br />
'''Mailing list:''' The kombination mailing list: http://home.gna.org/kombination/ .<br />
<br />
=== KDE SDK Applications ===<br />
<br />
==== Kate ====<br />
''' Project Information:''' Kate is a multi document editor, based on a rewritten version of the kwrite editing widget of KDE, offering all the features of that plus a bunch of its own.<br />
<br />
'''Brief explanation:'''<br />
Make Kate a much more capable yet still lightweight development tool for KDE4. Add features to Kate including CVS and SVN integration (either via recognition of the kdesvn or kcvs utilities, or with a custom implementation), Eclipse-like workspace and project management, and build environment integration for various languages/tools via an extensible interface. Scale Kate as much as needed to accomodate these changes, and not beyond that (at least for the scope of this project).<br />
<br />
'''Expected results:''' The intended result would be a stable and extended implementation of Kate, providing CVS and SVN integration, Eclipse-like workspace and project management, and build environment integration.<br />
<br />
'''Knowledge Pre-Requisite:''' A prequisite would be knowledge of Qt/KDE and the ability to setup a KDE build environment. Additionally, knowledge of interfacing with source code repositories via C++, and general C++ knowledge would be required.<br />
<br />
'''Mentor:''' Christoph Cullmann <cullmann@kde.org>.<br />
<br />
'''Mailing list:''' [https://mail.kde.org/mailman/listinfo/kwrite-devel The Kate mailing list]<br />
<br />
=== KDevelop & Quanta ===<br />
<br />
==== Extend KDevelop's snippet support ====<br />
<br />
''' Project Information:''' Extend KDevelop's snippet support, see [http://bugs.kde.org/show_bug.cgi?id=106165 RFE 106165] for a detailed description (this proposal has been confirmed by popular vote).<br />
<br />
'''Knowledge Pre-Requisite:''' basic knowledge of C++ is a pre-requirement. KDE and Qt skills will required. Likewise, familiarity with XML is probably required, too in order to provide a flexible, multi-platform file format for data storage and -exchange.<br />
<br />
'''Suggested Approach:''' given that the envisioned functionality would probably be interesting to a rather large user base/audience, one should consider using a library-oriented approach, where key-functionality is provided in a fashion that facilitates standalone library-deployment, so that other OSS projects (i.e. other IDE projects) may eventually employ the corresponding library to add "snippet"-support, too.<br />
<br />
'''Mentor:''' none yet<br />
<br />
'''Mailing list:''' [mailto:kdevelop-devel@kdevelop.org KDevelop mailing list]<br />
<br />
==== Implement foundations for KDevelop4 Ruby language support ====<br />
<br />
''' Project Information:''' Ruby language and Rails web development tool is rapidly gaining popularity. The goal of this project is to implement the foundations for the best possible Ruby/Rails support in KDevelop.<br />
<br />
'''Knowledge Pre-Requisite:''' advanced knowledge of C++ is a pre-requirement. KDE and Qt skills are desired but not required. At least basic knowledge of parsing theory (lexers, LL parsers, AST's) is necessary as well. This is a challenging project.<br />
<br />
'''Brief Explanation:''' There're beginnings of Ruby support for KDevelop4 already. So the Ruby parser would be finished first and then definition-use chain for would be implemented. Those would allow to build extended code highlighting, navigation and problem reporting. The design for Ruby code completion would also be in the scope of this project.<br />
<br />
'''Expected Results:'''<br />
# Ruby parser with tests covering most of the language features<br />
# DUChain builder for class/method definitions and their usages<br />
# Advanced Ruby code highlighter and problem reporter<br />
# Working and well-tested Ruby language support plugin<br />
# Design for Ruby code completion<br />
<br />
'''Mentor:''' [mailto:adymo@kdevelop.org Alexander Dymo]<br />
<br />
'''Mailing list:''' [mailto:kdevelop-devel@kdevelop.org KDevelop mailing list]<br />
<br />
==== Implement foundations for KDevelop4 C# or Java language support ====<br />
<br />
''' Project Information:''' This is the project with a goals similar to the previous Ruby's one. Same are the prerequisites and expected results with only one differences. C# and Java parsers are already complete so the work could start with integrating them into KDevelop infrastructure. Also code completion for these language will be much easier to implement.<br />
<br />
'''Mentor:''' <br />
<br />
'''Mailing list:''' [mailto:kdevelop-devel@kdevelop.org KDevelop mailing list]<br />
<br />
=== Kopete ===<br />
<br />
=== Amarok ===<br />
<br />
''' Project Information:''' [http://amarok.kde.org/ Amarok website]<br />
<br />
==== Tightening of Web Service Integration ====<br />
<br />
'''Brief explanation:''' Amarok's motto is ''Rediscover your music''. Since listening to music can be a somewhat uninteresting experience, we try to enhance this aspect in a number of ways: <br />
<br />
:* Wikipedia information retrieval<br />
:* Lyric downloads<br />
:* Cover Art<br />
:* Music suggestions<br />
<br />
etc, etc. I'm sure you are more than familiar with the 'omg-im-going-to-wet-myself-this-is-so-cool' experience that you have at least once experienced.<br />
<br />
We would like to see some sort of enhancement to meta-information which can be displayed to the user. Some ideas that come to mind may include:<br />
:* Upcoming concerts<br />
:* Random artist trivia<br />
<br />
'''Expected results:''' The student will come up with a set of web-service enhancements and will implement them so that they integrate tightly with the final Amarok 2.0 interface and design goals.<br />
<br />
'''Knowledge Pre-Requisite:''' basic knowledge of C++ is a pre-requirement. Other useful skills, but not mandatory are:<br />
:* Qt experience<br />
:* Web service skills, such as SOAP, XML/DOM structures etc<br />
:* A keen eye for usability and the difference between features and benefits<br />
<br />
'''Mentor:''' Seb Ruiz <me@sebruiz.net><br />
<br />
'''Mailing list:''' [https://mail.kde.org/mailman/listinfo/amarok The Amarok mailing list]<br />
<br />
<br />
==== Integrate Additional Music Store or Streaming Music Service ====<br />
<br />
'''Brief explanation:''' Since the introduction of the integrated Magnatune.com music store in Amarok, there has been many proposals for other stores or services that could be integrated in a simmilar way. In the process of working towards Amarok 2.0, a new framework for adding such services without cluttering the interface has been proposed and the Magnatune store has been ported to this framework. Adding a new store or service is a nice way of getting into coding on Amarok at is fairly easy to approach witout knowing all the intricate details of Amaroks inner workings.<br />
<br />
There are several types of services that could be of interest:<br />
<br />
:* DRM free music stores ( preferably with good, full length, previews )<br />
:* Streaming audio content services ( Again, no DRM is a must )<br />
:* Live recording archives<br />
:* Most likely a 100 other kinds of sites that I have not thought of...<br />
<br />
The service chosen will have to be legal, and the service must agree to the integration taking place.<br />
<br />
There are currently no concrete agreements in place with other services, so this is very much a "bring your own idea" project, which both makes it a bit harder to get started, but also more rewarding.<br />
<br />
'''Expected results:''' The student reaches an agreement with a music store/service/whatnot and integrates its service into Amarok. Some effort would most likely also be spent on helping to mature the service framework.<br />
<br />
'''Knowledge Pre-Requisite:''' basic knowledge of C++ is a pre-requirement. Other useful skills, but not mandatory are:<br />
:* Qt experience<br />
:* Web service skills, such as SOAP, XML/DOM structures etc<br />
:* A keen eye for usability and the difference between features and benefits<br />
<br />
'''Mentor:''' Nikolaj Hald Nielsen <nhnFreespirit@gmail.com><br />
<br />
'''Mailing list:''' [https://mail.kde.org/mailman/listinfo/amarok The Amarok mailing list]<br />
<br />
=== okular ===<br />
<br />
''' Project Information:''' okular is a KDE 4 document viewer. http://www.okular.org<br />
<br />
'''Mailing list:''' [https://mail.kde.org/mailman/listinfo/okular-devel The okular mailing list]<br />
<br />
==== Improve the rendering of PDF patterns ====<br />
<br />
'''Explanation:''' okular uses the [http://poppler.freedesktop.org Poppler library] to render the PDF files. Some files with complex patterns may take even minutes to render, while with Acrobat Reader just a couple of seconds. <br />
<br />
'''Expected results:''' One needs to improve the Poppler library code that handles rendering of PDF files with patterns, making the pattern rendering faster with no drawbacks.<br />
<br />
'''Knowledge Pre-Requisite:''' basic knowledge of C++ is a requirement. Qt4 is strongly suggested too. Graphics and PDF konwledge are strongly suggested as well, but not mandatory.<br />
<br />
'''Mentor:''' Albert Astals Cid <aacid@kde.org><br />
<br />
==== Improve the presentation mode ====<br />
<br />
'''Explanation and Expected results:''' okular has a presentation mode for displaying documents on the screen in a way similar to a presentation application (think about KPresenter, OpenOffice.org Impress). Currently, the mode can just display only a single page, at the maximum size allowed by the screen. The idea is to extend the presentation mode by adding:<br />
* zooming support and pan mode<br />
* facing mode<br />
* missing PDF transitions, like Fly, Push, Cover, Uncover, Fade<br />
<br />
'''Knowledge Pre-Requisite:''' knowledge of C++ and Qt4 is a requirement. KDE 4, graphics and PDF konwledge are strongly suggested as well, but not mandatory.<br />
<br />
'''Mentor:''' Albert Astals Cid <aacid@kde.org><br />
<br />
==== Improve the annotation support ====<br />
<br />
'''Explanation and Expected results:''' one of the okular's goals is to support the annotations, mainly coming from PDF documents (but also from DjVu and ODT documents). As the support is not yet complete, some ideas could be:<br />
* adding the visual editing features (e.g. mouse click to visually select, drag to move around or resize, etc)<br />
* adding support for more kind of annotations (e.g. Caret, Watermark, etc)<br />
* improve the annotation toolbar<br />
* better support for text and line annotation drawing<br />
<br />
'''Knowledge Pre-Requisite:''' basic knowledge of C++ is a requirement. Qt4 is strongly suggested too. Graphics and PDF konwledge are strongly suggested as well, but not mandatory.<br />
<br />
'''Mentor:''' Albert Astals Cid <aacid@kde.org><br />
<br />
==== 3D artwork support ====<br />
<br />
'''Explanation and Expected results:''' the PDF formats allow the embedding of 3D artwork in documents. The idea is to start supporting this kind of artwork, and start displaying them on the document. What is required to do is:<br />
* basic reading support<br />
* basic displaying of the artwork on the document (thus creating a 3D view)<br />
* basic interaction with the 3D artwork (mouse or document actions)<br />
<br />
'''Knowledge Pre-Requisite:''' knowledge of C++ is a requirement. Qt4 is strongly suggested too. Graphics and PDF konwledge are strongly suggested as well, but not mandatory.<br />
<br />
'''Mentor:''' Albert Astals Cid <aacid@kde.org><br />
<br />
=== Other Applications ===<br />
<br />
==== KBugBuster ====<br />
<br />
KBugBuster is a native KDE client for the bug tracking system Bugzilla. It allows to browse, search and view bug reports and make modifications to them. It provides features which the web interface can't provide like an offline mode.<br />
<br />
One potential task would be to make KBugBuster work with the XML-RPC interface of Bugzilla. This would make access to Bugzilla more robust and make it possible to better support the editing of bug reports.<br />
<br />
'''Mentor:''' Cornelius Schumacher <schumacher@kde.org><br />
<br />
==== Knoware ====<br />
<br />
Knoware is previous SOC project. It creates a system that collates bug reports as well as anonymous system specs offered by users. It provides a statistical way of matching up bugs to likely culprits in a system or configuration so that developers can get a better handle on what the problem likely as as well as informing users of KDE what the potential pitfalls of their current system could be.<br />
<br />
One potential task would be to document the current system for further development. Another could be porting the curent code to Qt4.<br />
<br />
'''Mentor:'''<br />
==== Application User Interface Test System ====<br />
<br />
There are a couple of tools available for Qt / KDE that allow testing of applications - squish and kdexecutor. Both are binary only, and are specific to the systems that they are built on.<br />
<br />
It would be useful to have an open source tool that allowed us to test applications in a scripted way. Similar open source tools include Dogtail and LDTP, which use the accessibility interfaces in Gnome. <br />
<br />
There are arguments for and against using accessibility - it might be a lot more useful to implement a separate system, using some of the Qt4 specific features including QMetaObject. Qt4 has a nice set of hooks, and QTestLib shows how they can be implemented. However instead of requiring specific code in the application (as done by QTestLib), it would be more flexible to use LD_PRELOAD and a small interface library.<br />
<br />
'''More discussion:''' Brad Hards <bradh@kde.org><br />
<br />
=== Oxygen ===<br />
<br />
=== Decibel ===<br />
<br />
You can find a list of Decibel related ideas in the [https://services.brucherseifer.net/dbwiki/index.php/Project_Ideas Decibel Wiki]<br />
<br />
=== Usability ===<br />
==== A new design for contextual help (Whatsthis) ====<br />
<br />
Implement Ellen Reitmair's, Olaf Schmidt's, Philip Rodrigues' plan for a new infrastructure for contextual help.<br />
[http://www.userbrain.de/whatsthis/ideas_whatsthis_january06_v1.3.pdf ideas_whatsthis_january06_v1.3.pdf]<br />
<br />
=== Infrastructure ===<br />
<br />
* A way to make bugzilla help in finding duplicated bugs. could be some kind of 'suggested related bugs'<br />
<br />
=== KOffice ===<br />
All KOffice projects have common contact information and background info;<br />
You can read documents on [http://www.koffice.org www.koffice.org] and [http://wiki.koffice.org wiki.koffice.org], various proposals will reference pages on the wiki as thats the main design 'scratch pad' for the developers of KOffice.<br />
Contact information; '''IRC''': irc.kde.org channel #koffice '''Mail''': sent mail to the koffice mailinglist. Info [http://www.koffice.org/contact/ here]<br />
<br />
==== KOffice-wide Projects ====<br />
<br />
===== Collaborative editing in KOffice apps =====<br />
See [http://wiki.koffice.org/index.php?title=Collaboration Collaboration]. We don't expect a fully working implementation, as it is most probably too big a project. So please guestimate what you want to work on and finish.<br />
<br />
'''Mentor:''' KOffice or KDE developers<br />
<br />
-------<br />
===== Rulers and Grid in KOffice apps =====<br />
All applications in KOffice need a grid. A grid is a raster that will be drawn on top of all content on the canvas. This will tightly be integrated with rulers and guides. [http://wiki.koffice.org/index.php?title=Rulers_And_Grid Grids Framework]. <br />
<br />
'''Mentor:''' KOffice or KDE developers<br />
<br />
-------<br />
===== Improve OpenDocument compatibility in KOffice apps =====<br />
Specifically mentioned here are KSpread, KPresenter, KChart or KFormula<br />
<br />
'''Mentor:''' KOffice or KDE developers<br />
<br />
-------<br />
===== A 3D diagram flake-shape using lib-Eigen =====<br />
Lib [http://websvn.kde.org/trunk/kdesupport/eigen Eigen] has code to do all the hard lifting for 3D calculations. But little visualisation code. Build on top of that and be able to show data in a 3D manner into a [http://wiki.koffice.org/index.php?title=Flake Flake] shape.<br />
<br />
'''Mentor:''' KOffice or KDE developers<br />
<br />
-------<br />
===== Text-tool plugins for KOffice apps =====<br />
KOffice has a generic text-tool. Which will allow KWord to show all the complexity of text needed for word processing and DTP while other KOffice apps can reuse the component as well. The text tool (based on [http://wiki.koffice.org/index.php?title=Flake Flake]) has a plugin structure allowing external development to create extra functionality. A tutorial on how to build one will be written by the KOffice developers soon.<br />
# bookmarks plugin.<br />
# Uppercase Text. Alter the text to be all lowercase, Title Cased, or Capitalised.<br />
# Replace word. Use a Thesaurus to replace the text with a new one. <br> As a non-standard example what about replace-word with a texting-Language. There are many engines on the web that can replace normal text with some sort of funny version. <br />
# Colorization plugin. For those that publish pieces with sourcecode, being able to colorize text is a really useful tool.<br />
# An optional plugin that shows a word count in a docker updated continuesly.<br />
<br />
'''Mentor:''' KOffice or KDE developers<br />
<br />
-------<br />
===== A Flake-plugin that works on vector shapes =====<br />
It should be a tool, like the gradient tool or the color-picking tool. (see [http://wiki.koffice.org/index.php?title=Flake Flake])<br />
The tool would give you a set of brushes and each brush is defined as an outline only. So you'd have a 10pt wide circle as one brush, and a heart shaped brush as another. The tool will allow the user to 'stamp' or paint using these brushes and can use the Qt4.3 binary path operations to modify the vector shape.<br />
# Use case: I get a vector image of snow man and I want to paint a nose and two eyes on it like it were a pixel-based image.<br />
# Use case: I want to draw my signature as a vector shape.<br />
<br />
'''Mentor:''' KOffice or KDE developers<br />
<br />
-------<br />
===== Extend the ShapeSelector which is used by KOffice apps =====<br />
Extend the [http://wiki.koffice.org/index.php?title=ShapeSelector ShapeSelector] to do several more things;<br />
* make it listen to the clipboard and show a visual representation of the current state.<br />
* make it possible to drag something (a shape or just some text) off of the canvas onto the shapeSelector where it then gets stored. Also between sessions.<br />
* make it possible to save a selection of items in the shapeSelector and save them on disk as one 'bundle' so I can send that to someone else.<br />
* make it possible to load such a bundle from disk.<br />
* make it possible to connect to a remove storage (a webpage or a samba share etc) using kio on startup and download changed bundles to show in the shape-selector.<br />
<br />
'''Mentor:''' KOffice or KDE developers<br />
<br />
-------<br />
===== Add accessibility support to Flake =====<br />
Using the Qt framework for accessibility, make it possible for the text tool and perhaps other tools to be accessible. Which means that a blind user can use KWord.<br />
<br />
'''Mentor:''' KOffice or KDE developers<br />
<br />
<br />
==== KWord ====<br />
===== KWord master document =====<br />
This maybe in combination with book-files, which combine a set of individual documents to one book with continues numbering/etc. See [http://wiki.koffice.org/index.php?title=KWord/Master_Documents Usecase]<br />
<br />
'''Mentor:''' KOffice or KDE developers<br />
<br />
-------<br />
===== Add support for better tables in KWord =====<br />
In KOffice2.0 tables as we know it in 1.x has been removed. The tables for KOffice2 have to be based on the text engine (qt-scribe) which already knows about html-style-tables. The SoC proposal is to extend this and add tables support to KWord again using the ODF specification for the feature list that is required of tables.<br />
<br />
'''Mentor:''' KOffice or KDE developers<br />
<br />
-------<br />
===== KWord Scripting =====<br />
'''Brief explanation:''' KWord comes with a [http://wiki.koffice.org/index.php?title=KWord/Scripting Scripting Plugin] based on [http://kross.dipe.org Kross]. The plugin provides a clean interface to offer access to the KWord functionality from within scripting backends.<br />
<br />
'''Expected results:''' Improve the current scripting plugin.<br />
* Evaluate what is needed or what a script could need and implement it to earn a powerful scripting backend for KWord 2.0.<br />
* The current design may need to be refactored cause the scripting API should be as simple as possible.<br />
* Provide sample scripts to demonstrate what's possible and Unittests for regression testing.<br />
<br />
'''Knowledge Pre-Requisite:''' knowledge of C++/Qt, experience with word-processing<br />
<br />
'''Mentor:''' Sebastian Sauer <mail@dipe.org><br />
<br />
==== Kexi ====<br />
Kexi is an integrated data management application for desktop users like Microsoft Access.<br />
<br />
-------<br />
===== Improve Kexi Data Import/Export =====<br />
'''Brief explanation:''' Currently Kexi allows importing CSV files into an existing database, and converting MySQL/PostgreSQL/MS Access databases into Kexi databases.<br />
<br />
The aim of this project is to provide plugin(s) that import from more database backends/formats.<br />
<br />
You can select a backend you like to implement migration for:<br />
<br />
* HSQLDB - the OpenOffice.org Base's DB backend (ODB file format, very important to have)<br />
* ODBC<br />
* Paradox<br />
* DBase (e.g. using http://www.anubisnet.de/products/dbf )<br />
* MS SQL Server (e.g. using http://www.freetds.org/ )<br />
* Firebird (note: pending licence checks if we want GPL-compliance)<br />
<br />
For the ODBC driver, a migration plugin and a backend plugin should be provided. For Paradox, only a migration plugin is required, although this will require modifying the migration framework to allow more than one file to be selected as the source database (i.e. the database to be imported).<br />
<br />
Both a migration plugin and a backend plugin could be provided for HSQLDB, which should be implemented using JNI to invoke JDBC methods in the HSQLDB library. To avoid Java and OO.org dependencies, a small tool could be developed in Java to export/import to/from a intermediate format, and then used from within a Kexi migration plugin.<br />
<br />
In any case, migration plugins are simpler to implement than direct access plugins (drivers), so these can be developed first.<br />
<br />
'''Expected results:''' HSQL support would enable OpenOffice.org Base format for KDE and KOffice itself, a good companion to already existing OpenDocument support. ODBC connectivity would add many new possibilities directly to KDE.<br />
<br />
'''Knowledge Pre-Requisite:''' knowledge of C++, (knowledge of Qt and experience with a given database format/backend is recommended)<br />
<br />
'''More info:'''<br />
*[http://kexi-project.org/wiki/wikiview/index.php?GoogleSummerOfCode2006_DBaseMigrationPlugin "DBase Migration Plugin for Kexi" proposed by Jonathon Manning last year]<br />
*[http://kexi-project.org/wiki/wikiview/index.php?GoogleSummerOfCode2006_ParadoxAndHSQLAccess "Paradox & HSQL access for Kexi" proposed by Joseph Wenninger last year]<br />
<br />
'''Mentor:''' Jaroslaw Staniek <js@iidea.pl>, Sebastian Sauer <mail@dipe.org><br />
<br />
'''Mailing list:''' [https://mail.kde.org/mailman/listinfo/kexi-devel kexi-devel]<br />
<br />
-------<br />
<br />
===== Kexi Web Forms =====<br />
'''Brief explanation:''' Web Forms allow to read-only or read-write access to database projects created with Kexi. It is optional feature for uses where client has no Kexi installed for any reason. The fact that the Web Forms will use Web standards, adds another advantage over competitors like MS Access (which uses proprietary Windows-only ActiveX bindings).<br />
<br />
Proposed solution is to develop a small standalone web server. It is probably already written in C++ or C by FOSS community. Good examples are lighttpd - http://www.lighttpd.net/ <br />
and (being already in KDEnetwork module) KPF - http://rikkus.info/kpf.html.<br />
<br />
The web serwer would be dynamically linked to kexidb and thus can access Kexi databases via universal KexiDB API, and create HTML content on demand as an answer to HTTP requests.<br />
<br />
For alternative solution see "Alternative solution for Kexi forms using PHP" below.<br />
<br />
'''Expected results:''' Shortly, it is internet-enabler for KOffice/KDE data management.<br />
<br />
'''Knowledge Pre-Requisite:''' knowledge of C++ and HTTP/web standards, (knowledge of Qt and experience with a given database format/backend is recommended)<br />
<br />
'''More info:''' [http://jacek.migdal.pl/gsoc/ Solution proposed by Jacek Migdal last year]<br />
<br />
'''Mentor:''' Jaroslaw Staniek <js@iidea.pl><br />
<br />
'''Mailing list:''' [https://mail.kde.org/mailman/listinfo/kexi-devel kexi-devel]<br />
<br />
-------<br />
<br />
===== Alternative Solution for Kexi Forms Using PHP =====<br />
'''Brief explanation:''' Create a Kexi plugin generating PHP code saving it directy to the filesystem. This will require Apache (or other PHP-compatible web server) to be present and configured, and also will require the plugin to be packaged with a script that will install appropriate tools that allow r/w accessing the Apache/php subdirs.<br />
<br />
'''Expected results:''' The generated code could directly access MySQL or PostgreSQL servers at the backend, so users could immediately have a robust server-side solution without complex requirements.<br />
<br />
'''Knowledge Pre-Requisite:''' knowledge of PHP, web standards and C++, (knowledge of Qt is recommended)<br />
<br />
'''Mentor:''' Jaroslaw Staniek <js@iidea.pl><br />
<br />
'''Mailing list:''' [https://mail.kde.org/mailman/listinfo/kexi-devel kexi-devel]<br />
<br />
== Notes on editing this page ==<br />
<br />
Before making any modifications, please '''log in''' to Techbase. This will help us track who is contributing to the ideas.<br />
<br />
When making modifications to existing ideas, please consider whether you're changing it more fundamentally or just superficially. If your changes are substantial, you probably have an entirely new idea. Similarly, if your idea is modified and you feel it no longer reflects your original thought, please split the idea in two, restoring yours.<br />
<br />
Please use the [[Talk:Projects/Summer of Code/2007/Ideas|talk page]] if you want to discuss an idea.<br />
<br />
Finally, do '''not''' delete ideas without a reason for doing so (like, for instance, being contrary to KDE ideals, being completely unrelated to KDE, being unfeasible, etc.) -- you may want to state in the [[Talk:Projects/Summer of Code/2007/Ideas|talk page]] why you removed the idea.<br />
<br />
Do '''not''' re-add ideas that were removed without discussing first with the developers of the target application.</div>Dymohttps://techbase.kde.org/index.php?title=Projects/Summer_of_Code/2007/Ideas&diff=9052Projects/Summer of Code/2007/Ideas2007-03-12T22:20:00Z<p>Dymo: /* KDevelop & Quanta */</p>
<hr />
<div>This page is an open list for ideas for the 2007 edition of [http://code.google.com/soc Google Summer of Code]. It will remain editable while the submission process is open.<br />
<br />
This list is not exhaustive. It is just a collection of some ideas. To get further ideas, you can also look at our [http://wiki.kde.org/tiki-index.php?page=KDE%20Google%20SoC%202006%20ideas list of ideas for the year 2006]<br />
<br />
Before proceeding, please read the [[Projects/Summer of Code/2007/Participation|participation instructions]]. They are useful for students and developers alike. Before editing this page, please take a look at the [[#Notes on editing this page|Notes on editing this page]] section at the end.<br />
<br />
== Past ideas ==<br />
<br />
You may want to take a look at the [http://wiki.kde.org/tiki-index.php?page=KDE%20Google%20SoC%202006%20ideas ideas page for 2006]. Some of the ideas there are still valid today.<br />
<br />
== Project ideas ==<br />
<br />
These ideas were contributed by our developers and users. They are sometimes vague or incomplete. If you wish to submit a proposal based on these ideas, you may wish to contact the developers and find out more about the particular suggestion you're looking at. <br />
<br />
If there is no specific contact given you can ask questions on the general KDE development list kde-devel@kde.org. See [http://www.kde.org/mailinglists/ the KDE mailing lists page] for information on available mailing lists and how to subscribe.<br />
<br />
When adding an idea to this section, please try to include the following data:<br />
:* if the application is not widely known, a description of what it does and where its code lives<br />
:* a brief explanation<br />
:* the expected results<br />
:* pre-requisites for working on your project<br />
:* if applicable, links to more information or discussions<br />
:* mailing list or IRC channel for your application/library/module<br />
:* your name and email address for contact (if you're willing to be a mentor)<br />
<br />
=== KDE Libs ===<br />
<br />
==== KPassivePopup ====<br />
''' Project Information:''' [http://api.kde.org/cvs-api/kdelibs-apidocs/kdeui/html/classKPassivePopup.html KPassivePopup] is the class that displays information next to taskbar icons, system tray icons or windows without interrupting the user. It is used both directly and by KNotify and is part of libkdeui.<br />
<br />
'''Brief explanation:''' Convert KPassivePopup to use QSvg for the frame etc. this would allow it to be much more flexible in its visual appearance and could allow us to eliminate the various custom implementations that are floating around. This would include examining these forks and ensuring the same functionality could be cleanly incorporated.<br />
<br />
'''Expected results:''' The intended result would be a single implementation of KPassivePopup that could be reused without copying code by applications such as Kopete that currently maintain their own versions.<br />
<br />
'''Knowledge Pre-Requisite:''' A prequisite would be knowledge of Qt/KDE and the ability to setup a KDE build environment. Knowledge of SVG would obviously be a big help.<br />
<br />
'''Mentor:''' Richard Moore <rich@kde.org>, Aaron Seigo <aseigo@kde.org>.<br />
<br />
==== Solid ====<br />
<br />
==== Phonon ====<br />
<br />
==== KHTML ====<br />
<br />
==== KJS - Scripting Modules ====<br />
<br />
''' Project Information:''' KJS is KDE's JavaScript engine that was originally developed for the Konqueror Web browser. It as a light-weight, standalone library that can easily be embedded into other applications to make them scriptable.<br />
<br />
Besides being restricted to running in the sandbox of an application usage for text and file processing or other administrative or server side tasks in a command line interpreter are thinkable. Consider what made e.g. Perl successfull. What's lacking are modules providing the necessary functions.<br />
<br />
'''Brief explanation:''' The project would start out with gathering an overview of typical functions found in other scripting languages like Perl, Python and Tcl. The most important ones would then be selected and implemented in (at first) C++ modules that are dynamically loaded by the KJS command line interpreter.<br />
<br />
'''Expected results:''' A set of low-level modules like File, CGI, JSON or similar with a documented set of constructors, functions and properties. They should form the base for pure JavaScript modules to be build on top.<br />
<br />
'''Knowledge Pre-Requisite:''' Some C++ programming knowledge is required. Knowledge about other scripting languages like Python and Perl would be advantageous.<br />
<br />
'''Mentor:''' Harri Porten <porten@kde.org>.<br />
<br />
==== Sonnet ====<br />
<br />
==== Kross ====<br />
<br />
'''Project Information:''' [http://kross.dipe.org Kross] is a modular scripting framework that provides a complete framework to embed scripting interpreters like Python, Ruby and KDE JavaScript transparently into native applications to bridge the static and dynamic worlds together.<br />
<br />
'''Brief explanation:''' While Kross does already provide access to Python, Ruby and KDE JavaScript, Java is missing. With a Java backend we could provide access to JDBC databases, Hibernate, Sandboxes and all the other goodies.<br />
<br />
'''Expected results:'''<br />
* Target is to implement a Java backend and offer Java as another supported scripting backend in Kross.<br />
* Propably just bridge or at least provide access to QtJambi.<br />
* Unittests and clean code :)<br />
<br />
'''Knowledge Pre-Requisite:''' knowledge of C/C++, be able to get into the dark details of embedding Java.<br />
<br />
'''Mentor:''' Sebastian Sauer <mail@dipe.org><br />
<br />
==== KDEPrint -- UI redesign ====<br />
<br />
'''Project Information:''' [http://printing.kde.org KDEPrint] is the well known and very advanced printing platform common to all KDE applications.<br />
<br />
'''Brief explanation:''' Redesign user interfaces related to printing. Improve usability.<br />
<br />
''' Expected results:''' Produce an improved set of graphic interfaces to KDE's printing technology, based on usability reports already available and using new (original) usability ideas.<br />
<br />
'''Prerequisites:''' C++, KDE/Qt programming, experience with design and creation of usable UI.<br />
<br />
'''Mentor:''' Cristian Tibirna <tibirna@kde.org><br />
<br />
<br />
==== KDEPrint -- porting to CUPS > 1.2 ====<br />
<br />
'''Project Information:''' [http://printing.kde.org KDEPrint] is the well known and very advanced printing platform common to all KDE applications.<br />
<br />
'''Brief explanation:''' Port the current KDEPrint code to supporting CUPS later than 1.2, both in KDE-3.5 and KDE-4 branches.<br />
<br />
''' Expected results:''' Based on the already very well thought out interface to CUPS-1.1, work is necessary for supporting new features and following bug fixes in the latest incarnation of CUPS, the most important backend of KDEPrint.<br />
<br />
'''Prerequisites:''' C, C++, KDE/Qt programming, writing code following specifications.<br />
<br />
'''Mentor:''' Cristian Tibirna <tibirna@kde.org><br />
<br />
<br />
==== KDEPrint -- porting to Qt-4.3/KDE-4 ====<br />
<br />
'''Project Information:''' [http://printing.kde.org KDEPrint] is the well known and very advanced printing platform common to all KDE applications.<br />
<br />
'''Brief explanation:''' Port the KDEPrint code of KDE-4 branch to latest Qt-4/KDE-4 libraries technologies.<br />
<br />
''' Expected results:''' This task requires a thorough analysis of technologies used by KDEPrint in the previous (KDE-3.5) incarnation and replacement as needed with new or improved equivalents from Qt-4/KDE-4. Use of the new intercommunication technologies (D-Bus) and new notification technologies is required.<br />
<br />
'''Prerequisites:''' C, C++, KDE/Qt programming, willingness to learn D-Bus as well as KDE-4 APIs.<br />
<br />
'''Mentor:''' Cristian Tibirna <tibirna@kde.org><br />
<br />
==== KDEPrint -- add support for LinuxPrinting's on-line drivers query ====<br />
<br />
'''Project Information:''' [http://printing.kde.org KDEPrint] is the well known and very advanced printing platform common to all KDE applications.<br />
<br />
'''Brief explanation:''' Add support to KDEPrint for the new [http://www.linux-foundation.org/en/OpenPrinting/Database/Query OpenPrinting Database] which allows on-line search for new (locally unavailable) drivers for printers during printer installation.<br />
<br />
''' Expected results:''' This task requires a good learning of the OpenPrinting Database Querying interface. Getting accustomed with KDEPrint's printer installation algorithms is also required. Target platform is KDE-4 but time permitting, a port to KDE-3.5 would be welcome.<br />
<br />
'''Prerequisites:''' C, C++, KDE/Qt programming<br />
<br />
'''Mentor:''' Cristian Tibirna <tibirna@kde.org><br />
<br />
==== KIConLoader: SVG Render Cache ====<br />
''' Project Information:''' {{class|KIconLoader}} is the class the fetches icons from disk on demand and returns pixmap data for use on screen. This project would add an on-disk binary cache to be used for SVG icons.<br />
<br />
'''Brief explanation:''' [http://aseigo.blogspot.com/2007/03/efficient-scallable-icons.html See my blog entry here for a description of the problem].<br />
<br />
'''Expected results:''' A transparent cache that would increase the efficiency of SVG icon usage at runtime, with the possibility of adding runtime composition capabilities to {{class|KIconLoader}}.<br />
<br />
'''Knowledge Pre-Requisite:''' A prequisite would be the ability to setup a KDE build environment. Qt/KDE programming knowledge is not a high requirement for this task, though the student will obviously be picking some of that up as they go. Experience with similar projects involving caching would be good.<br />
<br />
'''Mentor:''' Aaron Seigo <aseigo@kde.org>.<br />
<br />
=== KDE Base applications ===<br />
<br />
==== Konqueror - web browser ====<br />
<br />
==== Konqueror - userscripts ====<br />
''' Project Information:''' The goal of this project would be to implement and integrate into KDE4 a [http://www.konqueror.org/ Konqueror] equivalent of FireFox's [http://en.wikipedia.org/wiki/Greasemonkey Greasemonkey] plugin to allow installing and running user scripts. The project could start of from this [http://www.kde-apps.org/content/show.php?content=51482 existing GPL-ed code].<br />
<br />
'''Expected results:''' A Greasemonkey equivalent for Konqueror that allows (de)installing and running Greasemonkey compatible user scripts.<br />
<br />
'''Knowledge Pre-Requisite:''' C++ programming skills<br />
<br />
==== Konqueror & Dolphin - file manager ====<br />
<br />
==== Plasma: icon placement ====<br />
'''Brief explanation:''' Ordering the icons on the desktop has always been a pain for the users. They invent a certain arrangement (images top left, devices lower right, ...) and try to stick with it. Whenever they drop something to the Desktop folder in their filemanager, or when they plug in a new device the icon appears at an arbitrary location. Using clustering techniques and meta information about the existing icons, it would be possible to determine the most useful location for a new icon on the desktop.<br />
<br />
'''Expected results:''' Improve the icon placing strategy of kdesktop (plasma) using clustering techniques.<br />
* Try various clustering algorithms ([http://en.wikipedia.org/wiki/Data_clustering Wikipedia Data Clustering] might help) and choose the one most suitable for the task<br />
* Implement an icon placement strategy in plasma, using the chosen clustering algorithm.<br />
<br />
'''Knowledge Pre-Requisite:''' Familiarity with clustering algorithms or motivation to study them, C++/Qt coding skills<br />
<br />
==== KWin ====<br />
<br />
==== Strigi: chemistry and biology support ====<br />
<br />
''' Project Information:''' [http://www.vandenoever.info/software/strigi/ Strigi] is a promosing alternative to other desktop<br />
search tools, like Beagle/Kerry. It has a plugin architecture that allows writing indexing plugins for a specific area, or specific enhanced purposes. Available are both inline plugins (written in C++), as well as plugins that call programs written in other languages via the command line. Strigi is showing progress towards integration to semantic desktop ideas, as in the [http://nepomuk-kde.semanticdesktop.org/xwiki/bin/view/Main/ Nepomuk] project. This allows chemical information to be semantically marked up, and easily retrieved.<br />
<br />
'''Brief explanation:''' The idea of this project is to integrate chemistry and biology knowledge into the KDE desktop, by writing chemistry and biology aware plugins for Strigi. Exact molecule searching on the hard disk will be supported via the [http://www.iupac.org/InChI InChI]. For the rest, normal free text searching will do fine for now. Generation of InChI's will be done via [http://openbabel.sf.net/ OpenBabel], for files supported by the [http://chemical-mime.sourceforge.net/ Chemical MIME]'s (which has existing KDE support) and [http://freshmeat.net/projects/kfile_chemical/?branch_id=60776&release_id=231404 kfile-chemical] (which is available for KDE3 and KDE4). Optionally, the student can incorporate the chemical text mining tool [http://wwmm.ch.cam.ac.uk/wikis/wwmm/index.php/Oscar3 OSCAR3] developed in Cambridge, UK, to extract InChI's from text documents, like PDF, HTML, etc. Here Strigi's jstream technology come in handy, as it will provide a plain text version for all those formats. Extraction of biochemical information is much easier, as these files commonly plain text already.<br />
<br />
'''Expected results:''' Strigi plugins that: <br />
:# extract meta data for (bio)chemical files defined by the Chemical MIMEs, via the kfile-chemical kfile plugins, <br />
:# process files with a (subset of) (bio)chemical MIME with OpenBabel to generate an InChI for indexing, <br />
:# (optionally) use OSCAR3 to process plain text and create InChIs for molecules found in that text. Additionally, the student is invited to propose a useful ontology for marking up the extracted chemical and biological information.<br />
<br />
'''Knowledge Pre-Requisite:''' knowledge of C++ is a requirement, as is high school education in chemistry and biology.<br />
<br />
'''Mentor(s):''' Carsten Niehaus <cniehaus@kde.org>, <br />
Jerome Pansanel <j.pansanel@pansanel.net>, Egon Willighagen <egonw@user.sf.net>, Jos van den Oever" <jvdoever@gmail.com><br />
<br />
'''Mailing list:''' [http://sourceforge.net/mail/?group_id=171000 strigi-devel@lists.sourceforge.net]<br />
<br />
=== KDE Edu ===<br />
<br />
==== A 3D Molecular Editor ====<br />
''' Project Information:''' There are several 3D molecular editors, but only few open source programs, such as [http://www.uku.fi/~thassine/projects/ghemical/ Ghemical]. The GPL-ed [http://openbabel.sf.net OpenBabel project] open chemistry library has expanded its usefulness improving chemistry software. This resulted in, among other things, an application and library called [http://avogadro.sourceforge.net/ Avogadro]. [http://edu.kde.org/kalzium/index.php Kalzium] and Avogadro will soon merge a lot of code so that both apps share an underlying rendering library for molecules (using OpenGL). Avogadro already has basic "molecule construction" capabilities. The goal of this project is to extend these such to yield a 3D editor suitable for basic molecular drawing and visualization for high school and university students.<br />
<br />
'''Expected results:''' The improved application would be based on the new OpenGL based rendering code, and able to construct common organic molecules (such as [http://chem-file.sourceforge.net/data/carboxylic_acids/2R-2-1S-1_2-dihydroxyethyl-4_5-dihydroxy-furan-3-one_en.html this one]). The 3D-display code inside Kalzium will be reused and expanded to handle, for example, protein "ribbon" views, surfaces, and surface-mapped functions like electronic charge. Additional features such as configurable labels (for atoms, protein residues, etc.) and flexibility to change rendering for individual atoms or bonds would be welcome.<br />
<br />
'''Knowledge Pre-Requisite:''' Basic Qt-knowledge and basic chemistry knowledge. OpenGL experience welcome.<br />
<br />
'''Mentor:''' Carsten Niehaus (cniehaus at kde dot org)<br />
<br />
'''Mailing list:''' kalzium at kde dot org<br />
<br />
==== MARBLE - Adding a 2D View ====<br />
<br />
''' Project Information:''' Marble is a Qt 4-based generic virtual globe widget which is meant to integrate well with the KDE desktop to provide basic input and visualisation facilities for geographical data. Marble currently lives in http://websvn.kde.org/trunk/playground/base/marble/ and the author would like to see Marble be included with KDE-Edu soon. More information: [http://www.kdedevelopers.org/node/2429 the Marble description].<br />
<br />
'''Brief explanation:''' To be properly integrated with other applications a 2D View for Marble will be needed in addition to the preferred 3D View (e.g. for merging functionality of KGeography and Marble). Three steps are suggested:<br />
:# reuse the current rendering engine in 2D mode<br />
:# write an optimized approach for the 2D case and thereby refactor parts of Marble (especially the texture mapping)<br />
:# include adding proper access methods for applications and the user interface<br />
<br />
Depending on the knowledge of the applicant the refactoring part can be extended.<br />
<br />
'''Expected results:''' adding the 2D View Mode to Marble. Optionally, if enough time is available, integrate that view mode in another application like KGeography.<br />
<br />
'''Knowledge Pre-Requisite:''' basic knowledge of C++ is a pre-requirement. Basic highschool trigonometry knowledge would be helpful. Other useful skills, but not mandatory are:<br />
* Qt experience<br />
<br />
'''Mentor:''' Torsten Rahn <rahn@kde.org>. <br />
<br />
'''Mailing list:''' The kde-edu mailing list: http://lists.kde.org/?l=kde-edu&r=1&b=200702&w=2 .<br />
<br />
=== KDE PIM libraries and applications ===<br />
<br />
==== KPilot - Enhance Record based syncing ====<br />
<br />
''' Project Information:''' KPilot is the KDE application which synchronizes Palm OS PDAs with various KDE applications, including KMail, KAddressbook and Calendar. KPilot makes use of the pilot-link library to handle the interaction between the device and the conduits. These conduits are plugins which handle the actual synchronization of the items. For more information see [http://www.kpilot.org]<br />
<br />
'''Brief explanation:''' The vast majority of KPilot's conduits are record-based in nature. This means that the logical program flow for each of the conduits is very much the same in that they will each: <br />
<br />
:# Open a Palm database<br />
:# Retrieve either all records or just the changed records<br />
:# Open a PC data store<br />
:# Retrieve either all or changed records<br />
:# Handle tri-directional syncing, conflict handling, and merging changed data<br />
:# Then write the resolved data sets back to the PC and Palm data stores <br />
<br />
But the current conduit framework does not abstract this common functionality into a set of base classes as it should. This has resulted in a lot of duplicated code throughout KPilot's conduit base, and each conduit has its own way of handling this common functionality. Understandably, this has led to bugs in the syncing algorithms and has made maintainability of the conduits (and KPilot) a much more difficult thing than it should be. For every conduit, the maintainer has to learn how the actual syncing is done. To make matters worse, there are a couple of conduits which don't sync correctly because of a incomplete implementation of handling records.<br />
<br />
'''Expected results:''' The student will create an improved framework for KPilot's record-based conduits and (re)implement a (new) conduit as a proof of concept.<br />
<br />
:# Documentation about the syncing process of a record based conduit.<br />
:## Sequence diagrams detailing sync logic for each of the major scenarios: HotSync, FullSync, Copy PC to Handheld, Copy Handheld to PC<br />
:## Class diagram detailing:<br />
:##* Inheritance hierarchy<br />
:##* Class relationships<br />
:# Implementation of the abstract record based conduit in the KPilot library.<br />
:# (Re)implementation of a (new) Conduit as proof of concept.<br />
<br />
'''Knowledge Pre-Requisite:''' basic knowledge of C++ is a pre-requirement. Other useful skills, but not mandatory are:<br />
* Qt experience<br />
* Pilot-link experience<br />
<br />
'''Mentor:''' Adriaan de Groot <groot@kde.org>, Jason 'vanRijn' Kasper <vR@movingparts.net>.<br />
<br />
'''Mailing list:''' The kde-pim mailing list: http://lists.kde.org/?l=kde-pim&r=1&w=2.<br />
<br />
==== KitchenSync ====<br />
<br />
KitchenSync is the frontend to the generic synchronization system [http://www.openysync.org OpenSync]. It is supposed to become the standard syncing solution for KDE. Right now it already supports synchronization of KDE PIM data with a wider variety of mobile devices like phones and PDAs as well was synchronization with other applications like Evolution or Google calendar.<br />
<br />
KitchenSync works pretty well as OpenSync, but doesn't yet cover all functionality OpenSync provides. The goal of this project would be to improve that. For example the configuration GUIs for the various OpenSync plugins would need some work.<br />
<br />
This project requires some knowledge in KDE programming. It will also involve collaboartion with the OpenSync team, so some experience with C is helpful.<br />
<br />
'''Mentor:''' Cornelius Schumacher <schumacher@kde.org><br />
<br />
==== KOrganizer Theming ====<br />
<br />
KOrganizer Theming: In the real world calendars are made from paper and carry lots of pretty pictures, witty sayings, historical data or similar things. Compared to that calendar programs are extremely plain. One of the intents of the CalendarDecoration plugin interface for KOrganizer was to make it possible to add theming to the calendar views, so that you can add all the fun things which make paper calendars more than just a bunch of papers with dates on it. Combined with the KNewStuff technology this could bring much more color to our desktops and make KOrganizer interesting to people which currently wouldn't think of using a calendar program.<br />
<br />
'''Mentor:''' Cornelius Schumacher <schumacher@kde.org><br />
<br />
=== KDE Games ===<br />
<br />
==== Kombinaton - AI Engine ====<br />
<br />
''' Project Information:''' Kombination is a KDE4 scrabble clone. The project would be adding an artificial intelligence interface and at least one engine. Kombination currently lives in trunk/playground/games/kombination/ and the author would like to see Kombination be included with KDE Games soon. More information: [http://home.gna.org/kombination/ the Kombination web page].<br />
<br />
'''Knowledge Pre-Requisite:''' basic knowledge of C++ is a pre-requirement. Basic knowledge of Scrabble rules is a must too. KDE and Qt skills will be useful but not mandatory.<br />
<br />
'''Mentor:''' Albert Astals Cid <aacid@kde.org>. <br />
<br />
'''Mailing list:''' The kombination mailing list: http://home.gna.org/kombination/ .<br />
<br />
=== KDE SDK Applications ===<br />
<br />
==== Kate ====<br />
''' Project Information:''' Kate is a multi document editor, based on a rewritten version of the kwrite editing widget of KDE, offering all the features of that plus a bunch of its own.<br />
<br />
'''Brief explanation:'''<br />
Make Kate a much more capable yet still lightweight development tool for KDE4. Add features to Kate including CVS and SVN integration (either via recognition of the kdesvn or kcvs utilities, or with a custom implementation), Eclipse-like workspace and project management, and build environment integration for various languages/tools via an extensible interface. Scale Kate as much as needed to accomodate these changes, and not beyond that (at least for the scope of this project).<br />
<br />
'''Expected results:''' The intended result would be a stable and extended implementation of Kate, providing CVS and SVN integration, Eclipse-like workspace and project management, and build environment integration.<br />
<br />
'''Knowledge Pre-Requisite:''' A prequisite would be knowledge of Qt/KDE and the ability to setup a KDE build environment. Additionally, knowledge of interfacing with source code repositories via C++, and general C++ knowledge would be required.<br />
<br />
'''Mentor:''' Christoph Cullmann <cullmann@kde.org>.<br />
<br />
'''Mailing list:''' [https://mail.kde.org/mailman/listinfo/kwrite-devel The Kate mailing list]<br />
<br />
=== KDevelop & Quanta ===<br />
<br />
==== Extend KDevelop's snippet support ====<br />
<br />
''' Project Information:''' Extend KDevelop's snippet support, see [http://bugs.kde.org/show_bug.cgi?id=106165 RFE 106165] for a detailed description (this proposal has been confirmed by popular vote).<br />
<br />
'''Knowledge Pre-Requisite:''' basic knowledge of C++ is a pre-requirement. KDE and Qt skills will required. Likewise, familiarity with XML is probably required, too in order to provide a flexible, multi-platform file format for data storage and -exchange.<br />
<br />
'''Suggested Approach:''' given that the envisioned functionality would probably be interesting to a rather large user base/audience, one should consider using a library-oriented approach, where key-functionality is provided in a fashion that facilitates standalone library-deployment, so that other OSS projects (i.e. other IDE projects) may eventually employ the corresponding library to add "snippet"-support, too.<br />
<br />
'''Mentor:''' none yet<br />
<br />
'''Mailing list:''' KDevelop mailing list<br />
<br />
==== Implement foundations for KDevelop4 Ruby language support ====<br />
<br />
''' Project Information:''' Ruby language and Rails web development tool is rapidly gaining popularity. The goal of this project is to implement the foundations for the best possible Ruby/Rails support in KDevelop.<br />
<br />
'''Knowledge Pre-Requisite:''' advanced knowledge of C++ is a pre-requirement. KDE and Qt skills are desired but not required. At least basic knowledge of parsing theory (lexers, LL parsers, AST's) is necessary as well. This is a challenging project.<br />
<br />
'''Brief Explanation:''' There're beginnings of Ruby support for KDevelop4 already. So the Ruby parser would be finished first and then definition-use chain for would be implemented. Those would allow to build extended code highlighting, navigation and problem reporting. The design for Ruby code completion would also be in the scope of this project.<br />
<br />
'''Expected Results:'''<br />
# Ruby parser with tests covering most of the language features<br />
# DUChain builder for class/method definitions and their usages<br />
# Advanced Ruby code highlighter and problem reporter<br />
# Working and well-tested Ruby language support plugin<br />
# Design for Ruby code completion<br />
<br />
'''Mentor:''' [mailto:adymo@kdevelop.org Alexander Dymo]<br />
<br />
'''Mailing list:''' [mailto:kdevelop-devel@kdevelop.org KDevelop mailing list]<br />
<br />
=== Kopete ===<br />
<br />
=== Amarok ===<br />
<br />
''' Project Information:''' [http://amarok.kde.org/ Amarok website]<br />
<br />
==== Tightening of Web Service Integration ====<br />
<br />
'''Brief explanation:''' Amarok's motto is ''Rediscover your music''. Since listening to music can be a somewhat uninteresting experience, we try to enhance this aspect in a number of ways: <br />
<br />
:* Wikipedia information retrieval<br />
:* Lyric downloads<br />
:* Cover Art<br />
:* Music suggestions<br />
<br />
etc, etc. I'm sure you are more than familiar with the 'omg-im-going-to-wet-myself-this-is-so-cool' experience that you have at least once experienced.<br />
<br />
We would like to see some sort of enhancement to meta-information which can be displayed to the user. Some ideas that come to mind may include:<br />
:* Upcoming concerts<br />
:* Random artist trivia<br />
<br />
'''Expected results:''' The student will come up with a set of web-service enhancements and will implement them so that they integrate tightly with the final Amarok 2.0 interface and design goals.<br />
<br />
'''Knowledge Pre-Requisite:''' basic knowledge of C++ is a pre-requirement. Other useful skills, but not mandatory are:<br />
:* Qt experience<br />
:* Web service skills, such as SOAP, XML/DOM structures etc<br />
:* A keen eye for usability and the difference between features and benefits<br />
<br />
'''Mentor:''' Seb Ruiz <me@sebruiz.net><br />
<br />
'''Mailing list:''' [https://mail.kde.org/mailman/listinfo/amarok The Amarok mailing list]<br />
<br />
<br />
==== Integrate Additional Music Store or Streaming Music Service ====<br />
<br />
'''Brief explanation:''' Since the introduction of the integrated Magnatune.com music store in Amarok, there has been many proposals for other stores or services that could be integrated in a simmilar way. In the process of working towards Amarok 2.0, a new framework for adding such services without cluttering the interface has been proposed and the Magnatune store has been ported to this framework. Adding a new store or service is a nice way of getting into coding on Amarok at is fairly easy to approach witout knowing all the intricate details of Amaroks inner workings.<br />
<br />
There are several types of services that could be of interest:<br />
<br />
:* DRM free music stores ( preferably with good, full length, previews )<br />
:* Streaming audio content services ( Again, no DRM is a must )<br />
:* Live recording archives<br />
:* Most likely a 100 other kinds of sites that I have not thought of...<br />
<br />
The service chosen will have to be legal, and the service must agree to the integration taking place.<br />
<br />
There are currently no concrete agreements in place with other services, so this is very much a "bring your own idea" project, which both makes it a bit harder to get started, but also more rewarding.<br />
<br />
'''Expected results:''' The student reaches an agreement with a music store/service/whatnot and integrates its service into Amarok. Some effort would most likely also be spent on helping to mature the service framework.<br />
<br />
'''Knowledge Pre-Requisite:''' basic knowledge of C++ is a pre-requirement. Other useful skills, but not mandatory are:<br />
:* Qt experience<br />
:* Web service skills, such as SOAP, XML/DOM structures etc<br />
:* A keen eye for usability and the difference between features and benefits<br />
<br />
'''Mentor:''' Nikolaj Hald Nielsen <nhnFreespirit@gmail.com><br />
<br />
'''Mailing list:''' [https://mail.kde.org/mailman/listinfo/amarok The Amarok mailing list]<br />
<br />
=== okular ===<br />
<br />
''' Project Information:''' okular is a KDE 4 document viewer. http://www.okular.org<br />
<br />
'''Mailing list:''' [https://mail.kde.org/mailman/listinfo/okular-devel The okular mailing list]<br />
<br />
==== Improve the rendering of PDF patterns ====<br />
<br />
'''Explanation:''' okular uses the [http://poppler.freedesktop.org Poppler library] to render the PDF files. Some files with complex patterns may take even minutes to render, while with Acrobat Reader just a couple of seconds. <br />
<br />
'''Expected results:''' One needs to improve the Poppler library code that handles rendering of PDF files with patterns, making the pattern rendering faster with no drawbacks.<br />
<br />
'''Knowledge Pre-Requisite:''' basic knowledge of C++ is a requirement. Qt4 is strongly suggested too. Graphics and PDF konwledge are strongly suggested as well, but not mandatory.<br />
<br />
'''Mentor:''' Albert Astals Cid <aacid@kde.org><br />
<br />
==== Improve the presentation mode ====<br />
<br />
'''Explanation and Expected results:''' okular has a presentation mode for displaying documents on the screen in a way similar to a presentation application (think about KPresenter, OpenOffice.org Impress). Currently, the mode can just display only a single page, at the maximum size allowed by the screen. The idea is to extend the presentation mode by adding:<br />
* zooming support and pan mode<br />
* facing mode<br />
* missing PDF transitions, like Fly, Push, Cover, Uncover, Fade<br />
<br />
'''Knowledge Pre-Requisite:''' knowledge of C++ and Qt4 is a requirement. KDE 4, graphics and PDF konwledge are strongly suggested as well, but not mandatory.<br />
<br />
'''Mentor:''' Albert Astals Cid <aacid@kde.org><br />
<br />
==== Improve the annotation support ====<br />
<br />
'''Explanation and Expected results:''' one of the okular's goals is to support the annotations, mainly coming from PDF documents (but also from DjVu and ODT documents). As the support is not yet complete, some ideas could be:<br />
* adding the visual editing features (e.g. mouse click to visually select, drag to move around or resize, etc)<br />
* adding support for more kind of annotations (e.g. Caret, Watermark, etc)<br />
* improve the annotation toolbar<br />
* better support for text and line annotation drawing<br />
<br />
'''Knowledge Pre-Requisite:''' basic knowledge of C++ is a requirement. Qt4 is strongly suggested too. Graphics and PDF konwledge are strongly suggested as well, but not mandatory.<br />
<br />
'''Mentor:''' Albert Astals Cid <aacid@kde.org><br />
<br />
==== 3D artwork support ====<br />
<br />
'''Explanation and Expected results:''' the PDF formats allow the embedding of 3D artwork in documents. The idea is to start supporting this kind of artwork, and start displaying them on the document. What is required to do is:<br />
* basic reading support<br />
* basic displaying of the artwork on the document (thus creating a 3D view)<br />
* basic interaction with the 3D artwork (mouse or document actions)<br />
<br />
'''Knowledge Pre-Requisite:''' knowledge of C++ is a requirement. Qt4 is strongly suggested too. Graphics and PDF konwledge are strongly suggested as well, but not mandatory.<br />
<br />
'''Mentor:''' Albert Astals Cid <aacid@kde.org><br />
<br />
=== Other Applications ===<br />
<br />
==== KBugBuster ====<br />
<br />
KBugBuster is a native KDE client for the bug tracking system Bugzilla. It allows to browse, search and view bug reports and make modifications to them. It provides features which the web interface can't provide like an offline mode.<br />
<br />
One potential task would be to make KBugBuster work with the XML-RPC interface of Bugzilla. This would make access to Bugzilla more robust and make it possible to better support the editing of bug reports.<br />
<br />
'''Mentor:''' Cornelius Schumacher <schumacher@kde.org><br />
<br />
==== Knoware ====<br />
<br />
Knoware is previous SOC project. It creates a system that collates bug reports as well as anonymous system specs offered by users. It provides a statistical way of matching up bugs to likely culprits in a system or configuration so that developers can get a better handle on what the problem likely as as well as informing users of KDE what the potential pitfalls of their current system could be.<br />
<br />
One potential task would be to document the current system for further development. Another could be porting the curent code to Qt4.<br />
<br />
'''Mentor:'''<br />
==== Application User Interface Test System ====<br />
<br />
There are a couple of tools available for Qt / KDE that allow testing of applications - squish and kdexecutor. Both are binary only, and are specific to the systems that they are built on.<br />
<br />
It would be useful to have an open source tool that allowed us to test applications in a scripted way. Similar open source tools include Dogtail and LDTP, which use the accessibility interfaces in Gnome. <br />
<br />
There are arguments for and against using accessibility - it might be a lot more useful to implement a separate system, using some of the Qt4 specific features including QMetaObject. Qt4 has a nice set of hooks, and QTestLib shows how they can be implemented. However instead of requiring specific code in the application (as done by QTestLib), it would be more flexible to use LD_PRELOAD and a small interface library.<br />
<br />
'''More discussion:''' Brad Hards <bradh@kde.org><br />
<br />
=== Oxygen ===<br />
<br />
=== Usability ===<br />
==== A new design for contextual help (Whatsthis) ====<br />
<br />
Implement Ellen Reitmair's, Olaf Schmidt's, Philip Rodrigues' plan for a new infrastructure for contextual help.<br />
[http://www.userbrain.de/whatsthis/ideas_whatsthis_january06_v1.3.pdf ideas_whatsthis_january06_v1.3.pdf]<br />
<br />
=== Infrastructure ===<br />
<br />
* A way to make bugzilla help in finding duplicated bugs. could be some kind of 'suggested related bugs'<br />
<br />
=== KOffice ===<br />
A list of KOffice ideas can be found at the [http://wiki.koffice.org/index.php?title=Summer_of_code KOffice wiki].<br />
<br />
==== KWord Scripting ====<br />
<br />
'''Brief explanation:''' KWord comes with a [http://wiki.koffice.org/index.php?title=KWord/Scripting Scripting Plugin] based on [http://kross.dipe.org Kross]. The plugin provides a clean interface to offer access to the KWord functionality from within scripting backends.<br />
<br />
'''Expected results:''' Improve the current scripting plugin.<br />
* Evaluate what is needed or what a script could need and implement it to earn a powerful scripting backend for KWord 2.0.<br />
* The current design may need to be refactored cause the scripting API should be as simple as possible.<br />
* Provide sample scripts to demonstrate what's possible and Unittests for regression testing.<br />
<br />
'''Knowledge Pre-Requisite:''' knowledge of C++/Qt, experience with word-processing<br />
<br />
'''Mentor:''' Sebastian Sauer <mail@dipe.org><br />
<br />
<br />
==== Improve Kexi Data Import/Export ====<br />
<br />
'''Brief explanation:''' Currently Kexi allows importing CSV files into an existing database, and converting MySQL/PostgreSQL/MS Access databases into Kexi databases.<br />
<br />
The aim of this project is to provide plugin(s) that import from more database backends/formats.<br />
<br />
You can select a backend you like to implement migration for:<br />
<br />
* HSQLDB - the OpenOffice.org DB backend (quite important to have)<br />
* ODBC<br />
* Paradox<br />
* DBase (e.g. using http://www.anubisnet.de/products/dbf )<br />
* MS SQL Server (e.g. using http://www.freetds.org/ )<br />
* Firebird - pending licence checks<br />
<br />
For the ODBC driver, a migration plugin and a backend plugin should be provided. For Paradox, only a migration plugin is required, although this will require modifying the migration framework to allow more than one file to be selected as the source database (i.e. the database to be imported).<br />
<br />
Both a migration plugin and a backend plugin could be provided for HSQLDB, which should be implemented using JNI to invoke JDBC methods in the HSQLDB library. <br />
<br />
In any case, migration plugins are simpler to implement than direct access plugins (drivers), so these can be developed first.<br />
<br />
'''Knowledge Pre-Requisite:''' knowledge of C++, (knowledge of Qt and experience with a given database format/backend is recommended)<br />
<br />
'''More info:'''<br />
*[http://kexi-project.org/wiki/wikiview/index.php?GoogleSummerOfCode2006_DBaseMigrationPlugin "DBase Migration Plugin for Kexi" proposed by Jonathon Manning last year]<br />
*[http://kexi-project.org/wiki/wikiview/index.php?GoogleSummerOfCode2006_ParadoxAndHSQLAccess "Paradox & HSQL access for Kexi" proposed by Joseph Wenninger last year]<br />
<br />
'''Mentor:''' Jaroslaw Staniek <js@iidea.pl>, Sebastian Sauer <mail@dipe.org><br />
<br />
'''Mailing list:''' [https://mail.kde.org/mailman/listinfo/kexi-devel kexi-devel]<br />
<br />
==== Kexi Web Forms ====<br />
<br />
'''Brief explanation:''' Web Forms allow to read-only or read-write access to database projects created with Kexi. It is optional feature for uses where client has no Kexi installed for any reason. The fact that the Web Forms will use Web standards, adds another advantage over competitors like MS Access (which uses proprietary Windows-only ActiveX bindings).<br />
<br />
Proposed solution is to develop a small standalone web server. It is probably already written in C++ or C by FOSS community. Good examples are lighttpd - http://www.lighttpd.net/ <br />
and (being already in KDEnetwork module) KPF - http://rikkus.info/kpf.html.<br />
<br />
The web serwer would be dynamically linked to kexidb and thus can access Kexi databases via universal KexiDB API, and create HTML content on demand as an answer to HTTP requests.<br />
<br />
For alternative solution see "Alternative solution for Kexi forms using PHP" below.<br />
<br />
'''Knowledge Pre-Requisite:''' knowledge of C++ and HTTP/web standards, (knowledge of Qt and experience with a given database format/backend is recommended)<br />
<br />
'''More info:''' [http://jacek.migdal.pl/gsoc/ Solution proposed by Jacek Migdal last year]<br />
<br />
'''Mentor:''' Jaroslaw Staniek <js@iidea.pl><br />
<br />
'''Mailing list:''' [https://mail.kde.org/mailman/listinfo/kexi-devel kexi-devel]<br />
<br />
==== Alternative Solution for Kexi Forms Using PHP ====<br />
<br />
'''Brief explanation:''' Create a Kexi plugin generating PHP code saving it directy to the filesystem. This will require Apache (or other PHP-compatible web server) to be present and configured, and also will require the plugin to be packaged with a script that will install appropriate tools that allow r/w accessing the Apache/php subdirs.<br />
<br />
'''Knowledge Pre-Requisite:''' knowledge of PHP, web standards and C++, (knowledge of Qt is recommended)<br />
<br />
'''Mentor:''' Jaroslaw Staniek <js@iidea.pl><br />
<br />
'''Mailing list:''' [https://mail.kde.org/mailman/listinfo/kexi-devel kexi-devel]<br />
<br />
== Notes on editing this page ==<br />
<br />
Before making any modifications, please '''log in''' to Techbase. This will help us track who is contributing to the ideas.<br />
<br />
When making modifications to existing ideas, please consider whether you're changing it more fundamentally or just superficially. If your changes are substantial, you probably have an entirely new idea. Similarly, if your idea is modified and you feel it no longer reflects your original thought, please split the idea in two, restoring yours.<br />
<br />
Please use the [[Talk:Projects/Summer of Code/2007/Ideas|talk page]] if you want to discuss an idea.<br />
<br />
Finally, do '''not''' delete ideas without a reason for doing so (like, for instance, being contrary to KDE ideals, being completely unrelated to KDE, being unfeasible, etc.) -- you may want to state in the [[Talk:Projects/Summer of Code/2007/Ideas|talk page]] why you removed the idea.<br />
<br />
Do '''not''' re-add ideas that were removed without discussing first with the developers of the target application.</div>Dymohttps://techbase.kde.org/index.php?title=Projects/Summer_of_Code/2007/Ideas&diff=9051Projects/Summer of Code/2007/Ideas2007-03-12T22:19:19Z<p>Dymo: /* KDevelop & Quanta */</p>
<hr />
<div>This page is an open list for ideas for the 2007 edition of [http://code.google.com/soc Google Summer of Code]. It will remain editable while the submission process is open.<br />
<br />
This list is not exhaustive. It is just a collection of some ideas. To get further ideas, you can also look at our [http://wiki.kde.org/tiki-index.php?page=KDE%20Google%20SoC%202006%20ideas list of ideas for the year 2006]<br />
<br />
Before proceeding, please read the [[Projects/Summer of Code/2007/Participation|participation instructions]]. They are useful for students and developers alike. Before editing this page, please take a look at the [[#Notes on editing this page|Notes on editing this page]] section at the end.<br />
<br />
== Past ideas ==<br />
<br />
You may want to take a look at the [http://wiki.kde.org/tiki-index.php?page=KDE%20Google%20SoC%202006%20ideas ideas page for 2006]. Some of the ideas there are still valid today.<br />
<br />
== Project ideas ==<br />
<br />
These ideas were contributed by our developers and users. They are sometimes vague or incomplete. If you wish to submit a proposal based on these ideas, you may wish to contact the developers and find out more about the particular suggestion you're looking at. <br />
<br />
If there is no specific contact given you can ask questions on the general KDE development list kde-devel@kde.org. See [http://www.kde.org/mailinglists/ the KDE mailing lists page] for information on available mailing lists and how to subscribe.<br />
<br />
When adding an idea to this section, please try to include the following data:<br />
:* if the application is not widely known, a description of what it does and where its code lives<br />
:* a brief explanation<br />
:* the expected results<br />
:* pre-requisites for working on your project<br />
:* if applicable, links to more information or discussions<br />
:* mailing list or IRC channel for your application/library/module<br />
:* your name and email address for contact (if you're willing to be a mentor)<br />
<br />
=== KDE Libs ===<br />
<br />
==== KPassivePopup ====<br />
''' Project Information:''' [http://api.kde.org/cvs-api/kdelibs-apidocs/kdeui/html/classKPassivePopup.html KPassivePopup] is the class that displays information next to taskbar icons, system tray icons or windows without interrupting the user. It is used both directly and by KNotify and is part of libkdeui.<br />
<br />
'''Brief explanation:''' Convert KPassivePopup to use QSvg for the frame etc. this would allow it to be much more flexible in its visual appearance and could allow us to eliminate the various custom implementations that are floating around. This would include examining these forks and ensuring the same functionality could be cleanly incorporated.<br />
<br />
'''Expected results:''' The intended result would be a single implementation of KPassivePopup that could be reused without copying code by applications such as Kopete that currently maintain their own versions.<br />
<br />
'''Knowledge Pre-Requisite:''' A prequisite would be knowledge of Qt/KDE and the ability to setup a KDE build environment. Knowledge of SVG would obviously be a big help.<br />
<br />
'''Mentor:''' Richard Moore <rich@kde.org>, Aaron Seigo <aseigo@kde.org>.<br />
<br />
==== Solid ====<br />
<br />
==== Phonon ====<br />
<br />
==== KHTML ====<br />
<br />
==== KJS - Scripting Modules ====<br />
<br />
''' Project Information:''' KJS is KDE's JavaScript engine that was originally developed for the Konqueror Web browser. It as a light-weight, standalone library that can easily be embedded into other applications to make them scriptable.<br />
<br />
Besides being restricted to running in the sandbox of an application usage for text and file processing or other administrative or server side tasks in a command line interpreter are thinkable. Consider what made e.g. Perl successfull. What's lacking are modules providing the necessary functions.<br />
<br />
'''Brief explanation:''' The project would start out with gathering an overview of typical functions found in other scripting languages like Perl, Python and Tcl. The most important ones would then be selected and implemented in (at first) C++ modules that are dynamically loaded by the KJS command line interpreter.<br />
<br />
'''Expected results:''' A set of low-level modules like File, CGI, JSON or similar with a documented set of constructors, functions and properties. They should form the base for pure JavaScript modules to be build on top.<br />
<br />
'''Knowledge Pre-Requisite:''' Some C++ programming knowledge is required. Knowledge about other scripting languages like Python and Perl would be advantageous.<br />
<br />
'''Mentor:''' Harri Porten <porten@kde.org>.<br />
<br />
==== Sonnet ====<br />
<br />
==== Kross ====<br />
<br />
'''Project Information:''' [http://kross.dipe.org Kross] is a modular scripting framework that provides a complete framework to embed scripting interpreters like Python, Ruby and KDE JavaScript transparently into native applications to bridge the static and dynamic worlds together.<br />
<br />
'''Brief explanation:''' While Kross does already provide access to Python, Ruby and KDE JavaScript, Java is missing. With a Java backend we could provide access to JDBC databases, Hibernate, Sandboxes and all the other goodies.<br />
<br />
'''Expected results:'''<br />
* Target is to implement a Java backend and offer Java as another supported scripting backend in Kross.<br />
* Propably just bridge or at least provide access to QtJambi.<br />
* Unittests and clean code :)<br />
<br />
'''Knowledge Pre-Requisite:''' knowledge of C/C++, be able to get into the dark details of embedding Java.<br />
<br />
'''Mentor:''' Sebastian Sauer <mail@dipe.org><br />
<br />
==== KDEPrint -- UI redesign ====<br />
<br />
'''Project Information:''' [http://printing.kde.org KDEPrint] is the well known and very advanced printing platform common to all KDE applications.<br />
<br />
'''Brief explanation:''' Redesign user interfaces related to printing. Improve usability.<br />
<br />
''' Expected results:''' Produce an improved set of graphic interfaces to KDE's printing technology, based on usability reports already available and using new (original) usability ideas.<br />
<br />
'''Prerequisites:''' C++, KDE/Qt programming, experience with design and creation of usable UI.<br />
<br />
'''Mentor:''' Cristian Tibirna <tibirna@kde.org><br />
<br />
<br />
==== KDEPrint -- porting to CUPS > 1.2 ====<br />
<br />
'''Project Information:''' [http://printing.kde.org KDEPrint] is the well known and very advanced printing platform common to all KDE applications.<br />
<br />
'''Brief explanation:''' Port the current KDEPrint code to supporting CUPS later than 1.2, both in KDE-3.5 and KDE-4 branches.<br />
<br />
''' Expected results:''' Based on the already very well thought out interface to CUPS-1.1, work is necessary for supporting new features and following bug fixes in the latest incarnation of CUPS, the most important backend of KDEPrint.<br />
<br />
'''Prerequisites:''' C, C++, KDE/Qt programming, writing code following specifications.<br />
<br />
'''Mentor:''' Cristian Tibirna <tibirna@kde.org><br />
<br />
<br />
==== KDEPrint -- porting to Qt-4.3/KDE-4 ====<br />
<br />
'''Project Information:''' [http://printing.kde.org KDEPrint] is the well known and very advanced printing platform common to all KDE applications.<br />
<br />
'''Brief explanation:''' Port the KDEPrint code of KDE-4 branch to latest Qt-4/KDE-4 libraries technologies.<br />
<br />
''' Expected results:''' This task requires a thorough analysis of technologies used by KDEPrint in the previous (KDE-3.5) incarnation and replacement as needed with new or improved equivalents from Qt-4/KDE-4. Use of the new intercommunication technologies (D-Bus) and new notification technologies is required.<br />
<br />
'''Prerequisites:''' C, C++, KDE/Qt programming, willingness to learn D-Bus as well as KDE-4 APIs.<br />
<br />
'''Mentor:''' Cristian Tibirna <tibirna@kde.org><br />
<br />
==== KDEPrint -- add support for LinuxPrinting's on-line drivers query ====<br />
<br />
'''Project Information:''' [http://printing.kde.org KDEPrint] is the well known and very advanced printing platform common to all KDE applications.<br />
<br />
'''Brief explanation:''' Add support to KDEPrint for the new [http://www.linux-foundation.org/en/OpenPrinting/Database/Query OpenPrinting Database] which allows on-line search for new (locally unavailable) drivers for printers during printer installation.<br />
<br />
''' Expected results:''' This task requires a good learning of the OpenPrinting Database Querying interface. Getting accustomed with KDEPrint's printer installation algorithms is also required. Target platform is KDE-4 but time permitting, a port to KDE-3.5 would be welcome.<br />
<br />
'''Prerequisites:''' C, C++, KDE/Qt programming<br />
<br />
'''Mentor:''' Cristian Tibirna <tibirna@kde.org><br />
<br />
==== KIConLoader: SVG Render Cache ====<br />
''' Project Information:''' {{class|KIconLoader}} is the class the fetches icons from disk on demand and returns pixmap data for use on screen. This project would add an on-disk binary cache to be used for SVG icons.<br />
<br />
'''Brief explanation:''' [http://aseigo.blogspot.com/2007/03/efficient-scallable-icons.html See my blog entry here for a description of the problem].<br />
<br />
'''Expected results:''' A transparent cache that would increase the efficiency of SVG icon usage at runtime, with the possibility of adding runtime composition capabilities to {{class|KIconLoader}}.<br />
<br />
'''Knowledge Pre-Requisite:''' A prequisite would be the ability to setup a KDE build environment. Qt/KDE programming knowledge is not a high requirement for this task, though the student will obviously be picking some of that up as they go. Experience with similar projects involving caching would be good.<br />
<br />
'''Mentor:''' Aaron Seigo <aseigo@kde.org>.<br />
<br />
=== KDE Base applications ===<br />
<br />
==== Konqueror - web browser ====<br />
<br />
==== Konqueror - userscripts ====<br />
''' Project Information:''' The goal of this project would be to implement and integrate into KDE4 a [http://www.konqueror.org/ Konqueror] equivalent of FireFox's [http://en.wikipedia.org/wiki/Greasemonkey Greasemonkey] plugin to allow installing and running user scripts. The project could start of from this [http://www.kde-apps.org/content/show.php?content=51482 existing GPL-ed code].<br />
<br />
'''Expected results:''' A Greasemonkey equivalent for Konqueror that allows (de)installing and running Greasemonkey compatible user scripts.<br />
<br />
'''Knowledge Pre-Requisite:''' C++ programming skills<br />
<br />
==== Konqueror & Dolphin - file manager ====<br />
<br />
==== Plasma: icon placement ====<br />
'''Brief explanation:''' Ordering the icons on the desktop has always been a pain for the users. They invent a certain arrangement (images top left, devices lower right, ...) and try to stick with it. Whenever they drop something to the Desktop folder in their filemanager, or when they plug in a new device the icon appears at an arbitrary location. Using clustering techniques and meta information about the existing icons, it would be possible to determine the most useful location for a new icon on the desktop.<br />
<br />
'''Expected results:''' Improve the icon placing strategy of kdesktop (plasma) using clustering techniques.<br />
* Try various clustering algorithms ([http://en.wikipedia.org/wiki/Data_clustering Wikipedia Data Clustering] might help) and choose the one most suitable for the task<br />
* Implement an icon placement strategy in plasma, using the chosen clustering algorithm.<br />
<br />
'''Knowledge Pre-Requisite:''' Familiarity with clustering algorithms or motivation to study them, C++/Qt coding skills<br />
<br />
==== KWin ====<br />
<br />
==== Strigi: chemistry and biology support ====<br />
<br />
''' Project Information:''' [http://www.vandenoever.info/software/strigi/ Strigi] is a promosing alternative to other desktop<br />
search tools, like Beagle/Kerry. It has a plugin architecture that allows writing indexing plugins for a specific area, or specific enhanced purposes. Available are both inline plugins (written in C++), as well as plugins that call programs written in other languages via the command line. Strigi is showing progress towards integration to semantic desktop ideas, as in the [http://nepomuk-kde.semanticdesktop.org/xwiki/bin/view/Main/ Nepomuk] project. This allows chemical information to be semantically marked up, and easily retrieved.<br />
<br />
'''Brief explanation:''' The idea of this project is to integrate chemistry and biology knowledge into the KDE desktop, by writing chemistry and biology aware plugins for Strigi. Exact molecule searching on the hard disk will be supported via the [http://www.iupac.org/InChI InChI]. For the rest, normal free text searching will do fine for now. Generation of InChI's will be done via [http://openbabel.sf.net/ OpenBabel], for files supported by the [http://chemical-mime.sourceforge.net/ Chemical MIME]'s (which has existing KDE support) and [http://freshmeat.net/projects/kfile_chemical/?branch_id=60776&release_id=231404 kfile-chemical] (which is available for KDE3 and KDE4). Optionally, the student can incorporate the chemical text mining tool [http://wwmm.ch.cam.ac.uk/wikis/wwmm/index.php/Oscar3 OSCAR3] developed in Cambridge, UK, to extract InChI's from text documents, like PDF, HTML, etc. Here Strigi's jstream technology come in handy, as it will provide a plain text version for all those formats. Extraction of biochemical information is much easier, as these files commonly plain text already.<br />
<br />
'''Expected results:''' Strigi plugins that: <br />
:# extract meta data for (bio)chemical files defined by the Chemical MIMEs, via the kfile-chemical kfile plugins, <br />
:# process files with a (subset of) (bio)chemical MIME with OpenBabel to generate an InChI for indexing, <br />
:# (optionally) use OSCAR3 to process plain text and create InChIs for molecules found in that text. Additionally, the student is invited to propose a useful ontology for marking up the extracted chemical and biological information.<br />
<br />
'''Knowledge Pre-Requisite:''' knowledge of C++ is a requirement, as is high school education in chemistry and biology.<br />
<br />
'''Mentor(s):''' Carsten Niehaus <cniehaus@kde.org>, <br />
Jerome Pansanel <j.pansanel@pansanel.net>, Egon Willighagen <egonw@user.sf.net>, Jos van den Oever" <jvdoever@gmail.com><br />
<br />
'''Mailing list:''' [http://sourceforge.net/mail/?group_id=171000 strigi-devel@lists.sourceforge.net]<br />
<br />
=== KDE Edu ===<br />
<br />
==== A 3D Molecular Editor ====<br />
''' Project Information:''' There are several 3D molecular editors, but only few open source programs, such as [http://www.uku.fi/~thassine/projects/ghemical/ Ghemical]. The GPL-ed [http://openbabel.sf.net OpenBabel project] open chemistry library has expanded its usefulness improving chemistry software. This resulted in, among other things, an application and library called [http://avogadro.sourceforge.net/ Avogadro]. [http://edu.kde.org/kalzium/index.php Kalzium] and Avogadro will soon merge a lot of code so that both apps share an underlying rendering library for molecules (using OpenGL). Avogadro already has basic "molecule construction" capabilities. The goal of this project is to extend these such to yield a 3D editor suitable for basic molecular drawing and visualization for high school and university students.<br />
<br />
'''Expected results:''' The improved application would be based on the new OpenGL based rendering code, and able to construct common organic molecules (such as [http://chem-file.sourceforge.net/data/carboxylic_acids/2R-2-1S-1_2-dihydroxyethyl-4_5-dihydroxy-furan-3-one_en.html this one]). The 3D-display code inside Kalzium will be reused and expanded to handle, for example, protein "ribbon" views, surfaces, and surface-mapped functions like electronic charge. Additional features such as configurable labels (for atoms, protein residues, etc.) and flexibility to change rendering for individual atoms or bonds would be welcome.<br />
<br />
'''Knowledge Pre-Requisite:''' Basic Qt-knowledge and basic chemistry knowledge. OpenGL experience welcome.<br />
<br />
'''Mentor:''' Carsten Niehaus (cniehaus at kde dot org)<br />
<br />
'''Mailing list:''' kalzium at kde dot org<br />
<br />
==== MARBLE - Adding a 2D View ====<br />
<br />
''' Project Information:''' Marble is a Qt 4-based generic virtual globe widget which is meant to integrate well with the KDE desktop to provide basic input and visualisation facilities for geographical data. Marble currently lives in http://websvn.kde.org/trunk/playground/base/marble/ and the author would like to see Marble be included with KDE-Edu soon. More information: [http://www.kdedevelopers.org/node/2429 the Marble description].<br />
<br />
'''Brief explanation:''' To be properly integrated with other applications a 2D View for Marble will be needed in addition to the preferred 3D View (e.g. for merging functionality of KGeography and Marble). Three steps are suggested:<br />
:# reuse the current rendering engine in 2D mode<br />
:# write an optimized approach for the 2D case and thereby refactor parts of Marble (especially the texture mapping)<br />
:# include adding proper access methods for applications and the user interface<br />
<br />
Depending on the knowledge of the applicant the refactoring part can be extended.<br />
<br />
'''Expected results:''' adding the 2D View Mode to Marble. Optionally, if enough time is available, integrate that view mode in another application like KGeography.<br />
<br />
'''Knowledge Pre-Requisite:''' basic knowledge of C++ is a pre-requirement. Basic highschool trigonometry knowledge would be helpful. Other useful skills, but not mandatory are:<br />
* Qt experience<br />
<br />
'''Mentor:''' Torsten Rahn <rahn@kde.org>. <br />
<br />
'''Mailing list:''' The kde-edu mailing list: http://lists.kde.org/?l=kde-edu&r=1&b=200702&w=2 .<br />
<br />
=== KDE PIM libraries and applications ===<br />
<br />
==== KPilot - Enhance Record based syncing ====<br />
<br />
''' Project Information:''' KPilot is the KDE application which synchronizes Palm OS PDAs with various KDE applications, including KMail, KAddressbook and Calendar. KPilot makes use of the pilot-link library to handle the interaction between the device and the conduits. These conduits are plugins which handle the actual synchronization of the items. For more information see [http://www.kpilot.org]<br />
<br />
'''Brief explanation:''' The vast majority of KPilot's conduits are record-based in nature. This means that the logical program flow for each of the conduits is very much the same in that they will each: <br />
<br />
:# Open a Palm database<br />
:# Retrieve either all records or just the changed records<br />
:# Open a PC data store<br />
:# Retrieve either all or changed records<br />
:# Handle tri-directional syncing, conflict handling, and merging changed data<br />
:# Then write the resolved data sets back to the PC and Palm data stores <br />
<br />
But the current conduit framework does not abstract this common functionality into a set of base classes as it should. This has resulted in a lot of duplicated code throughout KPilot's conduit base, and each conduit has its own way of handling this common functionality. Understandably, this has led to bugs in the syncing algorithms and has made maintainability of the conduits (and KPilot) a much more difficult thing than it should be. For every conduit, the maintainer has to learn how the actual syncing is done. To make matters worse, there are a couple of conduits which don't sync correctly because of a incomplete implementation of handling records.<br />
<br />
'''Expected results:''' The student will create an improved framework for KPilot's record-based conduits and (re)implement a (new) conduit as a proof of concept.<br />
<br />
:# Documentation about the syncing process of a record based conduit.<br />
:## Sequence diagrams detailing sync logic for each of the major scenarios: HotSync, FullSync, Copy PC to Handheld, Copy Handheld to PC<br />
:## Class diagram detailing:<br />
:##* Inheritance hierarchy<br />
:##* Class relationships<br />
:# Implementation of the abstract record based conduit in the KPilot library.<br />
:# (Re)implementation of a (new) Conduit as proof of concept.<br />
<br />
'''Knowledge Pre-Requisite:''' basic knowledge of C++ is a pre-requirement. Other useful skills, but not mandatory are:<br />
* Qt experience<br />
* Pilot-link experience<br />
<br />
'''Mentor:''' Adriaan de Groot <groot@kde.org>, Jason 'vanRijn' Kasper <vR@movingparts.net>.<br />
<br />
'''Mailing list:''' The kde-pim mailing list: http://lists.kde.org/?l=kde-pim&r=1&w=2.<br />
<br />
==== KitchenSync ====<br />
<br />
KitchenSync is the frontend to the generic synchronization system [http://www.openysync.org OpenSync]. It is supposed to become the standard syncing solution for KDE. Right now it already supports synchronization of KDE PIM data with a wider variety of mobile devices like phones and PDAs as well was synchronization with other applications like Evolution or Google calendar.<br />
<br />
KitchenSync works pretty well as OpenSync, but doesn't yet cover all functionality OpenSync provides. The goal of this project would be to improve that. For example the configuration GUIs for the various OpenSync plugins would need some work.<br />
<br />
This project requires some knowledge in KDE programming. It will also involve collaboartion with the OpenSync team, so some experience with C is helpful.<br />
<br />
'''Mentor:''' Cornelius Schumacher <schumacher@kde.org><br />
<br />
==== KOrganizer Theming ====<br />
<br />
KOrganizer Theming: In the real world calendars are made from paper and carry lots of pretty pictures, witty sayings, historical data or similar things. Compared to that calendar programs are extremely plain. One of the intents of the CalendarDecoration plugin interface for KOrganizer was to make it possible to add theming to the calendar views, so that you can add all the fun things which make paper calendars more than just a bunch of papers with dates on it. Combined with the KNewStuff technology this could bring much more color to our desktops and make KOrganizer interesting to people which currently wouldn't think of using a calendar program.<br />
<br />
'''Mentor:''' Cornelius Schumacher <schumacher@kde.org><br />
<br />
=== KDE Games ===<br />
<br />
==== Kombinaton - AI Engine ====<br />
<br />
''' Project Information:''' Kombination is a KDE4 scrabble clone. The project would be adding an artificial intelligence interface and at least one engine. Kombination currently lives in trunk/playground/games/kombination/ and the author would like to see Kombination be included with KDE Games soon. More information: [http://home.gna.org/kombination/ the Kombination web page].<br />
<br />
'''Knowledge Pre-Requisite:''' basic knowledge of C++ is a pre-requirement. Basic knowledge of Scrabble rules is a must too. KDE and Qt skills will be useful but not mandatory.<br />
<br />
'''Mentor:''' Albert Astals Cid <aacid@kde.org>. <br />
<br />
'''Mailing list:''' The kombination mailing list: http://home.gna.org/kombination/ .<br />
<br />
=== KDE SDK Applications ===<br />
<br />
==== Kate ====<br />
''' Project Information:''' Kate is a multi document editor, based on a rewritten version of the kwrite editing widget of KDE, offering all the features of that plus a bunch of its own.<br />
<br />
'''Brief explanation:'''<br />
Make Kate a much more capable yet still lightweight development tool for KDE4. Add features to Kate including CVS and SVN integration (either via recognition of the kdesvn or kcvs utilities, or with a custom implementation), Eclipse-like workspace and project management, and build environment integration for various languages/tools via an extensible interface. Scale Kate as much as needed to accomodate these changes, and not beyond that (at least for the scope of this project).<br />
<br />
'''Expected results:''' The intended result would be a stable and extended implementation of Kate, providing CVS and SVN integration, Eclipse-like workspace and project management, and build environment integration.<br />
<br />
'''Knowledge Pre-Requisite:''' A prequisite would be knowledge of Qt/KDE and the ability to setup a KDE build environment. Additionally, knowledge of interfacing with source code repositories via C++, and general C++ knowledge would be required.<br />
<br />
'''Mentor:''' Christoph Cullmann <cullmann@kde.org>.<br />
<br />
'''Mailing list:''' [https://mail.kde.org/mailman/listinfo/kwrite-devel The Kate mailing list]<br />
<br />
=== KDevelop & Quanta ===<br />
<br />
==== Extend KDevelop's snippet support ====<br />
<br />
''' Project Information:''' Extend KDevelop's snippet support, see [http://bugs.kde.org/show_bug.cgi?id=106165 RFE 106165] for a detailed description (this proposal has been confirmed by popular vote).<br />
<br />
'''Knowledge Pre-Requisite:''' basic knowledge of C++ is a pre-requirement. KDE and Qt skills will required. Likewise, familiarity with XML is probably required, too in order to provide a flexible, multi-platform file format for data storage and -exchange.<br />
<br />
'''Suggested Approach:''' given that the envisioned functionality would probably be interesting to a rather large user base/audience, one should consider using a library-oriented approach, where key-functionality is provided in a fashion that facilitates standalone library-deployment, so that other OSS projects (i.e. other IDE projects) may eventually employ the corresponding library to add "snippet"-support, too.<br />
<br />
'''Mentor:''' none yet<br />
<br />
'''Mailing list:''' KDevelop mailing list<br />
<br />
<br />
==== Implement foundations for KDevelop4 Ruby language support ====<br />
<br />
''' Project Information:''' Ruby language and Rails web development tool is rapidly gaining popularity. The goal of this project is to implement the foundations for the best possible Ruby/Rails support in KDevelop.<br />
<br />
'''Knowledge Pre-Requisite:''' advanced knowledge of C++ is a pre-requirement. KDE and Qt skills are desired but not required. At least basic knowledge of parsing theory (lexers, LL parsers, AST's) is necessary as well. This is a challenging project.<br />
<br />
'''Brief Explanation:''' There're beginnings of Ruby support for KDevelop4 already. So the Ruby parser would be finished first and then definition-use chain for would be implemented. Those would allow to build extended code highlighting, navigation and problem reporting. The design for Ruby code completion would also be in the scope of this project.<br />
<br />
'''Expected Results:'''<br />
# Ruby parser with tests covering most of the language features<br />
# DUChain builder for class/method definitions and their usages<br />
# Advanced Ruby code highlighter and problem reporter<br />
# Working and well-tested Ruby language support plugin<br />
# Design for Ruby code completion<br />
<br />
'''Mentor:''' [mailto:adymo@kdevelop.org Alexander Dymo]<br />
<br />
'''Mailing list:''' [mailto:kdevelop-devel@kdevelop.org KDevelop mailing list]<br />
<br />
=== Kopete ===<br />
<br />
=== Amarok ===<br />
<br />
''' Project Information:''' [http://amarok.kde.org/ Amarok website]<br />
<br />
==== Tightening of Web Service Integration ====<br />
<br />
'''Brief explanation:''' Amarok's motto is ''Rediscover your music''. Since listening to music can be a somewhat uninteresting experience, we try to enhance this aspect in a number of ways: <br />
<br />
:* Wikipedia information retrieval<br />
:* Lyric downloads<br />
:* Cover Art<br />
:* Music suggestions<br />
<br />
etc, etc. I'm sure you are more than familiar with the 'omg-im-going-to-wet-myself-this-is-so-cool' experience that you have at least once experienced.<br />
<br />
We would like to see some sort of enhancement to meta-information which can be displayed to the user. Some ideas that come to mind may include:<br />
:* Upcoming concerts<br />
:* Random artist trivia<br />
<br />
'''Expected results:''' The student will come up with a set of web-service enhancements and will implement them so that they integrate tightly with the final Amarok 2.0 interface and design goals.<br />
<br />
'''Knowledge Pre-Requisite:''' basic knowledge of C++ is a pre-requirement. Other useful skills, but not mandatory are:<br />
:* Qt experience<br />
:* Web service skills, such as SOAP, XML/DOM structures etc<br />
:* A keen eye for usability and the difference between features and benefits<br />
<br />
'''Mentor:''' Seb Ruiz <me@sebruiz.net><br />
<br />
'''Mailing list:''' [https://mail.kde.org/mailman/listinfo/amarok The Amarok mailing list]<br />
<br />
<br />
==== Integrate Additional Music Store or Streaming Music Service ====<br />
<br />
'''Brief explanation:''' Since the introduction of the integrated Magnatune.com music store in Amarok, there has been many proposals for other stores or services that could be integrated in a simmilar way. In the process of working towards Amarok 2.0, a new framework for adding such services without cluttering the interface has been proposed and the Magnatune store has been ported to this framework. Adding a new store or service is a nice way of getting into coding on Amarok at is fairly easy to approach witout knowing all the intricate details of Amaroks inner workings.<br />
<br />
There are several types of services that could be of interest:<br />
<br />
:* DRM free music stores ( preferably with good, full length, previews )<br />
:* Streaming audio content services ( Again, no DRM is a must )<br />
:* Live recording archives<br />
:* Most likely a 100 other kinds of sites that I have not thought of...<br />
<br />
The service chosen will have to be legal, and the service must agree to the integration taking place.<br />
<br />
There are currently no concrete agreements in place with other services, so this is very much a "bring your own idea" project, which both makes it a bit harder to get started, but also more rewarding.<br />
<br />
'''Expected results:''' The student reaches an agreement with a music store/service/whatnot and integrates its service into Amarok. Some effort would most likely also be spent on helping to mature the service framework.<br />
<br />
'''Knowledge Pre-Requisite:''' basic knowledge of C++ is a pre-requirement. Other useful skills, but not mandatory are:<br />
:* Qt experience<br />
:* Web service skills, such as SOAP, XML/DOM structures etc<br />
:* A keen eye for usability and the difference between features and benefits<br />
<br />
'''Mentor:''' Nikolaj Hald Nielsen <nhnFreespirit@gmail.com><br />
<br />
'''Mailing list:''' [https://mail.kde.org/mailman/listinfo/amarok The Amarok mailing list]<br />
<br />
=== okular ===<br />
<br />
''' Project Information:''' okular is a KDE 4 document viewer. http://www.okular.org<br />
<br />
'''Mailing list:''' [https://mail.kde.org/mailman/listinfo/okular-devel The okular mailing list]<br />
<br />
==== Improve the rendering of PDF patterns ====<br />
<br />
'''Explanation:''' okular uses the [http://poppler.freedesktop.org Poppler library] to render the PDF files. Some files with complex patterns may take even minutes to render, while with Acrobat Reader just a couple of seconds. <br />
<br />
'''Expected results:''' One needs to improve the Poppler library code that handles rendering of PDF files with patterns, making the pattern rendering faster with no drawbacks.<br />
<br />
'''Knowledge Pre-Requisite:''' basic knowledge of C++ is a requirement. Qt4 is strongly suggested too. Graphics and PDF konwledge are strongly suggested as well, but not mandatory.<br />
<br />
'''Mentor:''' Albert Astals Cid <aacid@kde.org><br />
<br />
==== Improve the presentation mode ====<br />
<br />
'''Explanation and Expected results:''' okular has a presentation mode for displaying documents on the screen in a way similar to a presentation application (think about KPresenter, OpenOffice.org Impress). Currently, the mode can just display only a single page, at the maximum size allowed by the screen. The idea is to extend the presentation mode by adding:<br />
* zooming support and pan mode<br />
* facing mode<br />
* missing PDF transitions, like Fly, Push, Cover, Uncover, Fade<br />
<br />
'''Knowledge Pre-Requisite:''' knowledge of C++ and Qt4 is a requirement. KDE 4, graphics and PDF konwledge are strongly suggested as well, but not mandatory.<br />
<br />
'''Mentor:''' Albert Astals Cid <aacid@kde.org><br />
<br />
==== Improve the annotation support ====<br />
<br />
'''Explanation and Expected results:''' one of the okular's goals is to support the annotations, mainly coming from PDF documents (but also from DjVu and ODT documents). As the support is not yet complete, some ideas could be:<br />
* adding the visual editing features (e.g. mouse click to visually select, drag to move around or resize, etc)<br />
* adding support for more kind of annotations (e.g. Caret, Watermark, etc)<br />
* improve the annotation toolbar<br />
* better support for text and line annotation drawing<br />
<br />
'''Knowledge Pre-Requisite:''' basic knowledge of C++ is a requirement. Qt4 is strongly suggested too. Graphics and PDF konwledge are strongly suggested as well, but not mandatory.<br />
<br />
'''Mentor:''' Albert Astals Cid <aacid@kde.org><br />
<br />
==== 3D artwork support ====<br />
<br />
'''Explanation and Expected results:''' the PDF formats allow the embedding of 3D artwork in documents. The idea is to start supporting this kind of artwork, and start displaying them on the document. What is required to do is:<br />
* basic reading support<br />
* basic displaying of the artwork on the document (thus creating a 3D view)<br />
* basic interaction with the 3D artwork (mouse or document actions)<br />
<br />
'''Knowledge Pre-Requisite:''' knowledge of C++ is a requirement. Qt4 is strongly suggested too. Graphics and PDF konwledge are strongly suggested as well, but not mandatory.<br />
<br />
'''Mentor:''' Albert Astals Cid <aacid@kde.org><br />
<br />
=== Other Applications ===<br />
<br />
==== KBugBuster ====<br />
<br />
KBugBuster is a native KDE client for the bug tracking system Bugzilla. It allows to browse, search and view bug reports and make modifications to them. It provides features which the web interface can't provide like an offline mode.<br />
<br />
One potential task would be to make KBugBuster work with the XML-RPC interface of Bugzilla. This would make access to Bugzilla more robust and make it possible to better support the editing of bug reports.<br />
<br />
'''Mentor:''' Cornelius Schumacher <schumacher@kde.org><br />
<br />
==== Knoware ====<br />
<br />
Knoware is previous SOC project. It creates a system that collates bug reports as well as anonymous system specs offered by users. It provides a statistical way of matching up bugs to likely culprits in a system or configuration so that developers can get a better handle on what the problem likely as as well as informing users of KDE what the potential pitfalls of their current system could be.<br />
<br />
One potential task would be to document the current system for further development. Another could be porting the curent code to Qt4.<br />
<br />
'''Mentor:'''<br />
==== Application User Interface Test System ====<br />
<br />
There are a couple of tools available for Qt / KDE that allow testing of applications - squish and kdexecutor. Both are binary only, and are specific to the systems that they are built on.<br />
<br />
It would be useful to have an open source tool that allowed us to test applications in a scripted way. Similar open source tools include Dogtail and LDTP, which use the accessibility interfaces in Gnome. <br />
<br />
There are arguments for and against using accessibility - it might be a lot more useful to implement a separate system, using some of the Qt4 specific features including QMetaObject. Qt4 has a nice set of hooks, and QTestLib shows how they can be implemented. However instead of requiring specific code in the application (as done by QTestLib), it would be more flexible to use LD_PRELOAD and a small interface library.<br />
<br />
'''More discussion:''' Brad Hards <bradh@kde.org><br />
<br />
=== Oxygen ===<br />
<br />
=== Usability ===<br />
==== A new design for contextual help (Whatsthis) ====<br />
<br />
Implement Ellen Reitmair's, Olaf Schmidt's, Philip Rodrigues' plan for a new infrastructure for contextual help.<br />
[http://www.userbrain.de/whatsthis/ideas_whatsthis_january06_v1.3.pdf ideas_whatsthis_january06_v1.3.pdf]<br />
<br />
=== Infrastructure ===<br />
<br />
* A way to make bugzilla help in finding duplicated bugs. could be some kind of 'suggested related bugs'<br />
<br />
=== KOffice ===<br />
A list of KOffice ideas can be found at the [http://wiki.koffice.org/index.php?title=Summer_of_code KOffice wiki].<br />
<br />
==== KWord Scripting ====<br />
<br />
'''Brief explanation:''' KWord comes with a [http://wiki.koffice.org/index.php?title=KWord/Scripting Scripting Plugin] based on [http://kross.dipe.org Kross]. The plugin provides a clean interface to offer access to the KWord functionality from within scripting backends.<br />
<br />
'''Expected results:''' Improve the current scripting plugin.<br />
* Evaluate what is needed or what a script could need and implement it to earn a powerful scripting backend for KWord 2.0.<br />
* The current design may need to be refactored cause the scripting API should be as simple as possible.<br />
* Provide sample scripts to demonstrate what's possible and Unittests for regression testing.<br />
<br />
'''Knowledge Pre-Requisite:''' knowledge of C++/Qt, experience with word-processing<br />
<br />
'''Mentor:''' Sebastian Sauer <mail@dipe.org><br />
<br />
<br />
==== Improve Kexi Data Import/Export ====<br />
<br />
'''Brief explanation:''' Currently Kexi allows importing CSV files into an existing database, and converting MySQL/PostgreSQL/MS Access databases into Kexi databases.<br />
<br />
The aim of this project is to provide plugin(s) that import from more database backends/formats.<br />
<br />
You can select a backend you like to implement migration for:<br />
<br />
* HSQLDB - the OpenOffice.org DB backend (quite important to have)<br />
* ODBC<br />
* Paradox<br />
* DBase (e.g. using http://www.anubisnet.de/products/dbf )<br />
* MS SQL Server (e.g. using http://www.freetds.org/ )<br />
* Firebird - pending licence checks<br />
<br />
For the ODBC driver, a migration plugin and a backend plugin should be provided. For Paradox, only a migration plugin is required, although this will require modifying the migration framework to allow more than one file to be selected as the source database (i.e. the database to be imported).<br />
<br />
Both a migration plugin and a backend plugin could be provided for HSQLDB, which should be implemented using JNI to invoke JDBC methods in the HSQLDB library. <br />
<br />
In any case, migration plugins are simpler to implement than direct access plugins (drivers), so these can be developed first.<br />
<br />
'''Knowledge Pre-Requisite:''' knowledge of C++, (knowledge of Qt and experience with a given database format/backend is recommended)<br />
<br />
'''More info:'''<br />
*[http://kexi-project.org/wiki/wikiview/index.php?GoogleSummerOfCode2006_DBaseMigrationPlugin "DBase Migration Plugin for Kexi" proposed by Jonathon Manning last year]<br />
*[http://kexi-project.org/wiki/wikiview/index.php?GoogleSummerOfCode2006_ParadoxAndHSQLAccess "Paradox & HSQL access for Kexi" proposed by Joseph Wenninger last year]<br />
<br />
'''Mentor:''' Jaroslaw Staniek <js@iidea.pl>, Sebastian Sauer <mail@dipe.org><br />
<br />
'''Mailing list:''' [https://mail.kde.org/mailman/listinfo/kexi-devel kexi-devel]<br />
<br />
==== Kexi Web Forms ====<br />
<br />
'''Brief explanation:''' Web Forms allow to read-only or read-write access to database projects created with Kexi. It is optional feature for uses where client has no Kexi installed for any reason. The fact that the Web Forms will use Web standards, adds another advantage over competitors like MS Access (which uses proprietary Windows-only ActiveX bindings).<br />
<br />
Proposed solution is to develop a small standalone web server. It is probably already written in C++ or C by FOSS community. Good examples are lighttpd - http://www.lighttpd.net/ <br />
and (being already in KDEnetwork module) KPF - http://rikkus.info/kpf.html.<br />
<br />
The web serwer would be dynamically linked to kexidb and thus can access Kexi databases via universal KexiDB API, and create HTML content on demand as an answer to HTTP requests.<br />
<br />
For alternative solution see "Alternative solution for Kexi forms using PHP" below.<br />
<br />
'''Knowledge Pre-Requisite:''' knowledge of C++ and HTTP/web standards, (knowledge of Qt and experience with a given database format/backend is recommended)<br />
<br />
'''More info:''' [http://jacek.migdal.pl/gsoc/ Solution proposed by Jacek Migdal last year]<br />
<br />
'''Mentor:''' Jaroslaw Staniek <js@iidea.pl><br />
<br />
'''Mailing list:''' [https://mail.kde.org/mailman/listinfo/kexi-devel kexi-devel]<br />
<br />
==== Alternative Solution for Kexi Forms Using PHP ====<br />
<br />
'''Brief explanation:''' Create a Kexi plugin generating PHP code saving it directy to the filesystem. This will require Apache (or other PHP-compatible web server) to be present and configured, and also will require the plugin to be packaged with a script that will install appropriate tools that allow r/w accessing the Apache/php subdirs.<br />
<br />
'''Knowledge Pre-Requisite:''' knowledge of PHP, web standards and C++, (knowledge of Qt is recommended)<br />
<br />
'''Mentor:''' Jaroslaw Staniek <js@iidea.pl><br />
<br />
'''Mailing list:''' [https://mail.kde.org/mailman/listinfo/kexi-devel kexi-devel]<br />
<br />
== Notes on editing this page ==<br />
<br />
Before making any modifications, please '''log in''' to Techbase. This will help us track who is contributing to the ideas.<br />
<br />
When making modifications to existing ideas, please consider whether you're changing it more fundamentally or just superficially. If your changes are substantial, you probably have an entirely new idea. Similarly, if your idea is modified and you feel it no longer reflects your original thought, please split the idea in two, restoring yours.<br />
<br />
Please use the [[Talk:Projects/Summer of Code/2007/Ideas|talk page]] if you want to discuss an idea.<br />
<br />
Finally, do '''not''' delete ideas without a reason for doing so (like, for instance, being contrary to KDE ideals, being completely unrelated to KDE, being unfeasible, etc.) -- you may want to state in the [[Talk:Projects/Summer of Code/2007/Ideas|talk page]] why you removed the idea.<br />
<br />
Do '''not''' re-add ideas that were removed without discussing first with the developers of the target application.</div>Dymohttps://techbase.kde.org/index.php?title=Schedules/KDE4/4.0_Module_Status&diff=9045Schedules/KDE4/4.0 Module Status2007-03-12T20:43:17Z<p>Dymo: </p>
<hr />
<div>This page is used by the KDE4 Release Team to keep track of the current state of the KDE4 release process.<br />
<br />
== Milestones ==<br />
<br />
=== Feb '07 Developer Snapshot ===<br />
<br />
'''Tag Date''': February 19, 2007<br />
<br />
'''Goals''': Developer snapshot of libraries<br />
<br />
'''Audience''': Application developers, testers<br />
<br />
=== Alpha 1 ===<br />
'''Tag Date''':<br />
<br />
'''Goals''':<br />
<br />
'''Audience''':<br />
<br />
== Module Status ==<br />
<br />
{|<br />
|-<br />
! Module !! Description !! Release&nbsp;Maintainer !! Status<br />
|-<br />
| [http://websvn.kde.org/trunk/KDE/kdelibs kdelibs] || KDE foundational libraries || ||<br />
|-<br />
| [http://websvn.kde.org/trunk/KDE/kdepimlibs kdepimlibs] || KDE personal information libraries || [mailto:winter@kde.org Allen Winter] ||<br />
|-<br />
| [http://websvn.kde.org/trunk/KDE/kdebase kdebase] || Runtime, workspace and essential apps || ||<br />
|-<br />
| [http://websvn.kde.org/trunk/KDE/kdeaccessibility kdeaccessibility] || Accessibility applications || [mailto:gunnar@schmi-dt.de Gunnar Schmi Dt] ||<br />
|-<br />
| [http://websvn.kde.org/trunk/KDE/kdeartwork kdeartwork] || Additional icons, styles, etc. || ||<br />
|-<br />
| [http://websvn.kde.org/trunk/KDE/kdeadmin kdeadmin] || Tools for system administration || ||<br />
|-<br />
| [http://websvn.kde.org/trunk/KDE/kdeedu kdeedu] || Applications with educational content ||[mailto:annemarie.mahfouf@free.fr Anne-Marie Mahfouf] || Most applications ported<br />
|-<br />
| [http://websvn.kde.org/trunk/KDE/kdegames kdegames] || Entertainment || ||<br />
|-<br />
| [http://websvn.kde.org/trunk/KDE/kdegraphics kdegraphics] || Graphics viewing and editing || ||<br />
|-<br />
| [http://websvn.kde.org/trunk/KDE/kdemultimedia kdemultimedia] || Audio and video applications || ||<br />
|-<br />
| [http://websvn.kde.org/trunk/KDE/kdenetwork kdenetwork] || Network-centric apps (IM, remote desktop, etc) || [mailto:uwolfer@kde.org Urs Wolfer] ||<br />
|-<br />
| [http://websvn.kde.org/trunk/KDE/kdepim kdepim] || Groupware || [mailto:winter@kde.org Allen Winter] || not fully ported, needs lots of work<br />
|-<br />
| [http://websvn.kde.org/trunk/KDE/kdesdk kdesdk] || Tools for software development || ||<br />
|-<br />
| [http://websvn.kde.org/trunk/KDE/kdetoys kdetoys] || Fun distractions || ||<br />
|-<br />
| [http://websvn.kde.org/trunk/KDE/kdeutils kdeutils] || Miscellaneous utilities || ||<br />
|-<br />
| [http://websvn.kde.org/trunk/KDE/kdevelop kdevelop] || IDE || [mailto:mattr@kde.org Matt Rogers] || Ported. In development.<br />
|-<br />
| [http://websvn.kde.org/trunk/KDE/kwebdev kwebdev] || Web development tool suite || ||<br />
|}<br />
<br />
== Pending Application Issues ==<br />
<br />
*<span style="color: lightgreen;">'''Green'''</span>: discussed and approved<br />
*<span style="color: #ffc642;">'''Orange'''</span>: discussed, but pending on or blocked by other issues<br />
*<span style="color: #ff4242;">'''Red'''</span>: no progress made at this point<br />
<br />
=== kdegraphics ===<br />
<br />
{|<br />
|-<br />
! Application !! Request !! Request By !! App Contact !! Status<br />
|- style="background-color: lightgreen;"<br />
| Gwenview || Move into module || Aurélien&nbsp;Gâteau || Aurélien&nbsp;Gâteau || Approved, pending porting<br />
|- style="background-color: #ff4242;"<br />
| KPovModeller || Move to extragear || Aaron Seigo || Andreas Zehender || TBD<br />
|- style="background-color: #ff4242;"<br />
| KIconEdit || Move to extragear || Aaron Seigo || John Califf, Laurent Montel || TBD<br />
|- style="background-color: #ff4242;"<br />
| KGhostview || Determine if still needed? || Aaron Seigo || Luís-Pedro Coelho || TBD<br />
|- style="background-color: #ffc642;"<br />
| Kuickshow || Move to extragear when gwenview imported || Aaron Seigo || Carsten Pfeiffer || Pending Gwenview<br />
|- style="background-color: #ffc642;"<br />
| Okular || Replace KPDF || Okular Team || Pino Toscano || Approved, pending discussion with Ligature<br />
|}<br />
<br />
=== kdenetwork ===<br />
<br />
{|<br />
|-<br />
! Application !! Request !! Request By !! App Contact !! Status<br />
|- style="background-color: #ff4242"<br />
| KNewsTicker || Determine if still needed with Plasma || Urs Wolfer || Frerich Raabe || TBD<br />
|- style="background-color: #ff4242"<br />
| KWiFiManager || Look for a Solid based solution, probably [http://en.opensuse.org/Projects/KNetworkManager KNetworkManager] when ported || Urs&nbsp;Wolfer || Stefan&nbsp;Winter || TBD<br />
|- style="background-color: #ff4242"<br />
| KPPP || Look for a Solid based solution, probably [http://en.opensuse.org/Projects/KNetworkManager KNetworkManager] when ported || Urs Wolfer || Harri Porten || TBD<br />
|- style="background-color: #ff4242;"<br />
| KGet|| Move back to module from branch || KGet Team || [mailto:kget@kde.org KGet Team] || TBD<br />
|}<br />
<br />
=== kdepim ===<br />
<br />
{|<br />
|-<br />
! Application !! Request !! Request By !! App Contact !! Status<br />
|- style="background-color: lightgreen;"<br />
| Kabcclient || Move into module || Kevin&nbsp;Krammer || Kevin&nbsp;Krammer || Approved and ported. Needs a handbook, apidox, and cleanup<br />
|- style="background-color: lightgreen;"<br />
| kmobiletools || Move into module || Marco&nbsp;Gulino || Marco&nbsp;Gulino || Not ported.<br />
|- style="background-color: lightgreen;"<br />
| khalkhi || Move into module || Friedrich&nbsp;Kossebau || Friedrich&nbsp;Kossebau || Approved. porting in-progress.<br />
|- style="background-color: lightgreen;"<br />
| kpilot || Keep in module || Adriaan&nbsp;de&nbsp;Groot || Adriaan&nbsp;de&nbsp;Groot || unless we can find an alternative using OpenSync.<br />
|- style="background-color: lightgreen;"<br />
| kandy || Remove from module || PIM team || PIM team || Approved and removed.<br />
|- style="background-color: lightgreen;"<br />
| kmobile || Remove from module || PIM team || PIM team || Approved and removed.<br />
|}<br />
<br />
=== kdesdk ===<br />
<br />
{|<br />
|-<br />
! Application !! Request !! Request&nbsp;By !! App&nbsp;Contact !! Status<br />
|- style="background-color: #ffc642;"<br />
| Kaider || Move into module, replace KBabel ||colspan=2 align=center| Nick&nbsp;Shaforostoff || In playground<br />
|- style="background-color: #ffc642;"<br />
| KBabel || Remove ||colspan=2 align=center|Nick Shaforostoff || Pending Kaider<br />
|}</div>Dymo