From 3565aad630864ecdbe53fdaa501ea708555b3c7c Mon Sep 17 00:00:00 2001 From: Unit 193 Date: Sun, 30 Apr 2023 18:30:36 -0400 Subject: New upstream version 3.4.4+dfsg. --- SQLiteStudio3/guiSQLiteStudio/style.cpp | 59 ++++++++++++++++++++++++++++----- 1 file changed, 51 insertions(+), 8 deletions(-) (limited to 'SQLiteStudio3/guiSQLiteStudio/style.cpp') diff --git a/SQLiteStudio3/guiSQLiteStudio/style.cpp b/SQLiteStudio3/guiSQLiteStudio/style.cpp index 525a832..6946443 100644 --- a/SQLiteStudio3/guiSQLiteStudio/style.cpp +++ b/SQLiteStudio3/guiSQLiteStudio/style.cpp @@ -1,9 +1,12 @@ #include "style.h" #include "themetuner.h" -#include "common/global.h" #include "mainwindow.h" +#include "common/unused.h" +#include "syntaxhighlighterplugin.h" +#include "services/pluginmanager.h" #include #include +#include Style* Style::instance = nullptr; @@ -15,6 +18,12 @@ Style* Style::getInstance() return instance; } + +bool Style::isDark(const QStyle* style) +{ + return style->standardPalette().text().color().value() >= 80; +} + const ExtendedPalette& Style::extendedPalette() const { return extPalette; @@ -24,15 +33,21 @@ void Style::setStyle(QStyle *style, const QString &styleName) { setBaseStyle(style); - QApplication::setPalette(initialPalette); // reset palette, cause styles don't provide - // full palette when changed in runtime (i.e. windowsvista) - QApplication::setStyle(this); - QApplication::setPalette(standardPalette()); - THEME_TUNER->tuneTheme(styleName); - QToolTip::setPalette(standardPalette()); + QApplication::setAttribute(Qt::AA_DisableWindowContextHelpButton); - extPalette.styleChanged(this, styleName); + if (styleName != "qt5ct-style") + { + QApplication::setPalette(initialPalette); // reset palette, cause styles don't provide + // full palette when changed in runtime (i.e. windowsvista) + } + QApplication::setStyle(this); + if (styleName != "qt5ct-style") + { + QApplication::setPalette(standardPalette()); + QToolTip::setPalette(standardPalette()); + } + THEME_TUNER->tuneTheme(styleName); MAINWINDOW->getMdiArea()->setBackground(extPalette.mdiAreaBase()); } @@ -41,8 +56,36 @@ QString Style::name() const return baseStyle()->objectName(); } +bool Style::isDark() const +{ + return isDark(this); +} + +bool Style::eventFilter(QObject *obj, QEvent *ev) +{ + UNUSED(obj); + if (ev->type() == QEvent::PaletteChange) + { + if (extPalette.styleChanged(this, name())) + { + QList plugins = PLUGINS->getLoadedPlugins(); + auto it = plugins.begin(); + while (it != plugins.end()) + { + (*it)->refreshFormats(); + it++; + } + emit paletteChanged(); + } + } + + return false; +} + Style::Style(QStyle *style) : QProxyStyle(style) { initialPalette = style->standardPalette(); + extPalette.styleChanged(this, name()); + qApp->installEventFilter(this); } -- cgit v1.2.3