Просмотр исходного кода

Merge pull request #6116 from german77/userArgument

yuzu/main: Add user command line argument
bunnei 5 лет назад
Родитель
Сommit
eeea426c74
1 измененных файлов с 28 добавлено и 0 удалено
  1. 28 0
      src/yuzu/main.cpp

+ 28 - 0
src/yuzu/main.cpp

@@ -320,6 +320,34 @@ GMainWindow::GMainWindow()
             continue;
         }
 
+        // Launch game with a specific user
+        if (args[i] == QStringLiteral("-u")) {
+            if (i >= args.size() - 1) {
+                continue;
+            }
+
+            if (args[i + 1].startsWith(QChar::fromLatin1('-'))) {
+                continue;
+            }
+
+            bool argument_ok;
+            const std::size_t selected_user = args[++i].toUInt(&argument_ok);
+
+            if (!argument_ok) {
+                LOG_ERROR(Frontend, "Invalid user argument");
+                continue;
+            }
+
+            const Service::Account::ProfileManager manager;
+            if (!manager.UserExistsIndex(selected_user)) {
+                LOG_ERROR(Frontend, "Selected user doesn't exist");
+                continue;
+            }
+
+            Settings::values.current_user = selected_user;
+            continue;
+        }
+
         // Launch game at path
         if (args[i] == QStringLiteral("-g")) {
             if (i >= args.size() - 1) {