diff options
-rw-r--r-- | docs/design.md | 84 |
1 files changed, 1 insertions, 83 deletions
diff --git a/docs/design.md b/docs/design.md index 5ee6322a..daeed730 100644 --- a/docs/design.md +++ b/docs/design.md | |||
@@ -134,8 +134,7 @@ Same as files? Import/Export calendar data | |||
134 | * SMTP: based on libcurl | 134 | * SMTP: based on libcurl |
135 | 135 | ||
136 | ### Cryptography | 136 | ### Cryptography |
137 | * PGP, PEP | 137 | * PGP |
138 | * ObjectTreeParser | ||
139 | 138 | ||
140 | Keyselection, encryption, decryption, signing | 139 | Keyselection, encryption, decryption, signing |
141 | Probably requires access to identities in some way. | 140 | Probably requires access to identities in some way. |
@@ -143,93 +142,12 @@ Probably requires access to identities in some way. | |||
143 | see also [Cryptography](cryptography). | 142 | see also [Cryptography](cryptography). |
144 | 143 | ||
145 | ### MIME-Message parsing | 144 | ### MIME-Message parsing |
146 | * ObjectTreeParser | ||
147 | * KMime | 145 | * KMime |
148 | 146 | ||
149 | ## Testing | 147 | ## Testing |
150 | 148 | ||
151 | TBD | 149 | TBD |
152 | 150 | ||
153 | ## Problems/Notes: | ||
154 | * Dynamic switching between various component UI's can be solved using KPackage | ||
155 | |||
156 | ## Example usage in QML | ||
157 | |||
158 | ``` | ||
159 | KubeActions.Action { | ||
160 | requestId: "org.kde.kube.mail.reply" | ||
161 | onRequest { | ||
162 | mail: context.mail | ||
163 | } | ||
164 | } | ||
165 | |||
166 | KubeActions.ActionContext { | ||
167 | id: actionContext | ||
168 | mail: kubeMailListView.currentMail | ||
169 | } | ||
170 | |||
171 | KubeActions.ActionHandle { | ||
172 | property int progress | ||
173 | property bool complete | ||
174 | property bool error | ||
175 | property string errormessage | ||
176 | } | ||
177 | |||
178 | KubeActions.Action { | ||
179 | id: markAsReadAction | ||
180 | action: "org.kde.kube.action.mark-as-read" | ||
181 | context: actionContext | ||
182 | //execute() returns an ActionHandle | ||
183 | } | ||
184 | |||
185 | KubeComponents.FolderList { | ||
186 | id: kubeFolderListView | ||
187 | } | ||
188 | |||
189 | KubeComponents.MailList { | ||
190 | id: kubeMailListView | ||
191 | parentFolder: kubeFolderListView.currentFolder | ||
192 | } | ||
193 | |||
194 | KubeComponents.MailView { | ||
195 | id: kubeMailView | ||
196 | mail: kubeMailListView.currentMail | ||
197 | } | ||
198 | ``` | ||
199 | |||
200 | ## Email Domain Logic | ||
201 | * Folder list | ||
202 | * Folder List Controller | ||
203 | * Move mail to folder | ||
204 | * Move/Copy/Delete folder | ||
205 | * Synchronize folder | ||
206 | * Folder List Model | ||
207 | * Mixes Sink queries and subqueries (folder list with smart folders) | ||
208 | * name | ||
209 | * statistics | ||
210 | |||
211 | * Mail list | ||
212 | * MailListController | ||
213 | * Mark as read | ||
214 | * Flag as important | ||
215 | * Move to trash | ||
216 | * MailListModel | ||
217 | * subject | ||
218 | * date | ||
219 | * sender | ||
220 | * folder | ||
221 | * ThreadModel | ||
222 | * thread leader (otherwise like maillist model) | ||
223 | * number of mails in thread | ||
224 | |||
225 | * Mail Viewer | ||
226 | * MailViewController | ||
227 | * reply | ||
228 | * forward | ||
229 | * move to trash | ||
230 | * MailModel | ||
231 | * subject, date, sender, folder, content, attachments | ||
232 | |||
233 | ## Configuration and Accounts | 151 | ## Configuration and Accounts |
234 | Kube is a groupware application, so one of its most important features is being able to work with various remote backends. We live in a world of multiple devies and applications, so it is interesting to share as much state and configuration accross all different devices and applications, which is why we try to store as much of that in the backend. | 152 | Kube is a groupware application, so one of its most important features is being able to work with various remote backends. We live in a world of multiple devies and applications, so it is interesting to share as much state and configuration accross all different devices and applications, which is why we try to store as much of that in the backend. |
235 | 153 | ||