Architecture
Here is a brief description of the overall architecture and the most important modules.
The source package, open_cobol_ide
contains all the sources of the application. It is made up of two sub-packages and a series of modules.
The most important modules are:
-
main.py
: this module contains the application entry point -
app.py
: this module contains the application object. This is where we create the main window and its controllers. -
compiler.py
: this module contains all the code used to interact with the GnuCobol compiler -
settings.py
: this module contains the application settings, stored in QSettings.
The logic of the application is contained in the controllers
sub-package. There is one controller per perspective (home/edit) and per menu. A controller is just an object which takes a reference to the main window and connect its slots to the various signals it has to control. This architecture has been designed to move the logic out of the main window object and to separate the concerns. Controllers can talk to each other through the application object.
The view
sub-package contains the gui objects of the application: the main window, the about and preferences dialogs and some custom widgets. The source code editor widgets and the splittable tab widget are coming from the pyQode project.
Note that this architecture has nothing to with the MVC pattern
This wiki is public. You are encouraged to come and share all kind of personal contributions: new pages, improvements to existing pages, or even simple corrections.