spo/ass2/simulator/mainwindow.cpp
2025-12-07 11:55:34 +01:00

47 lines
1.3 KiB
C++

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox>
#include <QFileDialog>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
QAction *actionLoad = new QAction(tr("Load"), this);
ui->menuLoad->addAction(actionLoad);
connect(actionLoad, &QAction::triggered, this, &MainWindow::onLoadTriggered);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_readButton_clicked()
{
bool ok;
unsigned int addr = ui->addressLineEdit->text().toUInt(&ok);
if (!ok) {
QMessageBox::warning(this, "Napaka", "Neveljaven naslov!");
return;
}
try {
unsigned char val = machine.readByte(addr);
ui->valueLabel->setText(QString::number(val));
} catch (const std::out_of_range &e) {
QMessageBox::warning(this, "Napaka", "Naslov je izven meje pomnilnika!");
}
}
void MainWindow::onLoadTriggered() {
QString filename = QFileDialog::getOpenFileName(this, tr("Open Object File"), "", tr("Object Files (*.obj)"));
if (!filename.isEmpty()) {
bool ok = loader.loadObj(machine, filename.toStdString());
if (!ok) {
QMessageBox::warning(this, tr("Error"), tr("Failed to load file"));
}
}
}