platform name dialog.
#include <iostream>
const QString DatabaseManager::DB_FILENAME = QString("my.db.sqlite");
+QSqlDatabase DatabaseManager::db = QSqlDatabase::addDatabase("QSQLITE");
DatabaseManager::DatabaseManager(QObject *parent)
: QObject(parent)
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()
return QFile::remove(getDbPath());
}
-QString DatabaseManager::getDbPath() const
+QString DatabaseManager::getDbPath()
{
QString path;
#ifdef Q_OS_LINUX
return ret;
}
-int DatabaseManager::insertPlatform(QString name, QString filename) const
+int DatabaseManager::insertPlatform(QString name, QString filename)
{
int newId = -1;
bool ret = false;
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
#include "dbobjectdialog.h"
DbObjectDialog::DbObjectDialog(QWidget *parent)
- : QDialog(parent)
+ : EmuFrontDialog(parent)
{
editButton = new QPushButton(tr("&Edit"));
addButton = new QPushButton(tr("&Add"));
#ifndef DBOBJECTDIALOG_H
#define DBOBJECTDIALOG_H
-#include <QDialog>
+#include "emufrontdialog.h"
#include "namedialog.h"
class QPushButton;
class QDialogButtonBox;
class QListView;
-class DbObjectDialog : public QDialog
+class DbObjectDialog : public EmuFrontDialog
{
Q_OBJECT
--- /dev/null
+
+#include <QtGui>
+#include "emufrontdialog.h"
+
+EmuFrontDialog::EmuFrontDialog(QWidget *parent)
+ : QDialog(parent)
+{
+ errorMessage = new QErrorMessage(this);
+}
--- /dev/null
+#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
#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;
return;
QString name = nameEdit->text().simplified();
+ if (save(name)) emit dbUpdated();
+ else errorMessage->showMessage("Database update failed!");
/*if (edit) updateDb(name);
else insertDb(name);*/
}
#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
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;
#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;
}
PlatformNameDialog(QWidget *parent = 0, bool edit = false);
protected:
- virtual void save();
+ virtual int save(QString name, int id = 0, QString fileName = 0);
};
#endif
-######################################################################
+# #####################################################################
# 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
#include <QtGui>
#include "mainwindow.h"
#include "dialogs/platformdialog.h"
+#include "db/databasemanager.h"
MainWindow::MainWindow()
{
createStatusBar();
readSettings();
platformDialog = 0;
+ dbManager = new DatabaseManager;
}
void MainWindow::createActions()
{
return true;
}
-
-
class QAction;
class PlatformDialog;
class QLabel;
+class DatabaseManager;
class MainWindow : public QMainWindow
{
public:
MainWindow();
- //~MainWindow();
+ //~MainWindow()
protected:
void closeEvent(QCloseEvent *event);
QAction *configPlatformAction;
QAction *exitAction;
QLabel *messageLabel;
+ DatabaseManager *dbManager;
// todo ks. s. 46 jatkoa...
};