From c0095a40ceec655c78921031e52911fbeb77d229 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Wed, 30 Dec 2020 18:10:38 +1100 Subject: [PATCH] cache platform palette on load --- app/ui/style/style.cpp | 13 +++++++++---- app/ui/style/style.h | 2 ++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/app/ui/style/style.cpp b/app/ui/style/style.cpp index 7866ce7a9..602eceefb 100644 --- a/app/ui/style/style.cpp +++ b/app/ui/style/style.cpp @@ -36,20 +36,21 @@ namespace olive { const char* StyleManager::kDefaultStyle = "olive-dark"; QString StyleManager::current_style_; QMap StyleManager::available_themes_; +QPalette StyleManager::platform_palette_; void StyleManager::UseOSNativeStyling(QWidget *widget) { -#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) || QT_VERSION > QT_VERSION_CHECK(5, 15, 2) +//#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) || QT_VERSION > QT_VERSION_CHECK(5, 15, 2) #if defined(Q_OS_WINDOWS) QStyle* s = QStyleFactory::create(QStringLiteral("windowsvista")); widget->setStyle(s); - widget->setPalette(s->standardPalette()); + widget->setPalette(standard_palette_); #elif defined(Q_OS_MAC) QStyle* s = QStyleFactory::create(QStringLiteral("macintosh")); widget->setStyle(s); - widget->setPalette(s->standardPalette()); -#endif + widget->setPalette(platform_palette_); #endif +//#endif } QPalette StyleManager::ParsePalette(const QString& ini_path) @@ -141,6 +142,10 @@ void StyleManager::ParsePaletteColor(QSettings *ini, QPalette *palette, QPalette void StyleManager::Init() { + // Store standard palette before replacing it with our own + platform_palette_ = qApp->palette(); + platform_palette_.resolve(-1); + qApp->setStyle(QStyleFactory::create("Fusion")); available_themes_.insert(QStringLiteral("olive-dark"), QStringLiteral("Olive Dark")); diff --git a/app/ui/style/style.h b/app/ui/style/style.h index be77dce06..2aebfb515 100644 --- a/app/ui/style/style.h +++ b/app/ui/style/style.h @@ -56,6 +56,8 @@ private: static QMap available_themes_; + static QPalette platform_palette_; + }; }