Browse Source

added slots, QCompleter and QValidator for Flight Number Prefix

fiffty-50 4 năm trước cách đây
mục cha
commit
6d9e0799be
5 tập tin đã thay đổi với 112 bổ sung43 xóa
  1. 52 40
      newflight.cpp
  2. 2 0
      newflight.h
  3. 26 0
      settingswidget.cpp
  4. 3 0
      settingswidget.h
  5. 29 3
      settingswidget.ui

+ 52 - 40
newflight.cpp

@@ -138,6 +138,11 @@ NewFlight::NewFlight(QWidget *parent) :
     ui->destTZ->setFocusPolicy(Qt::NoFocus);
     ui->destTZ->setFocusPolicy(Qt::NoFocus);
     ui->newDept->setFocus();
     ui->newDept->setFocus();
 
 
+    QString flightNumberPrefix = dbSettings::retreiveSetting("50");
+    if(flightNumberPrefix.length() != 0){
+        ui->FlightNumberLineEdit->setText(flightNumberPrefix);
+    }
+
 }
 }
 
 
 NewFlight::~NewFlight()
 NewFlight::~NewFlight()
@@ -683,7 +688,6 @@ void NewFlight::on_secondPilotLineEdit_editingFinished()
             }
             }
         }
         }
     }
     }
-    qDebug() << "Second Pilot: " << secondPilot;
 }
 }
 
 
 void NewFlight::on_thirdPilotLineEdit_textEdited(const QString &arg1)
 void NewFlight::on_thirdPilotLineEdit_textEdited(const QString &arg1)
@@ -726,9 +730,14 @@ void NewFlight::on_thirdPilotLineEdit_editingFinished()
             }
             }
         }
         }
     }
     }
-    qDebug() << "Third Pilot: " << thirdPilot;
 }
 }
 
 
+void NewFlight::on_FlightNumberLineEdit_editingFinished()
+{
+    qDebug() << "tbd: FlightNumber slot";
+    // To Do: Store input in variable, perform some checks
+    // Setting for optional Prefix (e.g. LH, LX etc.)
+}
 
 
 /*
 /*
  * Extras
  * Extras
@@ -762,44 +771,6 @@ void NewFlight::on_restoreDefaultButton_clicked()
     restoreSettings();
     restoreSettings();
 }
 }
 
 
-
-void NewFlight::on_buttonBox_accepted()
-{
-    on_newDoft_editingFinished();// - activate slots in case user has been active in last input before clicking submit
-    on_newTonb_editingFinished();
-    on_newTofb_editingFinished();
-    on_newDept_editingFinished();
-    on_newDest_editingFinished();
-    on_newAcft_editingFinished();
-    on_newPic_editingFinished();
-
-        QVector<QString> flight;
-        flight = collectInput();
-        if(verifyInput())
-        {
-            dbFlight::commitFlight(flight);
-            qDebug() << flight << "Has been commited.";
-            QMessageBox msgBox(this);
-            msgBox.setText("Flight has been commited.");
-            msgBox.exec();
-        }else
-        {
-            qDebug() << "Invalid Input. No entry has been made in the database.";
-            dbFlight::commitToScratchpad(flight);
-            QMessageBox msgBox(this);
-            msgBox.setText("Invalid entries detected. Please check your input.");
-            msgBox.exec();
-            NewFlight nf(this);
-            nf.exec();
-        }
-}
-
-void NewFlight::on_buttonBox_rejected()
-{
-    qDebug() << "NewFlight: Rejected\n";
-}
-
-
 void NewFlight::on_ApproachComboBox_currentTextChanged(const QString &arg1)
 void NewFlight::on_ApproachComboBox_currentTextChanged(const QString &arg1)
 {
 {
     if(arg1 == "ILS CAT III"){
     if(arg1 == "ILS CAT III"){
@@ -959,3 +930,44 @@ void NewFlight::on_simTimeLineEdit_editingFinished()
         ui->simTimeLineEdit->setStyleSheet("");
         ui->simTimeLineEdit->setStyleSheet("");
     }
     }
 }
 }
+
+
+/*
+ * Control Buttons
+ */
+
+void NewFlight::on_buttonBox_accepted()
+{
+    on_newDoft_editingFinished();// - activate slots in case user has been active in last input before clicking submit
+    on_newTonb_editingFinished();
+    on_newTofb_editingFinished();
+    on_newDept_editingFinished();
+    on_newDest_editingFinished();
+    on_newAcft_editingFinished();
+    on_newPic_editingFinished();
+
+        QVector<QString> flight;
+        flight = collectInput();
+        if(verifyInput())
+        {
+            dbFlight::commitFlight(flight);
+            qDebug() << flight << "Has been commited.";
+            QMessageBox msgBox(this);
+            msgBox.setText("Flight has been commited.");
+            msgBox.exec();
+        }else
+        {
+            qDebug() << "Invalid Input. No entry has been made in the database.";
+            dbFlight::commitToScratchpad(flight);
+            QMessageBox msgBox(this);
+            msgBox.setText("Invalid entries detected. Please check your input.");
+            msgBox.exec();
+            NewFlight nf(this);
+            nf.exec();
+        }
+}
+
+void NewFlight::on_buttonBox_rejected()
+{
+    qDebug() << "NewFlight: Rejected\n";
+}

+ 2 - 0
newflight.h

@@ -142,6 +142,8 @@ private slots:
 
 
     void on_thirdPilotLineEdit_editingFinished();
     void on_thirdPilotLineEdit_editingFinished();
 
 
+    void on_FlightNumberLineEdit_editingFinished();
+
 private:
 private:
     Ui::NewFlight *ui;
     Ui::NewFlight *ui;
 };
 };

+ 26 - 0
settingswidget.cpp

@@ -2,6 +2,8 @@
 #include "ui_settingswidget.h"
 #include "ui_settingswidget.h"
 #include "dbman.cpp"
 #include "dbman.cpp"
 #include <QButtonGroup>
 #include <QButtonGroup>
+#include <QRegExp>
+#include <QValidator>
 #include <QDebug>
 #include <QDebug>
 
 
 
 
@@ -12,6 +14,9 @@ settingsWidget::settingsWidget(QWidget *parent) :
 {
 {
     ui->setupUi(this);
     ui->setupUi(this);
 
 
+    /*
+     * General Tab
+     */
     auto *themeGroup = new QButtonGroup;
     auto *themeGroup = new QButtonGroup;
     themeGroup->addButton(ui->systemThemeCheckBox);
     themeGroup->addButton(ui->systemThemeCheckBox);
     themeGroup->addButton(ui->lightThemeCheckBox);
     themeGroup->addButton(ui->lightThemeCheckBox);
@@ -30,9 +35,30 @@ settingsWidget::settingsWidget(QWidget *parent) :
         qDebug() << "Dark Theme";
         qDebug() << "Dark Theme";
         ui->darkThemeCheckBox->setChecked(true);
         ui->darkThemeCheckBox->setChecked(true);
     }
     }
+    /*
+     * Flight Logging Tab
+     */
+    QString storedPrefix = dbSettings::retreiveSetting("50");
+    if (storedPrefix.length() != 0){
+        ui->flightNumberPrefixLineEdit->setText(storedPrefix);
+    }
+
+    QRegExp flightNumberPrefix_rx("[a-zA-Z]?[a-zA-Z]?[a-zA-Z]?[a-zA-Z]"); // allow max 4 letters (upper and lower)
+    QValidator *flightNumberPrefixValidator = new QRegExpValidator(flightNumberPrefix_rx, this);
+    ui->flightNumberPrefixLineEdit->setValidator(flightNumberPrefixValidator);
+
 }
 }
 
 
 settingsWidget::~settingsWidget()
 settingsWidget::~settingsWidget()
 {
 {
     delete ui;
     delete ui;
 }
 }
+
+/*
+ * General Tab
+ */
+
+void settingsWidget::on_flightNumberPrefixLineEdit_textEdited(const QString &arg1)
+{
+    dbSettings::storeSetting(50, arg1);
+}

+ 3 - 0
settingswidget.h

@@ -16,6 +16,9 @@ public:
     explicit settingsWidget(QWidget *parent = nullptr);
     explicit settingsWidget(QWidget *parent = nullptr);
     ~settingsWidget();
     ~settingsWidget();
 
 
+private slots:
+    void on_flightNumberPrefixLineEdit_textEdited(const QString &arg1);
+
 private:
 private:
     Ui::settingsWidget *ui;
     Ui::settingsWidget *ui;
 };
 };

+ 29 - 3
settingswidget.ui

@@ -17,7 +17,7 @@
    <item row="0" column="0">
    <item row="0" column="0">
     <widget class="QTabWidget" name="tabWidget">
     <widget class="QTabWidget" name="tabWidget">
      <property name="currentIndex">
      <property name="currentIndex">
-      <number>0</number>
+      <number>1</number>
      </property>
      </property>
      <widget class="QWidget" name="generalTab">
      <widget class="QWidget" name="generalTab">
       <attribute name="title">
       <attribute name="title">
@@ -54,10 +54,36 @@
        </item>
        </item>
       </layout>
       </layout>
      </widget>
      </widget>
-     <widget class="QWidget" name="tab_2">
+     <widget class="QWidget" name="flightLoggingTab">
       <attribute name="title">
       <attribute name="title">
-       <string>Tab 2</string>
+       <string>Flight Logging</string>
       </attribute>
       </attribute>
+      <widget class="QLabel" name="flightNumberPrefixLabel">
+       <property name="geometry">
+        <rect>
+         <x>10</x>
+         <y>20</y>
+         <width>161</width>
+         <height>19</height>
+        </rect>
+       </property>
+       <property name="text">
+        <string>Flight Number Prefix</string>
+       </property>
+      </widget>
+      <widget class="QLineEdit" name="flightNumberPrefixLineEdit">
+       <property name="geometry">
+        <rect>
+         <x>200</x>
+         <y>20</y>
+         <width>113</width>
+         <height>27</height>
+        </rect>
+       </property>
+       <property name="placeholderText">
+        <string>optional</string>
+       </property>
+      </widget>
      </widget>
      </widget>
     </widget>
     </widget>
    </item>
    </item>