Framework (layers are bottom up)

- Layer 0, Actual graphic implementation
Operating system libs, Qt runtime, webkit etc.
These are and cannot be part of our source release

- Layer 1, glue kit and UI design
This layer has 2 main functions:
a) It reads a UI design specification (which happens to have Qt XML format),
    and creates the connection to layer 0. The design file is ALv2 based.
b) It contains an API and callbacks to the higher layers.

Remember we only use a very limited part of a full scale UI, which reduces the size
of this layer dramatically. This is the real critical point, if we cannot do a major reduction
this framework will not work.
We implement an example of this layer, and by accident we use Qt. Other developers
might (and most importantly for license reasons "can do it") implement e.g. webkit.

For test purposes we also implement a NULL version of this layer, thereby the editor can
link without and third party source.

We supply this source as EXAMPLE source, clearly marked as such.
- Layer 2, UI handling
This layer implements the actual handling, in correspondence with the XML UI design file (which is a pure ALv2 file)
The HTML/CSS/JS of the editor belongs in this layer (layer 0-1-2 provide the communication)
- Layer 3, Docformat API
Something we need to have for the docformats lib.

- Layer 4, Docfomat with filters
Our main "product".


I recommend we develop along this idea/framework. It has several advantages:
- we can continue our current development undisturbed
- we can make releases without problem
- we do not get sidetracked by having to write our own UI kit.
- we can reuse big parts for the server version if so wanted.
Should some of us believe we still run into problems when releasing, then we can
simply release the framework without layer 1 and be very pure (more than most projects actually). In this case "libreCorinthia" would consist of layer 1.
  • No labels