From 78e233c4600a13caee1cbb41d495b168fc6e1e79 Mon Sep 17 00:00:00 2001
From: Morph <39850852+Morph1984@users.noreply.github.com>
Date: Mon, 17 Jan 2022 02:46:30 -0500
Subject: [PATCH] uisettings: Add enumeration type for themes

Eliminates the usage of a magic number to indicate the default index of the themes array,
---
 src/yuzu/configuration/config.cpp | 11 ++++++++---
 src/yuzu/uisettings.h             |  9 +++++++++
 2 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp
index 1b35f8488..33d50667a 100644
--- a/src/yuzu/configuration/config.cpp
+++ b/src/yuzu/configuration/config.cpp
@@ -743,7 +743,10 @@ void Config::ReadUIValues() {
     qt_config->beginGroup(QStringLiteral("UI"));
 
     UISettings::values.theme =
-        ReadSetting(QStringLiteral("theme"), QString::fromUtf8(UISettings::themes[3].second))
+        ReadSetting(
+            QStringLiteral("theme"),
+            QString::fromUtf8(
+                UISettings::themes[static_cast<size_t>(UISettings::Theme::DarkColorful)].second))
             .toString();
     ReadBasicSetting(UISettings::values.enable_discord_presence);
     ReadBasicSetting(UISettings::values.select_user_on_boot);
@@ -1270,8 +1273,10 @@ void Config::SaveSystemValues() {
 void Config::SaveUIValues() {
     qt_config->beginGroup(QStringLiteral("UI"));
 
-    WriteSetting(QStringLiteral("theme"), UISettings::values.theme,
-                 QString::fromUtf8(UISettings::themes[3].second));
+    WriteSetting(
+        QStringLiteral("theme"), UISettings::values.theme,
+        QString::fromUtf8(
+            UISettings::themes[static_cast<size_t>(UISettings::Theme::DarkColorful)].second));
     WriteBasicSetting(UISettings::values.enable_discord_presence);
     WriteBasicSetting(UISettings::values.select_user_on_boot);
 
diff --git a/src/yuzu/uisettings.h b/src/yuzu/uisettings.h
index 402c4556d..f7298ddad 100644
--- a/src/yuzu/uisettings.h
+++ b/src/yuzu/uisettings.h
@@ -29,6 +29,15 @@ struct Shortcut {
     ContextualShortcut shortcut;
 };
 
+enum class Theme {
+    Default,
+    DefaultColorful,
+    Dark,
+    DarkColorful,
+    MidnightBlue,
+    MidnightBlueColorful,
+};
+
 using Themes = std::array<std::pair<const char*, const char*>, 6>;
 extern const Themes themes;