diff options
| author | 2023-04-30 18:31:18 -0400 | |
|---|---|---|
| committer | 2023-04-30 18:31:18 -0400 | |
| commit | 4de57f628bc74f00ba1885e91c84ea07c5405d8f (patch) | |
| tree | 5d91900751e826d491ff1b2ebc571a787e84f864 /SQLiteStudio3/guiSQLiteStudio/style.cpp | |
| parent | 74d881cefa9097e58e129e37b9c44d680d8c7dfe (diff) | |
| parent | 3565aad630864ecdbe53fdaa501ea708555b3c7c (diff) | |
Update upstream source from tag 'upstream/3.4.4+dfsg'
Update to upstream version '3.4.4+dfsg'
with Debian dir 482614bd23f0ef52dabc9803477204ad88e917ed
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/style.cpp')
| -rw-r--r-- | SQLiteStudio3/guiSQLiteStudio/style.cpp | 59 |
1 files changed, 51 insertions, 8 deletions
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 <QApplication> #include <QToolTip> +#include <QDebug> 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<SyntaxHighlighterPlugin*> plugins = PLUGINS->getLoadedPlugins<SyntaxHighlighterPlugin>(); + 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); } |
