Documentation

- 1 min read

Architecture Overview

The application is structured into several logical layers and modules.
It is implemented in Qt and follows the MVC (Model-View-Controller) architectural pattern, ensuring a clear separation between the data model, the user interface, and the control logic.


1. Tabs (Modules)

  • Each tab is implemented as a separate module.
  • Some tabs run in separate threads to improve responsiveness of the GUI and to offload heavy operations from the main thread.
  • Tabs operate on their own data but interact with the controller for synchronization and updates.

2. Data Model

  • The data model layer is responsible for storing, representing, and exposing data to the rest of the application.
  • It ensures consistency and provides a unified interface for controllers and views.

3. Controller

  • The controller layer manages the logic of the application.
  • It coordinates the flow of data between the model and the view (tabs).
  • It can spawn background threads for expensive operations.

4. Utils

  • A collection of utility functions shared across the application.
  • They centralize common operations and reduce code duplication.

Diagram

Application Architecture