This commit is contained in:
ts-korhonen
2022-02-04 22:26:48 +02:00
4 changed files with 64 additions and 43 deletions

View File

@@ -30,7 +30,9 @@ void FileField::on_pushButton_clicked() {
fileName = QFileDialog::getOpenFileName(this, QString(), QString(), filter_, &selectedFilter_); fileName = QFileDialog::getOpenFileName(this, QString(), QString(), filter_, &selectedFilter_);
} }
fileName_ = fileName; if (!fileName.isNull()) {
ui->label->setText(fileName); fileName_ = fileName;
emit fileSelected(fileName); ui->label->setText(fileName);
emit fileSelected(fileName);
}
} }

View File

@@ -104,10 +104,12 @@ MainWindow::MainWindow(QWidget *parent) :
{ {
/* get the percentage and mouse message, TODO: refactor ui_window_title() */ /* get the percentage and mouse message, TODO: refactor ui_window_title() */
auto parts = title.split(" - "); auto parts = title.split(" - ");
if (parts.size() < 5) if (parts.size() >= 2) {
toolbar_label->setText(parts[1]); if (parts.size() < 5)
else toolbar_label->setText(parts[1]);
toolbar_label->setText(QString("%1 - %2").arg(parts[1], parts.last())); else
toolbar_label->setText(QString("%1 - %2").arg(parts[1], parts.last()));
}
} }
#endif #endif
ui->actionPause->setChecked(dopause); ui->actionPause->setChecked(dopause);
@@ -346,11 +348,11 @@ MainWindow::MainWindow(QWidget *parent) :
#ifdef MTR_ENABLED #ifdef MTR_ENABLED
{ {
ui->menuTools->addSeparator(); ui->menuTools->addSeparator();
static auto actionBegin_trace = ui->menuTools->addAction(tr("Begin trace")); ui->actionBegin_trace->setVisible(true);
static auto actionEnd_trace = ui->menuTools->addAction(tr("End trace")); ui->actionEnd_trace->setVisible(true);
actionBegin_trace->setShortcut(QKeySequence(Qt::Key_Control + Qt::Key_T)); ui->actionBegin_trace->setShortcut(QKeySequence(Qt::Key_Control + Qt::Key_T));
actionEnd_trace->setShortcut(QKeySequence(Qt::Key_Control + Qt::Key_T)); ui->actionEnd_trace->setShortcut(QKeySequence(Qt::Key_Control + Qt::Key_T));
actionEnd_trace->setDisabled(true); ui->actionEnd_trace->setDisabled(true);
static auto init_trace = [&] static auto init_trace = [&]
{ {
mtr_init("trace.json"); mtr_init("trace.json");
@@ -362,43 +364,28 @@ MainWindow::MainWindow(QWidget *parent) :
mtr_shutdown(); mtr_shutdown();
}; };
#ifdef Q_OS_MACOS #ifdef Q_OS_MACOS
actionBegin_trace->setShortcutVisibleInContextMenu(true); ui->actionBegin_trace->setShortcutVisibleInContextMenu(true);
actionEnd_trace->setShortcutVisibleInContextMenu(true); ui->actionEnd_trace->setShortcutVisibleInContextMenu(true);
#endif #endif
static bool trace = false; static bool trace = false;
connect(actionBegin_trace, &QAction::triggered, this, [this] connect(ui->actionBegin_trace, &QAction::triggered, this, [this]
{ {
if (trace) return; if (trace) return;
actionBegin_trace->setDisabled(true); ui->actionBegin_trace->setDisabled(true);
actionEnd_trace->setDisabled(false); ui->actionEnd_trace->setDisabled(false);
init_trace(); init_trace();
trace = true; trace = true;
}); });
connect(actionEnd_trace, &QAction::triggered, this, [this] connect(ui->actionEnd_trace, &QAction::triggered, this, [this]
{ {
if (!trace) return; if (!trace) return;
actionBegin_trace->setDisabled(false); ui->actionBegin_trace->setDisabled(false);
actionEnd_trace->setDisabled(true); ui->actionEnd_trace->setDisabled(true);
shutdown_trace(); shutdown_trace();
trace = false; trace = false;
}); });
} }
#endif #endif
#ifdef ENABLE_VRAM_DUMP
{
#ifndef MTR_ENABLED
ui->menuTools->addSeparator();
#endif
auto actionDump_video_RAM = ui->menuTools->addAction(tr("Dump &video RAM"));
actionDump_video_RAM->setShortcut(QKeySequence(Qt::Key_Control + Qt::Key_F1));
#ifdef Q_OS_MACOS
actionDump_video_RAM->setShortcutVisibleInContextMenu(true);
#endif
connect(actionDump_video_RAM, &QAction::triggered, this, [this]
{ svga_dump_vram(); });
}
#endif
} }
void MainWindow::closeEvent(QCloseEvent *event) { void MainWindow::closeEvent(QCloseEvent *event) {

View File

@@ -47,7 +47,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>724</width> <width>724</width>
<height>21</height> <height>22</height>
</rect> </rect>
</property> </property>
<widget class="QMenu" name="menuAction"> <widget class="QMenu" name="menuAction">
@@ -79,6 +79,9 @@
<addaction name="actionSound_gain"/> <addaction name="actionSound_gain"/>
<addaction name="separator"/> <addaction name="separator"/>
<addaction name="actionPreferences"/> <addaction name="actionPreferences"/>
<addaction name="separator"/>
<addaction name="actionBegin_trace"/>
<addaction name="actionEnd_trace"/>
</widget> </widget>
<widget class="QMenu" name="menuView"> <widget class="QMenu" name="menuView">
<property name="title"> <property name="title">
@@ -666,6 +669,34 @@
<string>ACPI Shutdown</string> <string>ACPI Shutdown</string>
</property> </property>
</action> </action>
<action name="actionBegin_trace">
<property name="text">
<string>Begin trace</string>
</property>
<property name="shortcut">
<string>Ctrl+T</string>
</property>
<property name="visible">
<bool>false</bool>
</property>
<property name="shortcutVisibleInContextMenu">
<bool>false</bool>
</property>
</action>
<action name="actionEnd_trace">
<property name="text">
<string>End trace</string>
</property>
<property name="shortcut">
<string>Ctrl+T</string>
</property>
<property name="visible">
<bool>false</bool>
</property>
<property name="shortcutVisibleInContextMenu">
<bool>false</bool>
</property>
</action>
</widget> </widget>
<customwidgets> <customwidgets>
<customwidget> <customwidget>

View File

@@ -143,7 +143,10 @@ void MediaMenu::cassetteNewImage() {
if (fileinfo.suffix().isEmpty()) { if (fileinfo.suffix().isEmpty()) {
filename.append(".cas"); filename.append(".cas");
} }
cassetteMount(filename, false); if (!filename.isNull()) {
if (filename.isEmpty()) cassetteEject();
else cassetteMount(filename, false);
}
} }
void MediaMenu::cassetteSelectImage(bool wp) { void MediaMenu::cassetteSelectImage(bool wp) {
@@ -155,7 +158,7 @@ void MediaMenu::cassetteSelectImage(bool wp) {
tr("All files") % tr("All files") %
util::DlgFilter({ "*" }, true)); util::DlgFilter({ "*" }, true));
cassetteMount(filename, wp); if (!filename.isEmpty()) cassetteMount(filename, wp);
} }
void MediaMenu::cassetteMount(const QString& filename, bool wp) { void MediaMenu::cassetteMount(const QString& filename, bool wp) {
@@ -276,7 +279,7 @@ void MediaMenu::floppySelectImage(int i, bool wp) {
tr("All files") % tr("All files") %
util::DlgFilter({ "*" }, true)); util::DlgFilter({ "*" }, true));
floppyMount(i, filename, wp); if (!filename.isEmpty()) floppyMount(i, filename, wp);
} }
void MediaMenu::floppyMount(int i, const QString &filename, bool wp) { void MediaMenu::floppyMount(int i, const QString &filename, bool wp) {
@@ -349,8 +352,6 @@ void MediaMenu::cdromMount(int i) {
util::DlgFilter({ "*" }, true)); util::DlgFilter({ "*" }, true));
if (filename.isEmpty()) { if (filename.isEmpty()) {
auto* imageMenu = dynamic_cast<QAction*>(cdromMenus[i]->children()[cdromImagePos]);
imageMenu->setChecked(false);
return; return;
} }
QByteArray fn = filename.toUtf8().data(); QByteArray fn = filename.toUtf8().data();
@@ -439,7 +440,7 @@ void MediaMenu::zipSelectImage(int i, bool wp) {
tr("All files") % tr("All files") %
util::DlgFilter({ "*" }, true)); util::DlgFilter({ "*" }, true));
zipMount(i, filename, wp); if (!filename.isEmpty()) zipMount(i, filename, wp);
} }
void MediaMenu::zipMount(int i, const QString &filename, bool wp) { void MediaMenu::zipMount(int i, const QString &filename, bool wp) {
@@ -536,7 +537,7 @@ void MediaMenu::moSelectImage(int i, bool wp) {
tr("All files") % tr("All files") %
util::DlgFilter({ "*", }, true)); util::DlgFilter({ "*", }, true));
moMount(i, filename, wp); if (!filename.isEmpty()) moMount(i, filename, wp);
} }
void MediaMenu::moMount(int i, const QString &filename, bool wp) { void MediaMenu::moMount(int i, const QString &filename, bool wp) {