]> Shamusworld >> Repos - virtualjaguar/blobdiff - src/gui/mainwin.cpp
Added beginnings of ROM directory scanning functionality
[virtualjaguar] / src / gui / mainwin.cpp
index 40af9eb4b1ad31e6820a7aa8c5ca266a2c7d6c1a..5aae995359e54042e37fbbd32b7fa735dd0be80a 100644 (file)
@@ -30,6 +30,7 @@
 #include "glwidget.h"
 #include "about.h"
 #include "settings.h"
+#include "filepicker.h"
 
 // The way BSNES controls things is by setting a timer with a zero
 // timeout, sleeping if not emulating anything. Seems there has to be a
@@ -50,7 +51,11 @@ MainWin::MainWin()
        setWindowIcon(QIcon(":/res/vj.xpm"));
        setWindowTitle("Virtual Jaguar v2.0.0");
 
+       ReadSettings();
+       setUnifiedTitleAndToolBarOnMac(true);
+
        aboutWin = new AboutWindow(this);
+       filePickWin = new FilePickerWindow(this);
 
     videoWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
     setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
@@ -102,13 +107,17 @@ MainWin::MainWin()
        connect(blurAct, SIGNAL(triggered()), this, SLOT(ToggleBlur()));
 
        aboutAct = new QAction(QIcon(":/res/generic.png"), tr("&About..."), this);
-       aboutAct->setStatusTip(tr("Shows self-serving credits"));
-//     aboutAct->setCheckable(true);
+       aboutAct->setStatusTip(tr("Blatant self-promotion"));
        connect(aboutAct, SIGNAL(triggered()), this, SLOT(ShowAboutWin()));
 
+       filePickAct = new QAction(QIcon(":/res/generic.png"), tr("Insert Cartridge..."), this);
+       filePickAct->setStatusTip(tr("Insert a cartridge into Virtual Jaguar"));
+       connect(filePickAct, SIGNAL(triggered()), this, SLOT(InsertCart()));
+
        // Create menus & toolbars
 
        fileMenu = menuBar()->addMenu(tr("&File"));
+       fileMenu->addAction(filePickAct);
        fileMenu->addAction(powerAct);
        fileMenu->addAction(quitAppAct);
 
@@ -127,9 +136,6 @@ MainWin::MainWin()
        //      Create status bar
        statusBar()->showMessage(tr("Ready"));
 
-       ReadSettings();
-       setUnifiedTitleAndToolBarOnMac(true);
-
        // Set toolbar button based on setting read in (sync the UI)...
        blurAct->setChecked(vjs.glFilter);
        x1Act->setChecked(zoomLevel == 1);
@@ -139,7 +145,7 @@ MainWin::MainWin()
        ntscAct->setChecked(vjs.hardwareTypeNTSC);
        palAct->setChecked(!vjs.hardwareTypeNTSC);
 
-       // Do this in case original size isn't correct
+       // Do this in case original size isn't correct (mostly for the first-run case)
        ResizeMainWindow();
 
        // Set up timer based loop for animation...
@@ -229,10 +235,11 @@ void MainWin::ToggleBlur(void)
 void MainWin::ShowAboutWin(void)
 {
        aboutWin->show();
-//     QMessageBox::about(this, tr("About Application"),
-//             tr("The <b>Application</b> example demonstrates how to "
-//             "write modern GUI applications using Qt, with a menu bar, "
-//             "toolbars, and a status bar."));
+}
+
+void MainWin::InsertCart(void)
+{
+       filePickWin->show();
 }
 
 void MainWin::ResizeMainWindow(void)
@@ -269,6 +276,9 @@ void MainWin::ReadSettings(void)
        vjs.useOpenGL        = settings.value("useOpenGL", true).toBool();
        vjs.glFilter         = settings.value("glFilterType", 0).toInt();
        vjs.renderType       = settings.value("renderType", 0).toInt();
+
+       // Hardcoded, !!! FIX !!!
+       strcpy(vjs.ROMPath, "./roms");
 }
 
 void MainWin::WriteSettings(void)