#include "../headers/scstwappthememanager.h" ScStwAppThemeManager::ScStwAppThemeManager(QObject *parent) : QObject(parent) { QFontDatabase::addApplicationFont(":/fonts/fa5solid.woff"); QVariantMap icons = { {"backIcon", "\uf053"}, {"settIcon", "\uf013"}, {"toppadIcon", "\uf10a"}, {"startpadIcon", "\uf3fa"}, {"profilesIcon", "\uf007"}, {"confirmIcon", "\uf00c"} }; ScStwAppTheme * lightTheme = new ScStwAppTheme ( "Light", { {"background", "white"}, {"button", "white"}, {"buttonPressed", "lightgrey"}, {"buttonBorder", "grey"}, {"disabledButton", "#d5d5d5"}, {"view", "white"}, {"menu", "#f8f8f8"}, {"delegate1", "#202227"}, {"delegate2", "#202227"}, {"delegateBackground", "white"}, {"delegatePressed", "#dddedf"}, {"text", "black"}, {"textDark", "#232323"}, {"disabledText", "grey"}, {"slider", "#6ccaf2"}, {"success", "#60de26"}, {"error", "#ff0000"}, {"line", "grey"}, }, icons , { {"icons", "Font Awesome 5 Free"} }, { {"backIcon", "qrc:/graphics/icons/back_black.png"}, {"settIcon", "qrc:/graphics/icons/settings_black.png"}, {"buzzerIcon", "qrc:/graphics/icons/buzzer_black.png"}, {"startpadIcon", "qrc:/graphics/icons/startpad_black.png"}, {"baseStationIcon", "qrc:/graphics/icons/BaseStation_black.png"}, {"profilesIcon", "qrc:/graphics/icons/user_black.png"}, {"confirmIcon", "qrc:/graphics/icons/ok_black.png"} }); ScStwAppTheme *darkTheme = new ScStwAppTheme( "Dark", { {"background", "#2d3037"}, {"button", "#202227"}, {"buttonPressed", "#41454f"}, {"buttonBorder", "grey"}, {"disabledButton", "#555555"}, {"view", "#202227"}, {"menu", "#292b32"}, {"delegate1", "#202227"}, {"delegate2", "#202227"}, {"delegateBackground", "#202227"}, {"delegatePressed", "#41454f"}, {"text", "#ffffff"}, {"textDark", "#232323"}, {"disabledText", "#777777"}, {"slider", "#6ccaf2"}, {"success", "#6bd43b"}, {"error", "#e03b2f"}, {"line", "grey"}, {"iconFontName", "Font Awesome 5 Free"}, }, { icons }, { {"icons", "Font Awesome 5 Free"} }, { {"backIcon", "qrc:/graphics/icons/back.png"}, {"settIcon", "qrc:/graphics/icons/settings.png"}, {"buzzerIcon", "qrc:/graphics/icons/buzzer.png"}, {"startpadIcon", "qrc:/graphics/icons/startpad.png"}, {"baseStationIcon", "qrc:/graphics/icons/BaseStation.png"}, {"profilesIcon", "qrc:/graphics/icons/user.png"}, {"confirmIcon", "qrc:/graphics/icons/ok.png"} } ); this->themes.append(lightTheme); this->themes.append(darkTheme); this->currentTheme = this->themes[0]; } ScStwAppTheme* ScStwAppThemeManager::getTheme() { return this->currentTheme; } bool ScStwAppThemeManager::setTheme(QString themeName) { ScStwAppTheme * foundTheme = this->findThemeByName(themeName); if(foundTheme == nullptr) return false; this->currentTheme = foundTheme; emit this->themeChanged(); return true; } ScStwAppTheme * ScStwAppThemeManager::findThemeByName(QString themeName) { foreach (ScStwAppTheme *theme, this->themes) { if(theme->getName() == themeName) return theme; } return nullptr; }