File: main_window.cpp

package info (click to toggle)
cen64 0.3%2Bgit20200723-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, sid
  • size: 4,504 kB
  • sloc: ansic: 24,277; cpp: 793; asm: 772; makefile: 14
file content (87 lines) | stat: -rw-r--r-- 3,012 bytes parent folder | download | duplicates (3)
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;
}