]> Shamusworld >> Repos - virtualjaguar/blobdiff - src/gui/mainwin.cpp
Successfully integrated ZIP file fishing of images & software
[virtualjaguar] / src / gui / mainwin.cpp
index 69634f65338ed3f9b6f1ba56901ee0ceace7c4f5..7b7a2de3e21735497d76b7164a071566e6f5e783 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);
@@ -87,12 +92,12 @@ MainWin::MainWin()
        tvTypeActs = new QActionGroup(this);
 
        ntscAct = new QAction(QIcon(":/res/generic.png"), tr("NTSC"), tvTypeActs);
-       ntscAct->setStatusTip(tr("Sets OpenGL rendering to GL_NEAREST"));
+       ntscAct->setStatusTip(tr("Sets Jaguar to NTSC mode"));
        ntscAct->setCheckable(true);
        connect(ntscAct, SIGNAL(triggered()), this, SLOT(SetNTSC()));
 
        palAct = new QAction(QIcon(":/res/generic.png"), tr("PAL"), tvTypeActs);
-       palAct->setStatusTip(tr("Sets OpenGL rendering to GL_NEAREST"));
+       palAct->setStatusTip(tr("Sets Jaguar to PAL mode"));
        palAct->setCheckable(true);
        connect(palAct, SIGNAL(triggered()), this, SLOT(SetPAL()));
 
@@ -105,31 +110,36 @@ MainWin::MainWin()
        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);
 
-       fileMenu = menuBar()->addMenu(tr("&Help"));
-       fileMenu->addAction(aboutAct);
+       helpMenu = menuBar()->addMenu(tr("&Help"));
+       helpMenu->addAction(aboutAct);
 
-       QToolBar * toolbar = addToolBar(tr("Stuff"));
+       toolbar = addToolBar(tr("Stuff"));
        toolbar->addAction(powerAct);
+       toolbar->addSeparator();
        toolbar->addAction(x1Act);
        toolbar->addAction(x2Act);
        toolbar->addAction(x3Act);
+       toolbar->addSeparator();
        toolbar->addAction(ntscAct);
        toolbar->addAction(palAct);
+       toolbar->addSeparator();
        toolbar->addAction(blurAct);
 
        //      Create status bar
        statusBar()->showMessage(tr("Ready"));
 
-       ReadSettings();
-       setUnifiedTitleAndToolBarOnMac(true);
-
-       // Set toolbar button based on setting read in (sync the UI)...
+       // Set toolbar buttons/menus based on settings read in (sync the UI)...
        blurAct->setChecked(vjs.glFilter);
        x1Act->setChecked(zoomLevel == 1);
        x2Act->setChecked(zoomLevel == 2);
@@ -230,6 +240,11 @@ void MainWin::ShowAboutWin(void)
        aboutWin->show();
 }
 
+void MainWin::InsertCart(void)
+{
+       filePickWin->show();
+}
+
 void MainWin::ResizeMainWindow(void)
 {
        videoWidget->setFixedSize(zoomLevel * 320, zoomLevel * (vjs.hardwareTypeNTSC ? 240 : 256));
@@ -264,6 +279,10 @@ 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 !!!
+#warning "!!! FIX !!! ROMPath is hardcoded!"
+       strcpy(vjs.ROMPath, "./software");
 }
 
 void MainWin::WriteSettings(void)