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
