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 | |
23 | class KColorSchemeWatcherPrivate |
24 | { |
25 | public: |
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 | |
40 | KColorSchemeWatcher::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 | |
49 | KColorSchemeWatcher::~KColorSchemeWatcher() |
50 | { |
51 | } |
52 | |
53 | KColorSchemeWatcher::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 | |