1 This doc describes the state of the composer when my (cberzan) GSoC project
2 ended and I could no longer dedicate full time to this.
4 Things that should be rethought a little and refactored:
5 * All GUI bits should move out of the jobs. Currently this is only the
6 MainTextJob's ugly KMessageBox that warns the user if a charset is not good
8 * Some jobs (the MainTextJob, AttachmentJob at least) need to know what
9 charset(s) the user has chosen and whether 8bit encoding is allowed. This is
10 currently stored in the GlobalPart, and it sucks horribly that each job
11 might need access to this GlobalPart. The globalPart is currently obtained
12 by checking all ancestors if they are a Composer, and calling
13 thatAncestor->globalPart(). This has the nasty side effect that jobs require
14 a Composer grandparent, and can't be used independently. I haven't found a
15 good way to solve this without duplication. :-/
16 * Related to the above: it should be possible to use any of these jobs outside
17 of a composer, especially that the TemplateParser and KJots might need them.
18 It should also be easy to make have something like MyComposer in an
19 application, extending upon Composer.
21 Things that are still TODO:
22 The crypto composer. Currently the plan is to have this simple composer LGPL,
23 and have another GPL crypto composer that would use this, and be used in KMail.
24 Whereas this Composer outputs a single KMime::Message, the crypto composer
25 should probably output a list of Akonadi::Items, and store things that are not
26 part of the sendable message (such as Bcc) as item attributes.