diff options
author | Morph <39850852+Morph1984@users.noreply.github.com> | 2020-12-25 21:17:49 +0100 |
---|---|---|
committer | Morph <39850852+Morph1984@users.noreply.github.com> | 2020-12-25 21:41:00 +0100 |
commit | ff3aa5d3804db4deef3c4a1996a5bbc7d8bf202c (patch) | |
tree | b38c8e07c64056927eda314929cf4d572db5d025 | |
parent | Merge pull request #5226 from ReinUsesLisp/c4715-vc (diff) | |
download | yuzu-ff3aa5d3804db4deef3c4a1996a5bbc7d8bf202c.tar yuzu-ff3aa5d3804db4deef3c4a1996a5bbc7d8bf202c.tar.gz yuzu-ff3aa5d3804db4deef3c4a1996a5bbc7d8bf202c.tar.bz2 yuzu-ff3aa5d3804db4deef3c4a1996a5bbc7d8bf202c.tar.lz yuzu-ff3aa5d3804db4deef3c4a1996a5bbc7d8bf202c.tar.xz yuzu-ff3aa5d3804db4deef3c4a1996a5bbc7d8bf202c.tar.zst yuzu-ff3aa5d3804db4deef3c4a1996a5bbc7d8bf202c.zip |
-rw-r--r-- | src/yuzu/main.cpp | 42 |
1 files changed, 39 insertions, 3 deletions
diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index 7aa515226..ebaccd2ef 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp @@ -292,12 +292,48 @@ GMainWindow::GMainWindow() connect(&mouse_hide_timer, &QTimer::timeout, this, &GMainWindow::HideMouseCursor); connect(ui.menubar, &QMenuBar::hovered, this, &GMainWindow::ShowMouseCursor); + MigrateConfigFiles(); + + ui.action_Fullscreen->setChecked(false); + QStringList args = QApplication::arguments(); - if (args.length() >= 2) { - BootGame(args[1]); + + if (args.size() < 2) { + return; } - MigrateConfigFiles(); + QString game_path; + + for (int i = 1; i < args.size(); ++i) { + // Preserves drag/drop functionality + if (args.size() == 2 && !args[1].startsWith(QChar::fromLatin1('-'))) { + game_path = args[1]; + break; + } + + // Launch game in fullscreen mode + if (args[i] == QStringLiteral("-f")) { + ui.action_Fullscreen->setChecked(true); + continue; + } + + // Launch game at path + if (args[i] == QStringLiteral("-g")) { + if (i >= args.size() - 1) { + continue; + } + + if (args[i + 1].startsWith(QChar::fromLatin1('-'))) { + continue; + } + + game_path = args[++i]; + } + } + + if (!game_path.isEmpty()) { + BootGame(game_path); + } } GMainWindow::~GMainWindow() { |