Browse Source

Initial draft or giving semantics to raw QStrings and ints.

George 4 years ago
parent
commit
a174f51f55
3 changed files with 47 additions and 21 deletions
  1. 12 10
      src/database/adatabase.cpp
  2. 21 4
      src/database/adatabase.h
  3. 14 7
      src/gui/dialogues/newflightdialog.h

+ 12 - 10
src/database/adatabase.cpp

@@ -496,7 +496,8 @@ const QStringList ADatabase::getCompletionList(ADatabaseTarget target)
     return completer_list;
 }
 
-const QMap<QString, int> ADatabase::getIdMap(ADatabaseTarget target)
+const
+QMap<ADatabase::QueryResult_qstr, ADatabase::QueryResult_i> ADatabase::getIdMap(ADatabaseTarget target)
 {
     QString statement;
 
@@ -523,24 +524,25 @@ const QMap<QString, int> ADatabase::getIdMap(ADatabaseTarget target)
         break;
     default:
         DEB << "Not a valid completer target for this function.";
-        return QMap<QString, int>();
+        return {};  // [G]: Cpp will implicitly create the default map.
+                    // if this is too vague change to QMap<...>()
     }
 
-    auto id_map = QMap<QString, int>();
     auto query = QSqlQuery(statement);
     if (!query.isActive()) {
         DEB << "No result found. Check Query and Error.";
         DEB << "Query: " << statement;
         DEB << "Error: " << query.lastError().text();
         lastError = query.lastError().text();
-        return QMap<QString, int>();
-    } else {
-        QVector<QString> query_result;
-        while (query.next()) {
-            id_map.insert(query.value(1).toString(), query.value(0).toInt());
-        }
-        return id_map;
+        return {};
+    }
+
+    // QVector<QString> query_result;  // [G]: unused
+    auto id_map = QMap<QueryResult_qstr, QueryResult_i>();
+    while (query.next()) {
+        id_map.insert(query.value(1).toString(), query.value(0).toInt());
     }
+    return id_map;
 }
 
 int ADatabase::getLastEntry(ADatabaseTarget target)

+ 21 - 4
src/database/adatabase.h

@@ -88,6 +88,23 @@ public:
  */
 class ADatabase : public QObject {
     Q_OBJECT
+public:
+
+    using QueryResult_qstr = QString;
+    using QueryResult_i = int;
+
+    using PilotName_qstr = QueryResult_qstr;
+    using PilotRowId_i = QueryResult_i;
+
+    using TailRgstr_qstr = QueryResult_qstr;
+    using TailId_i = QueryResult_i;
+
+    using ArprtICAO_qstr = QueryResult_qstr;
+    using ArprtIATA_qstr = QueryResult_qstr;
+    using ArprtName_qstr = QueryResult_qstr;
+    using ArprtId_i = QueryResult_i;
+
+
 private:
     ADatabase();
 
@@ -219,18 +236,18 @@ public:
      * \brief getCompletionList returns a QStringList of values for a
      * QCompleter based on database values
      */
-    const QStringList getCompletionList(ADatabaseTarget);
+    const QStringList getCompletionList(ADatabaseTarget target);
 
     /*!
-     * \brief returns a QMap<QString, int> of a human-readable database value and
+     * \brief returns a QMap<QueryResult_qstr, QueryResult_i> of a human-readable database value and
      * its row id. Used in the Dialogs to map user input to unique database entries.
      */
-    const QMap<QString, int> getIdMap(ADatabaseTarget);
+    const QMap<QueryResult_qstr, QueryResult_i> getIdMap(ADatabaseTarget target);
 
     /*!
      * \brief returns the ROWID for the newest entry in the respective database.
      */
-    int getLastEntry(ADatabaseTarget);
+    int getLastEntry(ADatabaseTarget target);
 
     /*!
      * \brief returns a list of ROWID's in the flights table for which foreign key constraints

+ 14 - 7
src/gui/dialogues/newflightdialog.h

@@ -35,7 +35,7 @@
 #include "src/classes/aflightentry.h"
 #include "src/classes/apilotentry.h"
 #include "src/classes/atailentry.h"
-
+#include "src/database/adatabase.h"
 
 namespace Ui {
 class NewFlight;
@@ -44,7 +44,14 @@ class NewFlight;
 class NewFlightDialog : public QDialog
 {
     Q_OBJECT
-
+    using PilotName_qstr = ADatabase::PilotName_qstr;
+    using PilotRowId_i = ADatabase::PilotRowId_i;
+    using TailRgstr_qstr = ADatabase::TailRgstr_qstr;
+    using TailId_i = ADatabase::TailId_i;
+    using ArprtICAO_qstr = ADatabase::ArprtICAO_qstr;
+    using ArprtIATA_qstr = ADatabase::ArprtIATA_qstr;
+    using ArprtName_qstr = ADatabase::ArprtName_qstr;
+    using ArprtId_i = ADatabase::ArprtId_i;
 public:
     /*!
      * \brief NewFlightDialog create a new flight and add it to the logbook.
@@ -129,11 +136,11 @@ private:
     /*!
      * \brief Used to map user input to database keys
      */
-    QMap<QString, int> pilotsIdMap;
-    QMap<QString, int> tailsIdMap;
-    QMap<QString, int> airportIcaoIdMap;
-    QMap<QString, int> airportIataIdMap;
-    QMap<QString, int> airportNameIdMap;
+    QMap<PilotName_qstr, PilotRowId_i> pilotsIdMap;
+    QMap<TailRgstr_qstr, TailId_i> tailsIdMap;
+    QMap<ArprtICAO_qstr, ArprtId_i> airportIcaoIdMap;
+    QMap<ArprtIATA_qstr, ArprtId_i> airportIataIdMap;
+    QMap<ArprtName_qstr, ArprtId_i> airportNameIdMap;
 
     Opl::Time::FlightTimeFormat flightTimeFormat;