Merge pull request #1942 from DarkLordZach/profile-select-game-boot

qt: Add setting to prompt for user on game boot
This commit is contained in:
bunnei 2019-01-02 21:05:27 -05:00 committed by GitHub
commit a6aa710b84
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 32 additions and 0 deletions

View File

@ -470,6 +470,8 @@ void Config::ReadValues() {
qt_config->value("enable_discord_presence", true).toBool(); qt_config->value("enable_discord_presence", true).toBool();
UISettings::values.screenshot_resolution_factor = UISettings::values.screenshot_resolution_factor =
static_cast<u16>(qt_config->value("screenshot_resolution_factor", 0).toUInt()); static_cast<u16>(qt_config->value("screenshot_resolution_factor", 0).toUInt());
UISettings::values.select_user_on_boot =
qt_config->value("select_user_on_boot", false).toBool();
qt_config->beginGroup("UIGameList"); qt_config->beginGroup("UIGameList");
UISettings::values.show_unknown = qt_config->value("show_unknown", true).toBool(); UISettings::values.show_unknown = qt_config->value("show_unknown", true).toBool();
@ -693,6 +695,7 @@ void Config::SaveValues() {
qt_config->setValue("enable_discord_presence", UISettings::values.enable_discord_presence); qt_config->setValue("enable_discord_presence", UISettings::values.enable_discord_presence);
qt_config->setValue("screenshot_resolution_factor", qt_config->setValue("screenshot_resolution_factor",
UISettings::values.screenshot_resolution_factor); UISettings::values.screenshot_resolution_factor);
qt_config->setValue("select_user_on_boot", UISettings::values.select_user_on_boot);
qt_config->beginGroup("UIGameList"); qt_config->beginGroup("UIGameList");
qt_config->setValue("show_unknown", UISettings::values.show_unknown); qt_config->setValue("show_unknown", UISettings::values.show_unknown);

View File

@ -30,6 +30,7 @@ ConfigureGeneral::~ConfigureGeneral() = default;
void ConfigureGeneral::setConfiguration() { void ConfigureGeneral::setConfiguration() {
ui->toggle_deepscan->setChecked(UISettings::values.gamedir_deepscan); ui->toggle_deepscan->setChecked(UISettings::values.gamedir_deepscan);
ui->toggle_check_exit->setChecked(UISettings::values.confirm_before_closing); ui->toggle_check_exit->setChecked(UISettings::values.confirm_before_closing);
ui->toggle_user_on_boot->setChecked(UISettings::values.select_user_on_boot);
ui->theme_combobox->setCurrentIndex(ui->theme_combobox->findData(UISettings::values.theme)); ui->theme_combobox->setCurrentIndex(ui->theme_combobox->findData(UISettings::values.theme));
ui->use_cpu_jit->setChecked(Settings::values.use_cpu_jit); ui->use_cpu_jit->setChecked(Settings::values.use_cpu_jit);
ui->enable_nfc->setChecked(Settings::values.enable_nfc); ui->enable_nfc->setChecked(Settings::values.enable_nfc);
@ -42,6 +43,7 @@ void ConfigureGeneral::PopulateHotkeyList(const HotkeyRegistry& registry) {
void ConfigureGeneral::applyConfiguration() { void ConfigureGeneral::applyConfiguration() {
UISettings::values.gamedir_deepscan = ui->toggle_deepscan->isChecked(); UISettings::values.gamedir_deepscan = ui->toggle_deepscan->isChecked();
UISettings::values.confirm_before_closing = ui->toggle_check_exit->isChecked(); UISettings::values.confirm_before_closing = ui->toggle_check_exit->isChecked();
UISettings::values.select_user_on_boot = ui->toggle_user_on_boot->isChecked();
UISettings::values.theme = UISettings::values.theme =
ui->theme_combobox->itemData(ui->theme_combobox->currentIndex()).toString(); ui->theme_combobox->itemData(ui->theme_combobox->currentIndex()).toString();

View File

@ -38,6 +38,13 @@
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="QCheckBox" name="toggle_user_on_boot">
<property name="text">
<string>Prompt for user on game boot</string>
</property>
</widget>
</item>
</layout> </layout>
</item> </item>
</layout> </layout>

View File

@ -687,10 +687,26 @@ bool GMainWindow::LoadROM(const QString& filename) {
return true; return true;
} }
void GMainWindow::SelectAndSetCurrentUser() {
QtProfileSelectionDialog dialog(this);
dialog.setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint |
Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint);
dialog.setWindowModality(Qt::WindowModal);
dialog.exec();
if (dialog.GetStatus()) {
Settings::values.current_user = static_cast<s32>(dialog.GetIndex());
}
}
void GMainWindow::BootGame(const QString& filename) { void GMainWindow::BootGame(const QString& filename) {
LOG_INFO(Frontend, "yuzu starting..."); LOG_INFO(Frontend, "yuzu starting...");
StoreRecentFile(filename); // Put the filename on top of the list StoreRecentFile(filename); // Put the filename on top of the list
if (UISettings::values.select_user_on_boot) {
SelectAndSetCurrentUser();
}
if (!LoadROM(filename)) if (!LoadROM(filename))
return; return;

View File

@ -128,6 +128,8 @@ private:
void ShowTelemetryCallout(); void ShowTelemetryCallout();
void SetDiscordEnabled(bool state); void SetDiscordEnabled(bool state);
void SelectAndSetCurrentUser();
/** /**
* Stores the filename in the recently loaded files list. * Stores the filename in the recently loaded files list.
* The new filename is stored at the beginning of the recently loaded files list. * The new filename is stored at the beginning of the recently loaded files list.

View File

@ -40,6 +40,8 @@ struct Values {
bool confirm_before_closing; bool confirm_before_closing;
bool first_start; bool first_start;
bool select_user_on_boot;
// Discord RPC // Discord RPC
bool enable_discord_presence; bool enable_discord_presence;