GH-903 simple theme switching and dark theme
This commit is contained in:
37
application/themes/DarkTheme.cpp
Normal file
37
application/themes/DarkTheme.cpp
Normal 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; }";
|
||||
}
|
14
application/themes/DarkTheme.h
Normal file
14
application/themes/DarkTheme.h
Normal 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;
|
||||
};
|
13
application/themes/ITheme.h
Normal file
13
application/themes/ITheme.h
Normal 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;
|
||||
};
|
28
application/themes/SystemTheme.cpp
Normal file
28
application/themes/SystemTheme.cpp
Normal 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();
|
||||
}
|
19
application/themes/SystemTheme.h
Normal file
19
application/themes/SystemTheme.h
Normal 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;
|
||||
};
|
||||
|
Reference in New Issue
Block a user