qt: Make fatal messageboxes have the correct icons

Fatals now exit the emulator properly
This commit is contained in:
Cacodemon345
2022-07-09 13:51:12 +06:00
parent 740a1e0bf3
commit 62fd0feba1
3 changed files with 16 additions and 8 deletions

View File

@@ -36,6 +36,7 @@ extern "C" {
#include <86box/config.h>
#include <86box/keyboard.h>
#include <86box/plat.h>
#include <86box/ui.h>
#include <86box/discord.h>
#include <86box/video.h>
#include <86box/machine.h>
@@ -1448,18 +1449,25 @@ void MainWindow::refreshMediaMenu() {
ui->actionMCA_devices->setVisible(machine_has_bus(machine, MACHINE_BUS_MCA));
}
void MainWindow::showMessage(const QString& header, const QString& message) {
void MainWindow::showMessage(int flags, const QString& header, const QString& message) {
if (QThread::currentThread() == this->thread()) {
showMessage_(header, message);
showMessage_(flags, header, message);
} else {
emit showMessageForNonQtThread(header, message);
emit showMessageForNonQtThread(flags, header, message);
}
}
void MainWindow::showMessage_(const QString &header, const QString &message) {
void MainWindow::showMessage_(int flags, const QString &header, const QString &message) {
QMessageBox box(QMessageBox::Warning, header, message, QMessageBox::NoButton, this);
if (flags & (MBX_FATAL)) {
box.setIcon(QMessageBox::Critical);
}
else if (!(flags & (MBX_ERROR | MBX_WARNING))) {
box.setIcon(QMessageBox::Warning);
}
box.setTextFormat(Qt::TextFormat::RichText);
box.exec();
if (cpu_thread_run == 0) QApplication::exit(-1);
}
void MainWindow::keyPressEvent(QKeyEvent* event)