mirror of
https://github.com/amnezia-vpn/amnezia-client.git
synced 2026-06-21 02:01:03 +07:00
29 lines
775 B
C++
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);
|
|
}
|