#include "FluTheme.h" #include "FluColors.h" #include #include FluTheme* FluTheme::m_instance = nullptr; FluTheme *FluTheme::getInstance() { if(FluTheme::m_instance == nullptr){ FluTheme::m_instance = new FluTheme; } return FluTheme::m_instance; } FluTheme::FluTheme(QObject *parent) : QObject{parent} { primaryColor(FluColors::getInstance()->Blue()); textSize(13); nativeText(false); frameless(true); if (follow_system()){dark(isDark());} (qobject_cast(QCoreApplication::instance()))->installEventFilter(this); } bool FluTheme::eventFilter(QObject *obj, QEvent *event) { Q_UNUSED(obj); if (event->type() == QEvent::ApplicationPaletteChange) { if (follow_system()){dark(isDark());} event->accept(); return true; } return false; } bool FluTheme::isDark() { QPalette palette = (qobject_cast(QCoreApplication::instance()))->palette(); QColor color = palette.color(QPalette::Window).rgb(); return !(color.red() * 0.2126 + color.green() * 0.7152 + color.blue() * 0.0722 > 255 / 2); }