aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTrial97 <alexandru.tripon97@gmail.com>2023-07-16 14:18:17 +0300
committerTrial97 <alexandru.tripon97@gmail.com>2023-07-16 14:18:17 +0300
commit1e9a596908ba85dea974e6d041b53c675f8d7b78 (patch)
tree4021cccfea43f4dd64493516947f8484d90d9b13
parent35ccfdb7996ba727039ad2c0ab2974a49eecb6cc (diff)
downloadPrismLauncher-1e9a596908ba85dea974e6d041b53c675f8d7b78.tar.gz
PrismLauncher-1e9a596908ba85dea974e6d041b53c675f8d7b78.tar.bz2
PrismLauncher-1e9a596908ba85dea974e6d041b53c675f8d7b78.zip
simplified code in cat packs
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
-rw-r--r--launcher/ui/themes/CatPack.cpp43
-rw-r--r--launcher/ui/themes/ThemeManager.cpp15
2 files changed, 25 insertions, 33 deletions
diff --git a/launcher/ui/themes/CatPack.cpp b/launcher/ui/themes/CatPack.cpp
index 435ccdb8..e1f2caf3 100644
--- a/launcher/ui/themes/CatPack.cpp
+++ b/launcher/ui/themes/CatPack.cpp
@@ -61,37 +61,24 @@ QString BasicCatPack::path()
JsonCatPack::JsonCatPack(QFileInfo& manifestInfo) : BasicCatPack(manifestInfo.dir().dirName())
{
- QString path = FS::PathCombine("catpacks", m_id);
+ QString path = manifestInfo.path();
+ try {
+ auto doc = Json::requireDocument(manifestInfo.absoluteFilePath(), "CatPack JSON file");
+ const auto root = doc.object();
+ m_name = Json::requireString(root, "name", "Catpack name");
+ m_defaultPath = FS::PathCombine(path, Json::requireString(root, "default", "Default Cat"));
+ auto variants = Json::ensureArray(root, "variants", QJsonArray(), "Catpack Variants");
+ for (auto v : variants) {
+ auto variant = Json::ensureObject(v, QJsonObject(), "Cat variant");
+ m_variants << Variant{ FS::PathCombine(path, Json::requireString(variant, "path", "Variant path")),
+ PartialDate(Json::requireString(variant, "startTime", "Variant startTime")),
+ PartialDate(Json::requireString(variant, "endTime", "Variant endTime")) };
+ }
- if (!FS::ensureFolderPathExists(path)) {
- themeWarningLog() << "couldn't create folder for catpack!";
+ } catch (const Exception& e) {
+ themeWarningLog() << "Couldn't load catpack json:" << e.cause();
return;
}
-
- if (manifestInfo.exists() && manifestInfo.isFile()) {
- try {
- auto doc = Json::requireDocument(manifestInfo.absoluteFilePath(), "CatPack JSON file");
- const auto root = doc.object();
- m_name = Json::requireString(root, "name", "Catpack name");
- auto id = Json::ensureString(root, "id", "", "Catpack ID");
- if (!id.isEmpty())
- m_id = id;
- m_defaultPath = FS::PathCombine(path, Json::requireString(root, "default", "Deafult Cat"));
- auto variants = Json::ensureArray(root, "variants", QJsonArray(), "Catpack Variants");
- for (auto v : variants) {
- auto variant = Json::ensureObject(v, QJsonObject(), "Cat variant");
- m_variants << Variant{ FS::PathCombine(path, Json::requireString(variant, "path", "Variant path")),
- PartialDate(Json::requireString(variant, "startTime", "Variant startTime")),
- PartialDate(Json::requireString(variant, "endTime", "Variant endTime")) };
- }
-
- } catch (const Exception& e) {
- themeWarningLog() << "Couldn't load catpack json: " << e.cause();
- return;
- }
- } else {
- themeDebugLog() << "No catpack json present.";
- }
}
QString JsonCatPack::path()
diff --git a/launcher/ui/themes/ThemeManager.cpp b/launcher/ui/themes/ThemeManager.cpp
index d00b3a99..ba09f627 100644
--- a/launcher/ui/themes/ThemeManager.cpp
+++ b/launcher/ui/themes/ThemeManager.cpp
@@ -21,6 +21,7 @@
#include <QDir>
#include <QDirIterator>
#include <QIcon>
+#include <QImageReader>
#include "ui/themes/BrightTheme.h"
#include "ui/themes/CatPack.h"
#include "ui/themes/CustomTheme.h"
@@ -179,13 +180,17 @@ void ThemeManager::initializeCatPacks()
for (auto [id, name] : defaultCats) {
addCatPack(std::unique_ptr<CatPack>(new BasicCatPack(id, name)));
}
- QDir catpacksDir("./catpacks/");
+ QDir catpacksDir("catpacks");
QString catpacksFolder = catpacksDir.absoluteFilePath("");
- themeDebugLog() << "CatPacks Folder Path: " << catpacksFolder;
+ themeDebugLog() << "CatPacks Folder Path:" << catpacksFolder;
- auto loadFiles = [this](QDir dir) {
+ QStringList supportedImageFormats;
+ for (auto format : QImageReader::supportedImageFormats()) {
+ supportedImageFormats.append("*." + format);
+ }
+ auto loadFiles = [this, supportedImageFormats](QDir dir) {
// Load image files directly
- QDirIterator ImageFileIterator(dir.absoluteFilePath(""), { "*.png", "*.gif", "*.jpg", "*.apng", "*.jxl", "*.avif" }, QDir::Files);
+ QDirIterator ImageFileIterator(dir.absoluteFilePath(""), supportedImageFormats, QDir::Files);
while (ImageFileIterator.hasNext()) {
QFile customCatFile(ImageFileIterator.next());
QFileInfo customCatFileInfo(customCatFile);
@@ -200,7 +205,7 @@ void ThemeManager::initializeCatPacks()
while (directoryIterator.hasNext()) {
QDir dir(directoryIterator.next());
QFileInfo manifest(dir.absoluteFilePath("catpack.json"));
- if (manifest.exists()) {
+ if (manifest.isFile()) {
// Load background manifest
themeDebugLog() << "Loading background manifest from:" << manifest.absoluteFilePath();
addCatPack(std::unique_ptr<CatPack>(new JsonCatPack(manifest)));