summaryrefslogtreecommitdiffstats
path: root/docs/design.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/design.md')
-rw-r--r--docs/design.md41
1 files changed, 40 insertions, 1 deletions
diff --git a/docs/design.md b/docs/design.md
index 4ab2e887..aff49183 100644
--- a/docs/design.md
+++ b/docs/design.md
@@ -49,6 +49,39 @@ Use-case specific controllers are used to operate on the data. Controllers allow
49Rather than splitting controllers by domain type (e.g. an email controller, or a calendar controller), we specifically write controllers for specific usecases (e.g. an email editor), that exposes all required actions. That way we ensure that the API's a UI is working with is always clear an consice, and that we have all domain logic captured in the domain logic layer, rather than the UI layer. 49Rather than splitting controllers by domain type (e.g. an email controller, or a calendar controller), we specifically write controllers for specific usecases (e.g. an email editor), that exposes all required actions. That way we ensure that the API's a UI is working with is always clear an consice, and that we have all domain logic captured in the domain logic layer, rather than the UI layer.
50Of course controllers will need to share functionality internally as soon as an action is available from more than one place. 50Of course controllers will need to share functionality internally as soon as an action is available from more than one place.
51 51
52### Email Domain Logic
53* Folder list
54 * Folder List Controller
55 * Move mail to folder
56 * Move/Copy/Delete folder
57 * Synchronize folder
58 * Folder List Model
59 * Mixes akonadi next queries and subqueries (folder list with smart folders)
60 * name
61 * statistics
62
63* Mail list
64 * MailListController
65 * Mark as read
66 * Flag as important
67 * Move to trash
68 * MailListModel
69 * subject
70 * date
71 * sender
72 * folder
73 * ThreadModel
74 * thread leader (otherwise like maillist model)
75 * number of mails in thread
76
77* Mail Viewer
78 * MailViewController
79 * reply
80 * forward
81 * move to trash
82 * MailModel
83 * subject, date, sender, folder, content, attachments
84
52## Infrastructure 85## Infrastructure
53 86
54The infrastructure layer interfaces with the rest of the system. It is the place where we can integrate with various native infrastructure parts. 87The infrastructure layer interfaces with the rest of the system. It is the place where we can integrate with various native infrastructure parts.
@@ -59,8 +92,14 @@ Note: The infrastructure blocks will use only types provided by the domain logic
59### Akonadi Next 92### Akonadi Next
60Akonadi Next is used for primary data access and handles all synchronization. 93Akonadi Next is used for primary data access and handles all synchronization.
61 94
95Interactions with Akonadi Next involve:
96* Adding/removing/configuring resources
97* Triggering synchronization
98* Querying of data
99* Creating/Modifying/Removing entities
100
62### Configuration 101### Configuration
63Configuration as traditionally store in config files in ~/.kde 102Configuration as traditionally stored in config files in ~/.kde
64 103
65### Notification 104### Notification
66Notifications for the system. 105Notifications for the system.