From 08970e7ba0b45ae30922c906c59b0f109864b19b Mon Sep 17 00:00:00 2001 From: luc-git <102831178+luc-git@users.noreply.github.com> Date: Tue, 20 Jun 2023 14:27:36 +0200 Subject: [PATCH] update graphics api button indicator (#6625) * update graphics api button indicator This tiny pull request * update the graphics button indicator when launching or closing a game (graphics button doesn't update with per game configuration) * Disable graphics button indicator click while in game * fix crash * It fixed crash when opening configure dialog in game if the graphics api for the game is different of the global graphics api --- src/citra_qt/configuration/configuration_shared.h | 2 +- src/citra_qt/main.cpp | 12 +++++------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/citra_qt/configuration/configuration_shared.h b/src/citra_qt/configuration/configuration_shared.h index 61f303013..b611611cc 100644 --- a/src/citra_qt/configuration/configuration_shared.h +++ b/src/citra_qt/configuration/configuration_shared.h @@ -83,7 +83,7 @@ void SetPerGameSetting(QComboBox* combobox, /// account per-game status template Type GetComboboxSetting(int index, const Settings::SwitchableSetting* setting) { - if (Settings::IsConfiguringGlobal() && setting->UsingGlobal()) { + if (Settings::IsConfiguringGlobal() || setting->UsingGlobal()) { return static_cast(index); } else if (!Settings::IsConfiguringGlobal()) { if (index == 0) { diff --git a/src/citra_qt/main.cpp b/src/citra_qt/main.cpp index ea019d825..12cf28c24 100644 --- a/src/citra_qt/main.cpp +++ b/src/citra_qt/main.cpp @@ -371,13 +371,7 @@ void GMainWindow::InitializeWidgets() { graphics_api_button->setFocusPolicy(Qt::NoFocus); UpdateAPIIndicator(); - connect(graphics_api_button, &QPushButton::clicked, this, [this] { - if (emulation_running) { - return; - } - - UpdateAPIIndicator(true); - }); + connect(graphics_api_button, &QPushButton::clicked, this, [this] { UpdateAPIIndicator(true); }); statusBar()->insertPermanentWidget(0, graphics_api_button); @@ -1734,6 +1728,7 @@ void GMainWindow::OnStartGame() { PreventOSSleep(); emu_thread->SetRunning(true); + graphics_api_button->setEnabled(false); qRegisterMetaType("Core::System::ResultStatus"); qRegisterMetaType("std::string"); connect(emu_thread.get(), &EmuThread::ErrorThrown, this, &GMainWindow::OnCoreError); @@ -1743,6 +1738,7 @@ void GMainWindow::OnStartGame() { discord_rpc->Update(); UpdateSaveStates(); + UpdateAPIIndicator(); } void GMainWindow::OnRestartGame() { @@ -1773,7 +1769,9 @@ void GMainWindow::OnPauseContinueGame() { void GMainWindow::OnStopGame() { ShutdownGame(); + graphics_api_button->setEnabled(true); Settings::RestoreGlobalState(false); + UpdateAPIIndicator(); } void GMainWindow::OnLoadComplete() {