File indexing completed on 2023-12-03 07:42:26
0001 /* 0002 * SPDX-FileCopyrightText: 2021 Nicolas Fella <nicolas.fella@gmx.de> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "kcolorschemewatcher.h" 0008 0009 #include "kcolorschemewatcherbackend.h" 0010 0011 #ifdef Q_OS_WINDOWS 0012 #include "kcolorschemewatcher_win.h" 0013 #endif 0014 0015 #ifdef Q_OS_MACOS 0016 #include "kcolorschemewatcher_mac.h" 0017 #endif 0018 0019 #ifdef QT_DBUS_LIB 0020 #include "kcolorschemewatcher_xdg.h" 0021 #endif 0022 0023 class KColorSchemeWatcherPrivate 0024 { 0025 public: 0026 std::unique_ptr<KColorSchemeWatcherBackend> backend; 0027 0028 KColorSchemeWatcherPrivate() 0029 { 0030 #ifdef Q_OS_WINDOWS 0031 backend = std::make_unique<KColorSchemeWatcherWin>(); 0032 #elif defined(Q_OS_MACOS) 0033 backend = std::make_unique<KColorSchemeWatcherMac>(); 0034 #elif defined(QT_DBUS_LIB) 0035 backend = std::make_unique<KColorSchemeWatcherXDG>(); 0036 #endif 0037 } 0038 }; 0039 0040 KColorSchemeWatcher::KColorSchemeWatcher(QObject *parent) 0041 : QObject(parent) 0042 , d(new KColorSchemeWatcherPrivate) 0043 { 0044 if (d->backend) { 0045 connect(d->backend.get(), &KColorSchemeWatcherBackend::systemPreferenceChanged, this, &KColorSchemeWatcher::systemPreferenceChanged); 0046 } 0047 } 0048 0049 KColorSchemeWatcher::~KColorSchemeWatcher() 0050 { 0051 } 0052 0053 KColorSchemeWatcher::ColorPreference KColorSchemeWatcher::systemPreference() const 0054 { 0055 if (d->backend) { 0056 return d->backend->systemPreference(); 0057 } 0058 0059 return NoPreference; 0060 } 0061 0062 #include "moc_kcolorschemewatcher.cpp"