expnewflightdialog.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. #ifndef EXPNEWFLIGHTDIALOG_H
  2. #define EXPNEWFLIGHTDIALOG_H
  3. #include <QDialog>
  4. #include <QRegularExpression>
  5. #include <QMessageBox>
  6. #include <QDebug>
  7. #include <QCompleter>
  8. #include <QLatin1Char>
  9. #include <QStringList>
  10. #include <QStringListModel>
  11. #include <QSortFilterProxyModel>
  12. #include <QButtonGroup>
  13. #include <QBitArray>
  14. #include <QLineEdit>
  15. #include <QCalendarWidget>
  16. #include <QTabWidget>
  17. #include "src/experimental/adatabase.h"
  18. #include "src/experimental/aflightentry.h"
  19. #include "src/experimental/apilotentry.h"
  20. #include "src/experimental/atailentry.h"
  21. #include "src/functions/acalc.h"
  22. #include "src/testing/atimer.h"
  23. namespace Ui {
  24. class ExpNewFlightDialog;
  25. }
  26. class ExpNewFlightDialog : public QDialog
  27. {
  28. Q_OBJECT
  29. public:
  30. explicit ExpNewFlightDialog(QWidget *parent = nullptr);
  31. explicit ExpNewFlightDialog(int row_id, QWidget *parent = nullptr);
  32. ~ExpNewFlightDialog();
  33. signals:
  34. void goodInputReceived(QLineEdit*);
  35. void badInputReceived(QLineEdit*);
  36. void locationEditingFinished(QLineEdit*, QLabel*);
  37. void timeEditingFinished(QLineEdit*);
  38. void mandatoryLineEditsFilled();
  39. private slots:
  40. void onGoodInputReceived(QLineEdit*);
  41. void onBadInputReceived(QLineEdit *);
  42. void onTextChangedToUpper(const QString&);
  43. void onPilotLineEdit_editingFinished();
  44. void onLocLineEdit_editingFinished(QLineEdit*, QLabel*);
  45. void onTimeLineEdit_editingFinished();
  46. void onMandatoryLineEditsFilled();
  47. void onCompleterHighlighted(const QString&);
  48. void onDateClicked(const QDate &date);
  49. void onDateSelected(const QDate &date);
  50. void onDoftLineEditEntered();
  51. void on_deptLocLineEdit_2_editingFinished();
  52. void on_destLocLineEdit_2_editingFinished();
  53. void on_acftLineEdit_2_editingFinished();
  54. /////// DEBUG
  55. void onInputRejected();
  56. /////// DEBUG
  57. void on_calendarCheckBox_stateChanged(int arg1);
  58. void on_doftLineEdit_2_editingFinished();
  59. void on_cancelButton_clicked();
  60. void on_submitButton_clicked();
  61. void on_setAsDefaultButton_2_clicked();
  62. void on_restoreDefaultButton_2_clicked();
  63. void on_PilotFlyingCheckBox_2_stateChanged(int arg1);
  64. void on_IfrCheckBox_2_stateChanged(int);
  65. void on_manualEditingCheckBox_2_stateChanged(int arg1);
  66. void on_ApproachComboBox_2_currentTextChanged(const QString &arg1);
  67. private:
  68. Ui::ExpNewFlightDialog *ui;
  69. experimental::AFlightEntry flightEntry;
  70. QList<QLineEdit*> mandatoryLineEdits;
  71. QList<QLineEdit*> primaryTimeLineEdits;
  72. QBitArray mandatoryLineEditsGood;
  73. QStringList pilotList;
  74. QStringList tailsList;
  75. QStringList airportList;
  76. QMap<QString, int> pilotsIdMap;
  77. QMap<QString, int> tailsIdMap;
  78. QMap<QString, int> airportIcaoIdMap;
  79. QMap<QString, int> airportIataIdMap;
  80. QMap<QString, int> airportNameIdMap;
  81. bool eventFilter(QObject *object, QEvent *event);
  82. bool updateEnabled;
  83. bool isLessOrEqualThanBlockTime(const QString time_string);
  84. void setup();
  85. void readSettings();
  86. void writeSettings();
  87. void setupButtonGroups();
  88. void setPopUpCalendarEnabled(bool state);
  89. void setupRawInputValidation();
  90. void setupLineEditSignalsAndSlots();
  91. void fillDeductibleData();
  92. experimental::TableData collectInput();
  93. };
  94. #endif // EXPNEWFLIGHTDIALOG_H