aboutsummaryrefslogtreecommitdiff
path: root/launcher/ui/themes/ThemeManager.h
diff options
context:
space:
mode:
Diffstat (limited to 'launcher/ui/themes/ThemeManager.h')
-rw-r--r--launcher/ui/themes/ThemeManager.h23
1 files changed, 20 insertions, 3 deletions
diff --git a/launcher/ui/themes/ThemeManager.h b/launcher/ui/themes/ThemeManager.h
index 1ce8c6f4..b5c66677 100644
--- a/launcher/ui/themes/ThemeManager.h
+++ b/launcher/ui/themes/ThemeManager.h
@@ -2,6 +2,7 @@
/*
* Prism Launcher - Minecraft Launcher
* Copyright (C) 2022 Tayou <git@tayou.org>
+ * Copyright (C) 2023 TheKodeToad <TheKodeToad@proton.me>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -19,6 +20,7 @@
#include <QString>
+#include "IconTheme.h"
#include "ui/MainWindow.h"
#include "ui/themes/CatPack.h"
#include "ui/themes/ITheme.h"
@@ -34,11 +36,17 @@ inline auto themeWarningLog()
class ThemeManager {
public:
- ThemeManager(MainWindow* mainWindow);
+ ThemeManager();
+ QList<IconTheme*> getValidIconThemes();
QList<ITheme*> getValidApplicationThemes();
- void setIconTheme(const QString& name);
+ bool isValidIconTheme(const QString& id);
+ bool isValidApplicationTheme(const QString& id);
+ QDir getIconThemesFolder();
+ QDir getApplicationThemesFolder();
+ QDir getCatPacksFolder();
void applyCurrentlySelectedTheme(bool initial = false);
+ void setIconTheme(const QString& name);
void setApplicationTheme(const QString& name, bool initial = false);
/// @brief Returns the background based on selected and with events (Birthday, XMas, etc.)
@@ -49,12 +57,21 @@ class ThemeManager {
private:
std::map<QString, std::unique_ptr<ITheme>> m_themes;
+ std::map<QString, IconTheme> m_icons;
+ QDir m_iconThemeFolder{ "iconthemes" };
+ QDir m_applicationThemeFolder{ "themes" };
+ QDir m_catPacksFolder{ "catpacks" };
std::map<QString, std::unique_ptr<CatPack>> m_catPacks;
- MainWindow* m_mainWindow;
void initializeThemes();
void initializeCatPacks();
QString addTheme(std::unique_ptr<ITheme> theme);
ITheme* getTheme(QString themeId);
+ QString addIconTheme(IconTheme theme);
QString addCatPack(std::unique_ptr<CatPack> catPack);
+ void initializeIcons();
+ void initializeWidgets();
+
+ const QStringList builtinIcons{ "pe_colored", "pe_light", "pe_dark", "pe_blue", "breeze_light", "breeze_dark",
+ "OSX", "iOS", "flat", "flat_white", "multimc" };
};