File indexing completed on 2024-05-05 07:55: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 bool KColorSchemeWatcherWin::nativeEventFilter(const QByteArray &eventType, void *message, qintptr *) 0023 { 0024 MSG *msg = static_cast<MSG *>(message); 0025 switch (msg->message) { 0026 case WM_SETTINGCHANGE: { 0027 m_settings.sync(); 0028 const bool preferDarkModeNow = !(m_settings.value(QStringLiteral("AppsUseLightTheme"), true).value<bool>()); 0029 if (m_preferDarkMode != preferDarkModeNow) { 0030 m_preferDarkMode = preferDarkModeNow; 0031 Q_EMIT systemPreferenceChanged(); 0032 } 0033 0034 break; 0035 } 0036 default: { 0037 } 0038 } 0039 return false; 0040 } 0041 0042 KColorSchemeWatcher::ColorPreference KColorSchemeWatcherWin::systemPreference() const 0043 { 0044 return m_preferDarkMode ? KColorSchemeWatcher::PreferDark : KColorSchemeWatcher::PreferLight; 0045 } 0046 0047 #include "moc_kcolorschemewatcher_win.cpp"