Skip to content
This repository has been archived by the owner on Mar 4, 2018. It is now read-only.

Architecture

ColinDuquesnoy edited this page Dec 17, 2014 · 3 revisions

Here is a brief description of the overall architecture and the most important modules.

Source package

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.

Controllers

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.

View

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