Added new base class for EmuFront dialogs, connected database class to
authorMikko Keinänen <mikko.keinanen@gmail.com>
Sat, 15 May 2010 17:02:50 +0000 (20:02 +0300)
committerMikko Keinänen <mikko.keinanen@gmail.com>
Sat, 15 May 2010 17:02:50 +0000 (20:02 +0300)
platform name dialog.

13 files changed:
src/db/databasemanager.cpp
src/db/databasemanager.h
src/dialogs/dbobjectdialog.cpp
src/dialogs/dbobjectdialog.h
src/dialogs/emufrontdialog.cpp [new file with mode: 0644]
src/dialogs/emufrontdialog.h [new file with mode: 0644]
src/dialogs/namedialog.cpp
src/dialogs/namedialog.h
src/dialogs/platformnamedialog.cpp
src/dialogs/platformnamedialog.h
src/emufront.pro
src/mainwindow.cpp
src/mainwindow.h

index b741c4c..61da4e0 100644 (file)
@@ -9,6 +9,7 @@
 #include <iostream>
 
 const QString DatabaseManager::DB_FILENAME = QString("my.db.sqlite");
+QSqlDatabase DatabaseManager::db = QSqlDatabase::addDatabase("QSQLITE");
 
 DatabaseManager::DatabaseManager(QObject *parent)
        : QObject(parent)
@@ -19,9 +20,11 @@ DatabaseManager::~DatabaseManager()
 
 bool DatabaseManager::openDB()
 {
-       db = QSqlDatabase::addDatabase("QSQLITE");
-       db.setDatabaseName(getDbPath());
-       return db.open();
+    if (DatabaseManager::db.databaseName().isEmpty())
+    {
+        DatabaseManager::db.setDatabaseName(DatabaseManager::getDbPath());
+    }
+    return DatabaseManager::db.open();
 }
 
 QSqlError DatabaseManager::lastError()
@@ -35,7 +38,7 @@ bool DatabaseManager::deleteDB()
        return QFile::remove(getDbPath());
 }
 
-QString DatabaseManager::getDbPath() const
+QString DatabaseManager::getDbPath()
 {
        QString path;
 #ifdef Q_OS_LINUX
@@ -82,7 +85,7 @@ bool DatabaseManager::createDB() const
        return ret;
 }
 
-int DatabaseManager::insertPlatform(QString name, QString filename) const
+int DatabaseManager::insertPlatform(QString name, QString filename)
 {
        int newId = -1;
        bool ret = false;
index 8d2b300..8604982 100644 (file)
@@ -13,18 +13,18 @@ public:
        DatabaseManager(QObject *parent = 0);
        ~DatabaseManager();
 
-       bool openDB();
+        static bool openDB();
        bool deleteDB();
        bool dbExists() const;
        QSqlError lastError();
        bool createDB() const;
-       int insertPlatform(QString name, QString filename = 0) const;
+        static int insertPlatform(QString name, QString filename = "");
        QString getPlatform(int id) const;
 
 private:
-       QSqlDatabase db;
+        static QSqlDatabase db;
        static const QString DB_FILENAME;
-       QString getDbPath() const;
+        static QString getDbPath();
 };
 
 #endif
index e2d8b8d..2894d3d 100644 (file)
@@ -2,7 +2,7 @@
 #include "dbobjectdialog.h"
 
 DbObjectDialog::DbObjectDialog(QWidget *parent)
-    : QDialog(parent)
+    : EmuFrontDialog(parent)
 {
     editButton = new QPushButton(tr("&Edit")); 
     addButton = new QPushButton(tr("&Add"));
index 1a04772..ea6c740 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef DBOBJECTDIALOG_H
 #define DBOBJECTDIALOG_H
 
-#include <QDialog>
+#include "emufrontdialog.h"
 #include "namedialog.h"
 
 class QPushButton;
@@ -9,7 +9,7 @@ class QModelIndex;
 class QDialogButtonBox;
 class QListView;
 
-class DbObjectDialog : public QDialog 
+class DbObjectDialog : public EmuFrontDialog
 {
     Q_OBJECT
 
diff --git a/src/dialogs/emufrontdialog.cpp b/src/dialogs/emufrontdialog.cpp
new file mode 100644 (file)
index 0000000..0264b65
--- /dev/null
@@ -0,0 +1,9 @@
+
+#include <QtGui>
+#include "emufrontdialog.h"
+
+EmuFrontDialog::EmuFrontDialog(QWidget *parent)
+        : QDialog(parent)
+{
+    errorMessage = new QErrorMessage(this);
+}
diff --git a/src/dialogs/emufrontdialog.h b/src/dialogs/emufrontdialog.h
new file mode 100644 (file)
index 0000000..fae3570
--- /dev/null
@@ -0,0 +1,20 @@
+#ifndef EMUFRONTDIALOG_H
+#define EMUFRONTDIALOG_H
+#include <QDialog>
+
+class QErrorMessage;
+
+class EmuFrontDialog : public QDialog
+{
+        Q_OBJECT
+public:
+        EmuFrontDialog(QWidget *parent);
+protected:
+        QErrorMessage *errorMessage;
+signals:
+        void dbUpdated();
+
+};
+
+
+#endif // EMUFRONTDIALOG_H
index 91189dc..f108977 100644 (file)
@@ -2,7 +2,7 @@
 #include "namedialog.h"
 
 NameDialog::NameDialog(QWidget *parent, bool edit)
-       : QDialog(parent), edit(edit)
+        : EmuFrontDialog(parent), edit(edit)
 {
        nameLabel = new QLabel(tr("&Name: "));  
        nameEdit = new QLineEdit;
@@ -63,6 +63,8 @@ void NameDialog::saveButtonClicked()
                return;
 
        QString name = nameEdit->text().simplified();
+        if (save(name)) emit dbUpdated();
+        else errorMessage->showMessage("Database update failed!");
        /*if (edit) updateDb(name);
        else insertDb(name);*/
 }
index 4003d13..756759d 100644 (file)
@@ -1,13 +1,13 @@
 #ifndef NAMEDIALOG_H
 #define NAMEDIALOG_H
 
-#include <QDialog>
+#include "emufrontdialog.h"
 
 class QLabel;
 class QLineEdit;
 class QPushButton;
 
-class NameDialog : public QDialog
+class NameDialog : public EmuFrontDialog
 {
        Q_OBJECT
 
@@ -24,7 +24,7 @@ protected slots:
        void enableSaveButton(const QString &);
 
 protected:
-       virtual void save() =0;
+        virtual int save(QString name, int = 0, QString fileName = 0) =0;
        QLabel *nameLabel;
        QLineEdit *nameEdit;
        QPushButton *saveButton;
index 21b1ba6..a56de05 100644 (file)
@@ -1,11 +1,21 @@
 #include "platformnamedialog.h"
+#include "../db/databasemanager.h"
 
 PlatformNameDialog::PlatformNameDialog(QWidget *parent, bool edit)
        : NameDialog(parent, edit)
 {
-       setWindowTitle(tr("Set platform name"));
+    setWindowTitle(tr("Set platform name"));
 }
 
-void PlatformNameDialog::save()
+int PlatformNameDialog::save(QString name, int id, QString fileName)
 {
+    if (id)
+    {
+        // return DatabaseManager::updatePlatform(..., ...);
+    }
+    else
+    {
+        return DatabaseManager::insertPlatform(name, fileName);
+    }
+    return 0;
 }
index 272c8c1..5114d51 100644 (file)
@@ -11,7 +11,7 @@ public:
        PlatformNameDialog(QWidget *parent = 0, bool edit = false);
 
 protected:
-       virtual void save();
+        virtual int save(QString name, int id = 0, QString fileName = 0);
 };
 
 #endif
index 3bbaf24..8fd1755 100644 (file)
@@ -1,24 +1,29 @@
-######################################################################
+# #####################################################################
 # Automatically generated by qmake (2.01a) Fri May 14 22:39:13 2010
-######################################################################
-
+# #####################################################################
 TEMPLATE = app
 TARGET = 
-DEPENDPATH += . db dialogs
-INCLUDEPATH += . db dialogs
+DEPENDPATH += . \
+    db \
+    dialogs
+INCLUDEPATH += . \
+    db \
+    dialogs
 QT += sql
 
 # Input
 HEADERS += mainwindow.h \
-           db/databasemanager.h \
-           dialogs/dbobjectdialog.h \
-           dialogs/namedialog.h \
-           dialogs/platformdialog.h \
-           dialogs/platformnamedialog.h
+    db/databasemanager.h \
+    dialogs/dbobjectdialog.h \
+    dialogs/namedialog.h \
+    dialogs/platformdialog.h \
+    dialogs/platformnamedialog.h \
+    dialogs/emufrontdialog.h
 SOURCES += main.cpp \
-           mainwindow.cpp \
-           db/databasemanager.cpp \
-           dialogs/dbobjectdialog.cpp \
-           dialogs/namedialog.cpp \
-           dialogs/platformdialog.cpp \
-           dialogs/platformnamedialog.cpp
+    mainwindow.cpp \
+    db/databasemanager.cpp \
+    dialogs/dbobjectdialog.cpp \
+    dialogs/namedialog.cpp \
+    dialogs/platformdialog.cpp \
+    dialogs/platformnamedialog.cpp \
+    dialogs/emufrontdialog.cpp
index 1308940..8fde801 100644 (file)
@@ -1,6 +1,7 @@
 #include <QtGui>
 #include "mainwindow.h"
 #include "dialogs/platformdialog.h"
+#include "db/databasemanager.h"
 
 MainWindow::MainWindow()
 {
@@ -10,6 +11,7 @@ MainWindow::MainWindow()
     createStatusBar();
     readSettings();
     platformDialog = 0;
+    dbManager = new DatabaseManager;
 }
 
 void MainWindow::createActions()
@@ -70,5 +72,3 @@ bool MainWindow::okToContinue()
 {
     return true;
 }
-
-
index b0217fe..df2b35f 100644 (file)
@@ -6,6 +6,7 @@
 class QAction;
 class PlatformDialog;
 class QLabel;
+class DatabaseManager;
 
 class MainWindow : public QMainWindow
 {
@@ -13,7 +14,7 @@ class MainWindow : public QMainWindow
 
 public:
        MainWindow();
-       //~MainWindow();
+        //~MainWindow()
 
 protected:
        void closeEvent(QCloseEvent *event);
@@ -34,6 +35,7 @@ private:
         QAction *configPlatformAction; 
        QAction *exitAction;
        QLabel *messageLabel;
+        DatabaseManager *dbManager;
 
        // todo ks. s. 46 jatkoa...
 };