Browse Source

Merge pull request #61 from fiffty-50/develop-newflightdialog-semantic-types

Initial draft or giving semantics to raw QStrings and ints.
Felix Turowsky 4 years ago
parent
commit
dc7ebf5ede

+ 1 - 1
openPilotLog.pro

@@ -63,7 +63,7 @@ HEADERS += \
     src/classes/atailentry.h \
     src/database/adatabase.h \
     src/database/adatabasesetup.h \
-    src/database/declarations.h \
+    src/database/adatabasetypes.h \
     src/functions/acalc.h \
     src/functions/adatetime.h \
     src/functions/areadcsv.h \

+ 4 - 4
src/classes/aaircraftentry.cpp

@@ -19,13 +19,13 @@
 #include "src/oplconstants.h"
 
 AAircraftEntry::AAircraftEntry()
-    : AEntry::AEntry(DEFAULT_AIRCRAFT_POSITION)
+    : AEntry::AEntry(Opl::Db::DEFAULT_AIRCRAFT_POSITION)
 {}
 
-AAircraftEntry::AAircraftEntry(RowId row_id)
+AAircraftEntry::AAircraftEntry(RowId_T row_id)
     : AEntry::AEntry(DataPosition(Opl::Db::TABLE_AIRCRAFT, row_id))
 {}
 
-AAircraftEntry::AAircraftEntry(RowData table_data)
-    : AEntry::AEntry(DEFAULT_AIRCRAFT_POSITION, table_data)
+AAircraftEntry::AAircraftEntry(RowData_T table_data)
+    : AEntry::AEntry(Opl::Db::DEFAULT_AIRCRAFT_POSITION, table_data)
 {}

+ 3 - 3
src/classes/aaircraftentry.h

@@ -19,13 +19,13 @@
 #define AAIRCRAFTENTRY_H
 
 #include "src/classes/aentry.h"
-#include "src/database/declarations.h"
+#include "src/database/adatabasetypes.h"
 
 struct AAircraftEntry : public AEntry {
 public:
     AAircraftEntry();
-    AAircraftEntry(RowId row_id);
-    AAircraftEntry(RowData table_data);
+    AAircraftEntry(RowId_T row_id);
+    AAircraftEntry(RowData_T table_data);
 
     AAircraftEntry(const AAircraftEntry& te) = default;
     AAircraftEntry& operator=(const AAircraftEntry& te) = default;

+ 4 - 4
src/classes/aentry.cpp

@@ -21,15 +21,15 @@ AEntry::AEntry(DataPosition position_)
     : position(position_)
 {}
 
-AEntry::AEntry(RowData table_data)
+AEntry::AEntry(RowData_T table_data)
     : tableData(table_data)
 {}
 
-AEntry::AEntry(DataPosition position_, RowData table_data)
+AEntry::AEntry(DataPosition position_, RowData_T table_data)
     : position(position_), tableData(table_data)
 {}
 
-void AEntry::setData(RowData table_data)
+void AEntry::setData(RowData_T table_data)
 {
     tableData = table_data;
 }
@@ -39,7 +39,7 @@ const DataPosition& AEntry::getPosition()
     return position;
 }
 
-const RowData& AEntry::getData()
+const RowData_T& AEntry::getData()
 {
     return tableData;
 }

+ 6 - 6
src/classes/aentry.h

@@ -24,7 +24,7 @@
 #include <QPair>
 #include <QVariant>
 
-#include "src/database/declarations.h"
+#include "src/database/adatabasetypes.h"
 
 // [G]: Define what data is public and what not. For objects such as
 // DataPosition which are consumable its no biggy. Are entries the same?
@@ -41,20 +41,20 @@ class AEntry {
 protected:
     DataPosition position;
 public:
-    RowData tableData;
+    RowData_T tableData;
 public:
     AEntry() = delete; // Demand specificity from default constructor
     AEntry(const AEntry&) = default;
     AEntry& operator=(const AEntry&) = default;
     AEntry(DataPosition position_);
-    AEntry(RowData table_data);
-    AEntry(DataPosition position_, RowData table_data);
+    AEntry(RowData_T table_data);
+    AEntry(DataPosition position_, RowData_T table_data);
 
-    void setData(RowData table_data);
+    void setData(RowData_T table_data);
     void setPosition(DataPosition position_);
 
     const DataPosition& getPosition();
-    const RowData& getData();
+    const RowData_T& getData();
 
 };
 

+ 4 - 4
src/classes/aflightentry.cpp

@@ -22,15 +22,15 @@
 #include "src/classes/asettings.h"
 
 AFlightEntry::AFlightEntry()
-    : AEntry::AEntry(DEFAULT_FLIGHT_POSITION)
+    : AEntry::AEntry(Opl::Db::DEFAULT_FLIGHT_POSITION)
 {}
 
-AFlightEntry::AFlightEntry(RowId row_id)
+AFlightEntry::AFlightEntry(RowId_T row_id)
     : AEntry::AEntry(DataPosition(Opl::Db::TABLE_FLIGHTS, row_id))
 {}
 
-AFlightEntry::AFlightEntry(RowData table_data)
-    : AEntry::AEntry(DEFAULT_FLIGHT_POSITION, table_data)
+AFlightEntry::AFlightEntry(RowData_T table_data)
+    : AEntry::AEntry(Opl::Db::DEFAULT_FLIGHT_POSITION, table_data)
 {}
 
 const QString AFlightEntry::summary()

+ 2 - 2
src/classes/aflightentry.h

@@ -23,8 +23,8 @@
 class AFlightEntry : public AEntry {
 public:
     AFlightEntry();
-    AFlightEntry(RowId row_id);
-    AFlightEntry(RowData table_data);
+    AFlightEntry(RowId_T row_id);
+    AFlightEntry(RowData_T table_data);
 
     AFlightEntry(const AFlightEntry& pe) = default;
     AFlightEntry& operator=(const AFlightEntry& pe) = default;

+ 4 - 4
src/classes/apilotentry.cpp

@@ -19,15 +19,15 @@
 #include "src/oplconstants.h"
 
 APilotEntry::APilotEntry()
-    : AEntry::AEntry(DEFAULT_PILOT_POSITION)
+    : AEntry::AEntry(Opl::Db::DEFAULT_PILOT_POSITION)
 {}
 
-APilotEntry::APilotEntry(RowId row_id)
+APilotEntry::APilotEntry(RowId_T row_id)
     : AEntry::AEntry(DataPosition(Opl::Db::TABLE_PILOTS, row_id))
 {}
 
-APilotEntry::APilotEntry(RowData table_data)
-    : AEntry::AEntry(DEFAULT_PILOT_POSITION, table_data)
+APilotEntry::APilotEntry(RowData_T table_data)
+    : AEntry::AEntry(Opl::Db::DEFAULT_PILOT_POSITION, table_data)
 {}
 
 const QString APilotEntry::name()

+ 3 - 3
src/classes/apilotentry.h

@@ -19,13 +19,13 @@
 #define APILOTENTRY_H
 
 #include "src/classes/aentry.h"
-#include "src/database/declarations.h"
+#include "src/database/adatabasetypes.h"
 
 struct APilotEntry : public AEntry {
 public:
     APilotEntry();
-    APilotEntry(RowId row_id);
-    APilotEntry(RowData table_data);
+    APilotEntry(RowId_T row_id);
+    APilotEntry(RowData_T table_data);
 
     APilotEntry(const APilotEntry& pe) = default;
     APilotEntry& operator=(const APilotEntry& pe) = default;

+ 4 - 4
src/classes/atailentry.cpp

@@ -19,15 +19,15 @@
 #include "src/oplconstants.h"
 
 ATailEntry::ATailEntry()
-    : AEntry::AEntry(DEFAULT_TAIL_POSITION)
+    : AEntry::AEntry(Opl::Db::DEFAULT_TAIL_POSITION)
 {}
 
-ATailEntry::ATailEntry(RowId row_id)
+ATailEntry::ATailEntry(RowId_T row_id)
     : AEntry::AEntry(DataPosition(Opl::Db::TABLE_TAILS, row_id))
 {}
 
-ATailEntry::ATailEntry(RowData table_data)
-    : AEntry::AEntry(DEFAULT_TAIL_POSITION, table_data)
+ATailEntry::ATailEntry(RowData_T table_data)
+    : AEntry::AEntry(Opl::Db::DEFAULT_TAIL_POSITION, table_data)
 {}
 
 const QString ATailEntry::registration()

+ 3 - 3
src/classes/atailentry.h

@@ -19,15 +19,15 @@
 #define ATAILENTRY_H
 
 #include "src/classes/aentry.h"
-#include "src/database/declarations.h"
+#include "src/database/adatabasetypes.h"
 
 struct ATailEntry : public AEntry {
 public:
     ATailEntry();
     ATailEntry(const ATailEntry& te) = default;
     ATailEntry& operator=(const ATailEntry& te) = default;
-    ATailEntry(RowId row_id);
-    ATailEntry(RowData table_data);
+    ATailEntry(RowId_T row_id);
+    ATailEntry(RowData_T table_data);
 
     const QString registration();
 

+ 28 - 26
src/database/adatabase.cpp

@@ -35,7 +35,7 @@ ADatabase* ADatabase::self = nullptr;
 /*!
  * \brief Return the names of a given table in the database.
  */
-ColumnNames ADatabase::getTableColumns(TableName table_name) const
+ColumnNames_T ADatabase::getTableColumns(TableName_T table_name) const
 {
     return tableColumns.value(table_name);
 }
@@ -43,7 +43,7 @@ ColumnNames ADatabase::getTableColumns(TableName table_name) const
 /*!
  * \brief Return the names of all tables in the database
  */
-TableNames ADatabase::getTableNames() const
+TableNames_T ADatabase::getTableNames() const
 {
     return tableNames;
 }
@@ -59,7 +59,7 @@ void ADatabase::updateLayout()
 
     tableColumns.clear();
     for (const auto &table_name : tableNames) {
-        ColumnNames table_columns;
+        ColumnNames_T table_columns;
         QSqlRecord fields = db.record(table_name);
         for (int i = 0; i < fields.count(); i++) {
             table_columns.append(fields.field(i).name());
@@ -356,12 +356,12 @@ bool ADatabase::insert(AEntry new_entry)
 
 }
 
-RowData ADatabase::getEntryData(DataPosition data_position)
+RowData_T ADatabase::getEntryData(DataPosition data_position)
 {
     // check table exists
     if (!getTableNames().contains(data_position.tableName)) {
         DEB << data_position.tableName << " not a table in the database. Unable to retreive Entry data.";
-        return RowData();
+        return RowData_T();
     }
 
     //Check Database for rowId
@@ -377,14 +377,14 @@ RowData ADatabase::getEntryData(DataPosition data_position)
         DEB << "SQL error: " << check_query.lastError().text();
         DEB << "Statement: " << statement;
         lastError = check_query.lastError().text();
-        return RowData();
+        return RowData_T();
     }
 
     check_query.next();
     if (check_query.value(0).toInt() == 0) {
         DEB << "No Entry found for row id: " << data_position.rowId;
         lastError = ADatabaseError("Database entry not found.");
-        return RowData();
+        return RowData_T();
     }
 
     // Retreive TableData
@@ -401,11 +401,11 @@ RowData ADatabase::getEntryData(DataPosition data_position)
         DEB << "SQL error: " << select_query.lastError().text();
         DEB << "Statement: " << statement;
         lastError = select_query.lastError().text();
-        return RowData();
+        return RowData_T();
     }
 
     select_query.next();
-    RowData entry_data;
+    RowData_T entry_data;
 
     for (const auto &column : getTableColumns(data_position.tableName)) {
         entry_data.insert(column, select_query.value(column));
@@ -420,28 +420,28 @@ AEntry ADatabase::getEntry(DataPosition data_position)
     return entry;
 }
 
-APilotEntry ADatabase::getPilotEntry(RowId row_id)
+APilotEntry ADatabase::getPilotEntry(RowId_T row_id)
 {
     APilotEntry pilot_entry(row_id);
     pilot_entry.setData(getEntryData(pilot_entry.getPosition()));
     return pilot_entry;
 }
 
-ATailEntry ADatabase::getTailEntry(RowId row_id)
+ATailEntry ADatabase::getTailEntry(RowId_T row_id)
 {
     ATailEntry tail_entry(row_id);
     tail_entry.setData(getEntryData(tail_entry.getPosition()));
     return tail_entry;
 }
 
-AAircraftEntry ADatabase::getAircraftEntry(RowId row_id)
+AAircraftEntry ADatabase::getAircraftEntry(RowId_T row_id)
 {
     AAircraftEntry aircraft_entry(row_id);
     aircraft_entry.setData(getEntryData(aircraft_entry.getPosition()));
     return aircraft_entry;
 }
 
-AFlightEntry ADatabase::getFlightEntry(RowId row_id)
+AFlightEntry ADatabase::getFlightEntry(RowId_T row_id)
 {
     AFlightEntry flight_entry(row_id);
     flight_entry.setData(getEntryData(flight_entry.getPosition()));
@@ -496,7 +496,8 @@ const QStringList ADatabase::getCompletionList(ADatabaseTarget target)
     return completer_list;
 }
 
-const QMap<QString, int> ADatabase::getIdMap(ADatabaseTarget target)
+const
+QMap<QString, RowId_T> 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<QString, RowId_T>();
+    while (query.next()) {
+        id_map.insert(query.value(1).toString(), query.value(0).toInt());
     }
+    return id_map;
 }
 
 int ADatabase::getLastEntry(ADatabaseTarget target)
@@ -571,7 +573,7 @@ int ADatabase::getLastEntry(ADatabaseTarget target)
     }
 }
 
-QList<int> ADatabase::getForeignKeyConstraints(int foreign_row_id, ADatabaseTarget target)
+QList<RowId_T> ADatabase::getForeignKeyConstraints(RowId_T foreign_row_id, ADatabaseTarget target)
 {
     QString statement = "SELECT ROWID FROM flights WHERE ";
 
@@ -608,12 +610,12 @@ QList<int> ADatabase::getForeignKeyConstraints(int foreign_row_id, ADatabaseTarg
     return row_ids;
 }
 
-APilotEntry ADatabase::resolveForeignPilot(int foreign_key)
+APilotEntry ADatabase::resolveForeignPilot(ForeignKey_T foreign_key)
 {
     return aDB->getPilotEntry(foreign_key);
 }
 
-ATailEntry ADatabase::resolveForeignTail(int foreign_key)
+ATailEntry ADatabase::resolveForeignTail(ForeignKey_T foreign_key)
 {
     return aDB->getTailEntry(foreign_key);
 }

+ 20 - 17
src/database/adatabase.h

@@ -31,7 +31,7 @@
 #include <QSqlRecord>
 #include <QSqlField>
 
-#include "src/database/declarations.h"
+#include "src/database/adatabasetypes.h"
 #include "src/classes/aentry.h"
 #include "src/classes/apilotentry.h"
 #include "src/classes/atailentry.h"
@@ -88,19 +88,21 @@ public:
  */
 class ADatabase : public QObject {
     Q_OBJECT
+public:
+
 private:
     ADatabase();
 
     static ADatabase* self;
-    TableNames tableNames;
-    TableColumns tableColumns;
+    TableNames_T tableNames;
+    TableColumns_T tableColumns;
 public:
     // Ensure DB is not copiable or assignable
     ADatabase(const ADatabase&) = delete;
     void operator=(const ADatabase&) = delete;
     static ADatabase* instance();
-    TableNames getTableNames() const;
-    ColumnNames getTableColumns(TableName table_name) const;
+    TableNames_T getTableNames() const;
+    ColumnNames_T getTableColumns(TableName_T table_name) const;
     void updateLayout();
     const QString sqliteVersion();
 
@@ -168,7 +170,7 @@ public:
     /*!
      * \brief retreive entry data from the database to create an entry object
      */
-    RowData getEntryData(DataPosition data_position);
+    RowData_T getEntryData(DataPosition data_position);
 
     /*!
      * \brief retreive an Entry from the database.
@@ -183,7 +185,7 @@ public:
      * instead of an Entry. It allows for easy access to a pilot entry
      * with only the RowId required as input.
      */
-    APilotEntry getPilotEntry(RowId row_id);
+    APilotEntry getPilotEntry(RowId_T row_id);
 
     /*!
      * \brief retreives a TailEntry from the database.
@@ -193,7 +195,7 @@ public:
      * instead of an Entry. It allows for easy access to a tail entry
      * with only the RowId required as input.
      */
-    ATailEntry getTailEntry(RowId row_id);
+    ATailEntry getTailEntry(RowId_T row_id);
 
     /*!
      * \brief retreives a TailEntry from the database.
@@ -203,7 +205,7 @@ public:
      * instead of an AEntry. It allows for easy access to an aircraft entry
      * with only the RowId required as input.
      */
-    AAircraftEntry getAircraftEntry(RowId row_id);
+    AAircraftEntry getAircraftEntry(RowId_T row_id);
 
     /*!
      * \brief retreives a flight entry from the database.
@@ -213,42 +215,43 @@ public:
      * instead of an AEntry. It allows for easy access to a flight entry
      * with only the RowId required as input.
      */
-    AFlightEntry getFlightEntry(RowId row_id);
+    AFlightEntry getFlightEntry(RowId_T row_id);
 
     /*!
      * \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<QString, RowId_t> of a human-readable database value and
      * its row id. Used in the Dialogs to map user input to unique database entries.
+     * \todo What is this QString semantically? As i understand its a "QueryResult" QVariant cast to QString
      */
-    const QMap<QString, int> getIdMap(ADatabaseTarget);
+    const QMap<QString, RowId_T> 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
      * exist.
      */
-    QList<int> getForeignKeyConstraints(int foreign_row_id, ADatabaseTarget target);
+    QList<RowId_T> getForeignKeyConstraints(RowId_T foreign_row_id, ADatabaseTarget target);
 
     /*!
      * \brief Resolves the foreign key in a flight entry
      * \return The Pilot Entry referencted by the foreign key.
      */
-    APilotEntry resolveForeignPilot(int foreign_key);
+    APilotEntry resolveForeignPilot(ForeignKey_T foreign_key);
 
     /*!
      * \brief Resolves the foreign key in a flight entry
      * \return The Tail Entry referencted by the foreign key.
      */
-    ATailEntry resolveForeignTail(int foreign_key);
+    ATailEntry resolveForeignTail(ForeignKey_T foreign_key);
 
 
 

+ 24 - 27
src/database/declarations.h → src/database/adatabasetypes.h

@@ -19,34 +19,37 @@
 #define DECLARATIONS_H
 
 #include <QtCore>
-#include "src/oplconstants.h"
 #include "src/testing/adebug.h"
 
-/*!
- * \brief An alias for QString
- *
- * Very long description *with* **markdown?**
- * - - -
- * # Header
- */
-using ColName = QString;
-using ColData = QVariant;
-using TableName = QString;
-using RowId = int;
+/// \todo Short descriptions
+using RowId_T = int;
+using PilotName_T = QString;
+using PilotRowId_T = RowId_T;
+using TailRegistration_T = QString;
+using TailId_T = RowId_T;
+using AirportICAO_T = QString;
+using AirportIATA_T = QString;
+using AirportName_T = QString;
+using AirportId_T = RowId_T;
+using ColName_T = QString;
+using ColData_T = QVariant;
+using TableName_T = QString;
 
-using TableNames = QStringList;
-using RowData = QMap<ColName, ColData>;
-using ColumnData = QPair<ColName, ColData>;
-using ColumnNames = QStringList;
-using TableColumns = QMap<TableName, ColumnNames>;
+using TableNames_T = QStringList;
+using RowData_T = QMap<ColName_T, ColData_T>;
+using ColumnData_T = QPair<ColName_T, ColData_T>;
+using ColumnNames_T = QStringList;
+using TableColumns_T = QMap<TableName_T, ColumnNames_T>;
+
+using ForeignKey_T = RowId_T;
 
 struct DataPosition {
-    TableName tableName;
-    RowId rowId;
+    TableName_T tableName;
+    RowId_T rowId;
     DataPosition()
-        : tableName(TableName())
+        : tableName(TableName_T())
     {};
-    DataPosition(TableName table_name, RowId row_id)
+    DataPosition(TableName_T table_name, RowId_T row_id)
         : tableName(table_name), rowId(row_id)
     {};
 
@@ -59,10 +62,4 @@ struct DataPosition {
          )
 };
 
-// Default Positions
-static auto const DEFAULT_FLIGHT_POSITION   = DataPosition(Opl::Db::TABLE_FLIGHTS, 0);
-static auto const DEFAULT_PILOT_POSITION    = DataPosition(Opl::Db::TABLE_PILOTS, 0);
-static auto const DEFAULT_TAIL_POSITION     = DataPosition(Opl::Db::TABLE_TAILS, 0);
-static auto const DEFAULT_AIRCRAFT_POSITION = DataPosition(Opl::Db::TABLE_AIRCRAFT, 0);
-
 #endif // DECLARATIONS_H

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

@@ -525,9 +525,9 @@ void NewFlightDialog::fillDeductibleData()
  * no input validation is done in this step and input data is assumed to be valid.
  * \return
  */
-RowData NewFlightDialog::collectInput()
+RowData_T NewFlightDialog::collectInput()
 {
-    RowData newData;
+    RowData_T newData;
     DEB << "Collecting Input...";
     //Block Time
     const auto tofb = ATime::fromString(ui->tofbTimeLineEdit->text());

+ 7 - 8
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,6 @@ class NewFlight;
 class NewFlightDialog : public QDialog
 {
     Q_OBJECT
-
 public:
     /*!
      * \brief NewFlightDialog create a new flight and add it to the logbook.
@@ -129,11 +128,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_T, PilotRowId_T> pilotsIdMap;
+    QMap<TailRegistration_T, TailId_T> tailsIdMap;
+    QMap<AirportICAO_T, AirportId_T> airportIcaoIdMap;
+    QMap<AirportIATA_T, AirportId_T> airportIataIdMap;
+    QMap<AirportName_T, AirportId_T> airportNameIdMap;
 
     Opl::Time::FlightTimeFormat flightTimeFormat;
 
@@ -162,7 +161,7 @@ private:
     void addNewTail(QLineEdit*);
     void addNewPilot(QLineEdit *);
 
-    RowData collectInput();
+    RowData_T collectInput();
 
     /*!
      * \brief converts a time string as used in the UI to an integer of minutes for

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

@@ -141,7 +141,7 @@ void NewPilotDialog::submitForm()
 {
     DEB << "Collecting User Input...";
 
-    RowData new_data;
+    RowData_T new_data;
     auto line_edits = this->findChildren<QLineEdit *>();
     for(auto& le : line_edits) {
         auto key = le->objectName().remove(QStringLiteral("LineEdit"));

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

@@ -187,7 +187,7 @@ bool NewTailDialog::verify()
 void NewTailDialog::submitForm()
 {
     DEB << "Creating Database Object...";
-    RowData new_data;
+    RowData_T new_data;
     //retreive Line Edits
     auto line_edits = this->findChildren<QLineEdit *>();
     line_edits.removeOne(this->findChild<QLineEdit *>(QStringLiteral("searchLineEdit")));

+ 1 - 1
src/gui/widgets/settingswidget.cpp

@@ -135,7 +135,7 @@ void SettingsWidget::setupValidators()
 
 void SettingsWidget::updatePersonalDetails()
 {
-    RowData user_data;
+    RowData_T user_data;
     switch (ui->aliasComboBox->currentIndex()) {
     case 0:
         user_data.insert(Opl::Db::PILOTS_ALIAS, QStringLiteral("self"));

+ 6 - 0
src/oplconstants.h

@@ -19,6 +19,7 @@
 #define OPLCONSTANTS_H
 
 #include <QtCore>
+#include "src/database/adatabasetypes.h"
 
 /*!
  *  \brief A namespace to collect constants and enums used throughout the application.
@@ -164,6 +165,11 @@ static const auto ROWID                  = QStringLiteral("ROWID");
 static const auto EMPTY_STRING           = QStringLiteral("");
 static const auto NULL_TIME_hhmm         = QStringLiteral("00:00");
 
+static const auto DEFAULT_FLIGHT_POSITION   = DataPosition(TABLE_FLIGHTS, 0);
+static const auto DEFAULT_PILOT_POSITION    = DataPosition(TABLE_PILOTS, 0);
+static const auto DEFAULT_TAIL_POSITION     = DataPosition(TABLE_TAILS, 0);
+static const auto DEFAULT_AIRCRAFT_POSITION = DataPosition(TABLE_AIRCRAFT, 0);
+
 } // namespace opl::db
 
 } // namespace opl