/*
    Speed climbing reaction timer
    Copyright (C) 2019  Itsblue Development | Dorian Zedler

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as published
    by the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

#include "headers/apptheme.h"

AppTheme::AppTheme(QObject *parent) : QObject(parent)
{

    QVariantMap tmpLightTheme = {
        {"backgroundColor", "white"},

        {"buttonColor", "white"},
        {"buttonPressedColor", "lightgrey"},
        {"buttonBorderColor", "grey"},
        {"disabledButtonColor", "#d5d5d5"},

        {"viewColor", "white"},
        {"menuColor", "#f8f8f8"},

        {"delegate1Color", "#202227"},
        {"delegate2Color", "#202227"},
        {"delegateBackgroundColor", "white"},
        {"delegatePressedColor", "#dddedf"},

        {"textColor", "black"},
        {"textDarkColor", "#232323"},
        {"disabledTextColor", "grey"},

        {"sliderColor", "#6ccaf2"},

        {"errorColor", "#ba3f62"},
        {"infoColor", "#3fba62"},

        {"lineColor", "grey"},

        {"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"}

    };
    this->themes.append(tmpLightTheme);

    QVariantMap tmpDarkTheme = {
        {"backgroundColor", "#2d3037"},

        {"buttonColor", "#202227"},
        {"buttonPressedColor", "#6ccaf2"},
        {"buttonBorderColor", "grey"},
        {"disabledButtonColor", "#555555"},

        {"viewColor", "#202227"},
        {"menuColor", "#292b32"},

        {"delegate1Color", "#202227"},
        {"delegate2Color", "#202227"},
        {"delegateBackgroundColor", "#202227"},
        {"delegatePressedColor", "#41454f"},

        {"textColor", "#ffffff"},
        {"textDarkColor", "#232323"},
        {"disabledTextColor", "#777777"},

        {"sliderColor", "#6ccaf2"},

        {"errorColor", "#ba3f62"},
        {"infoColor", "#3fba62"},

        {"lineColor", "grey"},

        {"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"}

    };
    this->themes.append(tmpDarkTheme);

    QString currentThemeString = pGlobalAppSettings->read("theme");

    this->currentTheme = &this->themes[currentThemeString.toInt()];

    qDebug() << currentThemeString << currentThemeString.toInt();
}

QVariant AppTheme::getStyle() {
    return *this->currentTheme;
}

void AppTheme::refreshTheme() {
    QString currentThemeString = pGlobalAppSettings->read("theme");

    this->currentTheme = &this->themes[currentThemeString.toInt()];

    emit this->styleChanged();
}
