18 #ifndef OPLCONSTANTS_H 
   19 #define OPLCONSTANTS_H 
   22 #include <QMessageBox> 
   42 #define OPL_SUBVERSION 1 
   43 #define OPL_VERSION_STRING QString(QString::number(OPL_VERSION) + "." + QString::number(OPL_SUBVERSION))
 
   45 #if defined(__GNUC__) || defined(__clang__) 
   46     #define FUNC_IDENT __PRETTY_FUNCTION__ 
   47 #elif defined(_MSC_VER) 
   48     #define FUNC_IDENT __FUNCSIG__ 
   50     #define FUNC_IDENT __func__ 
   55 #define TODO qCritical() << "TO DO:\t" 
   57 #define INFO(msg) OPL::ANotificationHandler::info(msg, this)   
   58 #define WARN(msg) OPL::ANotificationHandler::warn(msg, this)   
   59 #define CRIT(msg) OPL::ANotificationHandler::crit(msg, this)   
   68     static inline void info(
const QString msg, QWidget *parent = 
nullptr){
 
   71         auto mb = QMessageBox(QMessageBox::Information, QStringLiteral(
"Info"), msg, QMessageBox::StandardButton::Ok, parent);
 
   74     static inline void warn(
const QString msg, QWidget *parent = 
nullptr){
 
   76         auto mb = QMessageBox(QMessageBox::Warning, QStringLiteral(
"Warning"), msg, QMessageBox::StandardButton::Ok, parent);
 
   79     static inline void crit(
const QString msg, QWidget *parent = 
nullptr){
 
   81         auto mb = QMessageBox(QMessageBox::Critical, QStringLiteral(
"Warning"), msg, QMessageBox::StandardButton::Ok, parent);
 
   86 using RowData_T = QHash<QString, QVariant>;
 
   94 enum class FlightTimeFormat {Default, Decimal};
 
   96 enum class DateTimeFormat {Default, Backup};
 
  112 enum class DbViewName {Default, DefaultWithSim, Easa, EasaWithSim, SimulatorOnly};
 
  122 enum class DbTable {Flights, Simulators, Pilots, Tails, Aircraft, Airports, Currencies, Changelog};
 
  127 enum class CurrencyName {Licence = 1, TypeRating = 2, LineCheck = 3, Medical = 4, Custom1 = 5, Custom2 = 6};
 
  138     void fillLanguageComboBox(QComboBox *combo_box) 
const;
 
  139     void fillViewNamesComboBox(QComboBox *combo_box) 
const;
 
  140     void loadPilotFunctios(QComboBox *combo_box) 
const;
 
  141     void loadSimulatorTypes(QComboBox *combo_box) 
const;
 
  142     void loadApproachTypes(QComboBox *combo_box) 
const;
 
  144     inline const QStringList &getApproachTypes()
 const {
return APPROACH_TYPES;}
 
  145     inline const QString getLanguageFilePath(
Translation language)
 const {
return L10N_FilePaths.value(language);}
 
  146     inline const QString getViewIdentifier(
DbViewName view_name)
 const {
return DATABASE_VIEWS.value(view_name);}
 
  147     inline const QString getDbTableName(
DbTable table_name)
 const {
return DB_TABLES.value(table_name);}
 
  152     const static inline QMap<Translation, QString> L10N_FilePaths {
 
  153         {Translation::English, QStringLiteral(
"l10n/openpilotlog_en")},
 
  154         {Translation::German,  QStringLiteral(
"l10n/openpilotlog_de")},
 
  155         {Translation::Spanish, QStringLiteral(
"l10n/openpilotlog_es")},
 
  157     const static inline QMap<Translation, QString> L10N_DisplayNames {
 
  158         {Translation::English, QStringLiteral(
"English")},
 
  159         {Translation::German,  QStringLiteral(
"Deutsch")},
 
  160         {Translation::Spanish, QStringLiteral(
"EspaƱol")},
 
  162     const static inline QMap<DbViewName, QString> DATABASE_VIEWS = {
 
  163         {DbViewName::Default,        QStringLiteral(
"viewDefault")},
 
  164         {DbViewName::DefaultWithSim, QStringLiteral(
"viewDefaultSim")},
 
  165         {DbViewName::Easa,           QStringLiteral(
"viewEasa")},
 
  166         {DbViewName::EasaWithSim,    QStringLiteral(
"viewEasaSim")},
 
  167         {DbViewName::SimulatorOnly,  QStringLiteral(
"viewSimulators")},
 
  169     const QMap<DbViewName, QString> DATABASE_VIEW_DISPLAY_NAMES = {
 
  170         {DbViewName::Default,        tr(
"Default")},
 
  171         {DbViewName::DefaultWithSim, tr(
"Default with Simulator")},
 
  172         {DbViewName::Easa,           tr(
"EASA-FCL")},
 
  173         {DbViewName::EasaWithSim,    tr(
"EASA-FCL with Simulator")},
 
  174         {DbViewName::SimulatorOnly,  tr(
"Simulator Sessions Only")},
 
  176     const static inline QMap<PilotFunction, QString> PILOT_FUNCTIONS = {
 
  177         {PilotFunction::PIC,   QStringLiteral(
"PIC")},
 
  178         {PilotFunction::PICUS, QStringLiteral(
"PICUS")},
 
  179         {PilotFunction::SIC,   QStringLiteral(
"SIC")},
 
  180         {PilotFunction::DUAL,  QStringLiteral(
"DUAL")},
 
  181         {PilotFunction::FI,    QStringLiteral(
"FI")},
 
  183     const static inline QMap<SimulatorType, QString> SIMULATOR_TYPES = {
 
  184         {SimulatorType::FNPTI,  QStringLiteral(
"FNPT I")},
 
  185         {SimulatorType::FNPTII, QStringLiteral(
"FNPT II")},
 
  186         {SimulatorType::FSTD,   QStringLiteral(
"FSTD")},
 
  188     const static inline QMap<DbTable, QString> DB_TABLES = {
 
  190         {DbTable::Flights,      QStringLiteral(
"flights")},
 
  191         {DbTable::Simulators,   QStringLiteral(
"simulators")},
 
  192         {DbTable::Pilots,       QStringLiteral(
"pilots")},
 
  193         {DbTable::Tails,        QStringLiteral(
"tails")},
 
  194         {DbTable::Aircraft,     QStringLiteral(
"aircraft")},
 
  195         {DbTable::Airports,     QStringLiteral(
"airports")},
 
  196         {DbTable::Currencies,   QStringLiteral(
"currencies")},
 
  198     const static inline QStringList APPROACH_TYPES = {
 
  199             QStringLiteral(
"VISUAL"),
 
  200             QStringLiteral(
"ILS CAT I"),
 
  201             QStringLiteral(
"ILS CAT II"),
 
  202             QStringLiteral(
"ILS CAT III"),
 
  203             QStringLiteral(
"GLS"),
 
  204             QStringLiteral(
"MLS"),
 
  205             QStringLiteral(
"LOC"),
 
  206             QStringLiteral(
"LOC/DME"),
 
  207             QStringLiteral(
"RNAV"),
 
  208             QStringLiteral(
"RNAV (LNAV)"),
 
  209             QStringLiteral(
"RNAV (LNAV/VNAV)"),
 
  210             QStringLiteral(
"RNAV (LPV)"),
 
  211             QStringLiteral(
"RNAV (RNP)"),
 
  212             QStringLiteral(
"RNAV (RNP-AR)"),
 
  213             QStringLiteral(
"VOR"),
 
  214             QStringLiteral(
"VOR/DME"),
 
  215             QStringLiteral(
"NDB"),
 
  216             QStringLiteral(
"NDB/DME"),
 
  217             QStringLiteral(
"TACAN"),
 
  218             QStringLiteral(
"SRA"),
 
  219             QStringLiteral(
"PAR"),
 
  220             QStringLiteral(
"OTHER")
 
  244 const inline auto TABLE_FLIGHTS          = QStringLiteral(
"flights");
 
  245 const inline auto TABLE_PILOTS           = QStringLiteral(
"pilots");
 
  246 const inline auto TABLE_TAILS            = QStringLiteral(
"tails");
 
  247 const inline auto TABLE_AIRCRAFT         = QStringLiteral(
"aircraft");
 
  248 const inline auto TABLE_AIRPORTS         = QStringLiteral(
"airports");
 
  249 const inline auto TABLE_CURRENCIES       = QStringLiteral(
"currencies");
 
  250 const inline auto TABLE_SIMULATORS       = QStringLiteral(
"simulators");
 
  253 const inline auto FLIGHTS_ROWID          = QStringLiteral(
"flight_id");
 
  254 const inline auto FLIGHTS_DOFT           = QStringLiteral(
"doft");
 
  255 const inline auto FLIGHTS_DEPT           = QStringLiteral(
"dept");
 
  256 const inline auto FLIGHTS_DEST           = QStringLiteral(
"dest");
 
  257 const inline auto FLIGHTS_TOFB           = QStringLiteral(
"tofb");
 
  258 const inline auto FLIGHTS_TONB           = QStringLiteral(
"tonb");
 
  259 const inline auto FLIGHTS_PIC            = QStringLiteral(
"pic");
 
  260 const inline auto FLIGHTS_ACFT           = QStringLiteral(
"acft");
 
  261 const inline auto FLIGHTS_TBLK           = QStringLiteral(
"tblk");
 
  262 const inline auto FLIGHTS_TSPSE          = QStringLiteral(
"tSPSE");
 
  263 const inline auto FLIGHTS_TSPME          = QStringLiteral(
"tSPME");
 
  264 const inline auto FLIGHTS_TMP            = QStringLiteral(
"tMP");
 
  265 const inline auto FLIGHTS_TNIGHT         = QStringLiteral(
"tNIGHT");
 
  266 const inline auto FLIGHTS_TIFR           = QStringLiteral(
"tIFR");
 
  267 const inline auto FLIGHTS_TPIC           = QStringLiteral(
"tPIC");
 
  268 const inline auto FLIGHTS_TPICUS         = QStringLiteral(
"tPICUS");
 
  269 const inline auto FLIGHTS_TSIC           = QStringLiteral(
"tSIC");
 
  270 const inline auto FLIGHTS_TDUAL          = QStringLiteral(
"tDUAL");
 
  271 const inline auto FLIGHTS_TFI            = QStringLiteral(
"tFI");
 
  272 const inline auto FLIGHTS_TSIM           = QStringLiteral(
"tSIM");
 
  273 const inline auto FLIGHTS_PILOTFLYING    = QStringLiteral(
"pilotFlying");
 
  274 const inline auto FLIGHTS_TODAY          = QStringLiteral(
"toDay");
 
  275 const inline auto FLIGHTS_TONIGHT        = QStringLiteral(
"toNight");
 
  276 const inline auto FLIGHTS_LDGDAY         = QStringLiteral(
"ldgDay");
 
  277 const inline auto FLIGHTS_LDGNIGHT       = QStringLiteral(
"ldgNight");
 
  278 const inline auto FLIGHTS_AUTOLAND       = QStringLiteral(
"autoland");
 
  279 const inline auto FLIGHTS_SECONDPILOT    = QStringLiteral(
"secondPilot");
 
  280 const inline auto FLIGHTS_THIRDPILOT     = QStringLiteral(
"thirdPilot");
 
  281 const inline auto FLIGHTS_APPROACHTYPE   = QStringLiteral(
"approachType");
 
  282 const inline auto FLIGHTS_FLIGHTNUMBER   = QStringLiteral(
"flightNumber");
 
  283 const inline auto FLIGHTS_REMARKS        = QStringLiteral(
"remarks");
 
  287 const inline auto TAILS_ROWID            = QStringLiteral(
"tail_id");
 
  288 const inline auto TAILS_REGISTRATION     = QStringLiteral(
"registration");
 
  289 const inline auto TAILS_COMPANY          = QStringLiteral(
"company");
 
  290 const inline auto TAILS_MAKE             = QStringLiteral(
"make");
 
  291 const inline auto TAILS_MODEL            = QStringLiteral(
"model");
 
  292 const inline auto TAILS_VARIANT          = QStringLiteral(
"variant");
 
  293 const inline auto TAILS_MULTIPILOT       = QStringLiteral(
"multipilot");
 
  294 const inline auto TAILS_MULTIENGINE      = QStringLiteral(
"multiengine");
 
  295 const inline auto TAILS_ENGINETYPE       = QStringLiteral(
"engineType");
 
  296 const inline auto TAILS_WEIGHTCLASS      = QStringLiteral(
"weightClass");
 
  300 const inline auto  PILOTS_ROWID           = QStringLiteral(
"pilot_id");
 
  301 const inline auto  PILOTS_LASTNAME        = QStringLiteral(
"lastname");
 
  302 const inline auto  PILOTS_FIRSTNAME       = QStringLiteral(
"firstname");
 
  303 const inline auto  PILOTS_ALIAS           = QStringLiteral(
"alias");
 
  304 const inline auto  PILOTS_COMPANY         = QStringLiteral(
"company");
 
  305 const inline auto  PILOTS_EMPLOYEEID      = QStringLiteral(
"employeeid");
 
  306 const inline auto  PILOTS_PHONE           = QStringLiteral(
"phone");
 
  307 const inline auto  PILOTS_EMAIL           = QStringLiteral(
"email");
 
  310 const inline auto  CURRENCIES_EXPIRYDATE  = QStringLiteral(
"expiryDate");
 
  311 const inline auto  CURRENCIES_CURRENCYNAME = QStringLiteral(
"currencyName");
 
  314 const inline auto  SIMULATORS_ROWID       = QStringLiteral(
"session_id");
 
  315 const inline auto  SIMULATORS_DATE        = QStringLiteral(
"date");
 
  316 const inline auto  SIMULATORS_TIME        = QStringLiteral(
"totalTime");
 
  317 const inline auto  SIMULATORS_TYPE        = QStringLiteral(
"deviceType");
 
  318 const inline auto  SIMULATORS_ACFT        = QStringLiteral(
"aircraftType");
 
  319 const inline auto  SIMULATORS_REG         = QStringLiteral(
"registration");
 
  320 const inline auto  SIMULATORS_REMARKS     = QStringLiteral(
"remarks");
 
  323 const inline auto  ROWID                  = QStringLiteral(
"rowid");
 
  324 const inline auto  NULL_TIME_hhmm         = QStringLiteral(
"00:00");
 
  330 const inline auto  DATABASE_SCHEMA               = QStringLiteral(
":/database/database_schema.sql");
 
  331 const inline auto  DATABASE_TEMPLATE_AIRCRAFT    = QStringLiteral(
":/database/templates/aircraft.json");
 
  332 const inline auto  DATABASE_TEMPLATE_AIRPORT     = QStringLiteral(
":/database/templates/airports.json");
 
  333 const inline auto  DATABASE_TEMPLATE_CHANGELOG   = QStringLiteral(
":/database/templates/changelog.json");
 
  334 const inline auto  DATABASE_TEMPLATE_CURRENCIES  = QStringLiteral(
":/database/templates/currencies.json");
 
  336 const inline auto  LOGO                          = QStringLiteral(
":/icons/opl-icons/logos/logo_text.png");
 
  337 const inline auto  ICON_MAIN                     = QStringLiteral(
":/icons/opl-icons/app/icon_main.png");
 
  338 const inline auto  ICON_APPICON_LINUX            = QStringLiteral(
":/icons/opl-icons/app/icon_linux.svg");
 
  339 const inline auto  ICON_APPICON_IOS              = QStringLiteral(
":/icons/opl-icons/app/icon_ios.svg");
 
  340 const inline auto  ICON_APPICON_WIN              = QStringLiteral(
":/icons/opl-icons/app/icon_windows.ico");
 
  342 const inline auto  ICON_TOOLBAR_HOME             = QStringLiteral(
":/icons/opl-icons/toolbar/thick/light/icon_home.svg");
 
  343 const inline auto  ICON_TOOLBAR_NEW_FLIGHT       = QStringLiteral(
":/icons/opl-icons/toolbar/thick/light/icon_new_flight.svg");
 
  344 const inline auto  ICON_TOOLBAR_LOGBOOK          = QStringLiteral(
":/icons/opl-icons/toolbar/thick/light/icon_logbook.svg");
 
  345 const inline auto  ICON_TOOLBAR_AIRCRAFT         = QStringLiteral(
":/icons/opl-icons/toolbar/thick/light/icon_airplane.svg");
 
  346 const inline auto  ICON_TOOLBAR_PILOT            = QStringLiteral(
":/icons/opl-icons/toolbar/thick/light/icon_pilot.svg");
 
  347 const inline auto  ICON_TOOLBAR_SETTINGS         = QStringLiteral(
":/icons/opl-icons/toolbar/thick/light/icon_settings.svg");
 
  348 const inline auto  ICON_TOOLBAR_QUIT             = QStringLiteral(
":/icons/opl-icons/toolbar/thick/light/icon_exit.svg");
 
  350 const inline auto  ICON_TOOLBAR_BACKUP           = QStringLiteral(
":/icons/opl-icons/toolbar/thick/light/icon_backup.svg");
 
  352 const inline auto  ICON_TOOLBAR_HOME_DARK        = QStringLiteral(
":/icons/opl-icons/toolbar/thick/dark/icon_home_dm.svg");
 
  353 const inline auto  ICON_TOOLBAR_NEW_FLIGHT_DARK  = QStringLiteral(
":/icons/opl-icons/toolbar/thick/dark/icon_new_flight_dm.svg");
 
  354 const inline auto  ICON_TOOLBAR_LOGBOOK_DARK     = QStringLiteral(
":/icons/opl-icons/toolbar/thick/dark/icon_logbook_dm.svg");
 
  355 const inline auto  ICON_TOOLBAR_AIRCRAFT_DARK    = QStringLiteral(
":/icons/opl-icons/toolbar/thick/dark/icon_airplane_dm.svg");
 
  356 const inline auto  ICON_TOOLBAR_PILOT_DARK       = QStringLiteral(
":/icons/opl-icons/toolbar/thick/dark/icon_pilot_dm.svg");
 
  357 const inline auto  ICON_TOOLBAR_SETTINGS_DARK    = QStringLiteral(
":/icons/opl-icons/toolbar/thick/dark/icon_settings_dm.svg");
 
  358 const inline auto  ICON_TOOLBAR_QUIT_DARK        = QStringLiteral(
":/icons/opl-icons/toolbar/thick/dark/icon_exit_dm.svg");
 
  360 const inline auto  ICON_TOOLBAR_BACKUP_DARK      = QStringLiteral(
":/icons/opl-icons/toolbar/thick/dark/icon_backup_dm.svg");
 
  366 const inline auto  RED_BORDER = QStringLiteral(
"border: 1px solid red");
 
The ANotificationHandler class handles displaying of user-directed messages. It displays information ...
Definition: opl.h:66
The OplGlobals class encapsulates non-POD globals to avoid making them static. It is available as a g...
Definition: opl.h:134
A namespace to collect constants and enums used throughout the application.
Definition: database.cpp:25
SimulatorType
Enumerates the Simulator Types: Flight and Navigation Procedures Trainer 1/2, Flight Simulation Train...
Definition: opl.h:117
CurrencyName
Enumerates the currency names.
Definition: opl.h:127
PilotFunction
PilotFunction Pilot in Command, Pilot in Command under Supervision, Second in Command (Co-Pilot),...
Definition: opl.h:102
Translation
Enumerates the available translations.
Definition: opl.h:107
DbTable
Enumerates the tables in the database.
Definition: opl.h:122
DbViewName
Enumerates the available SQL views in the database.
Definition: opl.h:112
DateFormat
ADateFormats enumerates the accepted date formats for QDateEdits.
Definition: opl.h:92