cache platform palette on load

This commit is contained in:
itsmattkc
2020-12-30 18:10:38 +11:00
parent 3024d68d59
commit c0095a40ce
2 changed files with 11 additions and 4 deletions
+9 -4
View File
@@ -36,20 +36,21 @@ namespace olive {
const char* StyleManager::kDefaultStyle = "olive-dark";
QString StyleManager::current_style_;
QMap<QString, QString> 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"));
+2
View File
@@ -56,6 +56,8 @@ private:
static QMap<QString, QString> available_themes_;
static QPalette platform_palette_;
};
}