-
-
Notifications
You must be signed in to change notification settings - Fork 6
/
HACKING
61 lines (47 loc) · 2.23 KB
/
HACKING
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
* Coding style: https://community.kde.org/Policies/Frameworks_Coding_Style
* Contributing to Zanshin
Patches should be sent for review to Kevin Ottens <ervin@kde.org> before
being committed to Git. If major user interface changes are being
made, a screenshot of what the application looks like after the change
should be sent along with the patch.
* Design
Model Layer:
------------
The application is built around a set of item models and views. GlobalModel
is a singleton in charge of creating all the models used in the application.
- At the there's TodoFlatModel, which lists all the todo contained in a
resource.
- Above it there's TodoTreeModel, which exposes a tree of todo based on their
relateToUid property.
- There's also TodoCategoriesModel, which exposes a tree of todo based on
their categories (a todo can have several categories, then it appears
several times in the tree).
- ProjectsModel and ContextsModel expose only the non-todo subset of the two
previous models.
- LibraryModel which wraps a model and add two entries to it: Inbox and
Library (Inbox is empty, and Library contains the source model).
So inside GlobalModel the link between models is the following:
tree model --------- projects model --- library model
/
/
flat model
\
\
categories model --- contexts model --- library model
View Layer:
-----------
Also we have a special model to show action lists, this model should be
considered as being part of the view layer since it has no other feature
than ensuring a proper layout of our lists. It can be used on top of:
- TodoFlatModel
- TodoTreeModel
- TodoCategoriesModel
This model works along with with ActionListView and ActionListDelegate to
visually obtain a nice action list with sections. It is part of the central
view.
The mainwindow is split into a sidebar and the action list editor. They both
provide the actions you can use with them.
- SideBar allows to display the contexts LibraryModel or the projects
LibraryModel depending on which mode the application is on.
- ActionListEditor allows to display action lists and add (or remove) items
to them.