diff --git a/src/yuzu/main.ui b/src/yuzu/main.ui
index 327a7dffd2..0f598213c0 100644
--- a/src/yuzu/main.ui
+++ b/src/yuzu/main.ui
@@ -217,6 +217,7 @@
+
@@ -577,6 +578,11 @@
&Data Manager
+
+
+ Download &Override Settings
+
+
true
diff --git a/src/yuzu/main_window.cpp b/src/yuzu/main_window.cpp
index a198244704..c24b1acb2e 100644
--- a/src/yuzu/main_window.cpp
+++ b/src/yuzu/main_window.cpp
@@ -551,10 +551,14 @@ MainWindow::MainWindow(bool has_broken_vulkan)
#endif
// Check for game overrides updates
- auto* overrides_updater = new OverridesUpdater(this);
+ overrides_updater = new OverridesUpdater(this);
connect(overrides_updater, &OverridesUpdater::ConfigChanged, this, [this]() {
config->SaveAllValues();
});
+ connect(overrides_updater, &OverridesUpdater::UpdateCompleted, this,
+ [this](bool success, const QString& message) {
+ QMessageBox::information(this, tr("Game Overrides"), message);
+ });
overrides_updater->CheckAndUpdate();
QtCommon::system->SetContentProvider(std::make_unique());
@@ -1726,6 +1730,11 @@ void MainWindow::ConnectMenuEvents() {
connect_menu(ui->action_About, &MainWindow::OnAbout);
connect_menu(ui->action_Eden_Dependencies, &MainWindow::OnEdenDependencies);
connect_menu(ui->action_Data_Manager, &MainWindow::OnDataDialog);
+ connect(ui->action_Download_Override_Settings, &QAction::triggered, this, [this] {
+ if (overrides_updater) {
+ overrides_updater->DownloadOverrides();
+ }
+ });
}
void MainWindow::UpdateMenuState() {
diff --git a/src/yuzu/main_window.h b/src/yuzu/main_window.h
index ddabe21ae0..3b9bafec4d 100644
--- a/src/yuzu/main_window.h
+++ b/src/yuzu/main_window.h
@@ -64,6 +64,7 @@ class QtControllerSelectorDialog;
class QtProfileSelectionDialog;
class QtSoftwareKeyboardDialog;
class QtNXWebEngineView;
+class OverridesUpdater;
enum class StartGameType {
Normal, // Can use custom configuration
@@ -564,6 +565,9 @@ private:
QtSoftwareKeyboardDialog* software_keyboard = nullptr;
QtNXWebEngineView* web_applet = nullptr;
+ // Overrides updater
+ OverridesUpdater* overrides_updater = nullptr;
+
// True if amiibo file select is visible
bool is_amiibo_file_select_active{};