From 6923ecee3a5e896a78cfa6c40325ff0e94ed4393 Mon Sep 17 00:00:00 2001
From: fearlessTobi <thm.frey@gmail.com>
Date: Tue, 21 Aug 2018 13:12:45 +0200
Subject: [PATCH] Port #4056 from Citra: "Add Clear Recent Files menu action"

---
 src/yuzu/main.cpp | 12 ++++++++++++
 src/yuzu/main.h   |  2 ++
 2 files changed, 14 insertions(+)

diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp
index 3db3f9d98..20a566b8d 100644
--- a/src/yuzu/main.cpp
+++ b/src/yuzu/main.cpp
@@ -215,6 +215,14 @@ void GMainWindow::InitializeRecentFileMenuActions() {
 
         ui.menu_recent_files->addAction(actions_recent_files[i]);
     }
+    ui.menu_recent_files->addSeparator();
+    QAction* action_clear_recent_files = new QAction(this);
+    action_clear_recent_files->setText(tr("Clear Recent Files"));
+    connect(action_clear_recent_files, &QAction::triggered, this, [this] {
+        UISettings::values.recent_files.clear();
+        UpdateRecentFiles();
+    });
+    ui.menu_recent_files->addAction(action_clear_recent_files);
 
     UpdateRecentFiles();
 }
@@ -477,6 +485,8 @@ bool GMainWindow::LoadROM(const QString& filename) {
         }
         return false;
     }
+    game_path = filename;
+
     Core::Telemetry().AddField(Telemetry::FieldType::App, "Frontend", "Qt");
     return true;
 }
@@ -547,6 +557,8 @@ void GMainWindow::ShutdownGame() {
     emu_frametime_label->setVisible(false);
 
     emulation_running = false;
+
+    game_path.clear();
 }
 
 void GMainWindow::StoreRecentFile(const QString& filename) {
diff --git a/src/yuzu/main.h b/src/yuzu/main.h
index 5f4d2ab9a..0534d4f99 100644
--- a/src/yuzu/main.h
+++ b/src/yuzu/main.h
@@ -161,6 +161,8 @@ private:
     // Whether emulation is currently running in yuzu.
     bool emulation_running = false;
     std::unique_ptr<EmuThread> emu_thread;
+    // The path to the game currently running
+    QString game_path;
 
     // FS
     FileSys::VirtualFilesystem vfs;