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
This commit is contained in:
luc-git 2023-06-20 14:27:36 +02:00 committed by GitHub
parent d735f5c458
commit 08970e7ba0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 8 deletions

View File

@ -83,7 +83,7 @@ void SetPerGameSetting(QComboBox* combobox,
/// account per-game status /// account per-game status
template <typename Type, bool ranged> template <typename Type, bool ranged>
Type GetComboboxSetting(int index, const Settings::SwitchableSetting<Type, ranged>* setting) { Type GetComboboxSetting(int index, const Settings::SwitchableSetting<Type, ranged>* setting) {
if (Settings::IsConfiguringGlobal() && setting->UsingGlobal()) { if (Settings::IsConfiguringGlobal() || setting->UsingGlobal()) {
return static_cast<Type>(index); return static_cast<Type>(index);
} else if (!Settings::IsConfiguringGlobal()) { } else if (!Settings::IsConfiguringGlobal()) {
if (index == 0) { if (index == 0) {

View File

@ -371,13 +371,7 @@ void GMainWindow::InitializeWidgets() {
graphics_api_button->setFocusPolicy(Qt::NoFocus); graphics_api_button->setFocusPolicy(Qt::NoFocus);
UpdateAPIIndicator(); UpdateAPIIndicator();
connect(graphics_api_button, &QPushButton::clicked, this, [this] { connect(graphics_api_button, &QPushButton::clicked, this, [this] { UpdateAPIIndicator(true); });
if (emulation_running) {
return;
}
UpdateAPIIndicator(true);
});
statusBar()->insertPermanentWidget(0, graphics_api_button); statusBar()->insertPermanentWidget(0, graphics_api_button);
@ -1734,6 +1728,7 @@ void GMainWindow::OnStartGame() {
PreventOSSleep(); PreventOSSleep();
emu_thread->SetRunning(true); emu_thread->SetRunning(true);
graphics_api_button->setEnabled(false);
qRegisterMetaType<Core::System::ResultStatus>("Core::System::ResultStatus"); qRegisterMetaType<Core::System::ResultStatus>("Core::System::ResultStatus");
qRegisterMetaType<std::string>("std::string"); qRegisterMetaType<std::string>("std::string");
connect(emu_thread.get(), &EmuThread::ErrorThrown, this, &GMainWindow::OnCoreError); connect(emu_thread.get(), &EmuThread::ErrorThrown, this, &GMainWindow::OnCoreError);
@ -1743,6 +1738,7 @@ void GMainWindow::OnStartGame() {
discord_rpc->Update(); discord_rpc->Update();
UpdateSaveStates(); UpdateSaveStates();
UpdateAPIIndicator();
} }
void GMainWindow::OnRestartGame() { void GMainWindow::OnRestartGame() {
@ -1773,7 +1769,9 @@ void GMainWindow::OnPauseContinueGame() {
void GMainWindow::OnStopGame() { void GMainWindow::OnStopGame() {
ShutdownGame(); ShutdownGame();
graphics_api_button->setEnabled(true);
Settings::RestoreGlobalState(false); Settings::RestoreGlobalState(false);
UpdateAPIIndicator();
} }
void GMainWindow::OnLoadComplete() { void GMainWindow::OnLoadComplete() {