1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
//
// main_window.cpp: CEN64D main window.
//
// CEN64D: Cycle-Accurate Nintendo 64 Debugger
// Copyright (C) 2015, Tyler J. Stachecki.
//
// This file is subject to the terms and conditions defined in
// 'LICENSE', which is part of this source code package.
//
#include "main_window.h"
#include "ui_main_window.h"
#include <QMessageBox>
#include <QKeySequence>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent), ui(new Ui::MainWindow) {
ui->setupUi(this);
setupActions();
setupMenuBar(menuBar());
memoryWindow = new MemoryWindow(viewMemoryWindowAction, false);
rdpWindow = new RDPWindow(viewRDPWindowAction, false);
rspWindow = new RSPWindow(viewRSPWindowAction, false);
vr4300Window = new VR4300Window(viewVR4300WindowAction, true);
// Prevent any of the non-critical windows from keeping us alive.
memoryWindow->setAttribute(Qt::WA_QuitOnClose, false);
rdpWindow->setAttribute(Qt::WA_QuitOnClose, false);
rspWindow->setAttribute(Qt::WA_QuitOnClose, false);
vr4300Window->setAttribute(Qt::WA_QuitOnClose, false);
statusBar()->showMessage(tr("Connecting to host...."));
networkHandle = new NetworkHandle(this);
statusBar()->showMessage(tr("Debugger ready."));
}
void MainWindow::setupActions() {
fileQuitAction = new QAction(tr("&Quit"), this);
fileQuitAction->setShortcuts(QKeySequence::Quit);
fileQuitAction->setStatusTip("Quit the application.");
connect(fileQuitAction, SIGNAL(triggered()), this, SLOT(close()));
viewMemoryWindowAction = new QAction(tr("&Memory"), this);
viewMemoryWindowAction->setStatusTip("Toggle the memory view window.");
viewMemoryWindowAction->setCheckable(true);
viewRDPWindowAction = new QAction(tr("R&DP"), this);
viewRDPWindowAction->setStatusTip("Toggle the RDP view window.");
viewRDPWindowAction->setCheckable(true);
viewRSPWindowAction = new QAction(tr("R&SP"), this);
viewRSPWindowAction->setStatusTip("Toggle the RSP view window.");
viewRSPWindowAction->setCheckable(true);
viewVR4300WindowAction = new QAction(tr("&VR4300"), this);
viewVR4300WindowAction->setStatusTip("Toggle the VR4300 view window.");
viewVR4300WindowAction->setCheckable(true);
helpAboutAction = new QAction(tr("&About"), this);
helpAboutAction->setStatusTip("Show the about window.");
connect(helpAboutAction, SIGNAL(triggered()), this, SLOT(showAboutWindow()));
}
void MainWindow::setupMenuBar(QMenuBar *menuBar) {
fileMenu = menuBar->addMenu(tr("&File"));
viewMenu = menuBar->addMenu(tr("&View"));
helpMenu = menuBar->addMenu(tr("&Help"));
fileMenu->addAction(fileQuitAction);
viewMenu->addAction(viewMemoryWindowAction);
viewMenu->addAction(viewRDPWindowAction);
viewMenu->addAction(viewRSPWindowAction);
viewMenu->addAction(viewVR4300WindowAction);
helpMenu->addAction(helpAboutAction);
}
void MainWindow::showAboutWindow() {
QMessageBox::about(this, tr("About CEN64 Debugger"),
tr("This is <b>CEN64</b>'s official debugger."));
}
MainWindow::~MainWindow() {
delete ui;
}
|