Browse Source

Adjusted CMakeLists.txt, some string optimisations

- Replaced declarations.h with adatabasetypes.h in CMakeLists.txt
- Changed some string literals to QLatin1String in cases where it makes more sense.
- Fixed a some bugs with QStringBuilder concatenations that caused crashes. See https://github.com/KDE/clazy/blob/master/docs/checks/README-auto-unexpected-qstringbuilder.md
Felix Turo 4 years ago
parent
commit
1667790bcb

+ 1 - 1
CMakeLists.txt

@@ -64,7 +64,7 @@ set(PROJECT_SOURCES
     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

+ 2 - 2
src/database/adatabase.cpp

@@ -610,12 +610,12 @@ QList<RowId_T> ADatabase::getForeignKeyConstraints(RowId_T foreign_row_id, AData
     return row_ids;
 }
 
-APilotEntry ADatabase::resolveForeignPilot(ForeignKey_T foreign_key)
+APilotEntry ADatabase::resolveForeignPilot(RowId_T foreign_key)
 {
     return aDB->getPilotEntry(foreign_key);
 }
 
-ATailEntry ADatabase::resolveForeignTail(ForeignKey_T foreign_key)
+ATailEntry ADatabase::resolveForeignTail(RowId_T foreign_key)
 {
     return aDB->getTailEntry(foreign_key);
 }

+ 2 - 2
src/database/adatabase.h

@@ -245,13 +245,13 @@ public:
      * \brief Resolves the foreign key in a flight entry
      * \return The Pilot Entry referencted by the foreign key.
      */
-    APilotEntry resolveForeignPilot(ForeignKey_T foreign_key);
+    APilotEntry resolveForeignPilot(RowId_T foreign_key);
 
     /*!
      * \brief Resolves the foreign key in a flight entry
      * \return The Tail Entry referencted by the foreign key.
      */
-    ATailEntry resolveForeignTail(ForeignKey_T foreign_key);
+    ATailEntry resolveForeignTail(RowId_T foreign_key);
 
 
 

+ 5 - 4
src/database/adatabasesetup.cpp

@@ -297,18 +297,19 @@ bool ADataBaseSetup::downloadTemplates()
 }
 bool ADataBaseSetup::backupOldData()
 {
+    DEB << "Backing up old database...";
     auto database_file = aDB->databaseFile;
+
     if(!database_file.exists()) {
         DEB << "No Database to backup, returning.";
         return true;
     }
-
     auto date_string = ADateTime::toString(QDateTime::currentDateTime(),
                                            Opl::Datetime::Backup);
     auto backup_dir = AStandardPaths::directory(AStandardPaths::Backup);
-    auto backup_name = database_file.baseName() + "_bak_" + date_string + ".db";
-    QFile file(aDB->databaseFile.absoluteFilePath());
-
+    QString backup_name = database_file.baseName() + QLatin1String("_bak_")
+            + date_string + QLatin1String(".db");
+    QFile file(aDB->databaseFile.absoluteFilePath()); 
     if (!file.rename(backup_dir.absoluteFilePath(backup_name))) {
         DEB << "Unable to backup old database.";
         return false;

+ 0 - 2
src/database/adatabasetypes.h

@@ -41,8 +41,6 @@ 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_T tableName;
     RowId_T rowId;

+ 13 - 5
src/functions/acalc.cpp

@@ -105,8 +105,11 @@ double ACalc::greatCircleDistance(double lat1, double lon1, double lat2, double
 
 double ACalc::greatCircleDistanceBetweenAirports(const QString &dept, const QString &dest)
 {
-    auto statement = "SELECT lat, long FROM airports WHERE icao = '"
-            + dept + "' OR icao = '" + dest + "'";
+    QString statement = QLatin1String("SELECT lat, long FROM airports WHERE icao = '")
+            + dept
+            + QLatin1String("' OR icao = '")
+            + dest
+            + QLatin1String("'");
     auto lat_lon = aDB->customQuery(statement, 2);
 
     if (lat_lon.length() != 4) {
@@ -224,7 +227,10 @@ double ACalc::solarElevation(QDateTime utc_time_point, double lat, double lon)
 int ACalc::calculateNightTime(const QString &dept, const QString &dest, QDateTime departureTime, int tblk, int nightAngle)
 {
 
-    auto statement = "SELECT lat, long FROM airports WHERE icao = '" + dept + "' OR icao = '" + dest + "'";
+    const QString statement = QLatin1String("SELECT lat, long FROM airports WHERE icao = '")
+            + dept
+            + QLatin1String("' OR icao = '") + dest
+            + QLatin1String("'");
     auto lat_lon = aDB->customQuery(statement, 2);
 
     if (lat_lon.length() != 4) {
@@ -252,7 +258,9 @@ int ACalc::calculateNightTime(const QString &dept, const QString &dest, QDateTim
 
 bool ACalc::isNight(const QString &icao, QDateTime event_time, int night_angle)
 {
-    auto statement = "SELECT lat, long FROM airports WHERE icao = '" + icao + "'";
+    const QString statement = QLatin1String("SELECT lat, long FROM airports WHERE icao = '")
+            + icao
+            + QLatin1String("'");
     auto lat_lon = aDB->customQuery(statement, 2);
 
     if (lat_lon.length() != 2) {
@@ -325,7 +333,7 @@ void ACalc::updateNightTimes()
     const int night_angle = ASettings::read(ASettings::FlightLogging::NightAngle).toInt();
 
     //find all flights for aircraft
-    auto statement = "SELECT ROWID FROM flights";
+    auto statement = QStringLiteral("SELECT ROWID FROM flights");
     auto flight_list = aDB->customQuery(statement, 1);
 
     if (flight_list.isEmpty()) {

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

@@ -30,7 +30,6 @@
 ///                                         constants                                           ///
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-static const auto EMPTY_STRING=QStringLiteral("");
 static const auto NAME_RX     = QLatin1String("((\\p{L}+)?('|\\-|,)?(\\p{L}+)?)");
 static const auto ADD_NAME_RX = QLatin1String("(\\s?(\\p{L}+('|\\-|,)?\\p{L}+?))?");
 
@@ -138,12 +137,12 @@ NewFlightDialog::NewFlightDialog(QWidget *parent) :
     ui->setupUi(this);
     flightEntry = AFlightEntry();
     setup();
-    if (ASettings::read(ASettings::NewFlight::FunctionComboBox).toString() == "SIC") {
-        ui->picNameLineEdit->setText(QStringLiteral(""));
+    if (ASettings::read(ASettings::NewFlight::FunctionComboBox).toString() == QLatin1String("SIC")) {
+        ui->picNameLineEdit->setText(QString());
         ui->secondPilotNameLineEdit->setText("self");
     }
-    if(ASettings::read(ASettings::NewFlight::FunctionComboBox).toString() == "PIC"){
-        ui->picNameLineEdit->setText("self");
+    if(ASettings::read(ASettings::NewFlight::FunctionComboBox).toString() == QLatin1String("PIC")){
+        ui->picNameLineEdit->setText(QStringLiteral("self"));
         emit ui->picNameLineEdit->editingFinished();
     }
 }
@@ -438,7 +437,7 @@ void NewFlightDialog::fillDeductibleData()
                               ui->tDUALTimeLineEdit, ui->tFITimeLineEdit,};
     QList<QLabel*>      LB = {ui->tSPSELabel, ui->tSPMELabel,  ui->tMPLabel,  ui->tIFRLabel,  ui->tNIGHTLabel,
                               ui->tPICLabel,  ui->tPICUSLabel, ui->tSICLabel, ui->tDUALLabel, ui->tFILabel};
-    for(const auto& widget : LE) {widget->setText(EMPTY_STRING);}
+    for(const auto& widget : LE) {widget->setText(QString());}
     for(const auto& widget : LB) {widget->setText(Opl::Db::NULL_TIME_hhmm);}
     //Calculate block time
     const auto tofb = ATime::fromString(ui->tofbTimeLineEdit->text());
@@ -472,7 +471,8 @@ void NewFlightDialog::fillDeductibleData()
         ui->tMPLabel->setText(block_time_string);
     }
     // TOTAL
-    ui->tblkLabel->setText("<b>" + block_time_string + "</b>");
+    ui->tblkLabel->setText(QLatin1String("<b>") + block_time_string
+                           + QLatin1String("</b>"));
     // IFR
     if(ui->IfrCheckBox->isChecked()){
         ui->tIFRTimeLineEdit->setText(block_time_string);
@@ -550,23 +550,23 @@ RowData_T NewFlightDialog::collectInput()
 
     // Extra Times
     ui->tSPSETimeLineEdit->text().isEmpty() ?
-                newData.insert(Opl::Db::FLIGHTS_TSPSE, EMPTY_STRING)
+                newData.insert(Opl::Db::FLIGHTS_TSPSE, QString())
               : newData.insert(Opl::Db::FLIGHTS_TSPSE, stringToMinutes(
                                    ui->tSPSETimeLineEdit->text(), flightTimeFormat));
 
     ui->tSPMETimeLineEdit->text().isEmpty() ?
-                newData.insert(Opl::Db::FLIGHTS_TSPME, EMPTY_STRING)
+                newData.insert(Opl::Db::FLIGHTS_TSPME, QString())
               : newData.insert(Opl::Db::FLIGHTS_TSPME, stringToMinutes(
                                    ui->tSPMETimeLineEdit->text(), flightTimeFormat));
     ui->tMPTimeLineEdit->text().isEmpty() ?
-                newData.insert(Opl::Db::FLIGHTS_TMP, EMPTY_STRING)
+                newData.insert(Opl::Db::FLIGHTS_TMP, QString())
               : newData.insert(Opl::Db::FLIGHTS_TMP, stringToMinutes(
                                    ui->tMPTimeLineEdit->text(), flightTimeFormat));
 
     if (ui->IfrCheckBox->isChecked()) {
         newData.insert(Opl::Db::FLIGHTS_TIFR, block_minutes);
     } else {
-        newData.insert(Opl::Db::FLIGHTS_TIFR, EMPTY_STRING);
+        newData.insert(Opl::Db::FLIGHTS_TIFR, QString());
     }
     // Night
     const QString dept_date = ui->doftLineEdit->text() + 'T'
@@ -586,37 +586,37 @@ RowData_T NewFlightDialog::collectInput()
     switch (ui->FunctionComboBox->currentIndex()) {
     case 0://PIC
         newData.insert(Opl::Db::FLIGHTS_TPIC, block_minutes);
-        newData.insert(Opl::Db::FLIGHTS_TPICUS, EMPTY_STRING);
-        newData.insert(Opl::Db::FLIGHTS_TSIC, EMPTY_STRING);
-        newData.insert(Opl::Db::FLIGHTS_TDUAL, EMPTY_STRING);
-        newData.insert(Opl::Db::FLIGHTS_TFI, EMPTY_STRING);
+        newData.insert(Opl::Db::FLIGHTS_TPICUS, QString());
+        newData.insert(Opl::Db::FLIGHTS_TSIC, QString());
+        newData.insert(Opl::Db::FLIGHTS_TDUAL, QString());
+        newData.insert(Opl::Db::FLIGHTS_TFI, QString());
         break;
     case 1://PICUS
-        newData.insert(Opl::Db::FLIGHTS_TPIC, EMPTY_STRING);
+        newData.insert(Opl::Db::FLIGHTS_TPIC, QString());
         newData.insert(Opl::Db::FLIGHTS_TPICUS, block_minutes);
-        newData.insert(Opl::Db::FLIGHTS_TSIC, EMPTY_STRING);
-        newData.insert(Opl::Db::FLIGHTS_TDUAL, EMPTY_STRING);
-        newData.insert(Opl::Db::FLIGHTS_TFI, EMPTY_STRING);
+        newData.insert(Opl::Db::FLIGHTS_TSIC, QString());
+        newData.insert(Opl::Db::FLIGHTS_TDUAL, QString());
+        newData.insert(Opl::Db::FLIGHTS_TFI, QString());
         break;
     case 2://Co-Pilot
-        newData.insert(Opl::Db::FLIGHTS_TPIC, EMPTY_STRING);
-        newData.insert(Opl::Db::FLIGHTS_TPICUS, EMPTY_STRING);
+        newData.insert(Opl::Db::FLIGHTS_TPIC, QString());
+        newData.insert(Opl::Db::FLIGHTS_TPICUS, QString());
         newData.insert(Opl::Db::FLIGHTS_TSIC, block_minutes);
-        newData.insert(Opl::Db::FLIGHTS_TDUAL, EMPTY_STRING);
-        newData.insert(Opl::Db::FLIGHTS_TFI, EMPTY_STRING);
+        newData.insert(Opl::Db::FLIGHTS_TDUAL, QString());
+        newData.insert(Opl::Db::FLIGHTS_TFI, QString());
         break;
     case 3://Dual
-        newData.insert(Opl::Db::FLIGHTS_TPIC, EMPTY_STRING);
-        newData.insert(Opl::Db::FLIGHTS_TPICUS, EMPTY_STRING);
-        newData.insert(Opl::Db::FLIGHTS_TSIC, EMPTY_STRING);
+        newData.insert(Opl::Db::FLIGHTS_TPIC, QString());
+        newData.insert(Opl::Db::FLIGHTS_TPICUS, QString());
+        newData.insert(Opl::Db::FLIGHTS_TSIC, QString());
         newData.insert(Opl::Db::FLIGHTS_TDUAL, block_minutes);
-        newData.insert(Opl::Db::FLIGHTS_TFI, EMPTY_STRING);
+        newData.insert(Opl::Db::FLIGHTS_TFI, QString());
         break;
     case 4://Instructor
         newData.insert(Opl::Db::FLIGHTS_TPIC, block_minutes);
-        newData.insert(Opl::Db::FLIGHTS_TPICUS, EMPTY_STRING);
-        newData.insert(Opl::Db::FLIGHTS_TSIC, EMPTY_STRING);
-        newData.insert(Opl::Db::FLIGHTS_TDUAL, EMPTY_STRING);
+        newData.insert(Opl::Db::FLIGHTS_TPICUS, QString());
+        newData.insert(Opl::Db::FLIGHTS_TSIC, QString());
+        newData.insert(Opl::Db::FLIGHTS_TDUAL, QString());
         newData.insert(Opl::Db::FLIGHTS_TFI, block_minutes);
     }
     // Pilot Flying
@@ -756,7 +756,7 @@ void NewFlightDialog::formFiller()
     }
     // Approach Combo Box
     const QString& app = flightEntry.getData().value(Opl::Db::FLIGHTS_APPROACHTYPE).toString();
-    if(app != EMPTY_STRING){
+    if(app != QString()){
         ui->ApproachComboBox->setCurrentText(app);
     }
     // Task and Rules
@@ -770,7 +770,7 @@ void NewFlightDialog::formFiller()
     if (FR > 0) {
         ui->IfrCheckBox->setChecked(true);
     } else {
-        ui->tIFRTimeLineEdit->setText(EMPTY_STRING);
+        ui->tIFRTimeLineEdit->setText(QString());
         ui->VfrCheckBox->setChecked(true);
     }
     // Take Off and Landing
@@ -860,7 +860,7 @@ void NewFlightDialog::addNewTail(QLineEdit *parent_line_edit)
         parent_line_edit->setText(tailsIdMap.key(aDB->getLastEntry(ADatabaseTarget::tails)));
         emit parent_line_edit->editingFinished();
     } else {
-        parent_line_edit->setText(EMPTY_STRING);
+        parent_line_edit->setText(QString());
     }
 }
 
@@ -890,7 +890,7 @@ void NewFlightDialog::addNewPilot(QLineEdit *parent_line_edit)
         parent_line_edit->setText(pilotsIdMap.key(aDB->getLastEntry(ADatabaseTarget::pilots)));
         emit parent_line_edit->editingFinished();
     } else {
-        parent_line_edit->setText(EMPTY_STRING);
+        parent_line_edit->setText(QString());
     }
 }
 
@@ -957,7 +957,7 @@ void NewFlightDialog::on_submitButton_clicked()
 void NewFlightDialog::onGoodInputReceived(QLineEdit *line_edit)
 {
     DEB << line_edit->objectName() << " - Good input received - " << line_edit->text();
-    line_edit->setStyleSheet("");
+    line_edit->setStyleSheet(QString());
 
     if (mandatoryLineEdits.contains(line_edit))
         mandatoryLineEdits.validate(line_edit);
@@ -1179,7 +1179,7 @@ void NewFlightDialog::onTimeLineEdit_editingFinished()
             onGoodInputReceived(line_edit);
         } else { // is extra time line edit
             if (!isLessOrEqualThanBlockTime(line_edit->text())) {
-                line_edit->setText(EMPTY_STRING);
+                line_edit->setText(QString());
                 line_edit->setFocus();
                 return;
             }
@@ -1338,7 +1338,7 @@ void NewFlightDialog::on_manualEditingCheckBox_stateChanged(int arg1)
 
 void NewFlightDialog::on_ApproachComboBox_currentTextChanged(const QString &arg1)
 {
-    if(arg1 == QStringLiteral("ILS CAT III")){  //for a CAT III approach an Autoland is mandatory, so we can preselect it.
+    if(arg1 == QLatin1String("ILS CAT III")){  //for a CAT III approach an Autoland is mandatory, so we can preselect it.
         ui->AutolandCheckBox->setCheckState(Qt::Checked);
         ui->AutolandSpinBox->setValue(1);
     }else{
@@ -1346,10 +1346,10 @@ void NewFlightDialog::on_ApproachComboBox_currentTextChanged(const QString &arg1
         ui->AutolandSpinBox->setValue(0);
     }
 
-    if (arg1 != QStringLiteral("VISUAL"))
+    if (arg1 != QLatin1String("VISUAL"))
         ui->IfrCheckBox->setChecked(true);
 
-    if (arg1 == QStringLiteral("OTHER")) {
+    if (arg1 == QLatin1String("OTHER")) {
         QMessageBox message_box(this);
         message_box.setText(tr("You can specify the approach type in the Remarks field."));
         message_box.exec();

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

@@ -166,7 +166,7 @@ bool NewTailDialog::verify()
         if (cb->currentIndex() != 0) {
 
             recommended_combo_boxes.removeOne(cb);
-            cb->setStyleSheet("");
+            cb->setStyleSheet(QString());
         } else {
             cb->setStyleSheet(QStringLiteral("background: orange"));
             DEB << "Not Good: " << cb;

+ 75 - 77
src/oplconstants.h

@@ -38,28 +38,28 @@
 namespace Opl {
 
 static const auto ApproachTypes = QStringList{
-        QStringLiteral("VISUAL"),
-        QStringLiteral("ILS CAT I"),
-        QStringLiteral("ILS CAT II"),
-        QStringLiteral("ILS CAT III"),
-        QStringLiteral("GLS"),
-        QStringLiteral("MLS"),
-        QStringLiteral("LOC"),
-        QStringLiteral("LOC/DME"),
-        QStringLiteral("RNAV"),
-        QStringLiteral("RNAV (LNAV)"),
-        QStringLiteral("RNAV (LNAV/VNAV)"),
-        QStringLiteral("RNAV (LPV)"),
-        QStringLiteral("RNAV (RNP)"),
-        QStringLiteral("RNAV (RNP-AR)"),
-        QStringLiteral("VOR"),
-        QStringLiteral("VOR/DME"),
-        QStringLiteral("NDB"),
-        QStringLiteral("NDB/DME"),
-        QStringLiteral("TACAN"),
-        QStringLiteral("SRA"),
-        QStringLiteral("PAR"),
-        QStringLiteral("OTHER")
+        QLatin1String("VISUAL"),
+        QLatin1String("ILS CAT I"),
+        QLatin1String("ILS CAT II"),
+        QLatin1String("ILS CAT III"),
+        QLatin1String("GLS"),
+        QLatin1String("MLS"),
+        QLatin1String("LOC"),
+        QLatin1String("LOC/DME"),
+        QLatin1String("RNAV"),
+        QLatin1String("RNAV (LNAV)"),
+        QLatin1String("RNAV (LNAV/VNAV)"),
+        QLatin1String("RNAV (LPV)"),
+        QLatin1String("RNAV (RNP)"),
+        QLatin1String("RNAV (RNP-AR)"),
+        QLatin1String("VOR"),
+        QLatin1String("VOR/DME"),
+        QLatin1String("NDB"),
+        QLatin1String("NDB/DME"),
+        QLatin1String("TACAN"),
+        QLatin1String("SRA"),
+        QLatin1String("PAR"),
+        QLatin1String("OTHER")
 };
 
 namespace Date {
@@ -99,71 +99,69 @@ namespace Db {
 
 
 // Table names
-static const auto TABLE_FLIGHTS          = QStringLiteral("flights");
-static const auto TABLE_PILOTS           = QStringLiteral("pilots");
-static const auto TABLE_TAILS            = QStringLiteral("tails");
-static const auto TABLE_AIRCRAFT         = QStringLiteral("aircraft");
-static const auto TABLE_AIRPORTS         = QStringLiteral("airports");
+static const auto TABLE_FLIGHTS          = QLatin1String("flights");
+static const auto TABLE_PILOTS           = QLatin1String("pilots");
+static const auto TABLE_TAILS            = QLatin1String("tails");
+static const auto TABLE_AIRCRAFT         = QLatin1String("aircraft");
+static const auto TABLE_AIRPORTS         = QLatin1String("airports");
 
 // Flights table columns
-static const auto FLIGHTS_DOFT           = QStringLiteral("doft");
-static const auto FLIGHTS_DEPT           = QStringLiteral("dept");
-static const auto FLIGHTS_DEST           = QStringLiteral("dest");
-static const auto FLIGHTS_TOFB           = QStringLiteral("tofb");
-static const auto FLIGHTS_TONB           = QStringLiteral("tonb");
-static const auto FLIGHTS_PIC            = QStringLiteral("pic");
-static const auto FLIGHTS_ACFT           = QStringLiteral("acft");
-static const auto FLIGHTS_TBLK           = QStringLiteral("tblk");
-static const auto FLIGHTS_TSPSE          = QStringLiteral("tSPSE");
-static const auto FLIGHTS_TSPME          = QStringLiteral("tSPME");
-static const auto FLIGHTS_TMP            = QStringLiteral("tMP");
-static const auto FLIGHTS_TNIGHT         = QStringLiteral("tNIGHT");
-static const auto FLIGHTS_TIFR           = QStringLiteral("tIFR");
-static const auto FLIGHTS_TPIC           = QStringLiteral("tPIC");
-static const auto FLIGHTS_TPICUS         = QStringLiteral("tPICUS");
-static const auto FLIGHTS_TSIC           = QStringLiteral("tSIC");
-static const auto FLIGHTS_TDUAL          = QStringLiteral("tDUAL");
-static const auto FLIGHTS_TFI            = QStringLiteral("tFI");
-static const auto FLIGHTS_TSIM           = QStringLiteral("tSIM");
-static const auto FLIGHTS_PILOTFLYING    = QStringLiteral("pilotFlying");
-static const auto FLIGHTS_TODAY          = QStringLiteral("toDay");
-static const auto FLIGHTS_TONIGHT        = QStringLiteral("toNight");
-static const auto FLIGHTS_LDGDAY         = QStringLiteral("ldgDay");
-static const auto FLIGHTS_LDGNIGHT       = QStringLiteral("ldgNight");
-static const auto FLIGHTS_AUTOLAND       = QStringLiteral("autoland");
-static const auto FLIGHTS_SECONDPILOT    = QStringLiteral("secondPilot");
-static const auto FLIGHTS_THIRDPILOT     = QStringLiteral("thirdPilot");
-static const auto FLIGHTS_APPROACHTYPE   = QStringLiteral("approachType");
-static const auto FLIGHTS_FLIGHTNUMBER   = QStringLiteral("flightNumber");
-static const auto FLIGHTS_REMARKS        = QStringLiteral("remarks");
+static const auto FLIGHTS_DOFT           = QLatin1String("doft");
+static const auto FLIGHTS_DEPT           = QLatin1String("dept");
+static const auto FLIGHTS_DEST           = QLatin1String("dest");
+static const auto FLIGHTS_TOFB           = QLatin1String("tofb");
+static const auto FLIGHTS_TONB           = QLatin1String("tonb");
+static const auto FLIGHTS_PIC            = QLatin1String("pic");
+static const auto FLIGHTS_ACFT           = QLatin1String("acft");
+static const auto FLIGHTS_TBLK           = QLatin1String("tblk");
+static const auto FLIGHTS_TSPSE          = QLatin1String("tSPSE");
+static const auto FLIGHTS_TSPME          = QLatin1String("tSPME");
+static const auto FLIGHTS_TMP            = QLatin1String("tMP");
+static const auto FLIGHTS_TNIGHT         = QLatin1String("tNIGHT");
+static const auto FLIGHTS_TIFR           = QLatin1String("tIFR");
+static const auto FLIGHTS_TPIC           = QLatin1String("tPIC");
+static const auto FLIGHTS_TPICUS         = QLatin1String("tPICUS");
+static const auto FLIGHTS_TSIC           = QLatin1String("tSIC");
+static const auto FLIGHTS_TDUAL          = QLatin1String("tDUAL");
+static const auto FLIGHTS_TFI            = QLatin1String("tFI");
+static const auto FLIGHTS_TSIM           = QLatin1String("tSIM");
+static const auto FLIGHTS_PILOTFLYING    = QLatin1String("pilotFlying");
+static const auto FLIGHTS_TODAY          = QLatin1String("toDay");
+static const auto FLIGHTS_TONIGHT        = QLatin1String("toNight");
+static const auto FLIGHTS_LDGDAY         = QLatin1String("ldgDay");
+static const auto FLIGHTS_LDGNIGHT       = QLatin1String("ldgNight");
+static const auto FLIGHTS_AUTOLAND       = QLatin1String("autoland");
+static const auto FLIGHTS_SECONDPILOT    = QLatin1String("secondPilot");
+static const auto FLIGHTS_THIRDPILOT     = QLatin1String("thirdPilot");
+static const auto FLIGHTS_APPROACHTYPE   = QLatin1String("approachType");
+static const auto FLIGHTS_FLIGHTNUMBER   = QLatin1String("flightNumber");
+static const auto FLIGHTS_REMARKS        = QLatin1String("remarks");
 
 // tails table
 
-static const auto TAILS_REGISTRATION     = QStringLiteral("registration");
-static const auto TAILS_COMPANY          = QStringLiteral("company");
-static const auto TAILS_MAKE             = QStringLiteral("make");
-static const auto TAILS_MODEL            = QStringLiteral("model");
-static const auto TAILS_VARIANT          = QStringLiteral("variant");
-static const auto TAILS_MULTIPILOT       = QStringLiteral("multipilot");
-static const auto TAILS_MULTIENGINE      = QStringLiteral("multiengine");
-static const auto TAILS_ENGINETYPE       = QStringLiteral("engineType");
-static const auto TAILS_WEIGHTCLASS      = QStringLiteral("weightClass");
+static const auto TAILS_REGISTRATION     = QLatin1String("registration");
+static const auto TAILS_COMPANY          = QLatin1String("company");
+static const auto TAILS_MAKE             = QLatin1String("make");
+static const auto TAILS_MODEL            = QLatin1String("model");
+static const auto TAILS_VARIANT          = QLatin1String("variant");
+static const auto TAILS_MULTIPILOT       = QLatin1String("multipilot");
+static const auto TAILS_MULTIENGINE      = QLatin1String("multiengine");
+static const auto TAILS_ENGINETYPE       = QLatin1String("engineType");
+static const auto TAILS_WEIGHTCLASS      = QLatin1String("weightClass");
 
 // pilots table
 
-static const auto PILOTS_LASTNAME        = QStringLiteral("lastname");
-static const auto PILOTS_FIRSTNAME       = QStringLiteral("firstname");
-static const auto PILOTS_ALIAS           = QStringLiteral("alias");
-static const auto PILOTS_COMPANY         = QStringLiteral("company");
-static const auto PILOTS_EMPLOYEEID      = QStringLiteral("employeeid");
-static const auto PILOTS_PHONE           = QStringLiteral("phone");
-static const auto PILOTS_EMAIL           = QStringLiteral("email");
+static const auto PILOTS_LASTNAME        = QLatin1String("lastname");
+static const auto PILOTS_FIRSTNAME       = QLatin1String("firstname");
+static const auto PILOTS_ALIAS           = QLatin1String("alias");
+static const auto PILOTS_COMPANY         = QLatin1String("company");
+static const auto PILOTS_EMPLOYEEID      = QLatin1String("employeeid");
+static const auto PILOTS_PHONE           = QLatin1String("phone");
+static const auto PILOTS_EMAIL           = QLatin1String("email");
 
 // all tables
-
-static const auto ROWID                  = QStringLiteral("ROWID");
-static const auto EMPTY_STRING           = QStringLiteral("");
-static const auto NULL_TIME_hhmm         = QStringLiteral("00:00");
+static const auto ROWID                  = QLatin1String("ROWID");
+static const auto NULL_TIME_hhmm         = QLatin1String("00:00");
 
 static const auto DEFAULT_FLIGHT_POSITION   = DataPosition(TABLE_FLIGHTS, 0);
 static const auto DEFAULT_PILOT_POSITION    = DataPosition(TABLE_PILOTS, 0);