diff options
Diffstat (limited to 'src/yuzu')
| -rw-r--r-- | src/yuzu/configuration/configure_gamelist.cpp | 14 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_gamelist.h | 2 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_general.cpp | 3 | ||||
| -rw-r--r-- | src/yuzu/main.cpp | 8 | ||||
| -rw-r--r-- | src/yuzu/ui_settings.h | 2 | 
5 files changed, 28 insertions, 1 deletions
| diff --git a/src/yuzu/configuration/configure_gamelist.cpp b/src/yuzu/configuration/configure_gamelist.cpp index 639d5df0f..ae8cac243 100644 --- a/src/yuzu/configuration/configure_gamelist.cpp +++ b/src/yuzu/configuration/configure_gamelist.cpp @@ -36,6 +36,16 @@ ConfigureGameList::ConfigureGameList(QWidget* parent)      InitializeRowComboBoxes();      this->setConfiguration(); + +    // Force game list reload if any of the relevant settings are changed. +    connect(ui->show_unknown, &QCheckBox::stateChanged, this, +            &ConfigureGameList::RequestGameListUpdate); +    connect(ui->icon_size_combobox, QOverload<int>::of(&QComboBox::currentIndexChanged), this, +            &ConfigureGameList::RequestGameListUpdate); +    connect(ui->row_1_text_combobox, QOverload<int>::of(&QComboBox::currentIndexChanged), this, +            &ConfigureGameList::RequestGameListUpdate); +    connect(ui->row_2_text_combobox, QOverload<int>::of(&QComboBox::currentIndexChanged), this, +            &ConfigureGameList::RequestGameListUpdate);  }  ConfigureGameList::~ConfigureGameList() = default; @@ -49,6 +59,10 @@ void ConfigureGameList::applyConfiguration() {      Settings::Apply();  } +void ConfigureGameList::RequestGameListUpdate() { +    UISettings::values.is_game_list_reload_pending.exchange(true); +} +  void ConfigureGameList::setConfiguration() {      ui->show_unknown->setChecked(UISettings::values.show_unknown);      ui->show_add_ons->setChecked(UISettings::values.show_add_ons); diff --git a/src/yuzu/configuration/configure_gamelist.h b/src/yuzu/configuration/configure_gamelist.h index ff7406c60..bbf7e25f1 100644 --- a/src/yuzu/configuration/configure_gamelist.h +++ b/src/yuzu/configuration/configure_gamelist.h @@ -21,6 +21,8 @@ public:      void applyConfiguration();  private: +    void RequestGameListUpdate(); +      void setConfiguration();      void changeEvent(QEvent*) override; diff --git a/src/yuzu/configuration/configure_general.cpp b/src/yuzu/configuration/configure_general.cpp index 314f51203..c22742007 100644 --- a/src/yuzu/configuration/configure_general.cpp +++ b/src/yuzu/configuration/configure_general.cpp @@ -23,6 +23,9 @@ ConfigureGeneral::ConfigureGeneral(QWidget* parent)      this->setConfiguration(); +    connect(ui->toggle_deepscan, &QCheckBox::stateChanged, this, +            [] { UISettings::values.is_game_list_reload_pending.exchange(true); }); +      ui->use_cpu_jit->setEnabled(!Core::System::GetInstance().IsPoweredOn());  } diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index 999086e7f..4b969119c 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp @@ -1341,7 +1341,13 @@ void GMainWindow::OnConfigure() {              UpdateUITheme();          if (UISettings::values.enable_discord_presence != old_discord_presence)              SetDiscordEnabled(UISettings::values.enable_discord_presence); -        game_list->PopulateAsync(UISettings::values.gamedir, UISettings::values.gamedir_deepscan); + +        const auto reload = UISettings::values.is_game_list_reload_pending.exchange(false); +        if (reload) { +            game_list->PopulateAsync(UISettings::values.gamedir, +                                     UISettings::values.gamedir_deepscan); +        } +          config->Save();      }  } diff --git a/src/yuzu/ui_settings.h b/src/yuzu/ui_settings.h index 32a0d813c..e80aebc0a 100644 --- a/src/yuzu/ui_settings.h +++ b/src/yuzu/ui_settings.h @@ -5,6 +5,7 @@  #pragma once  #include <array> +#include <atomic>  #include <vector>  #include <QByteArray>  #include <QString> @@ -63,6 +64,7 @@ struct Values {      uint32_t icon_size;      uint8_t row_1_text_id;      uint8_t row_2_text_id; +    std::atomic_bool is_game_list_reload_pending{false};  };  extern Values values; | 
