From da9b8f4b64b1065f7b11189358e2676175eb275b Mon Sep 17 00:00:00 2001 From: Cacodemon345 Date: Mon, 20 Dec 2021 00:30:42 +0600 Subject: [PATCH] * Fix files not appearing because of filter strings being wrong * Implement settings save prompt --- src/qt/qt_mediamenu.cpp | 8 ++++---- src/qt/qt_settings.cpp | 27 +++++++++++++++++++++++++++ src/qt/qt_settings.hpp | 3 +++ 3 files changed, 34 insertions(+), 4 deletions(-) diff --git a/src/qt/qt_mediamenu.cpp b/src/qt/qt_mediamenu.cpp index 07b073968..f89c25447 100644 --- a/src/qt/qt_mediamenu.cpp +++ b/src/qt/qt_mediamenu.cpp @@ -241,7 +241,7 @@ void MediaMenu::floppyNewImage(int i) { } void MediaMenu::floppySelectImage(int i, bool wp) { - auto filename = QFileDialog::getOpenFileName(parentWidget, "Open", QString(), "All images (*.0??;*.1??;*.??0;*.86F;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.JSON;*.TD0;*.*FD?;*.MFM;*.XDF);;Advanced sector images (*.IMD;*.JSON;*.TD0);;Basic sector images (*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?);;Flux images (*.FDI);;Surface images (*.86F;*.MFM);;All files (*)"); + auto filename = QFileDialog::getOpenFileName(parentWidget, "Open", QString(), "All images (*.0?? *.1?? *.??0 *.86F *.BIN *.CQ? *.D?? *.FLP *.HDM *.IM? *.JSON *.TD0 *.*FD? *.MFM *.XDF);;Advanced sector images (*.IMD *.JSON *.TD0);;Basic sector images (*.0?? *.1?? *.??0 *.BIN *.CQ? *.D?? *.FLP *.HDM *.IM? *.XDF *.*FD?);;Flux images (*.FDI);;Surface images (*.86F *.MFM);;All files (*)"); floppyMount(i, filename, wp); } @@ -304,7 +304,7 @@ void MediaMenu::cdromMount(int i) { QString dir; QFileInfo fi(cdrom[i].image_path); - auto filename = QFileDialog::getOpenFileName(parentWidget, "CD-ROM images (*.ISO;*.CUE)\0*.ISO;*.CUE\0All files (*.*)\0*.*\0", fi.canonicalPath()); + auto filename = QFileDialog::getOpenFileName(parentWidget, "Open", QString(), "CD-ROM images (*.ISO *.CUE *.iso *.cue);;All files (*)"); if (filename.isEmpty()) { auto* imageMenu = dynamic_cast(cdromMenus[i]->children()[cdromImagePos]); imageMenu->setChecked(false); @@ -386,7 +386,7 @@ void MediaMenu::zipNewImage(int i) { } void MediaMenu::zipSelectImage(int i, bool wp) { - auto filename = QFileDialog::getOpenFileName(parentWidget, "Open", QString(), "ZIP images (*.im?;*.zdi);;All files (*)"); + auto filename = QFileDialog::getOpenFileName(parentWidget, "Open", QString(), "ZIP images (*.im? *.zdi *.IM? *.ZDI);;All files (*)"); zipMount(i, filename, wp); } @@ -474,7 +474,7 @@ void MediaMenu::moNewImage(int i) { } void MediaMenu::moSelectImage(int i, bool wp) { - auto filename = QFileDialog::getOpenFileName(parentWidget, "Open", QString(), "MO images (*.im?;*.mdi);;All files (*)"); + auto filename = QFileDialog::getOpenFileName(parentWidget, "Open", QString(), "MO images (*.im? *.mdi *.IM? *.MDI);;All files (*)"); moMount(i, filename, wp); } diff --git a/src/qt/qt_settings.cpp b/src/qt/qt_settings.cpp index b2716b1e0..5caa68249 100644 --- a/src/qt/qt_settings.cpp +++ b/src/qt/qt_settings.cpp @@ -13,7 +13,14 @@ #include "qt_settingsotherremovable.hpp" #include "qt_settingsotherperipherals.hpp" +extern "C" +{ +#include <86box/86box.h> +} + #include +#include +#include class SettingsModel : public QAbstractListModel { public: @@ -129,3 +136,23 @@ void Settings::save() { otherRemovable->save(); otherPeripherals->save(); } + +void Settings::accept() +{ + if (confirm_save) + { + QMessageBox questionbox(QMessageBox::Icon::Question, "86Box", "Do you want to save the settings?\n\nThis will hard reset the emulated machine.", QMessageBox::Save | QMessageBox::Cancel, this); + QCheckBox *chkbox = new QCheckBox("Do not ask me again"); + questionbox.setCheckBox(chkbox); + chkbox->setChecked(!confirm_save); + QObject::connect(chkbox, &QCheckBox::stateChanged, [](int state) { + confirm_save = (state == Qt::CheckState::Unchecked); + }); + questionbox.exec(); + if (questionbox.result() == QMessageBox::Cancel) { + confirm_save = true; + return; + } + } + QDialog::accept(); +} diff --git a/src/qt/qt_settings.hpp b/src/qt/qt_settings.hpp index 2fa189186..49137b8b7 100644 --- a/src/qt/qt_settings.hpp +++ b/src/qt/qt_settings.hpp @@ -28,6 +28,9 @@ public: ~Settings(); void save(); +protected slots: + void accept() override; + private: Ui::Settings *ui; SettingsMachine* machine;