File indexing completed on 2024-04-28 16:52:27
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 OrgKdeKwinColorCorrectInterface(QStringLiteral("org.kde.KWin"), QStringLiteral("/ColorCorrect"), QDBusConnection::sessionBus(), this)} 0012 , m_settings{new NightColorSettings(this)} 0013 { 0014 if (!m_ccInterface->isValid()) { 0015 qWarning() << "Can't connect to nightcolor over DBus!"; 0016 } else { 0017 m_enabled = m_ccInterface->running(); 0018 0019 // subscribe to property updates 0020 QDBusConnection::sessionBus().connect(QStringLiteral("org.kde.KWin"), 0021 QStringLiteral("/ColorCorrect"), 0022 QStringLiteral("org.freedesktop.DBus.Properties"), 0023 QStringLiteral("PropertiesChanged"), 0024 this, 0025 SLOT(enabledUpdated(QString, QVariantMap, QStringList))); 0026 } 0027 } 0028 0029 bool NightColorUtil::enabled() 0030 { 0031 return m_enabled; 0032 } 0033 0034 void NightColorUtil::setEnabled(bool enabled) 0035 { 0036 m_settings->setMode(ColorCorrect::NightColorMode::Constant); 0037 m_settings->setActive(enabled); 0038 m_settings->save(); 0039 } 0040 0041 void NightColorUtil::enabledUpdated(const QString &name, const QVariantMap &map, const QStringList &list) 0042 { 0043 Q_UNUSED(name); 0044 Q_UNUSED(map); 0045 Q_UNUSED(list); 0046 bool running = m_ccInterface->running(); 0047 if (running != m_enabled) { 0048 m_enabled = running; 0049 Q_EMIT enabledChanged(); 0050 } 0051 }