Jelajahi Sumber

added convenience function in DB class to access database object

fiffty-50 4 tahun lalu
induk
melakukan
c293b50ab4
3 mengubah file dengan 23 tambahan dan 10 penghapusan
  1. 6 0
      src/database/db.cpp
  2. 7 0
      src/database/db.h
  3. 10 10
      src/gui/dialogues/newflight.cpp

+ 6 - 0
src/database/db.cpp

@@ -46,6 +46,12 @@ void Db::iconnect()
         DEB("DatabaseConnect - ERROR: no driver " << driver << " available");
     }
 }
+
+QSqlDatabase Db::iDatabase()
+{
+    auto db = QSqlDatabase::database("qt_sql_default_connection");
+    return db;
+}
 /*!
  * \brief Db::iexists - see Db::exists
  */

+ 7 - 0
src/database/db.h

@@ -62,6 +62,12 @@ class Db
          * instantiated with QSqlDatabase::database("qt_sql_default_connection") as required.
          */
         static void             connect(){get().iconnect();}
+        /*!
+         * \brief Can be used to access the database connection.
+         * \return a pointer to the default database connection
+         */
+        static QSqlDatabase     Database(){return get().iDatabase();}
+
         /*!
          * \brief Db::exists checks if a certain value exists in the database with a sqlite WHERE statement
          * \param table - Name of the table
@@ -134,6 +140,7 @@ class Db
     private:
         Db() {}
         void             iconnect();
+        QSqlDatabase     iDatabase();
         bool             iexists(QString column, QString table, QString checkColumn,
                                        QString value, Db::matchType match);
         bool             isingleUpdate(QString table, QString column, QString value,

+ 10 - 10
src/gui/dialogues/newflight.cpp

@@ -43,19 +43,19 @@ void NewFlight::nope()
 }
 
 
-static const auto IATA = QLatin1String("[a-zA-Z0-9]{3}");
-static const auto ICAO = QLatin1String("[a-zA-Z0-9]{4}");
-static const auto name_rx = QLatin1String("(\\p{L}+('|\\-)?)");//(\\p{L}+(\\s|'|\\-)?\\s?(\\p{L}+)?\\s?)
-static const auto name_add_rx = QLatin1String("\\s?(\\p{L}+('|\\-)?)");
-static const auto self = QLatin1String("(self|SELF)");
+static const auto IATA_RX = QLatin1String("[a-zA-Z0-9]{3}");
+static const auto ICAO_RX = QLatin1String("[a-zA-Z0-9]{4}");
+static const auto NAME_RX = QLatin1String("(\\p{L}+('|\\-)?)");//(\\p{L}+(\\s|'|\\-)?\\s?(\\p{L}+)?\\s?)
+static const auto ADD_NAME_RX = QLatin1String("\\s?(\\p{L}+('|\\-)?)");
+static const auto SELF_RX = QLatin1String("(self|SELF)");
 
 /// Raw Input validation
 const auto TIME_VALID_RGX       = QRegularExpression("([01]?[0-9]|2[0-3]):?[0-5][0-9]?");// We only want to allow inputs that make sense as a time, e.g. 99:99 is not a valid time
-const auto LOC_VALID_RGX        = QRegularExpression(IATA + "|" + ICAO);
+const auto LOC_VALID_RGX        = QRegularExpression(IATA_RX + "|" + ICAO_RX);
 const auto AIRCRAFT_VALID_RGX   = QRegularExpression("[A-Z0-9]+-?[A-Z0-9]+");
-const auto PILOT_NAME_VALID_RGX = QRegularExpression(self + QLatin1Char('|')
-                                                     + name_rx + name_add_rx + ",\\s+" // up to 4 first names
-                                                     + name_rx + name_add_rx );// up to 4 last names
+const auto PILOT_NAME_VALID_RGX = QRegularExpression(SELF_RX + QLatin1Char('|')
+                                                     + NAME_RX + ADD_NAME_RX + ADD_NAME_RX + ADD_NAME_RX + ",\\s+" // up to 4 first names
+                                                     + NAME_RX + ADD_NAME_RX + ADD_NAME_RX + ADD_NAME_RX );// up to 4 last names
 
 /// Invalid characters (validators keep text even if it returns Invalid, see `onInputRejected` below)
 const auto TIME_INVALID_RGX       = QRegularExpression("[^0-9:]");
@@ -97,7 +97,7 @@ NewFlight::~NewFlight()
 }
 
 void NewFlight::setup(){
-    auto db = QSqlDatabase::database("qt_sql_default_connection");
+    auto db = Db::Database();//QSqlDatabase::database("qt_sql_default_connection");
 
     const auto location_settings = \
          LineEditSettings(LOC_VALID_RGX, LOC_INVALID_RGX, LOC_SQL_COL);