Merge branch 'master' into multimonitor-take2-ui

This commit is contained in:
Cacodemon345
2022-07-10 11:44:58 +06:00
committed by GitHub
40 changed files with 801 additions and 312 deletions

View File

@@ -38,6 +38,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>
@@ -1524,18 +1525,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)

View File

@@ -25,7 +25,7 @@ public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
void showMessage(const QString& header, const QString& message);
void showMessage(int flags, const QString& header, const QString& message);
void getTitle(wchar_t* title);
void blitToWidget(int x, int y, int w, int h, int monitor_index);
QSize getRenderWidgetSize();
@@ -51,7 +51,7 @@ signals:
void setFullscreen(bool state);
void setMouseCapture(bool state);
void showMessageForNonQtThread(const QString& header, const QString& message);
void showMessageForNonQtThread(int flags, const QString& header, const QString& message);
void getTitleForNonQtThread(wchar_t* title);
public slots:
void showSettings();
@@ -108,7 +108,7 @@ private slots:
void on_actionRenderer_options_triggered();
void refreshMediaMenu();
void showMessage_(const QString& header, const QString& message);
void showMessage_(int flags, const QString& header, const QString& message);
void getTitle_(wchar_t* title);
void on_actionMCA_devices_triggered();

View File

@@ -326,7 +326,7 @@ void
plat_pause(int p)
{
static wchar_t oldtitle[512];
wchar_t title[512], paused_msg[64];
wchar_t title[1024], paused_msg[512];
if (p == dopause) {
#ifdef Q_OS_WINDOWS

View File

@@ -94,7 +94,7 @@ int ui_msgbox_header(int flags, void *header, void* message) {
msgBox.exec();
} else {
// else scope it to main_window
main_window->showMessage(hdr, msg);
main_window->showMessage(flags, hdr, msg);
}
return 0;
}