Warning, /pim/zanshin/HACKING is written in an unsupported language. File is not indexed.

0001 * Coding style: https://community.kde.org/Policies/Frameworks_Coding_Style
0002 
0003 * Contributing to Zanshin
0004 
0005   Patches should be sent for review to Kevin Ottens <ervin@kde.org> before
0006   being committed to Git. If major user interface changes are being
0007   made, a screenshot of what the application looks like after the change
0008   should be sent along with the patch.
0009 
0010 * Design
0011 
0012   Model Layer:
0013   ------------
0014   The application is built around a set of item models and views. GlobalModel
0015   is a singleton in charge of creating all the models used in the application.
0016 
0017   - At the there's TodoFlatModel, which lists all the todo contained in a
0018     resource.
0019   - Above it there's TodoTreeModel, which exposes a tree of todo based on their
0020     relateToUid property.
0021   - There's also TodoCategoriesModel, which exposes a tree of todo based on
0022     their categories (a todo can have several categories, then it appears
0023     several times in the tree).
0024   - ProjectsModel and ContextsModel expose only the non-todo subset of the two
0025     previous models.
0026   - LibraryModel which wraps a model and add two entries to it: Inbox and
0027     Library (Inbox is empty, and Library contains the source model).
0028 
0029   So inside GlobalModel the link between models is the following:
0030 
0031               tree model --------- projects model --- library model
0032              /
0033             /
0034   flat model
0035             \
0036              \
0037               categories model --- contexts model --- library model
0038 
0039 
0040   View Layer:
0041   -----------
0042   Also we have a special model to show action lists, this model should be
0043   considered as being part of the view layer since it has no other feature
0044   than ensuring a proper layout of our lists. It can be used on top of:
0045     - TodoFlatModel
0046     - TodoTreeModel
0047     - TodoCategoriesModel
0048 
0049   This model works along with with ActionListView and ActionListDelegate to
0050   visually obtain a nice action list with sections. It is part of the central
0051   view.
0052 
0053   The mainwindow is split into a sidebar and the action list editor. They both
0054   provide the actions you can use with them.
0055 
0056   - SideBar allows to display the contexts LibraryModel or the projects
0057     LibraryModel depending on which mode the application is on.
0058   - ActionListEditor allows to display action lists and add (or remove) items
0059     to them.
0060 
0061