2
0
Эх сурвалжийг харах

implemented constructors for aircraft, pilot, flight class

fiffty-50 4 жил өмнө
parent
commit
bb38899150

+ 29 - 0
src/classes/aircraft.cpp

@@ -22,6 +22,11 @@
     qDebug() << __PRETTY_FUNCTION__ << "\t" << expr
 
 
+Aircraft::Aircraft()
+{
+
+}
+
 Aircraft::Aircraft(int tail_id)
 {
     //retreive database layout
@@ -60,3 +65,27 @@ Aircraft::Aircraft(int tail_id)
         }
     }
 }
+
+Aircraft::Aircraft(QMap<QString, QString> newData)
+{
+    QString table = "tails";
+
+    //retreive database layout
+    const auto dbContent = DbInfo();
+    columns = dbContent.format.value(table);
+    //Check validity of newData
+    QVector<QString> badkeys;
+    QMap<QString, QString>::iterator i;
+    for (i = newData.begin(); i != newData.end(); ++i) {
+        if (!columns.contains(i.key())) {
+            DEB(i.key() << "Not in column list for table " << table << ". Discarding.");
+            badkeys << i.key();
+        }
+    }
+    for (const auto &var : badkeys) {
+        newData.remove(var);
+    }
+    data = newData;
+    position.first = table;
+    position.second = 0;
+}

+ 3 - 1
src/classes/aircraft.h

@@ -26,9 +26,11 @@
  */
 class Aircraft : public Entry
 {
-    using Entry::Entry;
+//    using Entry::Entry;
 public:
+    Aircraft();
     Aircraft(int acft_id);
+    Aircraft(QMap<QString, QString> newData);
 };
 
 #endif // AIRCRAFT_H

+ 32 - 0
src/classes/flight.cpp

@@ -21,12 +21,19 @@
     qDebug() << __PRETTY_FUNCTION__ << "\t" << expr
 
 
+Flight::Flight()
+{
+
+}
+
 Flight::Flight(int flight_id)
 {
     //retreive database layout
     const auto dbContent = DbInfo();
+
     auto table = QLatin1String("flights");
 
+
     //Check database for row id
     QString statement = "SELECT COUNT(*) FROM " + table + " WHERE _rowid_=" + QString::number(flight_id);
     QSqlQuery q(statement);
@@ -59,3 +66,28 @@ Flight::Flight(int flight_id)
         }
     }
 }
+
+Flight::Flight(QMap<QString, QString> newData)
+{
+    QString table = "flights";
+
+    //retreive database layout
+    const auto dbContent = DbInfo();
+    columns = dbContent.format.value(table);
+
+    //Check validity of newData
+    QVector<QString> badkeys;
+    QMap<QString, QString>::iterator i;
+    for (i = newData.begin(); i != newData.end(); ++i) {
+        if (!columns.contains(i.key())) {
+            DEB(i.key() << "Not in column list for table " << table << ". Discarding.");
+            badkeys << i.key();
+        }
+    }
+    for (const auto &var : badkeys) {
+        newData.remove(var);
+    }
+    data = newData;
+    position.first = table;
+    position.second = 0;
+}

+ 3 - 1
src/classes/flight.h

@@ -26,9 +26,11 @@
 
 class Flight : public Entry
 {
-    using Entry::Entry;
+//    using Entry::Entry;
 public:
+    Flight();
     Flight(int flight_id);
+    Flight(QMap<QString, QString> newData);
 };
 
 #endif // FLIGHT_H

+ 30 - 0
src/classes/pilot.cpp

@@ -23,6 +23,11 @@
 
 
 
+Pilot::Pilot()
+{
+
+}
+
 Pilot::Pilot(int pilot_id)
 {
     //retreive database layout
@@ -61,3 +66,28 @@ Pilot::Pilot(int pilot_id)
         }
     }
 }
+
+Pilot::Pilot(QMap<QString, QString> newData)
+{
+    QString table = "pilots";
+
+    //retreive database layout
+    const auto dbContent = DbInfo();
+    columns = dbContent.format.value(table);
+
+    //Check validity of newData
+    QVector<QString> badkeys;
+    QMap<QString, QString>::iterator i;
+    for (i = newData.begin(); i != newData.end(); ++i) {
+        if (!columns.contains(i.key())) {
+            DEB(i.key() << "Not in column list for table " << table << ". Discarding.");
+            badkeys << i.key();
+        }
+    }
+    for (const auto &var : badkeys) {
+        newData.remove(var);
+    }
+    data = newData;
+    position.first = table;
+    position.second = 0;
+}

+ 3 - 1
src/classes/pilot.h

@@ -22,9 +22,11 @@
 
 class Pilot : public Entry
 {
-    using Entry::Entry;
+//    using Entry::Entry;
 public:
+    Pilot();
     Pilot(int pilot_id);
+    Pilot(QMap<QString, QString> newData);
 };
 
 #endif // PILOT_H

+ 1 - 1
src/gui/dialogues/newpilot.cpp

@@ -131,7 +131,7 @@ void NewPilot::submitForm()
     //create db object
     switch (role) {
     case Db::createNew: {
-        auto newEntry = Pilot("pilots", newData);;
+        auto newEntry = Pilot(newData);;
         DEB("New Object: ");
         newEntry.commit();
         break;

+ 2 - 2
src/gui/dialogues/newtail.cpp

@@ -224,7 +224,7 @@ void NewTail::submitForm(Db::editRole edRole)
     //create db object
     switch (edRole) {
     case Db::createNew: {
-        auto newEntry = Aircraft("tails", newData);;
+        auto newEntry = Aircraft(newData);;
         newEntry.commit();
         break;
     }
@@ -245,7 +245,7 @@ void NewTail::on_searchLineEdit_textChanged(const QString &arg1)
 
         DEB("Template Selected. aircraft_id is: " << idMap.value(arg1));
         //call autofiller for dialog
-        formFiller(Aircraft("aircraft", idMap.value(arg1)));
+        formFiller(Aircraft(idMap.value(arg1)));
         ui->searchLineEdit->setStyleSheet("border: 1px solid green");
     } else {
         //for example, editing finished without selecting a result from Qcompleter

+ 2 - 2
src/gui/widgets/homewidget.cpp

@@ -44,8 +44,8 @@ void HomeWidget::on_pushButton_clicked()
     //    Calc::updateAutoTimes(i);
     //}
     DEB(Aircraft(14));
-    DEB(Flight(23));
-    DEB(Pilot(2));
+    //DEB(Flight(23));
+    //DEB(Pilot(2));
 
 }