mirror of
https://invent.kde.org/marcoa/shift-shell.git
synced 2026-04-26 14:23:09 +00:00
quicksettings/nightcolor: Fix night color
This commit is contained in:
parent
db8ab82778
commit
1f0db0efc6
14 changed files with 424 additions and 15 deletions
|
|
@ -58,16 +58,14 @@ include(CheckIncludeFiles)
|
||||||
|
|
||||||
plasma_install_package(look-and-feel org.kde.plasma.phone look-and-feel)
|
plasma_install_package(look-and-feel org.kde.plasma.phone look-and-feel)
|
||||||
plasma_install_package(shell org.kde.plasma.phoneshell shells)
|
plasma_install_package(shell org.kde.plasma.phoneshell shells)
|
||||||
plasma_install_package(quicksettings/nightcolor org.kde.plasma.nightcolor quicksettings)
|
|
||||||
plasma_install_package(quicksettings/airplanemode org.kde.plasma.airplanemode quicksettings)
|
|
||||||
|
|
||||||
install(FILES plasma_phone_components.notifyrc DESTINATION ${KNOTIFYRC_INSTALL_DIR})
|
install(FILES plasma_phone_components.notifyrc DESTINATION ${KNOTIFYRC_INSTALL_DIR})
|
||||||
|
|
||||||
|
|
||||||
add_subdirectory(bin)
|
add_subdirectory(bin)
|
||||||
add_subdirectory(applets)
|
add_subdirectory(applets)
|
||||||
add_subdirectory(containments)
|
add_subdirectory(containments)
|
||||||
add_subdirectory(components)
|
add_subdirectory(components)
|
||||||
|
add_subdirectory(quicksettings)
|
||||||
|
|
||||||
find_program(PlasmaOpenSettings plasma-open-settings)
|
find_program(PlasmaOpenSettings plasma-open-settings)
|
||||||
set_package_properties(PlasmaOpenSettings PROPERTIES
|
set_package_properties(PlasmaOpenSettings PROPERTIES
|
||||||
|
|
|
||||||
5
quicksettings/CMakeLists.txt
Normal file
5
quicksettings/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
# SPDX-FileCopyrightText: 2022 Devin Lin <devin@kde.org>
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
plasma_install_package(airplanemode org.kde.plasma.airplanemode quicksettings)
|
||||||
|
add_subdirectory(nightcolor)
|
||||||
49
quicksettings/nightcolor/CMakeLists.txt
Normal file
49
quicksettings/nightcolor/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,49 @@
|
||||||
|
# SPDX-FileCopyrightText: 2022 Devin Lin <devin@kde.org>
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
set_source_files_properties(dbus/org.kde.kwin.ColorCorrect.xml PROPERTIES NO_NAMESPACE TRUE)
|
||||||
|
qt_add_dbus_interfaces(DBUS_SRCS dbus/org.kde.kwin.ColorCorrect.xml)
|
||||||
|
|
||||||
|
set(nightcolorplugin_SRCS
|
||||||
|
nightcolorplugin.cpp
|
||||||
|
nightcolorutil.cpp
|
||||||
|
enum.h
|
||||||
|
${DBUS_SRCS}
|
||||||
|
)
|
||||||
|
|
||||||
|
kconfig_add_kcfg_files(nightcolorplugin_SRCS nightcolorsettings.kcfgc GENERATE_MOC)
|
||||||
|
|
||||||
|
add_library(nightcolorplugin ${nightcolorplugin_SRCS})
|
||||||
|
|
||||||
|
find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS
|
||||||
|
Config
|
||||||
|
Declarative
|
||||||
|
)
|
||||||
|
|
||||||
|
target_link_libraries(nightcolorplugin
|
||||||
|
PUBLIC
|
||||||
|
Qt::Core
|
||||||
|
PRIVATE
|
||||||
|
Qt::DBus
|
||||||
|
Qt::Qml
|
||||||
|
Qt::Gui
|
||||||
|
Qt::Quick
|
||||||
|
KF5::Plasma
|
||||||
|
KF5::I18n
|
||||||
|
KF5::Notifications
|
||||||
|
KF5::PlasmaQuick
|
||||||
|
KF5::WaylandClient
|
||||||
|
KF5::Service
|
||||||
|
KF5::CoreAddons
|
||||||
|
KF5::QuickAddons
|
||||||
|
KF5::ConfigCore
|
||||||
|
KF5::ConfigGui
|
||||||
|
)
|
||||||
|
|
||||||
|
set_property(TARGET nightcolorplugin PROPERTY LIBRARY_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/org/kde/plasma/quicksetting/nightcolor)
|
||||||
|
file(COPY qmldir DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/org/kde/plasma/quicksetting/nightcolor)
|
||||||
|
|
||||||
|
install(TARGETS nightcolorplugin DESTINATION ${QML_INSTALL_DIR}/org/kde/plasma/quicksetting/nightcolor)
|
||||||
|
install(FILES qmldir ${qml_SRC} DESTINATION ${QML_INSTALL_DIR}/org/kde/plasma/quicksetting/nightcolor)
|
||||||
|
|
||||||
|
plasma_install_package(package org.kde.plasma.nightcolor quicksettings)
|
||||||
109
quicksettings/nightcolor/dbus/org.kde.kwin.ColorCorrect.xml
Normal file
109
quicksettings/nightcolor/dbus/org.kde.kwin.ColorCorrect.xml
Normal file
|
|
@ -0,0 +1,109 @@
|
||||||
|
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
|
||||||
|
<!--
|
||||||
|
- SPDX-FileCopyrightText: 2017 Roman Gilg
|
||||||
|
- SPDX-FileCopyrightText: 2020 Vlad Zahorodnii
|
||||||
|
- SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
-->
|
||||||
|
<node>
|
||||||
|
<interface name="org.kde.kwin.ColorCorrect">
|
||||||
|
<method name="nightColorAutoLocationUpdate">
|
||||||
|
<arg type="d" direction="in"/>
|
||||||
|
<arg type="d" direction="in"/>
|
||||||
|
</method>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Creates an inhibition lock for Night Color.
|
||||||
|
|
||||||
|
You can use this method to temporarily disable Night Color feature.
|
||||||
|
After calling this method, the screen color temperature will be set
|
||||||
|
back to the neutral temperature (6500K).
|
||||||
|
|
||||||
|
This method returns a cookie that uniquely identifies the inhibition
|
||||||
|
request. You must pass the cookie to uninhibit() when you're done.
|
||||||
|
|
||||||
|
Note that the inhibition lock will be released automatically when
|
||||||
|
the service, which requested it, is unregistered.
|
||||||
|
|
||||||
|
A client is allowed to hold more than just one inhibition lock.
|
||||||
|
-->
|
||||||
|
<method name="inhibit">
|
||||||
|
<arg name="cookie" type="u" direction="out"/>
|
||||||
|
</method>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Releases an inhibition lock identified by the given cookie.
|
||||||
|
|
||||||
|
Note that the inhibition lock will be released automatically when
|
||||||
|
the service, which requested it, is unregistered.
|
||||||
|
-->
|
||||||
|
<method name="uninhibit">
|
||||||
|
<arg name="cookie" type="u" direction="in"/>
|
||||||
|
</method>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
This property holds a value to indicate whether Night Color is inhibited.
|
||||||
|
-->
|
||||||
|
<property name="inhibited" type="b" access="read"/>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
This property holds a value to indicate whether Night Color is enabled.
|
||||||
|
-->
|
||||||
|
<property name="enabled" type="b" access="read"/>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
This property holds a value to indicate whether Night Color is running.
|
||||||
|
-->
|
||||||
|
<property name="running" type="b" access="read"/>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
This property holds a value to indicate whether Night Color is available.
|
||||||
|
-->
|
||||||
|
<property name="available" type="b" access="read"/>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
This property holds a value to indicate the current screen color temperature.
|
||||||
|
-->
|
||||||
|
<property name="currentTemperature" type="u" access="read"/>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
This property holds a value to indicate the target screen color temperature.
|
||||||
|
-->
|
||||||
|
<property name="targetTemperature" type="u" access="read"/>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
This property holds a value to indicate the operating mode.
|
||||||
|
|
||||||
|
Valid modes: 0 - automatic, 1 - location, 2 - timings, 3 - constant.
|
||||||
|
-->
|
||||||
|
<property name="mode" type="u" access="read"/>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
This property holds a Unix timestamp that specifies when the previous color
|
||||||
|
temperature transition had started. Note that when Night Color operates in
|
||||||
|
the constant mode, this property holds a value of 0.
|
||||||
|
-->
|
||||||
|
<property name="previousTransitionDateTime" type="t" access="read"/>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
This property holds a value that specifies the duration of the previous color
|
||||||
|
temperature transition, in milliseconds. Note that when Night Color operates
|
||||||
|
in the constant mode, this property holds a value of 0.
|
||||||
|
-->
|
||||||
|
<property name="previousTransitionDuration" type="u" access="read"/>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
This property holds a Unix timestamp that specifies when the next scheduled
|
||||||
|
color temperature transition will start. Note that when Night Color operates
|
||||||
|
in the constant mode, this property holds a value of 0.
|
||||||
|
-->
|
||||||
|
<property name="scheduledTransitionDateTime" type="t" access="read"/>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
This property holds a value that specifies the duration of next scheduled
|
||||||
|
color transition, in milliseconds. Note that when Night Color operates in
|
||||||
|
the constant mode, this property holds a value of 0.
|
||||||
|
-->
|
||||||
|
<property name="scheduledTransitionDuration" type="u" access="read"/>
|
||||||
|
</interface>
|
||||||
|
</node>
|
||||||
|
|
||||||
40
quicksettings/nightcolor/enum.h
Normal file
40
quicksettings/nightcolor/enum.h
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
/*
|
||||||
|
SPDX-FileCopyrightText: 2021 Benjamin Port <benjamin.port@enioka.com>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <qobjectdefs.h>
|
||||||
|
|
||||||
|
namespace ColorCorrect
|
||||||
|
{
|
||||||
|
Q_NAMESPACE
|
||||||
|
enum NightColorMode {
|
||||||
|
/**
|
||||||
|
* Color temperature is computed based on the current position of the Sun.
|
||||||
|
*
|
||||||
|
* Location of the user is provided by Plasma.
|
||||||
|
*/
|
||||||
|
Automatic,
|
||||||
|
/**
|
||||||
|
* Color temperature is computed based on the current position of the Sun.
|
||||||
|
*
|
||||||
|
* Location of the user is provided by themselves.
|
||||||
|
*/
|
||||||
|
Location,
|
||||||
|
/**
|
||||||
|
* Color temperature is computed based on the current time.
|
||||||
|
*
|
||||||
|
* Sunrise and sunset times have to be specified by the user.
|
||||||
|
*/
|
||||||
|
Timings,
|
||||||
|
/**
|
||||||
|
* Color temperature is constant thoughout the day.
|
||||||
|
*/
|
||||||
|
Constant,
|
||||||
|
};
|
||||||
|
|
||||||
|
Q_ENUM_NS(NightColorMode)
|
||||||
|
}
|
||||||
23
quicksettings/nightcolor/nightcolorplugin.cpp
Normal file
23
quicksettings/nightcolor/nightcolorplugin.cpp
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: 2022 by Devin Lin <devin@kde.org>
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "nightcolorplugin.h"
|
||||||
|
|
||||||
|
#include <QQmlContext>
|
||||||
|
#include <QQuickItem>
|
||||||
|
|
||||||
|
#include "nightcolorutil.h"
|
||||||
|
|
||||||
|
void NightColorPlugin::registerTypes(const char *uri)
|
||||||
|
{
|
||||||
|
Q_ASSERT(QLatin1String(uri) == QLatin1String("org.kde.plasma.quicksetting.nightcolor"));
|
||||||
|
|
||||||
|
qmlRegisterSingletonType<NightColorUtil>(uri, 1, 0, "NightColorUtil", [](QQmlEngine *, QJSEngine *) {
|
||||||
|
return new NightColorUtil;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
//#include "moc_nightcolorplugin.cpp"
|
||||||
21
quicksettings/nightcolor/nightcolorplugin.h
Normal file
21
quicksettings/nightcolor/nightcolorplugin.h
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: 2022 by Devin Lin <devin@kde.org>
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <QUrl>
|
||||||
|
|
||||||
|
#include <QQmlEngine>
|
||||||
|
#include <QQmlExtensionPlugin>
|
||||||
|
|
||||||
|
class NightColorPlugin : public QQmlExtensionPlugin
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
|
||||||
|
|
||||||
|
public:
|
||||||
|
void registerTypes(const char *uri) override;
|
||||||
|
};
|
||||||
65
quicksettings/nightcolor/nightcolorsettings.kcfg
Normal file
65
quicksettings/nightcolor/nightcolorsettings.kcfg
Normal file
|
|
@ -0,0 +1,65 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
- SPDX-FileCopyrightText: 2020 Vlad Zahorodnii
|
||||||
|
- SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<kcfg xmlns="http://www.kde.org/standards/kcfg/1.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0
|
||||||
|
http://www.kde.org/standards/kcfg/1.0/kcfg.xsd" >
|
||||||
|
<kcfgfile name="kwinrc"/>
|
||||||
|
<group name="NightColor">
|
||||||
|
<entry name="ActiveEnabled" type="Bool">
|
||||||
|
<default>true</default>
|
||||||
|
</entry>
|
||||||
|
<entry name="Active" type="Bool">
|
||||||
|
<default>false</default>
|
||||||
|
</entry>
|
||||||
|
<entry name="ModeEnabled" type="Bool">
|
||||||
|
<default>true</default>
|
||||||
|
</entry>
|
||||||
|
<entry name="Mode" type="Enum">
|
||||||
|
<choices name="ColorCorrect::NightColorMode">
|
||||||
|
<choice name="Automatic"/>
|
||||||
|
<choice name="Location"/>
|
||||||
|
<choice name="Times"/>
|
||||||
|
<choice name="Constant"/>
|
||||||
|
</choices>
|
||||||
|
<default>Automatic</default>
|
||||||
|
</entry>
|
||||||
|
<entry name="NightTemperatureEnabled" type="Bool">
|
||||||
|
<default>true</default>
|
||||||
|
</entry>
|
||||||
|
<entry name="NightTemperature" type="Int">
|
||||||
|
<default>4500</default>
|
||||||
|
<min>1000</min>
|
||||||
|
<max>6500</max>
|
||||||
|
</entry>
|
||||||
|
<entry name="LatitudeAuto" type="Double">
|
||||||
|
<default>0.</default>
|
||||||
|
</entry>
|
||||||
|
<entry name="LongitudeAuto" type="Double">
|
||||||
|
<default>0.</default>
|
||||||
|
</entry>
|
||||||
|
<entry name="LocationEnabled" type="Bool">
|
||||||
|
<default>true</default>
|
||||||
|
</entry>
|
||||||
|
<entry name="LatitudeFixed" type="Double">
|
||||||
|
<default>0.</default>
|
||||||
|
</entry>
|
||||||
|
<entry name="LongitudeFixed" type="Double">
|
||||||
|
<default>0.</default>
|
||||||
|
</entry>
|
||||||
|
<entry name="MorningBeginFixed" type="String">
|
||||||
|
<default>0600</default>
|
||||||
|
</entry>
|
||||||
|
<entry name="EveningBeginFixed" type="String">
|
||||||
|
<default>1800</default>
|
||||||
|
</entry>
|
||||||
|
<entry name="TransitionTime" type="Int">
|
||||||
|
<default>30</default>
|
||||||
|
</entry>
|
||||||
|
</group>
|
||||||
|
</kcfg>
|
||||||
14
quicksettings/nightcolor/nightcolorsettings.kcfgc
Normal file
14
quicksettings/nightcolor/nightcolorsettings.kcfgc
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
# SPDX-FileCopyrightText: 2020 Vlad Zahorodnii
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
File=nightcolorsettings.kcfg
|
||||||
|
Namespace=ColorCorrect
|
||||||
|
ClassName=NightColorSettings
|
||||||
|
Mutators=true
|
||||||
|
# nightcolormanager.h is needed for NightColorMode
|
||||||
|
IncludeFiles=enum.h
|
||||||
|
UseEnumTypes=true
|
||||||
|
DefaultValueGetters=true
|
||||||
|
GenerateProperties=true
|
||||||
|
ParentInConstructor=true
|
||||||
|
Notifiers=true
|
||||||
53
quicksettings/nightcolor/nightcolorutil.cpp
Normal file
53
quicksettings/nightcolor/nightcolorutil.cpp
Normal file
|
|
@ -0,0 +1,53 @@
|
||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: 2022 by Devin Lin <devin@kde.org>
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "nightcolorutil.h"
|
||||||
|
|
||||||
|
NightColorUtil::NightColorUtil(QObject *parent)
|
||||||
|
: QObject{parent}
|
||||||
|
, m_ccInterface{new OrgKdeKwinColorCorrectInterface(QStringLiteral("org.kde.KWin"), QStringLiteral("/ColorCorrect"), QDBusConnection::sessionBus(), this)}
|
||||||
|
, m_settings{new NightColorSettings(this)}
|
||||||
|
{
|
||||||
|
if (!m_ccInterface->isValid()) {
|
||||||
|
qWarning() << "Can't connect to nightcolor over DBus!";
|
||||||
|
} else {
|
||||||
|
m_enabled = m_ccInterface->running();
|
||||||
|
|
||||||
|
// subscribe to property updates
|
||||||
|
QDBusConnection::sessionBus().connect(QStringLiteral("org.kde.KWin"),
|
||||||
|
QStringLiteral("/ColorCorrect"),
|
||||||
|
QStringLiteral("org.freedesktop.DBus.Properties"),
|
||||||
|
QStringLiteral("PropertiesChanged"),
|
||||||
|
this,
|
||||||
|
SLOT(enabledUpdated(QString, QVariantMap, QStringList)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool NightColorUtil::enabled()
|
||||||
|
{
|
||||||
|
return m_enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
void NightColorUtil::setEnabled(bool enabled)
|
||||||
|
{
|
||||||
|
m_settings->setModeEnabled(true);
|
||||||
|
m_settings->setMode(ColorCorrect::NightColorMode::Constant);
|
||||||
|
m_settings->setActiveEnabled(true);
|
||||||
|
m_settings->setActive(enabled);
|
||||||
|
m_settings->save();
|
||||||
|
}
|
||||||
|
|
||||||
|
void NightColorUtil::enabledUpdated(QString name, QVariantMap map, QStringList list)
|
||||||
|
{
|
||||||
|
Q_UNUSED(name);
|
||||||
|
Q_UNUSED(map);
|
||||||
|
Q_UNUSED(list);
|
||||||
|
bool running = m_ccInterface->running();
|
||||||
|
if (running != m_enabled) {
|
||||||
|
m_enabled = running;
|
||||||
|
Q_EMIT enabledChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
35
quicksettings/nightcolor/nightcolorutil.h
Normal file
35
quicksettings/nightcolor/nightcolorutil.h
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: 2022 by Devin Lin <devin@kde.org>
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
|
||||||
|
#include "colorcorrectinterface.h"
|
||||||
|
#include "nightcolorsettings.h"
|
||||||
|
|
||||||
|
class NightColorUtil : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
Q_PROPERTY(bool enabled READ enabled WRITE setEnabled NOTIFY enabledChanged)
|
||||||
|
|
||||||
|
public:
|
||||||
|
NightColorUtil(QObject *parent = nullptr);
|
||||||
|
|
||||||
|
bool enabled();
|
||||||
|
void setEnabled(bool enabled);
|
||||||
|
|
||||||
|
Q_SIGNALS:
|
||||||
|
void enabledChanged();
|
||||||
|
|
||||||
|
public Q_SLOTS:
|
||||||
|
void enabledUpdated(QString name, QVariantMap map, QStringList list);
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool m_enabled;
|
||||||
|
OrgKdeKwinColorCorrectInterface *m_ccInterface;
|
||||||
|
NightColorSettings *m_settings;
|
||||||
|
};
|
||||||
|
|
@ -8,25 +8,16 @@
|
||||||
|
|
||||||
import org.kde.colorcorrect 0.1 as CC
|
import org.kde.colorcorrect 0.1 as CC
|
||||||
import org.kde.plasma.private.mobileshell 1.0 as MobileShell
|
import org.kde.plasma.private.mobileshell 1.0 as MobileShell
|
||||||
|
import org.kde.plasma.quicksetting.nightcolor 1.0 as NightColor
|
||||||
|
|
||||||
MobileShell.QuickSetting {
|
MobileShell.QuickSetting {
|
||||||
text: i18n("Night Color")
|
text: i18n("Night Color")
|
||||||
icon: "redshift-status-on"
|
icon: "redshift-status-on"
|
||||||
enabled: compositorAdaptor.active
|
enabled: NightColor.NightColorUtil.enabled
|
||||||
status: ""
|
status: ""
|
||||||
settingsCommand: "plasma-open-settings kcm_nightcolor"
|
settingsCommand: "plasma-open-settings kcm_nightcolor"
|
||||||
|
|
||||||
CC.CompositorAdaptor {
|
|
||||||
id: compositorAdaptor
|
|
||||||
}
|
|
||||||
function toggle() {
|
function toggle() {
|
||||||
if (compositorAdaptor.active) {
|
NightColor.NightColorUtil.enabled = !enabled;
|
||||||
compositorAdaptor.activeStaged = false;
|
|
||||||
} else {
|
|
||||||
compositorAdaptor.activeStaged = true;
|
|
||||||
compositorAdaptor.modeStaged = 3; // always on
|
|
||||||
}
|
|
||||||
compositorAdaptor.sendConfigurationAll();
|
|
||||||
enabled = compositorAdaptor.active;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
6
quicksettings/nightcolor/qmldir
Normal file
6
quicksettings/nightcolor/qmldir
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
# SPDX-FileCopyrightText: 2022 Devin Lin <devin@kde.org>
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
module org.kde.plasma.quicksetting.nightcolor
|
||||||
|
plugin nightcolorplugin
|
||||||
|
classname NightColorPlugin
|
||||||
Loading…
Reference in a new issue