File indexing completed on 2024-05-05 03:54:43
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 "kcolorschemewatcher_qt.h" 0010 #include "kcolorschemewatcherbackend.h" 0011 0012 #ifdef Q_OS_WINDOWS 0013 #include "kcolorschemewatcher_win.h" 0014 #endif 0015 0016 #ifdef Q_OS_MACOS 0017 #include "kcolorschemewatcher_mac.h" 0018 #endif 0019 0020 #ifdef QT_DBUS_LIB 0021 #include "kcolorschemewatcher_xdg.h" 0022 #endif 0023 0024 class KColorSchemeWatcherPrivate 0025 { 0026 public: 0027 std::unique_ptr<KColorSchemeWatcherBackend> backend; 0028 0029 KColorSchemeWatcherPrivate() 0030 { 0031 #ifdef Q_OS_WINDOWS 0032 backend = std::make_unique<KColorSchemeWatcherWin>(); 0033 #elif defined(Q_OS_MACOS) 0034 backend = std::make_unique<KColorSchemeWatcherMac>(); 0035 #elif defined(QT_DBUS_LIB) 0036 backend = std::make_unique<KColorSchemeWatcherXDG>(); 0037 #else 0038 backend = std::make_unique<KColorSchemeWatcherQt>(); 0039 #endif 0040 } 0041 }; 0042 0043 KColorSchemeWatcher::KColorSchemeWatcher(QObject *parent) 0044 : QObject(parent) 0045 , d(new KColorSchemeWatcherPrivate) 0046 { 0047 if (d->backend) { 0048 connect(d->backend.get(), &KColorSchemeWatcherBackend::systemPreferenceChanged, this, &KColorSchemeWatcher::systemPreferenceChanged); 0049 } 0050 } 0051 0052 KColorSchemeWatcher::~KColorSchemeWatcher() 0053 { 0054 } 0055 0056 KColorSchemeWatcher::ColorPreference KColorSchemeWatcher::systemPreference() const 0057 { 0058 if (d->backend) { 0059 return d->backend->systemPreference(); 0060 } 0061 0062 return NoPreference; 0063 } 0064 0065 #include "moc_kcolorschemewatcher.cpp"