File: HACKING

package info (click to toggle)
zanshin 0.2.1-1
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 1,000 kB
  • sloc: cpp: 10,294; makefile: 3; sh: 3
file content (62 lines) | stat: -rw-r--r-- 2,361 bytes parent folder | download
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
60
61
62
* Coding style: http://techbase.kde.org/Policies/Kdelibs_Coding_Style
  It's basically the same than the kdelibs coding style as linked above.

* Contributing to Zanshin

  Patches should be sent for review to Kevin Ottens <ervin@kde.org> before
  being committed to Subversion. 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.