This commit is contained in:
Andrey Rodionov 2021-09-06 23:17:11 +03:00
parent 5ca81ad837
commit a2abb9296a
2 changed files with 38 additions and 29 deletions

View File

@ -29,6 +29,32 @@ RTPTheme::RTPTheme()
: d_ptr(new RTPThemePrivate)
{
Q_D(RTPTheme);
m_font = new QFont("Verdana",8);
QStringList active {
"#000000", "#d3d3d3", "#ffffff", "#e9e9e9", "#696969", "#8d8d8d",
"#000000", "#ffffff", "#000000", "#fdfcfa", "#d3d3d3", "#000000",
"#232323", "#ffffff", "#0000ff", "#644a9b", "#faf6ef", "#000000",
"#ffffdc", "#000000" };
QStringList disabled {
"#808080", "#d3d3d3", "#ffffff", "#f3f3f3", "#696969", "#8d8d8d",
"#808080", "#ffffff", "#808080", "#fdfcfa", "#d3d3d3", "#000000",
"#232323", "#808080", "#0000ff", "#644a9b", "#faf6ef", "#000000",
"#ffffdc", "#000000" };
QStringList inactive {
"#000000", "#d3d3d3", "#ffffff", "#f3f3f3", "#696969", "#8d8d8d",
"#000000", "#ffffff", "#000000", "#fdfcfa", "#d3d3d3", "#000000",
"#232323", "#ffffff", "#0000ff", "#644a9b", "#faf6ef", "#000000",
"#ffffdc", "#000000" };
m_palette = new QPalette(Qt::black);
for (int i = 0; i < qMin(active.count(), int(QPalette::NColorRoles)); ++i)
{
QPalette::ColorRole colorRole = (QPalette::ColorRole)i;
m_palette->setColor(QPalette::Active, colorRole, QColor(active[i]));
m_palette->setColor(QPalette::Disabled, colorRole, QColor(disabled[i]));
m_palette->setColor(QPalette::Inactive, colorRole, QColor(inactive[i]));
}
QStringList themeNames;
themeNames += QGuiApplicationPrivate::platform_integration->themeNames();
@ -55,6 +81,12 @@ RTPTheme::RTPTheme()
d->baseTheme = new QPlatformTheme;
}
RTPTheme::~RTPTheme()
{
delete m_font;
delete m_palette;
}
QPlatformMenuItem* RTPTheme::createPlatformMenuItem() const
{
Q_D(const RTPTheme);
@ -108,34 +140,8 @@ const QPalette *RTPTheme::palette(Palette type) const
{
Q_D(const RTPTheme);
if (type == SystemPalette) {
QStringList active {
"#000000", "#d3d3d3", "#ffffff", "#e9e9e9", "#696969", "#8d8d8d",
"#000000", "#ffffff", "#000000", "#fdfcfa", "#d3d3d3", "#000000",
"#232323", "#ffffff", "#0000ff", "#644a9b", "#faf6ef", "#000000",
"#ffffdc", "#000000" };
QStringList disabled {
"#808080", "#d3d3d3", "#ffffff", "#f3f3f3", "#696969", "#8d8d8d",
"#808080", "#ffffff", "#808080", "#fdfcfa", "#d3d3d3", "#000000",
"#232323", "#808080", "#0000ff", "#644a9b", "#faf6ef", "#000000",
"#ffffdc", "#000000" };
QStringList inactive {
"#000000", "#d3d3d3", "#ffffff", "#f3f3f3", "#696969", "#8d8d8d",
"#000000", "#ffffff", "#000000", "#fdfcfa", "#d3d3d3", "#000000",
"#232323", "#ffffff", "#0000ff", "#644a9b", "#faf6ef", "#000000",
"#ffffdc", "#000000" };
QPalette *pal = new QPalette(Qt::black);
for (int i = 0; i < qMin(active.count(), int(QPalette::NColorRoles)); ++i)
{
QPalette::ColorRole colorRole = (QPalette::ColorRole)i;
pal->setColor(QPalette::Active, colorRole, QColor(active[i]));
pal->setColor(QPalette::Disabled, colorRole, QColor(disabled[i]));
pal->setColor(QPalette::Inactive, colorRole, QColor(inactive[i]));
}
return pal;
}
if (type == SystemPalette)
return m_palette;
return d->baseTheme->palette(type);
}
@ -144,7 +150,7 @@ const QFont* RTPTheme::font(Font type) const
{
Q_D(const RTPTheme);
return new QFont("Verdana",8);
return m_font;
}
QVariant RTPTheme::themeHint(ThemeHint hint) const

View File

@ -12,6 +12,7 @@ class RTPTheme : public QPlatformTheme
Q_DECLARE_PRIVATE(RTPTheme)
public:
RTPTheme();
virtual ~RTPTheme();
QPlatformMenuItem *createPlatformMenuItem() const override;
QPlatformMenu *createPlatformMenu() const override;
@ -45,6 +46,8 @@ public:
private:
QScopedPointer<RTPThemePrivate> d_ptr;
QFont *m_font;
QPalette *m_palette;
Q_DISABLE_COPY_MOVE(RTPTheme)
};