2026-05-30 10:53:44 +03:00
|
|
|
#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()) {
|
2026-05-30 14:50:18 +03:00
|
|
|
QObject::connect(styleHints, &QStyleHints::colorSchemeChanged, parent, [onThemeChanged]() {
|
|
|
|
|
onThemeChanged();
|
|
|
|
|
});
|
2026-05-30 10:53:44 +03:00
|
|
|
}
|
|
|
|
|
|
2026-05-30 14:50:18 +03:00
|
|
|
qApp->installEventFilter(new TrayThemeChangeFilter([onThemeChanged]() {
|
|
|
|
|
onThemeChanged();
|
|
|
|
|
}, parent));
|
2026-05-30 10:53:44 +03:00
|
|
|
|
|
|
|
|
WindowsUtils::installThemeChangeObserver(onThemeChanged);
|
|
|
|
|
}
|