File indexing completed on 2024-05-12 09:38:48
0001 /* 0002 * SPDX-FileCopyrightText: 2022 by Devin Lin <devin@kde.org> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "nightcolorutil.h" 0008 0009 NightColorUtil::NightColorUtil(QObject *parent) 0010 : QObject{parent} 0011 , m_ccInterface{new OrgKdeKWinNightLightInterface(QStringLiteral("org.kde.KWin.NightLight"), 0012 QStringLiteral("/org/kde/KWin/NightLight"), 0013 QDBusConnection::sessionBus(), 0014 this)} 0015 , m_settings{new NightColorSettings(this)} 0016 { 0017 if (!m_ccInterface->isValid()) { 0018 qWarning() << "Can't connect to nightcolor over DBus!"; 0019 } else { 0020 m_enabled = m_ccInterface->running(); 0021 0022 // subscribe to property updates 0023 QDBusConnection::sessionBus().connect(QStringLiteral("org.kde.KWin.NightLight"), 0024 QStringLiteral("/org/kde/KWin/NightLight"), 0025 QStringLiteral("org.freedesktop.DBus.Properties"), 0026 QStringLiteral("PropertiesChanged"), 0027 this, 0028 SLOT(enabledUpdated(QString, QVariantMap, QStringList))); 0029 } 0030 } 0031 0032 bool NightColorUtil::enabled() 0033 { 0034 return m_enabled; 0035 } 0036 0037 void NightColorUtil::setEnabled(bool enabled) 0038 { 0039 m_settings->setMode(ColorCorrect::NightColorMode::Constant); 0040 m_settings->setActive(enabled); 0041 m_settings->save(); 0042 } 0043 0044 void NightColorUtil::enabledUpdated(const QString &name, const QVariantMap &map, const QStringList &list) 0045 { 0046 Q_UNUSED(name); 0047 Q_UNUSED(map); 0048 Q_UNUSED(list); 0049 bool running = m_ccInterface->running(); 0050 if (running != m_enabled) { 0051 m_enabled = running; 0052 Q_EMIT enabledChanged(); 0053 } 0054 }