X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fgui%2Fmainwin.cpp;h=3d9276f3d77d309a28cacc285acb271b1a635bec;hb=25cc16d819c81e08d2e21b57720dd4ea08ae9e25;hp=69634f65338ed3f9b6f1ba56901ee0ceace7c4f5;hpb=be0b102eec76acf80acce7cd3de8e690e27564d4;p=virtualjaguar diff --git a/src/gui/mainwin.cpp b/src/gui/mainwin.cpp index 69634f6..3d9276f 100644 --- a/src/gui/mainwin.cpp +++ b/src/gui/mainwin.cpp @@ -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,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)