diff --git a/quicksettings/flashlight/CMakeLists.txt b/quicksettings/flashlight/CMakeLists.txt index 79cf9e5d..d8a987d1 100644 --- a/quicksettings/flashlight/CMakeLists.txt +++ b/quicksettings/flashlight/CMakeLists.txt @@ -1,15 +1,14 @@ # SPDX-FileCopyrightText: 2022 Devin Lin # SPDX-License-Identifier: GPL-2.0-or-later -set(flashlightplugin_SRCS - flashlightplugin.cpp - flashlightutil.cpp - ${DBUS_SRCS} +ecm_add_qml_module(flashlightplugin + URI "org.kde.plasma.quicksetting.flashlight" + GENERATE_PLUGIN_SOURCE ) -add_library(flashlightplugin ${flashlightplugin_SRCS}) +target_sources(flashlightplugin PRIVATE flashlightutil.cpp) -target_link_libraries(flashlightplugin +target_link_libraries(flashlightplugin PRIVATE Qt::Core Qt::Qml Qt::Quick @@ -22,12 +21,6 @@ target_link_libraries(flashlightplugin udev ) -set_property(TARGET flashlightplugin PROPERTY LIBRARY_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/org/kde/plasma/quicksetting/flashlight) -file(COPY qmldir DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/org/kde/plasma/quicksetting/flashlight) - -install(TARGETS flashlightplugin DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/plasma/quicksetting/flashlight) -install(FILES qmldir ${qml_SRC} DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/plasma/quicksetting/flashlight) +ecm_finalize_qml_module(flashlightplugin) plasma_install_package(package org.kde.plasma.quicksetting.flashlight quicksettings) - - diff --git a/quicksettings/flashlight/flashlightplugin.cpp b/quicksettings/flashlight/flashlightplugin.cpp deleted file mode 100644 index 770c42af..00000000 --- a/quicksettings/flashlight/flashlightplugin.cpp +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2022 by Devin Lin - * - * SPDX-License-Identifier: GPL-2.0-or-later - */ - -#include "flashlightplugin.h" - -#include -#include - -#include "flashlightutil.h" - -void FlashlightPlugin::registerTypes(const char *uri) -{ - Q_ASSERT(QLatin1String(uri) == QLatin1String("org.kde.plasma.quicksetting.flashlight")); - - qmlRegisterSingletonType(uri, 1, 0, "FlashlightUtil", [](QQmlEngine *, QJSEngine *) { - return new FlashlightUtil; - }); -} - -//#include "moc_flashlightplugin.cpp" diff --git a/quicksettings/flashlight/flashlightplugin.h b/quicksettings/flashlight/flashlightplugin.h deleted file mode 100644 index 7322752a..00000000 --- a/quicksettings/flashlight/flashlightplugin.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 FlashlightPlugin : public QQmlExtensionPlugin -{ - Q_OBJECT - Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface") - -public: - void registerTypes(const char *uri) override; -}; diff --git a/quicksettings/flashlight/flashlightutil.h b/quicksettings/flashlight/flashlightutil.h index c2daa303..5b73eba2 100644 --- a/quicksettings/flashlight/flashlightutil.h +++ b/quicksettings/flashlight/flashlightutil.h @@ -9,9 +9,13 @@ #include #include +#include + class FlashlightUtil : public QObject { Q_OBJECT + QML_ELEMENT + QML_SINGLETON Q_PROPERTY(bool torchEnabled READ torchEnabled NOTIFY torchChanged); Q_PROPERTY(bool available READ isAvailable CONSTANT); diff --git a/quicksettings/flashlight/package/contents/ui/main.qml b/quicksettings/flashlight/package/contents/ui/main.qml index c39576cd..a2282d2e 100644 --- a/quicksettings/flashlight/package/contents/ui/main.qml +++ b/quicksettings/flashlight/package/contents/ui/main.qml @@ -3,7 +3,7 @@ import QtQuick 2.15 -import org.kde.plasma.quicksetting.flashlight 1.0 +import org.kde.plasma.quicksetting.flashlight import org.kde.plasma.private.mobileshell.quicksettingsplugin as QS QS.QuickSetting { diff --git a/quicksettings/flashlight/qmldir b/quicksettings/flashlight/qmldir deleted file mode 100644 index dd5ead61..00000000 --- a/quicksettings/flashlight/qmldir +++ /dev/null @@ -1,7 +0,0 @@ -# SPDX-FileCopyrightText: 2022 Devin Lin -# SPDX-License-Identifier: GPL-2.0-or-later - -module org.kde.plasma.quicksetting.flashlight -plugin flashlightplugin -classname FlashlightPlugin - diff --git a/shell/contents/lockscreen/QuickActionButton.qml b/shell/contents/lockscreen/QuickActionButton.qml index 82719ade..6932fff7 100644 --- a/shell/contents/lockscreen/QuickActionButton.qml +++ b/shell/contents/lockscreen/QuickActionButton.qml @@ -5,7 +5,7 @@ import QtQuick import QtQuick.Controls import QtQuick.Layouts -import org.kde.plasma.quicksetting.flashlight 1.0 +import org.kde.plasma.quicksetting.flashlight import org.kde.plasma.private.mobileshell as MobileShell import org.kde.plasma.private.mobileshell.shellsettingsplugin as ShellSettings import org.kde.kirigami as Kirigami