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)