]> Shamusworld >> Repos - virtualjaguar/blobdiff - src/gui/mainwin.cpp
Added preliminary M68K disassembly browser.
[virtualjaguar] / src / gui / mainwin.cpp
index cfd3ab9b1a1c90120c9a653a6d5b2542d5e735b5..5eb4f6f13d6deeb62a89e31e29b8dfa3e64eb45c 100644 (file)
 #include "configdialog.h"
 #include "generaltab.h"
 #include "version.h"
-#include "debug/memorybrowser.h"
 #include "debug/cpubrowser.h"
+#include "debug/m68kdasmbrowser.h"
+#include "debug/memorybrowser.h"
+#include "debug/opbrowser.h"
 
 #include "dac.h"
 #include "jaguar.h"
@@ -100,6 +102,8 @@ MainWin::MainWin(bool autoRun): running(true), powerButtonOn(false),
        filePickWin = new FilePickerWindow(this);
        memBrowseWin = new MemoryBrowserWindow(this);
        cpuBrowseWin = new CPUBrowserWindow(this);
+       opBrowseWin = new OPBrowserWindow(this);
+       m68kDasmBrowseWin = new M68KDasmBrowserWindow(this);
 
     videoWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
     setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
@@ -216,6 +220,16 @@ MainWin::MainWin(bool autoRun): running(true), powerButtonOn(false),
 //     memBrowseAct->setCheckable(true);
        connect(cpuBrowseAct, SIGNAL(triggered()), this, SLOT(ShowCPUBrowserWin()));
 
+       opBrowseAct = new QAction(QIcon(":/res/generic.png"), tr("OP Browser"), this);
+       opBrowseAct->setStatusTip(tr("Shows the Jaguar OP browser window"));
+//     memBrowseAct->setCheckable(true);
+       connect(opBrowseAct, SIGNAL(triggered()), this, SLOT(ShowOPBrowserWin()));
+
+       m68kDasmBrowseAct = new QAction(QIcon(":/res/generic.png"), tr("68K Listing Browser"), this);
+       m68kDasmBrowseAct->setStatusTip(tr("Shows the 68K disassembly browser window"));
+//     memBrowseAct->setCheckable(true);
+       connect(m68kDasmBrowseAct, SIGNAL(triggered()), this, SLOT(ShowM68KDasmBrowserWin()));
+
        // Misc. connections...
        connect(filePickWin, SIGNAL(RequestLoad(QString)), this, SLOT(LoadSoftware(QString)));
        connect(filePickWin, SIGNAL(FilePickerHiding()), this, SLOT(Unpause()));
@@ -236,6 +250,8 @@ MainWin::MainWin(bool autoRun): running(true), powerButtonOn(false),
                debugMenu = menuBar()->addMenu(tr("&Debug"));
                debugMenu->addAction(memBrowseAct);
                debugMenu->addAction(cpuBrowseAct);
+               debugMenu->addAction(opBrowseAct);
+               debugMenu->addAction(m68kDasmBrowseAct);
        }
 
        helpMenu = menuBar()->addMenu(tr("&Help"));
@@ -263,6 +279,8 @@ MainWin::MainWin(bool autoRun): running(true), powerButtonOn(false),
                debugbar = addToolBar(tr("&Debug"));
                debugbar->addAction(memBrowseAct);
                debugbar->addAction(cpuBrowseAct);
+               debugbar->addAction(opBrowseAct);
+               debugbar->addAction(m68kDasmBrowseAct);
        }
 
        //      Create status bar
@@ -809,8 +827,18 @@ void MainWin::FrameAdvance(void)
 
 void MainWin::SetFullScreen(bool state/*= true*/)
 {
+#if 0
+       QPoint pos = settings.value("pos", QPoint(200, 200)).toPoint();
+       QSize size = settings.value("size", QSize(400, 400)).toSize();
+       resize(size);
+       move(pos);
+       settings.setValue("pos", pos());
+       settings.setValue("size", size());
+#endif
        if (state)
        {
+               mainWinPosition = pos();
+//             mainWinSize = size();
                menuBar()->hide();
                statusBar()->hide();
                showFullScreen();
@@ -832,6 +860,7 @@ void MainWin::SetFullScreen(bool state/*= true*/)
                statusBar()->show();
                showNormal();
                ResizeMainWindow();
+               move(mainWinPosition);
        }
 
        // For some reason, this doesn't work: If the emu is paused, toggling from
@@ -861,6 +890,20 @@ void MainWin::ShowCPUBrowserWin(void)
 }
 
 
+void MainWin::ShowOPBrowserWin(void)
+{
+       opBrowseWin->show();
+       opBrowseWin->RefreshContents();
+}
+
+
+void MainWin::ShowM68KDasmBrowserWin(void)
+{
+       m68kDasmBrowseWin->show();
+       m68kDasmBrowseWin->RefreshContents();
+}
+
+
 void MainWin::ResizeMainWindow(void)
 {
 //     videoWidget->setFixedSize(zoomLevel * 320, zoomLevel * (vjs.hardwareTypeNTSC ? 240 : 256));
@@ -882,11 +925,11 @@ void MainWin::ResizeMainWindow(void)
 void MainWin::ReadSettings(void)
 {
        QSettings settings("Underground Software", "Virtual Jaguar");
-       QPoint pos = settings.value("pos", QPoint(200, 200)).toPoint();
+       mainWinPosition = settings.value("pos", QPoint(200, 200)).toPoint();
        QSize size = settings.value("size", QSize(400, 400)).toSize();
        resize(size);
-       move(pos);
-       pos = settings.value("cartLoadPos", QPoint(200, 200)).toPoint();
+       move(mainWinPosition);
+       QPoint pos = settings.value("cartLoadPos", QPoint(200, 200)).toPoint();
        filePickWin->move(pos);
 
        zoomLevel = settings.value("zoom", 2).toInt();