From c9f3d5f2aea61748a5cfe517bef01747fdba6931 Mon Sep 17 00:00:00 2001 From: Nicolas Fella Date: Fri, 18 Apr 2025 22:02:54 +0200 Subject: [PATCH] Port nightcolor to declarative type registration --- quicksettings/nightcolor/CMakeLists.txt | 13 ++++------- quicksettings/nightcolor/nightcolorplugin.cpp | 23 ------------------- quicksettings/nightcolor/nightcolorplugin.h | 21 ----------------- quicksettings/nightcolor/nightcolorutil.h | 4 ++++ .../nightcolor/package/contents/ui/main.qml | 2 +- quicksettings/nightcolor/qmldir | 6 ----- 6 files changed, 10 insertions(+), 59 deletions(-) delete mode 100644 quicksettings/nightcolor/nightcolorplugin.cpp delete mode 100644 quicksettings/nightcolor/nightcolorplugin.h delete mode 100644 quicksettings/nightcolor/qmldir diff --git a/quicksettings/nightcolor/CMakeLists.txt b/quicksettings/nightcolor/CMakeLists.txt index 690062e5..e5315d4e 100644 --- a/quicksettings/nightcolor/CMakeLists.txt +++ b/quicksettings/nightcolor/CMakeLists.txt @@ -5,7 +5,6 @@ set_source_files_properties(${KWIN_NIGHTLIGHT_INTERFACE} PROPERTIES NO_NAMESPACE qt_add_dbus_interfaces(DBUS_SRCS ${KWIN_NIGHTLIGHT_INTERFACE}) set(nightcolorplugin_SRCS - nightcolorplugin.cpp nightcolorutil.cpp enum.h ${DBUS_SRCS} @@ -13,9 +12,11 @@ set(nightcolorplugin_SRCS kconfig_add_kcfg_files(nightcolorplugin_SRCS nightcolorsettings.kcfgc GENERATE_MOC) -add_library(nightcolorplugin ${nightcolorplugin_SRCS}) +ecm_add_qml_module(nightcolorplugin URI "org.kde.plasma.quicksetting.nightcolor" GENERATE_PLUGIN_SOURCE) -target_link_libraries(nightcolorplugin +target_sources(nightcolorplugin PRIVATE ${nightcolorplugin_SRCS}) + +target_link_libraries(nightcolorplugin PRIVATE Qt::Core Qt::DBus Qt::Qml @@ -25,10 +26,6 @@ target_link_libraries(nightcolorplugin KF6::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 ${KDE_INSTALL_QMLDIR}/org/kde/plasma/quicksetting/nightcolor) -install(FILES qmldir ${qml_SRC} DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/plasma/quicksetting/nightcolor) +ecm_finalize_qml_module(nightcolorplugin) plasma_install_package(package org.kde.plasma.quicksetting.nightcolor quicksettings) diff --git a/quicksettings/nightcolor/nightcolorplugin.cpp b/quicksettings/nightcolor/nightcolorplugin.cpp deleted file mode 100644 index 70a6793d..00000000 --- a/quicksettings/nightcolor/nightcolorplugin.cpp +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2022 by Devin Lin - * - * SPDX-License-Identifier: GPL-2.0-or-later - */ - -#include "nightcolorplugin.h" - -#include -#include - -#include "nightcolorutil.h" - -void NightColorPlugin::registerTypes(const char *uri) -{ - Q_ASSERT(QLatin1String(uri) == QLatin1String("org.kde.plasma.quicksetting.nightcolor")); - - qmlRegisterSingletonType(uri, 1, 0, "NightColorUtil", [](QQmlEngine *, QJSEngine *) { - return new NightColorUtil; - }); -} - -//#include "moc_nightcolorplugin.cpp" diff --git a/quicksettings/nightcolor/nightcolorplugin.h b/quicksettings/nightcolor/nightcolorplugin.h deleted file mode 100644 index f59d4f7a..00000000 --- a/quicksettings/nightcolor/nightcolorplugin.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2022 by Devin Lin - * - * SPDX-License-Identifier: GPL-2.0-or-later - */ - -#pragma once - -#include - -#include -#include - -class NightColorPlugin : public QQmlExtensionPlugin -{ - Q_OBJECT - Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface") - -public: - void registerTypes(const char *uri) override; -}; diff --git a/quicksettings/nightcolor/nightcolorutil.h b/quicksettings/nightcolor/nightcolorutil.h index fa98cda9..40485dd7 100644 --- a/quicksettings/nightcolor/nightcolorutil.h +++ b/quicksettings/nightcolor/nightcolorutil.h @@ -7,6 +7,7 @@ #pragma once #include +#include #include "nightcolorsettings.h" #include "nightlightinterface.h" @@ -14,6 +15,9 @@ class NightColorUtil : public QObject { Q_OBJECT + QML_ELEMENT + QML_SINGLETON + Q_PROPERTY(bool enabled READ enabled WRITE setEnabled NOTIFY enabledChanged) public: diff --git a/quicksettings/nightcolor/package/contents/ui/main.qml b/quicksettings/nightcolor/package/contents/ui/main.qml index d7ebc8b7..293a3568 100644 --- a/quicksettings/nightcolor/package/contents/ui/main.qml +++ b/quicksettings/nightcolor/package/contents/ui/main.qml @@ -6,7 +6,7 @@ * SPDX-License-Identifier: LGPL-2.0-or-later */ -import org.kde.plasma.quicksetting.nightcolor 1.0 as NightColor +import org.kde.plasma.quicksetting.nightcolor as NightColor import org.kde.plasma.private.mobileshell.quicksettingsplugin as QS QS.QuickSetting { diff --git a/quicksettings/nightcolor/qmldir b/quicksettings/nightcolor/qmldir deleted file mode 100644 index 9de8d007..00000000 --- a/quicksettings/nightcolor/qmldir +++ /dev/null @@ -1,6 +0,0 @@ -# SPDX-FileCopyrightText: 2022 Devin Lin -# SPDX-License-Identifier: GPL-2.0-or-later - -module org.kde.plasma.quicksetting.nightcolor -plugin nightcolorplugin -classname NightColorPlugin