summaryrefslogtreecommitdiff
path: root/gui/gui.cc
diff options
context:
space:
mode:
authorbd <bdunahu@operationnull.com>2025-04-27 16:00:23 -0400
committerbd <bdunahu@operationnull.com>2025-04-27 16:00:23 -0400
commit3233a150e2024e9be51623f606bf15527a76cf1e (patch)
tree23adac7eb45c2b3eab832f08d496a85c87313c37 /gui/gui.cc
parent07c618096daec422c42ee1a379200101d0d349cc (diff)
parentd9832fa5f24dc0e7df41b61e5d0181adbb4edf77 (diff)
Merge remote-tracking branch 'origin/bdunahu' into vector_ext
Diffstat (limited to 'gui/gui.cc')
-rw-r--r--gui/gui.cc23
1 files changed, 10 insertions, 13 deletions
diff --git a/gui/gui.cc b/gui/gui.cc
index 4d558d4..63bb4f3 100644
--- a/gui/gui.cc
+++ b/gui/gui.cc
@@ -18,7 +18,7 @@
#include "gui.h"
#include "./ui_gui.h"
#include "digitlabeldelegate.h"
-#include "dynamicwaysentry.h"
+#include "cachewaysselector.h"
#include "messages.h"
#include "storageview.h"
#include "registerview.h"
@@ -73,6 +73,8 @@ GUI::GUI(QWidget *parent) : QMainWindow(parent), ui(new Ui::GUI)
connect(worker, &Worker::wb_info, this, &GUI::onWorkerWriteBackInfo);
+ connect(worker, &Worker::steps_done, this, &GUI::onWorkerStepsDone);
+
// Display cache
connect(worker, &Worker::storage, this, &GUI::onWorkerShowStorage);
@@ -140,7 +142,6 @@ void GUI::on_worker_refresh_gui(int cycles, int pc)
{
ui->p_counter->set_value(pc);
ui->cycle_counter->set_value(cycles);
- this->set_status(get_waiting, "idle");
}
void GUI::onWorkerFetchInfo(const InstrDTO *i)
@@ -216,6 +217,8 @@ void GUI::onWorkerWriteBackInfo(const InstrDTO *i)
}
}
+void GUI::onWorkerStepsDone() { this->set_status(get_waiting, "idle"); }
+
void GUI::onWorkerShowStorage(const QVector<QVector<int>> &data, int i)
{
this->tab_boxes.at(i)->set_data(data);
@@ -302,21 +305,15 @@ void GUI::on_config_clicked()
{
std::vector<unsigned int> ways;
QStringList entries;
- signed int i;
- DynamicWaysEntry *dwe = ui->cache_way_selector;
+ CacheWaysSelector *cws = ui->cache_ways_selector;
- for (const QString &s : dwe->get_entries()) {
+ for (int i : cws->values()) {
- if (s.isEmpty())
+ // invalid
+ if (i == -1)
continue;
- i = dwe->parse_valid_way(s);
- if (i >= 0) {
- ways.push_back((unsigned int)i);
- } else {
- this->set_status(get_bad_cache, "angry");
- return;
- }
+ ways.push_back((unsigned int)i);
}
if (this->p.empty()) {