Qt: Skip emulator-specific things on startup if starting in manager mode:

- Don't try to read 86box.cfg;
- Don't initialize subsystems that aren't used in manager mode;
- Ignore `-I` or `-X` command-line options;
- Don't block keyboard navigation and mnemonics in menus;
- Don't perform UUID/WinBox/cpu_override checks.
This commit is contained in:
Alexander Babikov
2025-07-27 04:24:02 +05:00
parent 2dbdfae819
commit 7dcf25bf3a
3 changed files with 61 additions and 52 deletions

View File

@@ -1056,6 +1056,8 @@ usage:
vmm_enabled = 1;
pclog("# VM Manager enabled. Path: %s\n", vmm_path);
}
if (!vmm_enabled) {
/*
* We are about to read the configuration file, which MAY
* put data into global variables (the hard- and floppy
@@ -1099,6 +1101,7 @@ usage:
fn[i] = NULL;
}
}
}
/* Load the desired language */
if (lang_init)

View File

@@ -561,13 +561,11 @@ main(int argc, char *argv[])
}
#endif
qt_set_sequence_auto_mnemonic(false);
Q_INIT_RESOURCE(qt_resources);
Q_INIT_RESOURCE(qt_translations);
QSurfaceFormat fmt = QSurfaceFormat::defaultFormat();
fmt.setSwapInterval(0);
QSurfaceFormat::setDefaultFormat(fmt);
app.setStyle(new StyleOverride());
#ifdef __APPLE__
CocoaEventFilter cocoafilter;
@@ -586,6 +584,10 @@ main(int argc, char *argv[])
return 0;
}
if (!vmm_enabled)
qt_set_sequence_auto_mnemonic(false);
app.setStyle(new StyleOverride());
bool startMaximized = window_remember && monitor_settings[0].mon_window_maximized;
fprintf(stderr, "Qt: version %s, platform \"%s\"\n", qVersion(), QApplication::platformName().toUtf8().data());
ProgSettings::loadTranslators(&app);
@@ -619,6 +621,19 @@ main(int argc, char *argv[])
return 6;
}
if (vmm_enabled) {
// VMManagerMain vmm;
// // Hackish until there is a proper solution
// QApplication::setApplicationName("86Box VM Manager");
// QApplication::setApplicationDisplayName("86Box VM Manager");
// vmm.show();
// vmm.exec();
const auto vmm_main_window = new VMManagerMainWindow();
vmm_main_window->show();
QApplication::exec();
return 0;
}
// UUID / copy / move detection
if(!util::compareUuid()) {
QMessageBox movewarnbox;
@@ -681,19 +696,6 @@ main(int argc, char *argv[])
return 0;
}
if (vmm_enabled) {
// VMManagerMain vmm;
// // Hackish until there is a proper solution
// QApplication::setApplicationName("86Box VM Manager");
// QApplication::setApplicationDisplayName("86Box VM Manager");
// vmm.show();
// vmm.exec();
const auto vmm_main_window = new VMManagerMainWindow();
vmm_main_window->show();
QApplication::exec();
return 0;
}
#ifdef DISCORD
discord_load();
#endif

View File

@@ -22,6 +22,10 @@
#include <QIcon>
#include <QStyleOption>
extern "C" {
#include <86box/86box.h>
}
#ifdef Q_OS_WINDOWS
#include <dwmapi.h>
#ifndef DWMWA_USE_IMMERSIVE_DARK_MODE
@@ -37,7 +41,7 @@ StyleOverride::styleHint(
QStyleHintReturn *returnData) const
{
/* Disable using menu with alt key */
if (hint == QStyle::SH_MenuBar_AltKeyNavigation)
if (!vmm_enabled && (hint == QStyle::SH_MenuBar_AltKeyNavigation))
return 0;
return QProxyStyle::styleHint(hint, option, widget, returnData);