From bbe139dce51a7965394c800cac974946820d3869 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sat, 22 Oct 2016 01:43:36 +0200 Subject: GH-903 force Dark theme to use Fusion Qt style Themes now include Qt styles. --- application/themes/DarkTheme.cpp | 5 +++++ application/themes/DarkTheme.h | 1 + application/themes/ITheme.h | 1 + application/themes/SystemTheme.cpp | 23 ++++++++++++++++++++++- application/themes/SystemTheme.h | 1 + 5 files changed, 30 insertions(+), 1 deletion(-) (limited to 'application/themes') diff --git a/application/themes/DarkTheme.cpp b/application/themes/DarkTheme.cpp index 7445dedf..497be1f4 100644 --- a/application/themes/DarkTheme.cpp +++ b/application/themes/DarkTheme.cpp @@ -10,6 +10,11 @@ QString DarkTheme::name() return QObject::tr("Dark"); } +QString DarkTheme::qtTheme() +{ + return "Fusion"; +} + QPalette DarkTheme::colorScheme() { QPalette darkPalette; diff --git a/application/themes/DarkTheme.h b/application/themes/DarkTheme.h index 11e621a6..8552851d 100644 --- a/application/themes/DarkTheme.h +++ b/application/themes/DarkTheme.h @@ -7,6 +7,7 @@ class DarkTheme: public ITheme public: virtual ~DarkTheme() {} + QString qtTheme() override; QString id() override; QString name() override; QString appStyleSheet() override; diff --git a/application/themes/ITheme.h b/application/themes/ITheme.h index 8e0836eb..969969be 100644 --- a/application/themes/ITheme.h +++ b/application/themes/ITheme.h @@ -9,5 +9,6 @@ public: virtual QString id() = 0; virtual QString name() = 0; virtual QString appStyleSheet() = 0; + virtual QString qtTheme() = 0; virtual QPalette colorScheme() = 0; }; diff --git a/application/themes/SystemTheme.cpp b/application/themes/SystemTheme.cpp index 6ced6843..6d8a0ee8 100644 --- a/application/themes/SystemTheme.cpp +++ b/application/themes/SystemTheme.cpp @@ -1,10 +1,26 @@ #include "SystemTheme.h" #include #include +#include +#include SystemTheme::SystemTheme() { - systemPalette = QApplication::style()->standardPalette(); + const auto & style = QApplication::style(); + systemPalette = style->standardPalette(); + QString lowerThemeName = style->objectName(); + qWarning() << systemTheme; + QStringList styles = QStyleFactory::keys(); + for(auto &st: styles) + { + if(st.toLower() == lowerThemeName) + { + systemTheme = st; + return; + } + } + // fall back to fusion if we can't find the current theme. + systemTheme = "Fusion"; } QString SystemTheme::id() @@ -17,6 +33,11 @@ QString SystemTheme::name() return QObject::tr("System"); } +QString SystemTheme::qtTheme() +{ + return systemTheme; +} + QPalette SystemTheme::colorScheme() { return systemPalette; diff --git a/application/themes/SystemTheme.h b/application/themes/SystemTheme.h index 90fd8ed9..75a8738c 100644 --- a/application/themes/SystemTheme.h +++ b/application/themes/SystemTheme.h @@ -10,6 +10,7 @@ public: QString id() override; QString name() override; + QString qtTheme() override; QString appStyleSheet() override; QPalette colorScheme() override; private: -- cgit v1.2.3