File indexing completed on 2023-12-03 07:42:26
0001 /* 0002 * SPDX-FileCopyrightText: 2020 Piyush Aggarwal <piyushaggarwal002@gmail.com> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "kcolorschemewatcher_win.h" 0008 0009 #include <windows.h> 0010 0011 #include <QAbstractEventDispatcher> 0012 0013 #include <QDebug> 0014 0015 KColorSchemeWatcherWin::KColorSchemeWatcherWin() 0016 { 0017 QAbstractEventDispatcher::instance()->installNativeEventFilter(this); 0018 0019 m_preferDarkMode = !(m_settings.value(QStringLiteral("AppsUseLightTheme"), true).value<bool>()); 0020 } 0021 0022 #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) 0023 bool KColorSchemeWatcherWin::nativeEventFilter(const QByteArray &eventType, void *message, long *) 0024 #else 0025 bool KColorSchemeWatcherWin::nativeEventFilter(const QByteArray &eventType, void *message, qintptr *) 0026 #endif 0027 { 0028 MSG *msg = static_cast<MSG *>(message); 0029 switch (msg->message) { 0030 case WM_SETTINGCHANGE: { 0031 m_settings.sync(); 0032 const bool preferDarkModeNow = !(m_settings.value(QStringLiteral("AppsUseLightTheme"), true).value<bool>()); 0033 if (m_preferDarkMode != preferDarkModeNow) { 0034 m_preferDarkMode = preferDarkModeNow; 0035 Q_EMIT systemPreferenceChanged(); 0036 } 0037 0038 break; 0039 } 0040 default: { 0041 } 0042 } 0043 return false; 0044 } 0045 0046 KColorSchemeWatcher::ColorPreference KColorSchemeWatcherWin::systemPreference() const 0047 { 0048 return m_preferDarkMode ? KColorSchemeWatcher::PreferDark : KColorSchemeWatcher::PreferLight; 0049 } 0050 0051 #include "moc_kcolorschemewatcher_win.cpp"