Did some fast and dirty refactoring (check later that everything's ok):
[emufront] / src / db / databasemanager.cpp
1 #include "databasemanager.h"
2 #include <QObject>
3 #include <QSqlDatabase>
4 #include <QSqlTableModel>
5 #include <QSqlError>
6 #include <QSqlQuery>
7 #include <QFile>
8 #include <QDir>
9 #include <QVariant>
10 #include <iostream>
11
12 const QString DatabaseManager::DB_FILENAME = QString("my.db.sqlite");
13
14 DatabaseManager::DatabaseManager(QObject *parent)
15         : QObject(parent)
16 {}
17
18 DatabaseManager::~DatabaseManager()
19 {}
20
21 bool DatabaseManager::openDB()
22 {
23     QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
24     db.setDatabaseName(DatabaseManager::getDbPath());
25     return db.open();
26 }
27
28 /*QSqlError DatabaseManager::lastError()
29 {
30         return db.lastError();
31 }*/
32
33 /*bool DatabaseManager::deleteDB()
34 {
35         db.close();
36         return QFile::remove(getDbPath());
37 }*/
38
39 QString DatabaseManager::getDbPath()
40 {
41         QString path;
42 #ifdef Q_OS_LINUX
43         path.append(QDir::home().path());
44         path.append(QDir::separator()).append(DB_FILENAME);
45 #else
46         path.append(DB_FILENAME);       
47 #endif
48         return path;
49 }
50
51 /**
52  * Check if database already exists.
53  * Returns false if doesn't or we don't have a connection.
54 */ 
55 bool DatabaseManager::dbExists()
56 {
57         QSqlQuery query;
58     query.exec("SELECT name FROM sqlite_master WHERE name='platform'");
59     return query.next();
60 }
61
62 bool DatabaseManager::createDB()
63 {
64         bool ret = false;
65     QSqlQuery query;
66
67     ret = query.exec("create table platform "
68                      "(id integer primary key, "
69                      "name varchar(30), "
70                      "filename varchar(125))");
71     /*ret = query.exec("create table media "
72                                                 "(id integer primary key, "
73                                                 "name varchar(30), "
74                                                 "filename varchar(125))");*/
75         return ret;
76 }
77
78 void DatabaseManager::resetModel()
79 {
80     if (!sqlTableModel) return;
81     sqlTableModel->setFilter("");
82     sqlTableModel->select();
83 }