]> vaikene.ee Git - evaf/blobdiff - src/apps/PswGen/Storage/module.h
Warning fixes and copyright update.
[evaf] / src / apps / PswGen / Storage / module.h
index 95b935f2926bec0e31793eba401d7d7668c4fbd4..68416f0034143a9feb7b06013359e2e7b094a3e0 100644 (file)
@@ -3,7 +3,7 @@
  * @brief Implementation of the iStorage interface
  * @author Enar Vaikene
  *
- * Copyright (c) 2011 Enar Vaikene
+ * Copyright (c) 2011-2019 Enar Vaikene
  *
  * This file is part of the eVaf C++ cross-platform application development framework.
  *
@@ -21,6 +21,7 @@
 #  define __PSWGEN_STORAGE_MODULE_H
 
 #include "istorage.h"
+#include "version.h"
 
 #include <Plugins/iPlugin>
 
@@ -28,8 +29,8 @@
 #include <QString>
 #include <QAbstractListModel>
 #include <QMap>
-#include <QtSql/QSqlDatabase>
 
+class QSqlDatabase;
 
 namespace eVaf {
 namespace PswGen {
@@ -49,6 +50,7 @@ class Module : public Plugins::iPlugin
 {
     Q_OBJECT
     Q_INTERFACES(eVaf::Plugins::iPlugin)
+    Q_PLUGIN_METADATA(IID VER_MODULE_NAME_STR)
 
 public:
 
@@ -111,7 +113,7 @@ public:
         QAbstractListModel methods
     */
 
-    virtual int rowCount(QModelIndex const & parent) const { return mData.count(); }
+    virtual int rowCount(QModelIndex const &) const { return mData.count(); }
 
     virtual QVariant data(QModelIndex const & index, int role = Qt::DisplayRole) const;
 
@@ -124,9 +126,6 @@ private: // Members
     /// Name of the database file without path
     static char const * const DbName;
 
-    /// Database connection
-    QSqlDatabase mDb;
-
     /// List of name/data pairs
     QMap<QString, QExplicitlySharedDataPointer<Storage::Data> > mData;
 
@@ -137,13 +136,23 @@ private: // Methods
      * Creates database tables if necessary
      * @return True if ok; false if failed
      */
-    bool createTables();
+    bool createTables(QSqlDatabase & db);
+
+    /**
+     * Upgrades database tables if necessary
+     * @return True if ok; false if failed
+     *
+     * This function checks if database tables need to upgraded and
+     * performs the upgrade without a loss of data if possible.
+     * Returns false if upgrade is not possible or fails.
+     */
+    bool upgradeTables(QSqlDatabase & db);
 
     /**
      * Loads data from the database
      * @return True if ok; false if failed
      */
-    bool loadData();
+    bool loadData(QSqlDatabase & db);
 
 };