Class Hierarchy
This inheritance list is sorted roughly, but not completely, alphabetically:

OPL::ANotificationHandler | Handles displaying of user-directed messages. It displays information to the user in a QMessageBox and forwards the displayed message to ALog so it is written to the console and log files. The INFO, WARN and CRIT makros provide convenient access
OPL::DateTime |
OPL::DbCompletionData | Provides data for QCompleters and QHashs
JsonHelper | Responsible for parsing the database (sqlite) to and from JSON
Md5Sum | Responsible for calculating cryptographic hashes of files (used to verify downloads)
OPL::Calc::NightTimeValues | The NightTimeValues struct encapsulates values relating to night time that are needed by the NewFlightDialog
OPL::Paths |
ProcessAircraft |
ProcessFlights |
ProcessPilots |
QDialog |
FirstRunDialog | The FirstRunDialog is used as a set-up wizard for the application
NewAirportDialog |
NewFlightDialog | The NewFlightDialog is used to add or edit entries from the flights table in the database
NewPilotDialog | The NewPilotDialog enables adding new entries to the pilot table in the database
NewSimDialog | Enables adding a new Simulator Session to the database or editing an existing one
NewTailDialog | The NewTailDialog enables adding new Tail entries to the database or editing existing ones
QObject |
ATimer | Easy to use performance timer
DownloadHelper |
OPL::Database | The DB class encapsulates the SQL database by providing fast access to hot database data
OPL::DbSummary | Collects summaries of entries and relevant data from the database
OPL::OplGlobals | Encapsulates non-POD globals to avoid making them static. It is available as a global static object via the OPL::GLOBAL makro and may be used as if it were a pointer, guaranteed to be initialized exactly once. For more information, see (Q_GLOBAL_STATIC)[https://doc.qt.io/qt-5/qglobalstatic.html#details]

Translator

The ATranslator class is responsible for managing the QTranslator used for providing localisations. Translations are planned, but are not currently being worked on. The way QT language tools are working with CMAKE, there are some considerations for when works on translation actually start. See here and here. Long story short, make sure to use a version of CMake that is 3.16 or earlier, or 3.19.2 or later

QWidget |
AircraftWidget | The AircraftWidget is used to view, edit, delete or add new tails
AirportWidget |
BackupWidget | The BackupWidget is the interface for the user to create and restore backups of the database
DebugWidget |
HomeWidget | The HomeWidget is the welcome screen of the application
LogbookWidget | The LogbookWidget displays data from the database in a QSqlTableView fed by a QSqlQuery Model
PilotsWidget | The PilotsWidget is used to view, edit, delete or add new pilots
SettingsWidget | The SettingsWidget is used to to display and alter Settings
OPL::Row | Interface for retreiving and submitting entries from the database
OPL::AircraftEntry | A Row representing an Aircraft entry. See Row class for details
OPL::AirportEntry | A Row representing an Airport entry. See Row class for details
OPL::CurrencyEntry | A Row representing a Currency entry. See Row class for details
OPL::FlightEntry | A Row representing a Flight entry. See Row class for details
OPL::PilotEntry | A Row representing a Pilot entry. See Row class for details
OPL::SimulatorEntry | A Row representing a Simulator entry. See Row class for details
OPL::TailEntry | A Row representing a Tail (Registration) entry. See Row class for details
RunGuard | Ensures only a single instance of the application is running simultaneously
Settings | Thin wrapper for the QSettings class, simplifying reading and writing of settings
OPL::Style | The AStyle class encapsulates style and stylesheet logic
OPL::StyleSheet | The StyleSheet struct holds the Display Name and File Name (in the resource system) for the available stylesheets
ValidationState | Encapsulates a QBitArray that has a bit set (or unset) depending on wether the input for the associated index has been verified. The indexes correspond to the mandatory items enumerated in the ValidationItem enum