cache platform palette on load
This commit is contained in:
@@ -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"));
|
||||
|
||||
@@ -56,6 +56,8 @@ private:
|
||||
|
||||
static QMap<QString, QString> available_themes_;
|
||||
|
||||
static QPalette platform_palette_;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user