summaryrefslogtreecommitdiffstats
path: root/kompare/DESIGN
blob: 9f1ddafd2bbdd72ea03cb7b4e802808cb3003fff (plain)
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
Kompare General design:

Kompare is split up into 4 parts:
- A shell around the parts
- A library with the modellist and the parser
- The navigation tree which uses the library
- The view part that also uses the library

The diffmodel is comparable to a document and the view part is comparable
to the view and the komparemodellist is comparable to a documentmanager. 
The navtree can be viewed as a document view manager.
The model is fully separated from the view and all communication goes 
through Q_SIGNALS and Q_SLOTS. The view gets a model that contains all differences
for the compared files A and B. The view gets this model from the modellist,
the central entity in the part.

There is an interface to the komparepart that can be used in other programs, 
simply link to the libkompareinterface.la and call its methods after you have 
instanciated a komparepart. There is also a "hidden" signal and slot interface 
that can be connected to from the shell app to get some information, and an 
interface for communication between the navigation part and the komparepart.

There is no need to use the interface for the communication between the 
navigation and kompare parts in the shell app.

Kompare has some debug areas:

8100        kompare
8101        kompare (libs)
8102        kompare (shell)
8103        kompare (part)
8104        kompare (list view)
8105        kompare (nav view)
8106        kompare (connect widget)