From ce8eb4cda242963af51df39887021c5ec7207046 Mon Sep 17 00:00:00 2001 From: "Matthew J. Milner" Date: Thu, 18 Jan 2024 15:28:22 +0100 Subject: [PATCH] Add code to check for current palette being a dark theme Signed-off-by: Matthew J. Milner --- avogadro/qtgui/toolplugin.cpp | 11 +++++++++++ avogadro/qtgui/toolplugin.h | 3 +++ 2 files changed, 14 insertions(+) diff --git a/avogadro/qtgui/toolplugin.cpp b/avogadro/qtgui/toolplugin.cpp index 249c2a2638..dfce653258 100644 --- a/avogadro/qtgui/toolplugin.cpp +++ b/avogadro/qtgui/toolplugin.cpp @@ -4,6 +4,7 @@ ******************************************************************************/ #include "toolplugin.h" +#include namespace Avogadro::QtGui { @@ -58,4 +59,14 @@ bool ToolPlugin::handleCommand(const QString& command, ToolPluginFactory::~ToolPluginFactory() {} +// Method suggested by Qt to determine if theme is dark pre Qt6.5 +static bool shouldApplyDarkFrame() +{ + const QPalette defaultPalette; + return defaultPalette.color(QPalette::WindowText).lightness() + > defaultPalette.color(QPalette::Window).lightness(); +} + +bool ToolPlugin::darkTheme = shouldApplyDarkFrame(); + } // namespace Avogadro::QtGui diff --git a/avogadro/qtgui/toolplugin.h b/avogadro/qtgui/toolplugin.h index 0c72b0f3bb..36c344f877 100644 --- a/avogadro/qtgui/toolplugin.h +++ b/avogadro/qtgui/toolplugin.h @@ -40,6 +40,9 @@ class AVOGADROQTGUI_EXPORT ToolPlugin : public QObject { Q_OBJECT +private: + static bool darkTheme; + public: explicit ToolPlugin(QObject* parent = nullptr); ~ToolPlugin() override;