ソースを参照

Removing faulty logic in ADataBase::connect()

Removed a check that would always return false on firstrun and was useless in the first place.
Main now checks if DB cannection is successful before continuing.
Felix Turo 4 年 前
コミット
ed62c764fd
2 ファイル変更10 行追加9 行削除
  1. 10 6
      main.cpp
  2. 0 3
      src/database/adatabase.cpp

+ 10 - 6
main.cpp

@@ -49,21 +49,25 @@ int main(int argc, char *argv[])
     ASettings::setup();
 
     AStyle::setup();
-    aDB->connect();
+
+    if (!aDB->connect()) {
+        DEB << "Error establishing database connection";
+        return 2;
+    }
+
     if (!ASettings::read(ASettings::Setup::SetupComplete).toBool()) {
         if(FirstRunDialog().exec() == QDialog::Rejected){
-            DEB "First run not accepted. Exiting.";
-            return 1;
+            DEB << "First run not accepted. Exiting.";
+            return 3;
         }
         ASettings::write(ASettings::Setup::SetupComplete, true);
         DEB << "Wrote setup_commplete?";
     }
 
-    //sqlite does not deal well with multiple connections, ensure only one instance is running
     ARunGuard guard(QStringLiteral("opl_single_key"));
     if ( !guard.tryToRun() ){
-        DEB << "Another Instance is already running. Exiting.";
-        return 2;
+        DEB << "Another Instance of openPilotLog is already running. Exiting.";
+        return 0;
     }
 
 

+ 0 - 3
src/database/adatabase.cpp

@@ -103,9 +103,6 @@ bool ADatabase::connect()
     if (!QSqlDatabase::isDriverAvailable(SQLITE_DRIVER))
         return false;
 
-    if (!databaseFile.exists())
-        return false;
-
     QSqlDatabase db = QSqlDatabase::addDatabase(SQLITE_DRIVER);
     db.setDatabaseName(databaseFile.absoluteFilePath());