Files
amnezia-client/client/platforms/windows/wintraytheme.cpp
T
2026-05-30 14:50:18 +03:00

29 lines
775 B
C++

#include "wintraytheme.h"
#include "platforms/windows/windowsutils.h"
#include "ui/utils/trayThemeChangeFilter.h"
#include <QApplication>
#include <QGuiApplication>
#include <QObject>
#include <QStyleHints>
void WinTrayTheme::installThemeObserver(const std::function<void()> &onThemeChanged, QObject *parent)
{
if (!onThemeChanged || !parent) {
return;
}
if (QStyleHints *styleHints = QGuiApplication::styleHints()) {
QObject::connect(styleHints, &QStyleHints::colorSchemeChanged, parent, [onThemeChanged]() {
onThemeChanged();
});
}
qApp->installEventFilter(new TrayThemeChangeFilter([onThemeChanged]() {
onThemeChanged();
}, parent));
WindowsUtils::installThemeChangeObserver(onThemeChanged);
}