18 #ifndef NewFlightDialog_H 
   19 #define NewFlightDialog_H 
   27 #include "src/functions/atime.h" 
   28 #include "src/database/database.h" 
   29 #include "src/database/dbcompletiondata.h" 
   31 #include "src/database/row.h" 
   37 enum ValidationItem {doft = 0, dept = 1, dest = 2, tofb = 3, tonb = 4, pic = 5, acft = 6};
 
   48     void validate(ValidationItem item)             { validationArray[item] = 
true;};
 
   49     void validate(
int index)                       { validationArray[index] = 
true;};
 
   50     void invalidate(ValidationItem item)           { validationArray[item] = 
false;}
 
   51     void invalidate(
int index)                     { validationArray[index] = 
false;}
 
   52     inline bool allValid()
 const                   { 
return validationArray.count(
true) == 7;};
 
   53     inline bool timesValid()
 const                 { 
return validationArray[ValidationItem::tofb] && validationArray[ValidationItem::tonb];}
 
   54     inline bool locationsValid()
 const             { 
return validationArray[ValidationItem::dept] && validationArray[ValidationItem::dest];}
 
   55     inline bool nightDataValid()
 const             { 
return timesValid() && locationsValid() && validationArray[ValidationItem::doft];}
 
   56     inline bool acftValid()
 const                  { 
return validationArray[ValidationItem::acft];}
 
   57     inline bool validAt(
int index)
 const           { 
return validationArray[index];}
 
   58     inline bool validAt(ValidationItem item)
 const { 
return validationArray[item];}
 
   61     void printValidationStatus()
 const {
 
   62         QString deb_string(
"\033[mValidation State:\tdoft\tdept\tdest\ttofb\ttonb\tpic\tacft\n");
 
   63         deb_string += 
"\t\t\t\t";
 
   64         for (
int i = 0; i < 7; i++) { 
 
   65             if (validationArray[i])
 
   66                 deb_string += 
"\t\033[32m" + QString::number(validationArray[i]);
 
   68                 deb_string += 
"\t\033[31m" + QString::number(validationArray[i]);
 
   70         deb_string += QLatin1String(
"\u001b[38;5;75m"); 
 
   71         qDebug().noquote() << deb_string;
 
   74     QBitArray validationArray = QBitArray(7);
 
  125     Ui::NewFlightDialog *ui;
 
  139     static const inline QList<QLineEdit*>* timeLineEdits;
 
  143     static const inline QList<QLineEdit*>* locationLineEdits;
 
  147     static const inline QList<QLineEdit*>* pilotNameLineEdits;
 
  152     static const inline QList<QLineEdit*>* mandatoryLineEdits;
 
  153     static const inline QLatin1String 
self = QLatin1String(
"self");
 
  156     void setupRawInputValidation();
 
  157     void setupSignalsAndSlots();
 
  159     void fillWithEntryData();
 
  166     void onGoodInputReceived(QLineEdit *line_edit);
 
  172     void onBadInputReceived(QLineEdit *line_edit);
 
  174     void updateBlockTimeLabel();
 
  175     void updateNightCheckBoxes();
 
  176     void setNightCheckboxes();
 
  178     bool addNewTail(QLineEdit& parent_line_edit);
 
  179     bool addNewPilot(QLineEdit& parent_line_edit);
 
  182     bool checkPilotFunctionsValid();
 
  183     RowData_T prepareFlightEntryData();
 
  187     void toUpper(
const QString& text);
 
  188     void onTimeLineEdit_editingFinished();
 
  189     void onPilotNameLineEdit_editingFinshed();
 
  190     void onLocationLineEdit_editingFinished();
 
  191     void on_acftLineEdit_editingFinished();
 
  192     void on_doftLineEdit_editingFinished();
 
  193     void on_buttonBox_accepted();
 
  194     void on_pilotFlyingCheckBox_stateChanged(
int arg1);
 
  195     void on_approachComboBox_currentTextChanged(
const QString &arg1);
 
  196     void on_functionComboBox_currentIndexChanged(
int index);
 
  199     bool eventFilter(QObject* 
object, QEvent* event) 
override;
 
The NewFlightDialog is used to add or edit entries from the flights table in the database.
Definition: newflightdialog.h:106
bool eventFilter(QObject *object, QEvent *event) override
NewFlightDialog::eventFilter invalidates mandatory line edits on focus in.
Definition: newflightdialog.cpp:165
NewFlightDialog(OPL::DbCompletionData &completion_data, QWidget *parent=nullptr)
NewFlightDialog - Creates a NewFlightDialog that can be used to add a new flight entry to the logbook...
Definition: newflightdialog.cpp:34
Provides data for QCompleters and QHashs.
Definition: dbcompletiondata.h:33
The ValidationState class encapsulates a QBitArray that has a bit set (or unset) depending on wether ...
Definition: newflightdialog.h:44