Browse Source

Refactored database version to a variable

George 4 years ago
parent
commit
368541890d
3 changed files with 27 additions and 17 deletions
  1. 1 1
      mainwindow.cpp
  2. 15 6
      src/database/adatabase.cpp
  3. 11 10
      src/database/adatabase.h

+ 1 - 1
mainwindow.cpp

@@ -73,7 +73,7 @@ MainWindow::MainWindow(QWidget *parent)
 
 
     // check database version (Debug)
-    int db_ver = aDB->dbVersion();
+    int db_ver = aDB->version();
     if (db_ver != DATABASE_REVISION) {
         DEB << "############## WARNING ##############";
         DEB << "Your database is out of date.";

+ 15 - 6
src/database/adatabase.cpp

@@ -33,7 +33,19 @@ QString ADatabaseError::text() const
 
 ADatabase* ADatabase::self = nullptr;
 
-int ADatabase::dbVersion()
+ADatabase::ADatabase()
+    : databaseFile(QFileInfo(AStandardPaths::directory(AStandardPaths::Database).
+                             absoluteFilePath(QStringLiteral("logbook.db"))
+                             )
+                   )
+{}
+
+int ADatabase::version() const
+{
+    return dbVersion;
+}
+
+int ADatabase::checkDbVersion() const
 {
     QSqlQuery query("SELECT COUNT(*) FROM changelog");
     query.next();
@@ -78,12 +90,8 @@ ADatabase* ADatabase::instance()
 #endif
 }
 
-ADatabase::ADatabase()
-    : databaseFile(QFileInfo(AStandardPaths::directory(AStandardPaths::Database).
-                             absoluteFilePath(QStringLiteral("logbook.db"))))
-{}
 
-const QString ADatabase::sqliteVersion()
+const QString ADatabase::sqliteVersion() const
 {
     QSqlQuery query;
     query.prepare(QStringLiteral("SELECT sqlite_version()"));
@@ -107,6 +115,7 @@ bool ADatabase::connect()
     // Enable foreign key restrictions
     QSqlQuery query(QStringLiteral("PRAGMA foreign_keys = ON;"));
     updateLayout();
+    dbVersion = checkDbVersion();
     return true;
 }
 

+ 11 - 10
src/database/adatabase.h

@@ -88,21 +88,27 @@ public:
  */
 class ADatabase : public QObject {
     Q_OBJECT
-public:
 
 private:
-    ADatabase();
-
     static ADatabase* self;
     TableNames_T tableNames;
     TableColumns_T tableColumns;
+    int dbVersion;
+
+    ADatabase();
+    int checkDbVersion() const;
 public:
+    ADatabaseError lastError;
+    //const QDir databaseDir;
+    const QFileInfo databaseFile;
+
     // Ensure DB is not copiable or assignable
     ADatabase(const ADatabase&) = delete;
     void operator=(const ADatabase&) = delete;
     static ADatabase* instance();
 
-    int dbVersion();
+    int version() const;
+
     /*!
      * \brief Return the names of all tables in the database
      */
@@ -123,12 +129,7 @@ public:
      * \brief ADatabase::sqliteVersion returns database sqlite version.
      * \return sqlite version string
      */
-    const QString sqliteVersion();
-
-    ADatabaseError lastError;
-    //const QDir databaseDir;
-    const QFileInfo databaseFile;
-
+    const QString sqliteVersion() const;
 
     /*!
      * \brief Connect to the database and populate database information.