mirror of
https://github.com/markdavidlong/AppleSAWS.git
synced 2024-06-09 03:29:28 +00:00
68 lines
1.9 KiB
C++
68 lines
1.9 KiB
C++
#include "mainwindow.h"
|
|
#include "ui_mainwindow.h"
|
|
|
|
#include <QFileDialog>
|
|
|
|
MainWindow::MainWindow(QWidget *parent) :
|
|
QMainWindow(parent),
|
|
ui(new Ui::MainWindow)
|
|
{
|
|
ui->setupUi(this);
|
|
m_disk = 0;
|
|
|
|
ui->action_Unload_Disk_Image->setEnabled(false);
|
|
|
|
connect(ui->action_Quit, SIGNAL(triggered()), qApp, SLOT(quit()));
|
|
connect(ui->action_Load_Disk_Image, SIGNAL(triggered()), SLOT(showLoadDialog()));
|
|
connect(ui->action_Unload_Disk_Image, SIGNAL(triggered()), SLOT(unloadDiskFile()));
|
|
connect(this, SIGNAL(diskFileLoading(QString, DiskFile*)),
|
|
ui->catalogWidget, SLOT(prepForNewDisk(QString,DiskFile*)));
|
|
connect(this, SIGNAL(diskFileLoaded(QString,DiskFile*)),
|
|
ui->catalogWidget, SLOT(processNewlyLoadedDisk(QString,DiskFile*)));
|
|
connect(this, SIGNAL(diskFileUnloading(DiskFile*)),
|
|
ui->catalogWidget, SLOT(unloadDisk(DiskFile*)));
|
|
}
|
|
|
|
MainWindow::~MainWindow()
|
|
{
|
|
delete ui;
|
|
}
|
|
|
|
void MainWindow::loadDiskFile(QString filename)
|
|
{
|
|
if (m_disk) {
|
|
unloadDiskFile();
|
|
}
|
|
|
|
m_disk = new DiskFile();
|
|
emit diskFileLoading(filename,m_disk);
|
|
if (m_disk->read(filename)) {
|
|
ui->action_Unload_Disk_Image->setEnabled(true);
|
|
emit diskFileLoaded(filename,m_disk);
|
|
} else {
|
|
emit diskFileLoadFailed(filename,m_disk);
|
|
delete m_disk;
|
|
m_disk = 0;
|
|
}
|
|
}
|
|
|
|
void MainWindow::unloadDiskFile()
|
|
{
|
|
emit diskFileUnloading(m_disk);
|
|
delete m_disk;
|
|
m_disk = 0;
|
|
ui->action_Unload_Disk_Image->setEnabled(false);
|
|
emit diskFileUnloaded();
|
|
}
|
|
|
|
void MainWindow::showLoadDialog()
|
|
{
|
|
QString filename = QFileDialog::getOpenFileName(this,
|
|
tr("Open Disk Image"),
|
|
"/home/mlong/Desktop",
|
|
"Disk Images (*.do *.dsk)");
|
|
if (!filename.isEmpty()) {
|
|
loadDiskFile(filename);
|
|
}
|
|
}
|