diff options
Diffstat (limited to 'Source/Core/DolphinQt/Main.cpp')
| -rw-r--r-- | Source/Core/DolphinQt/Main.cpp | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/Source/Core/DolphinQt/Main.cpp b/Source/Core/DolphinQt/Main.cpp index 65cbd0360d..b54caae0b8 100644 --- a/Source/Core/DolphinQt/Main.cpp +++ b/Source/Core/DolphinQt/Main.cpp @@ -138,7 +138,7 @@ int main(int argc, char* argv[]) UICommon::CreateDirectories(); UICommon::Init(); Resources::Init(); - Settings::Instance().SetBatchModeEnabled(options.is_set("batch") && options.is_set("exec")); + Settings::Instance().SetBatchModeEnabled(options.is_set("batch")); // Hook up alerts from core Common::RegisterMsgAlertHandler(QtMsgAlertHandler); @@ -152,12 +152,14 @@ int main(int argc, char* argv[]) &app, &Core::HostDispatchJobs); std::unique_ptr<BootParameters> boot; + bool game_specified = false; if (options.is_set("exec")) { const std::list<std::string> paths_list = options.all("exec"); const std::vector<std::string> paths{std::make_move_iterator(std::begin(paths_list)), std::make_move_iterator(std::end(paths_list))}; boot = BootParameters::GenerateFromFile(paths); + game_specified = true; } else if (options.is_set("nand_title")) { @@ -171,14 +173,30 @@ int main(int argc, char* argv[]) { ModalMessageBox::critical(nullptr, QObject::tr("Error"), QObject::tr("Invalid title ID.")); } + game_specified = true; } else if (!args.empty()) { boot = BootParameters::GenerateFromFile(args.front()); + game_specified = true; } int retval; + if (Settings::Instance().IsBatchModeEnabled() && !game_specified) + { + ModalMessageBox::critical( + nullptr, QObject::tr("Error"), + QObject::tr("Batch mode cannot be used without specifying a game to launch.")); + retval = 1; + } + else if (Settings::Instance().IsBatchModeEnabled() && !boot) + { + // A game to launch was specified, but it was invalid. + // An error has already been shown by code above, so exit without showing another error. + retval = 1; + } + else { DolphinAnalytics::Instance().ReportDolphinStart("qt"); |
