Browse Source

added simplified constructors for flight/pilot/aircraft classes (int id)

fiffty-50 4 years ago
parent
commit
2845a4617b
4 changed files with 54 additions and 6 deletions
  1. 6 4
      src/classes/aircraft.cpp
  2. 43 0
      src/classes/pilot.cpp
  3. 2 0
      src/classes/pilot.h
  4. 3 2
      src/gui/widgets/homewidget.cpp

+ 6 - 4
src/classes/aircraft.cpp

@@ -26,8 +26,10 @@ Aircraft::Aircraft(int tail_id)
 {
     //retreive database layout
     const auto dbContent = DbInfo();
+    auto table = QLatin1String("tails");
+
     //Check database for row id
-    QString statement = "SELECT COUNT(*) FROM tails WHERE _rowid_=" + QString::number(tail_id);
+    QString statement = "SELECT COUNT(*) FROM " + table + " WHERE _rowid_=" + QString::number(tail_id);
     QSqlQuery q(statement);
     q.next();
     int rows = q.value(0).toInt();
@@ -36,15 +38,15 @@ Aircraft::Aircraft(int tail_id)
         position.second = 0;
     } else {
         DEB("Retreiving data for row id: " << tail_id);
-        QString statement = "SELECT * FROM tails WHERE _rowid_=" + QString::number(tail_id);
+        QString statement = "SELECT * FROM " + table + " WHERE _rowid_=" + QString::number(tail_id);
         DEB("Executing SQL...");
         DEB(statement);
 
         QSqlQuery q(statement);
         q.exec();
         q.next();
-        for (int i = 0; i < dbContent.format.value("tails").length(); i++) {
-            data.insert(dbContent.format.value("tails")[i], q.value(i).toString());
+        for (int i = 0; i < dbContent.format.value(table).length(); i++) {
+            data.insert(dbContent.format.value(table)[i], q.value(i).toString());
         }
 
         QString error = q.lastError().text();

+ 43 - 0
src/classes/pilot.cpp

@@ -17,4 +17,47 @@
  */
 #include "pilot.h"
 
+// Debug Makro
+#define DEB(expr) \
+    qDebug() << __PRETTY_FUNCTION__ << "\t" << expr
 
+
+
+Pilot::Pilot(int pilot_id)
+{
+    //retreive database layout
+    const auto dbContent = DbInfo();
+    auto table = QLatin1String("pilots");
+
+    //Check database for row id
+    QString statement = "SELECT COUNT(*) FROM " + table + " WHERE _rowid_=" + QString::number(pilot_id);
+    QSqlQuery q(statement);
+    q.next();
+    int rows = q.value(0).toInt();
+    if (rows == 0) {
+        DEB("No Entry found for row id: " << pilot_id );
+        position.second = 0;
+    } else {
+        DEB("Retreiving data for row id: " << pilot_id);
+        QString statement = "SELECT * FROM " + table + " WHERE _rowid_=" + QString::number(pilot_id);
+        DEB("Executing SQL...");
+        DEB(statement);
+
+        QSqlQuery q(statement);
+        q.exec();
+        q.next();
+        for (int i = 0; i < dbContent.format.value(table).length(); i++) {
+            data.insert(dbContent.format.value(table)[i], q.value(i).toString());
+        }
+
+        QString error = q.lastError().text();
+        if (error.length() > 2) {
+            DEB("Error: " << q.lastError().text());
+            position.second = 0;
+            position.first = "invalid";
+        } else {
+            position.second = pilot_id;
+            position.first = "pilots";
+        }
+    }
+}

+ 2 - 0
src/classes/pilot.h

@@ -23,6 +23,8 @@
 class Pilot : public Entry
 {
     using Entry::Entry;
+public:
+    Pilot(int pilot_id);
 };
 
 #endif // PILOT_H

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

@@ -43,8 +43,9 @@ void HomeWidget::on_pushButton_clicked()
     //for (int i=1;i<25;i++) {
     //    Calc::updateAutoTimes(i);
     //}
-    DEB(Aircraft(1));
-    DEB(Flight(1));
+    DEB(Aircraft(14));
+    DEB(Flight(23));
+    DEB(Pilot(2));
 
 }