From 56af77f1f4baa6954d68d63dcbd4745aabbc9cb7 Mon Sep 17 00:00:00 2001 From: DanielSvoboda Date: Fri, 5 Jul 2024 18:20:19 -0300 Subject: [PATCH] add command line arguments GUI --- src/qt_gui/main.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/qt_gui/main.cpp b/src/qt_gui/main.cpp index 3fc1452c..b2ad1976 100644 --- a/src/qt_gui/main.cpp +++ b/src/qt_gui/main.cpp @@ -8,10 +8,13 @@ #include "qt_gui/game_install_dialog.h" #include "qt_gui/main_window.h" +// Custom message handler to ignore Qt logs void customMessageHandler(QtMsgType, const QMessageLogContext&, const QString&) {} int main(int argc, char* argv[]) { QApplication a(argc, argv); + + // Load configurations and initialize Qt application const auto config_dir = Common::FS::GetUserPath(Common::FS::PathType::UserDir); Config::load(config_dir / "config.toml"); QString gameDataPath = qApp->applicationDirPath() + "/game_data/"; @@ -23,14 +26,25 @@ int main(int argc, char* argv[]) { #endif std::filesystem::create_directory(path); + // Check if the game install directory is set if (Config::getGameInstallDir() == "") { GameInstallDialog dlg; dlg.exec(); } - qInstallMessageHandler(customMessageHandler); // ignore qt logs. + // Ignore Qt logs + qInstallMessageHandler(customMessageHandler); + + // Initialize the main window MainWindow* m_main_window = new MainWindow(nullptr); m_main_window->Init(); + // Check for command line arguments + if (argc > 1) { + Core::Emulator emulator; + emulator.Run(argv[1]); + } + + // Run the Qt application return a.exec(); -} \ No newline at end of file +}