KWin
Loading...
Searching...
No Matches
nightcolordbusinterface.h
Go to the documentation of this file.
1/*
2 KWin - the KDE window manager
3 This file is part of the KDE project.
4
5 SPDX-FileCopyrightText: 2017 Roman Gilg <subdiff@gmail.com>
6
7 SPDX-License-Identifier: GPL-2.0-or-later
8*/
9
10#pragma once
11
12#include <QDBusContext>
13#include <QDBusServiceWatcher>
14#include <QObject>
15
16namespace KWin
17{
18
19class NightColorManager;
20
21class NightColorDBusInterface : public QObject, public QDBusContext
22{
23 Q_OBJECT
24 Q_CLASSINFO("D-Bus Interface", "org.kde.KWin.NightLight")
25 Q_PROPERTY(bool inhibited READ isInhibited)
26 Q_PROPERTY(bool enabled READ isEnabled)
27 Q_PROPERTY(bool running READ isRunning)
28 Q_PROPERTY(bool available READ isAvailable)
31 Q_PROPERTY(int mode READ mode)
32 Q_PROPERTY(bool daylight READ daylight)
37
38public:
40 ~NightColorDBusInterface() override;
41
42 bool isInhibited() const;
43 bool isEnabled() const;
44 bool isRunning() const;
45 bool isAvailable() const;
46 int currentTemperature() const;
47 int targetTemperature() const;
48 int mode() const;
49 bool daylight() const;
50 quint64 previousTransitionDateTime() const;
51 quint32 previousTransitionDuration() const;
52 quint64 scheduledTransitionDateTime() const;
53 quint32 scheduledTransitionDuration() const;
54
55public Q_SLOTS:
61 void setLocation(double latitude, double longitude);
62
67 uint inhibit();
72 void uninhibit(uint cookie);
77 void preview(uint temperature);
82 void stopPreview();
83
84private Q_SLOTS:
85 void removeInhibitorService(const QString &serviceName);
86
88 void uninhibit(const QString &serviceName, uint cookie);
89
90 NightColorManager *m_manager;
91 QDBusServiceWatcher *m_inhibitorWatcher;
92 QMultiHash<QString, uint> m_inhibitors;
93 uint m_lastInhibitionCookie = 0;
94};
95
96}
uint inhibit()
Temporarily blocks Night Color.
void uninhibit(uint cookie)
Cancels the previous call to inhibit().
void stopPreview()
Stops an ongoing preview.
void preview(uint temperature)
Previews a given temperature for a short time (15s).
void setLocation(double latitude, double longitude)
For receiving auto location updates, primarily through the KDE Daemon.
#define private
#define explicit