Fixed memory loss cases (parent was missing from objects).
[emufront] / src / main.cpp
1 // EmuFront
2 // Copyright 2010 Mikko Keinänen
3 //
4 // This file is part of EmuFront.
5 //
6 //
7 // EmuFront is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License version 2 as published by
9 // the Free Software Foundation and appearing in the file gpl.txt included in the
10 // packaging of this file.
11 //
12 // EmuFront is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 // GNU General Public License for more details.
16 //
17 // You should have received a copy of the GNU General Public License
18 // along with EmuFront.  If not, see <http://www.gnu.org/licenses/>.
19
20 #include <QApplication>
21 #include <QTextStream>
22 #include <QDebug>
23 #include <iostream>
24 #include "mainwindow.h"
25 #include "db/databasemanager.h"
26 #include "db/dbcreator.h"
27
28 int main(int argc, char *argv[])
29 {
30         QApplication app(argc, argv);
31     QTextStream cout(stdout, QIODevice::WriteOnly);
32     QStringList arglst = app.arguments();
33
34     bool reset = arglst.contains("reset", Qt::CaseInsensitive);
35
36
37     if (reset) qDebug() << "Database Reset requested";
38
39     if (DatabaseManager::openDB())
40         cout << " Database opened succesfully!" << endl;
41     else
42     {
43         cout << " Database connection failed!" << endl;
44         exit(1);
45     }
46
47     if (reset || !DbCreator::dbExists())
48         {
49         try
50         {
51             cout << " Database is missing!" << endl;
52             DbCreator dbCreator;
53             dbCreator.createDB();
54             cout << " Database created succesfully!" << endl;
55         }
56         catch (QString str) {
57             cout << str << endl;
58                         exit(1);
59                 }
60     }
61     else cout << " Database exists!" << endl;
62
63     MainWindow mw;
64     mw.show();
65         return app.exec();
66 }