From 8025ccc2091228f9d089532852a2380f5f5a80b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karel=20Ko=C4=8D=C3=AD?= Date: Fri, 5 Jan 2018 17:08:04 +0100 Subject: Add template for Memory dock For now a memory view is missing so there is no content. --- qtmips_gui/MainWindow.ui | 10 ++++++++-- qtmips_gui/mainwindow.cpp | 28 ++++++++++++++-------------- qtmips_gui/mainwindow.h | 3 +++ qtmips_gui/memorydock.cpp | 21 +++++++++++++++++++++ qtmips_gui/memorydock.h | 19 +++++++++++++++++++ qtmips_gui/programdock.cpp | 2 +- qtmips_gui/qtmips_gui.pro | 6 ++++-- 7 files changed, 70 insertions(+), 19 deletions(-) create mode 100644 qtmips_gui/memorydock.cpp create mode 100644 qtmips_gui/memorydock.h diff --git a/qtmips_gui/MainWindow.ui b/qtmips_gui/MainWindow.ui index 0ab35d1..e21d22e 100644 --- a/qtmips_gui/MainWindow.ui +++ b/qtmips_gui/MainWindow.ui @@ -230,12 +230,18 @@ - Data Memory + Memory + + + Data memory view - Program memory + Program + + + Program memory view diff --git a/qtmips_gui/mainwindow.cpp b/qtmips_gui/mainwindow.cpp index 6b8d19b..a286f0d 100644 --- a/qtmips_gui/mainwindow.cpp +++ b/qtmips_gui/mainwindow.cpp @@ -18,6 +18,8 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { registers->hide(); program = new ProgramDock(this); program->hide(); + memory = new MemoryDock(this); + memory->hide(); cache_content = new CacheContentDock(this); cache_content->hide(); cache_statictics = new CacheStatisticsDock(this); @@ -36,6 +38,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { connect(ui->actionNew, SIGNAL(triggered(bool)), this, SLOT(new_machine())); connect(ui->actionRegisters, SIGNAL(triggered(bool)), this, SLOT(show_registers())); connect(ui->actionProgram_memory, SIGNAL(triggered(bool)), this, SLOT(show_program())); + connect(ui->actionMemory, SIGNAL(triggered(bool)), this, SLOT(show_memory())); connect(ui->actionCache, SIGNAL(triggered(bool)), this, SLOT(show_cache_content())); connect(ui->actionCache_statistics, SIGNAL(triggered(bool)), this, SLOT(show_cache_statictics())); connect(ui->ips1, SIGNAL(toggled(bool)), this, SLOT(set_speed())); @@ -59,6 +62,8 @@ MainWindow::~MainWindow() { delete cache_content; delete cache_statictics; delete registers; + delete program; + delete memory; delete ui; if (machine != nullptr) delete machine; @@ -104,21 +109,16 @@ void MainWindow::new_machine() { ndialog->show(); } -void MainWindow::show_cache_content() { - show_dockwidget(cache_content); -} - -void MainWindow::show_cache_statictics() { - show_dockwidget(cache_statictics); -} +#define SHOW_HANDLER(NAME) void MainWindow::show_##NAME() { \ + show_dockwidget(NAME); \ + } \ -void MainWindow::show_registers() { - show_dockwidget(registers); -} - -void MainWindow::show_program() { - show_dockwidget(program); -} +SHOW_HANDLER(registers) +SHOW_HANDLER(program) +SHOW_HANDLER(memory) +SHOW_HANDLER(cache_content) +SHOW_HANDLER(cache_statictics) +#undef SHOW_HANDLER void MainWindow::set_speed() { if (machine == nullptr) diff --git a/qtmips_gui/mainwindow.h b/qtmips_gui/mainwindow.h index 1afe137..9431515 100644 --- a/qtmips_gui/mainwindow.h +++ b/qtmips_gui/mainwindow.h @@ -10,6 +10,7 @@ #include "cachestatistics.h" #include "registersdock.h" #include "programdock.h" +#include "memorydock.h" #include "qtmipsmachine.h" #include "machineconfig.h" @@ -31,6 +32,7 @@ public slots: void new_machine(); void show_registers(); void show_program(); + void show_memory(); void show_cache_content(); void show_cache_statictics(); // Actions - execution speed @@ -53,6 +55,7 @@ private: RegistersDock *registers; ProgramDock *program; + MemoryDock *memory; // TODO implement cahce docks CacheContentDock *cache_content; CacheStatisticsDock *cache_statictics; diff --git a/qtmips_gui/memorydock.cpp b/qtmips_gui/memorydock.cpp new file mode 100644 index 0000000..0ccca3f --- /dev/null +++ b/qtmips_gui/memorydock.cpp @@ -0,0 +1,21 @@ +#include "memorydock.h" + +MemoryDock::MemoryDock(QWidget *parent) : QDockWidget(parent) { + // TODO setup memory view + + setObjectName("Memory"); + setWindowTitle("Memory"); +} + +MemoryDock::~MemoryDock() { + +} + +void MemoryDock::setup(machine::QtMipsMachine *machine) { + if (machine == nullptr) + // TODO reset memory view + return; + + // TODO setup memory view + +} diff --git a/qtmips_gui/memorydock.h b/qtmips_gui/memorydock.h new file mode 100644 index 0000000..bec8a62 --- /dev/null +++ b/qtmips_gui/memorydock.h @@ -0,0 +1,19 @@ +#ifndef MEMORYDOCK_H +#define MEMORYDOCK_H + +#include +#include "qtmipsmachine.h" + +class MemoryDock : public QDockWidget { + Q_OBJECT +public: + MemoryDock(QWidget *parent); + ~MemoryDock(); + + void setup(machine::QtMipsMachine *machine); + +private: + // TODO memory view +}; + +#endif // MEMORYDOCK_H diff --git a/qtmips_gui/programdock.cpp b/qtmips_gui/programdock.cpp index 240fb0a..0f2b166 100644 --- a/qtmips_gui/programdock.cpp +++ b/qtmips_gui/programdock.cpp @@ -43,7 +43,7 @@ ProgramDock::ProgramDock(QWidget *parent) : QDockWidget(parent) { setWidget(widg); setObjectName("Program"); - setWindowTitle("Program memory"); + setWindowTitle("Program"); } ProgramDock::~ProgramDock() { diff --git a/qtmips_gui/qtmips_gui.pro b/qtmips_gui/qtmips_gui.pro index c4bff75..74a5f05 100644 --- a/qtmips_gui/qtmips_gui.pro +++ b/qtmips_gui/qtmips_gui.pro @@ -26,7 +26,8 @@ SOURCES += \ coreview/latch.cpp \ coreview/alu.cpp \ coreview/memory.cpp \ - programdock.cpp + programdock.cpp \ + memorydock.cpp HEADERS += \ mainwindow.h \ @@ -41,7 +42,8 @@ HEADERS += \ coreview/latch.h \ coreview/alu.h \ coreview/memory.h \ - programdock.h + programdock.h \ + memorydock.h FORMS += \ NewDialog.ui \ -- cgit v1.2.3