GH-903 simple theme switching and dark theme

This commit is contained in:
Petr Mrázek
2016-10-21 09:07:26 +02:00
parent f07496ac6d
commit 872cfe036d
11 changed files with 237 additions and 4 deletions

View File

@ -0,0 +1,37 @@
#include "DarkTheme.h"
QString DarkTheme::id()
{
return "dark";
}
QString DarkTheme::name()
{
return QObject::tr("Dark");
}
QPalette DarkTheme::colorScheme()
{
QPalette darkPalette;
darkPalette.setColor(QPalette::Window, QColor(49,54,59));
darkPalette.setColor(QPalette::WindowText, Qt::white);
darkPalette.setColor(QPalette::Base, QColor(35,38,41));
darkPalette.setColor(QPalette::AlternateBase, QColor(49,54,59));
darkPalette.setColor(QPalette::ToolTipBase, Qt::white);
darkPalette.setColor(QPalette::ToolTipText, Qt::white);
darkPalette.setColor(QPalette::Text, Qt::white);
darkPalette.setColor(QPalette::Button, QColor(49,54,59));
darkPalette.setColor(QPalette::ButtonText, Qt::white);
darkPalette.setColor(QPalette::BrightText, Qt::red);
darkPalette.setColor(QPalette::Link, QColor(42, 130, 218));
darkPalette.setColor(QPalette::Highlight, QColor(42, 130, 218));
darkPalette.setColor(QPalette::HighlightedText, Qt::black);
return darkPalette;
}
QString DarkTheme::appStyleSheet()
{
return "QToolTip { color: #ffffff; background-color: #2a82da; border: 1px solid white; }";
}

View File

@ -0,0 +1,14 @@
#pragma once
#include "ITheme.h"
class DarkTheme: public ITheme
{
public:
virtual ~DarkTheme() {}
QString id() override;
QString name() override;
QString appStyleSheet() override;
QPalette colorScheme() override;
};

View File

@ -0,0 +1,13 @@
#pragma once
#include <QString>
#include <QPalette>
class ITheme
{
public:
virtual ~ITheme() {}
virtual QString id() = 0;
virtual QString name() = 0;
virtual QString appStyleSheet() = 0;
virtual QPalette colorScheme() = 0;
};

View File

@ -0,0 +1,28 @@
#include "SystemTheme.h"
#include <QApplication>
#include <QStyle>
SystemTheme::SystemTheme()
{
systemPalette = QApplication::style()->standardPalette();
}
QString SystemTheme::id()
{
return "system";
}
QString SystemTheme::name()
{
return QObject::tr("System");
}
QPalette SystemTheme::colorScheme()
{
return systemPalette;
}
QString SystemTheme::appStyleSheet()
{
return QString();
}

View File

@ -0,0 +1,19 @@
#pragma once
#include "ITheme.h"
class SystemTheme: public ITheme
{
public:
SystemTheme();
virtual ~SystemTheme() {}
QString id() override;
QString name() override;
QString appStyleSheet() override;
QPalette colorScheme() override;
private:
QPalette systemPalette;
QString systemTheme;
};