PIM/Akonadi/PortingStatus
This page lists various pieces that are being ported to Akonadi. The intent of the page is to give a list of features and bugs.
Since many of those pieces are complete rewrites, this page lists the features that were present in the old implementation. Those need to be ported to the new Akonadi-based implementation. The list of needed features probably will grow during development and testing, as will the bug list It also lists optional features, which would be nice to have, but are not present in the old implementation Also some bugs are listed.
There is also an extremely outdated todo list at PIM/Akonadi
If you have implemented a feature or fixed a bug, please strike the item out.
Bigger Stuff
Akregator Port
Assigned to: Frank, Dimitry
Branch for porting Akregator to [PIM/RSS_framework_for_Akonadi Akonadi/KRSS]:
$KDESVN/branches/work/akregator/akonadi-port
Status
20090611: Branch created, Porting about to start
KContactManager
Assigned to: Tobias, Sebastian
Bugs
- After creating a contact group, it doesn't show up in the left pane. Should it?
- Editing contact groups: Should use auto-completion, drag&drop and a "Select..." button (similar to KMail's recipient picker)
- Editing contact groups: Gives me error message that I didn't define a name, when I only entered a mail address. Note that most people don't know the syntax for this, which is "name <mail>".
- "All Contacts" should be expanded and selected by default
- Crashes when clicking on "Reload" on "All Contacts"
- Deleting a contact group (and possibly a contact as well) leaves a funny empty space in the middle pane
- Switching between "All Contacts" and my addressbook folder here has a delay of > 1s, with about 150 contacts
- Ctrl+A should trigger select all, not add addressbook
- In the editor, the "Coordinates" panel is completely empty
- In the properties dialog of an address book, the "Cache" tab is way too complicated for normal users
- Changing the name of an addressbook in the properties dialog earses the name and the icon
Needed Features
Display additional columns in the list of contacts
MBOX
Assigned to: Bertjan
Needed features
- Implement purging of deleted messages
- Port the resource to SingleFileResource
- Implement itemChanged()
- Fix the KLockfile lock method
POP3
Assigned to: Thomas
Bugs
- Possible mail duplication
Needed Features
- Config dialog (Igor is working on this)
- Default inbox (->LocalFolders)
- Filter on server (depends on the filter framework)
- Migration of old KMail accounts
- Abort request
- Precommands
Optional Features
- Delete on server (bug 31114)
IMAP
Assigned to: Kevin
Kolab
Assigned to: Andris
KMail Reader
Assigned to: Andris
Notes
Needs to be ported away from KMMessage and mimelib to KMime.
Needed Features
- Loading attachments on demand when viewing and saving them
- Displaying text and image attachments inline, depending on setting (attachment strategy)
- Different header styles
- MIME part formatters (invitations, vcards, diffs etc)
- Context menu actions (shared with the message list)
- Source viewer
- MIME part tree viewer
- Separate reader main window
- Viewing only one selected MIME part / MIME sub-tree (e.g. encapsulated messages)
- Separate reader window marks the message as read after some time
- Asynchronity (reader should not block when displaying multi-megabyte mail)
- Encoding fallback option (wonder if that ever worked in KDE4...)
- Crypto
Optional Features
- New styles based on on Grantlee. Steve says he'll eventually look at that.
- Port away from KPGP to libkleo
KMail Composer (non-GUI)
Assigned to: Constantin (??)
Notes
Needs to be ported from KMMessage and mimelib to KMime.
Needed Features
- Crypto
- Attachments
- Multipart/Alternative (HTML)
- Inline images
- Asynchronity (should not block on long composing tasks, like crypto)
- All kind of weird charset and encoding stuff
- Custom MIME headers from the settings
- Compose as draft and compose as sendable message mode
- Unit tests. This stuff has been very brittle in the past
Optional Features
- The composer and the composer GUI both keep a "reference message" around, which is IMHO complicated and weird. Get rid of that through refactoring
KMail Folder List
Assigned to: Kevin
Notes
The current KMail folder list is unfortunately not model/view based. The new folder list should probably be based on existing Akonadi models and views.
Needed Features
- Sort by drag & drop or automatic (controlled by setting)
- Drag & drop support for copying and moving folders and messages
- Context menu with all old actions
- Total, Unread and Size column: Collapsing sums things up, unread count can be displayed with the folder name if column is hidden
- Default icons for IMAP root collections, drafts, templates, inbox etc (can be partly handled by new LocalFolders class I guess)
- Configurable item size
- Favorite folder view
- Restoring of expanded/collapsed state (and last selected folder?) after restart
- Optional quick filter edit
- Fancy tooltips
- Folder properties dialog with all the old stuff in it
Optional Features
- Right-clicking without selecting
- Multi selection for deleting multiple folders at once and a combined properties dialog
KMail Message List
Assigned to: Kevin
Notes
Talk to Olivier Trichet (nive), he is in the process of porting KNode to the message list framework.
The message list is fairly well abstracted into KMail-specific parts and generic parts. For porting to Akonadi, basically only the storage model needs to be rewritten, the model that does the actual work of threading and grouping can be left untouched
Needed Features
- Fast loading of the message list. This can be tricky, the many indirections of Akonadi might make it too slow
- Only the headers should be fetched, not the complete message
- Setting stati and tags of mails should work
Optional Features
- Very long term: Separate threading into an own agent and store threading information as attributes
Mail Dispatcher Agent & Outbox interface
Assigned to: Constantin
Notes
No big needed features added below, AFAIK everything is already implemented.
Needed Features
- Abort requests for agents
- Integration into KMail
- Polishing
- API Review
Optional Features
- Displaying the progress and status per-item in the message list with a special outbox theme would be very cool
- Sending by due date
KOrganizer Agenda View
Assigned to: Sebastian
KOrganizer Month View
KOrganizer Timeline View
KOrganizer Todo View
Notes
Already model-view based in old KOrganizer
KResource Bridges & Migration
Assigned to: Kevin
- KOrganizer doesn't have any resource by default for new users (unit test for this exists)
- Kontact is *very* crashy in the summary and todo list
- Hierarchical todo don't work anymore
Needed Features
- Unit tests (->Thomas)
Filtering System
Assigned to: Szymon
Needed Features
- Pluggable filter actions and rules
- Nice GUI editor
- All filter actions and rules from old KMail should be implemented
- Library should be usable outside of the agent, e.g. for POP3 on-server filtering.
- Manual and automatic filtering
- Filtering should be possible on incomplete mail (headers only). When a filter rule or action detects that it needs the complete body, that should be fetched on demand
- Don't re-upload the mail when no filter action changed the mail (important for IMAP)
- Filtering should be invisible to clients
- Not all new items should trigger automatic filtering -> We might need a flag to explicitly make items filterable, otherwise items get filtered when they were manually added by the user
- Filtering must not lose messages
- Automated tests. Filtering was *very* brittle in the past, causing duplicate and lost messages
- Migration of old filters
Optional Features
- Make the sieve script editor for IMAP servers an actual GUI editor
- Maybe filter rules can be re-used for searching?
Search
Notes
Nobody really knows how this should be done (if one does, please explain here how it should work!). There are server-side searches (IMAP and LDAP) and client side searches possible.
Probably should use Nepomuk.
Needed Features
- At least local searches should be possible, like in current KMail. There should also be a search window like before.
- Virtual search folders
History resource
Smaller Stuff
IMAP Load on Demand
Assigned to: Andris, Kevin, Volker
Notes
Related to the reader implementation. Might need changes in the mail serializer, KMime, the IMAP resource, the server(?)
Needed Features
- Should be possible to fetch messages without fetching the big attachments.
- When saving attachments, fetch them on demand.
- Attachments inside signatures should not be fetched on demand
Optional Features
- Disconnected IMAP with attachment load on demand (headers and message text cached, but not big attachments)
- Bonus points for zero-copy streaming when saving IMAP attachments to disk
Progress Reporting
Assigned to: Constantin
Notes
The progress of the agents should be hooked up into the progress manager of libkdepim. For this, a new connector class is needed that does the plumbing. Should be added to Akonadiconsole as well.
Needed Features
- Tracking progress and status texts
- Abort requests
Local Folders
Assigned to: Constantin
Needed Features
- Inbox, drafts and templates
- Set standard items for the collections, like in KMail