From fd40d55a4ff2b02bf79e86b5c996cc1b520ba6ac Mon Sep 17 00:00:00 2001
From: Kewlan <colin_rehn@hotmail.com>
Date: Sat, 10 Apr 2021 11:09:01 +0200
Subject: game_list: Mark games as favorite to make them appear at the top.
 Icons are from Icons8.

---
 src/yuzu/configuration/config.cpp | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

(limited to 'src/yuzu/configuration/config.cpp')

diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp
index 50ea15e2ab..ff6a6e961e 100644
--- a/src/yuzu/configuration/config.cpp
+++ b/src/yuzu/configuration/config.cpp
@@ -934,6 +934,13 @@ void Config::ReadUIGamelistValues() {
     UISettings::values.row_2_text_id = ReadSetting(QStringLiteral("row_2_text_id"), 2).toUInt();
     UISettings::values.cache_game_list =
         ReadSetting(QStringLiteral("cache_game_list"), true).toBool();
+    const int favorites_size = qt_config->beginReadArray(QStringLiteral("favorites"));
+    for (int i = 0; i < favorites_size; i++) {
+        qt_config->setArrayIndex(i);
+        UISettings::values.favorited_ids.append(
+            ReadSetting(QStringLiteral("program_id")).toULongLong());
+    }
+    qt_config->endArray();
 
     qt_config->endGroup();
 }
@@ -1476,6 +1483,13 @@ void Config::SaveUIGamelistValues() {
     WriteSetting(QStringLiteral("row_1_text_id"), UISettings::values.row_1_text_id, 3);
     WriteSetting(QStringLiteral("row_2_text_id"), UISettings::values.row_2_text_id, 2);
     WriteSetting(QStringLiteral("cache_game_list"), UISettings::values.cache_game_list, true);
+    qt_config->beginWriteArray(QStringLiteral("favorites"));
+    for (int i = 0; i < UISettings::values.favorited_ids.size(); i++) {
+        qt_config->setArrayIndex(i);
+        WriteSetting(QStringLiteral("program_id"),
+                     QVariant::fromValue(UISettings::values.favorited_ids[i]));
+    }
+    qt_config->endArray();
 
     qt_config->endGroup();
 }
-- 
cgit v1.2.3-70-g09d2