diff options
author | Kode <TheKodeToad@proton.me> | 2023-05-13 19:07:03 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-13 19:07:03 +0100 |
commit | f60562c5a247934e39ab33a6d1c5ce64b3127f6a (patch) | |
tree | 3e0ff5817464de7c050c580397503daa9f0ee7bd /launcher/Application.cpp | |
parent | 18cfe219fef2aabc1d3260764c02cd3476615176 (diff) | |
parent | d5c6a1b4d1e6d052e42366d19ffa0047168e030d (diff) | |
download | PrismLauncher-f60562c5a247934e39ab33a6d1c5ce64b3127f6a.tar.gz PrismLauncher-f60562c5a247934e39ab33a6d1c5ce64b3127f6a.tar.bz2 PrismLauncher-f60562c5a247934e39ab33a6d1c5ce64b3127f6a.zip |
Merge branch 'develop' into mrpack-export
Signed-off-by: Kode <TheKodeToad@proton.me>
Diffstat (limited to 'launcher/Application.cpp')
-rw-r--r-- | launcher/Application.cpp | 53 |
1 files changed, 48 insertions, 5 deletions
diff --git a/launcher/Application.cpp b/launcher/Application.cpp index 879af535..1659eb44 100644 --- a/launcher/Application.cpp +++ b/launcher/Application.cpp @@ -8,6 +8,7 @@ * Copyright (C) 2022 Lenny McLennington <lenny@sneed.church> * Copyright (C) 2022 Tayou <tayou@gmx.net> * Copyright (C) 2023 TheKodeToad <TheKodeToad@proton.me> + * Copyright (C) 2023 Rachel Powers <508861+Ryex@users.noreply.github.com> * * 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 @@ -46,6 +47,7 @@ #include "net/PasteUpload.h" #include "pathmatcher/MultiMatcher.h" #include "pathmatcher/SimplePrefixMatcher.h" +#include "settings/INIFile.h" #include "ui/MainWindow.h" #include "ui/InstanceWindow.h" @@ -286,6 +288,7 @@ Application::Application(int &argc, char **argv) : QApplication(argc, argv) if (QFile::exists(FS::PathCombine(m_rootPath, "portable.txt"))) { dataPath = m_rootPath; adjustedBy = "Portable data path"; + m_portable = true; } #endif } @@ -410,6 +413,47 @@ Application::Application(int &argc, char **argv) : QApplication(argc, argv) " " "|" " " "%{if-category}[%{category}]: %{endif}" "%{message}"); + + bool foundLoggingRules = false; + + auto logRulesFile = QStringLiteral("qtlogging.ini"); + auto logRulesPath = FS::PathCombine(dataPath, logRulesFile); + + qDebug() << "Testing" << logRulesPath << "..."; + foundLoggingRules = QFile::exists(logRulesPath); + + // search the dataPath() + // seach app data standard path + if(!foundLoggingRules && !isPortable() && dirParam.isEmpty()) { + logRulesPath = QStandardPaths::locate(QStandardPaths::AppDataLocation, FS::PathCombine("..", logRulesFile)); + if(!logRulesPath.isEmpty()) { + qDebug() << "Found" << logRulesPath << "..."; + foundLoggingRules = true; + } + } + // seach root path + if(!foundLoggingRules) { + logRulesPath = FS::PathCombine(m_rootPath, logRulesFile); + qDebug() << "Testing" << logRulesPath << "..."; + foundLoggingRules = QFile::exists(logRulesPath); + } + + if(foundLoggingRules) { + // load and set logging rules + qDebug() << "Loading logging rules from:" << logRulesPath; + QSettings loggingRules(logRulesPath, QSettings::IniFormat); + loggingRules.beginGroup("Rules"); + QStringList rule_names = loggingRules.childKeys(); + QStringList rules; + qDebug() << "Setting log rules:"; + for (auto rule_name : rule_names) { + auto rule = QString("%1=%2").arg(rule_name).arg(loggingRules.value(rule_name).toString()); + rules.append(rule); + qDebug() << " " << rule; + } + auto rules_str = rules.join("\n"); + QLoggingCategory::setFilterRules(rules_str); + } qDebug() << "<> Log initialized."; } @@ -517,6 +561,7 @@ Application::Application(int &argc, char **argv) : QApplication(argc, argv) m_settings->registerSetting({"CentralModsDir", "ModsDir"}, "mods"); m_settings->registerSetting("IconsDir", "icons"); m_settings->registerSetting("DownloadsDir", QStandardPaths::writableLocation(QStandardPaths::DownloadLocation)); + m_settings->registerSetting("DownloadsDirWatchRecursive", false); // Editors m_settings->registerSetting("JsonEditor", QString()); @@ -830,9 +875,7 @@ Application::Application(int &argc, char **argv) : QApplication(argc, argv) } }); - { - applyCurrentlySelectedTheme(); - } + applyCurrentlySelectedTheme(true); updateCapabilities(); @@ -1107,9 +1150,9 @@ QList<ITheme*> Application::getValidApplicationThemes() return m_themeManager->getValidApplicationThemes(); } -void Application::applyCurrentlySelectedTheme() +void Application::applyCurrentlySelectedTheme(bool initial) { - m_themeManager->applyCurrentlySelectedTheme(); + m_themeManager->applyCurrentlySelectedTheme(initial); } void Application::setApplicationTheme(const QString& name) |