1/*
2 * SPDX-FileCopyrightText: 2021 Nicolas Fella <nicolas.fella@gmx.de>
3 *
4 * SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6
7#include "kcolorschemewatcher.h"
8
9#include "kcolorschemewatcherbackend.h"
10
11#ifdef Q_OS_WINDOWS
12#include "kcolorschemewatcher_win.h"
13#endif
14
15#ifdef Q_OS_MACOS
16#include "kcolorschemewatcher_mac.h"
17#endif
18
19#ifdef QT_DBUS_LIB
20#include "kcolorschemewatcher_xdg.h"
21#endif
22
23class KColorSchemeWatcherPrivate
24{
25public:
26 std::unique_ptr<KColorSchemeWatcherBackend> backend;
27
28 KColorSchemeWatcherPrivate()
29 {
30#ifdef Q_OS_WINDOWS
31 backend = std::make_unique<KColorSchemeWatcherWin>();
32#elif defined(Q_OS_MACOS)
33 backend = std::make_unique<KColorSchemeWatcherMac>();
34#elif defined(QT_DBUS_LIB)
35 backend = std::make_unique<KColorSchemeWatcherXDG>();
36#endif
37 }
38};
39
40KColorSchemeWatcher::KColorSchemeWatcher(QObject *parent)
41 : QObject(parent)
42 , d(new KColorSchemeWatcherPrivate)
43{
44 if (d->backend) {
45 connect(d->backend.get(), &KColorSchemeWatcherBackend::systemPreferenceChanged, this, &KColorSchemeWatcher::systemPreferenceChanged);
46 }
47}
48
49KColorSchemeWatcher::~KColorSchemeWatcher()
50{
51}
52
53KColorSchemeWatcher::ColorPreference KColorSchemeWatcher::systemPreference() const
54{
55 if (d->backend) {
56 return d->backend->systemPreference();
57 }
58
59 return NoPreference;
60}
61
62#include "moc_kcolorschemewatcher.cpp"
63

source code of kguiaddons/src/colors/kcolorschemewatcher.cpp