Renamed database file.
[emufront] / src / mainwindow.cpp
index 3c009c7..d5d5583 100644 (file)
 #include "dialogs/mediaimagepathmaindialog.h"
 #include "dialogs/setupmaindialog.h"
 #include "dialogs/executablemaindialog.h"
+#include "utils/datfileutil.h"
 #include "db/databasemanager.h"
+#include "db/dbconfig.h"
+
+QString MainWindow::aboutStr = trUtf8(
+        "<h2>EmuFront</h2>"
+        "<p>&copy; 2010 Mikko Keinänen</p>"
+        "<p>mikko.keinanen@gmail.com</p>"
+        "<p>EmuFront is free software: you can redistribute it and/or modify "
+        "it under the terms of the GNU General Public License version 2 as published by "
+        "the Free Software Foundation.</p>"
+);
+
+QString MainWindow::aboutTitle = tr("About EmuFront");
 
 MainWindow::MainWindow()
 {
     setWindowTitle("EmuFront");
-    launcher = new EmuLauncher(this);
+    tmpDirFilePath = DbConfig::getTmpDir();
+    if (tmpDirFilePath.isEmpty())
+        tmpDirFilePath = QDir::homePath();
+    qDebug() << "Temporary dir is " << tmpDirFilePath;
+    launcher = new EmuLauncher(this, tmpDirFilePath);
     setCentralWidget(launcher);
     createActions();
     createMenus();
@@ -41,7 +58,6 @@ MainWindow::MainWindow()
     mediaImagePathDialog = 0;
     setupMainDialog = 0;
     executableMainDialog = 0;
-    connectSignals();
 }
 
 void MainWindow::connectSignals()
@@ -72,10 +88,22 @@ void MainWindow::createActions()
     configEmulatorAction->setStatusTip(tr("Configure emulators"));
     connect(configEmulatorAction, SIGNAL(triggered()), this, SLOT(configureEmulators()));
 
+    configTmpDirAction = new QAction(tr("&Temp dir"), this);
+    configTmpDirAction->setStatusTip(tr("Configure directory for temporary files."));
+    connect(configTmpDirAction, SIGNAL(triggered()), this, SLOT(configureTmpDir()));
+
+    manageDatFilesAction = new QAction(tr("&Manage dats"), this);
+    manageDatFilesAction->setStatusTip(tr("Read dat files to database."));
+    connect(manageDatFilesAction, SIGNAL(triggered()), this, SLOT(manageDatFiles()));
+
     exitAction = new QAction(tr("&Exit"), this);
     exitAction->setShortcut(tr("Ctrl+Q"));
     exitAction->setStatusTip(tr("Exit EmuFront"));
     connect(exitAction, SIGNAL(triggered()), this, SLOT(close()));
+
+    aboutAction = new QAction(tr("&About"), this);
+    aboutAction->setStatusTip(tr("About EmuFront"));
+    connect(aboutAction, SIGNAL(triggered()), this, SLOT(about()));
 }
 
 void MainWindow::configurePlatforms()
@@ -128,6 +156,30 @@ void MainWindow::configureEmulators()
     executableMainDialog->refreshDataModel();
 }
 
+void MainWindow::configureTmpDir()
+{
+    /*if (!tmpFolderDialog) {
+        tmpFolderDialog = new TmpFolderEditDialog(this, tmpDirFilePath);
+    }
+    activateDialog(tmpFolderDialog);*/
+
+    QString fpath = QFileDialog::getExistingDirectory(this,
+        tr("Select a directory"), tmpDirFilePath,
+        QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
+    QDir d(fpath);
+    if (d.exists() && d.isReadable()) {
+        tmpDirFilePath = fpath;
+        DbConfig::setTmpDir(tmpDirFilePath);
+        launcher->setTmpDirPath(tmpDirFilePath);
+    }
+}
+
+void MainWindow::manageDatFiles()
+{
+    DatFileUtil dfu;
+    dfu.open();
+}
+
 void MainWindow::activateDialog(EmuFrontDialog* dia) const
 {
     dia->show();
@@ -141,11 +193,18 @@ void MainWindow::createMenus()
     fileMenu->addAction(exitAction);
 
     configMenu = menuBar()->addMenu(tr("&Config"));
+    configMenu->addAction(configTmpDirAction);
+    configMenu->addSeparator();
     configMenu->addAction(configPlatformAction);
     configMenu->addAction(configMediaTypeAction);
-    configMenu->addAction(configMediaImagePathAction);
     configMenu->addAction(configSetupAction);
+    configMenu->addAction(configMediaImagePathAction);
     configMenu->addAction(configEmulatorAction);
+    configMenu->addSeparator();
+    configMenu->addAction(manageDatFilesAction);
+
+    helpMenu = menuBar()->addMenu(tr("&Help"));
+    helpMenu->addAction(aboutAction);
 }
 
 void MainWindow::createStatusBar()
@@ -179,3 +238,8 @@ void MainWindow::updateData()
     qDebug() << "MainWindow::updateData()";
     launcher->updateData();
 }
+
+void MainWindow::about()
+{
+    QMessageBox::about(this, aboutTitle, aboutStr );
+}