Port flashlight to declarative type registration

This commit is contained in:
Nicolas Fella 2025-04-18 21:57:36 +02:00
parent 2bf23313bc
commit 988c33a627
7 changed files with 12 additions and 66 deletions

View file

@ -1,15 +1,14 @@
# SPDX-FileCopyrightText: 2022 Devin Lin <devin@kde.org>
# 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)

View file

@ -1,23 +0,0 @@
/*
* SPDX-FileCopyrightText: 2022 by Devin Lin <devin@kde.org>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#include "flashlightplugin.h"
#include <QQmlContext>
#include <QQuickItem>
#include "flashlightutil.h"
void FlashlightPlugin::registerTypes(const char *uri)
{
Q_ASSERT(QLatin1String(uri) == QLatin1String("org.kde.plasma.quicksetting.flashlight"));
qmlRegisterSingletonType<FlashlightUtil>(uri, 1, 0, "FlashlightUtil", [](QQmlEngine *, QJSEngine *) {
return new FlashlightUtil;
});
}
//#include "moc_flashlightplugin.cpp"

View file

@ -1,21 +0,0 @@
/*
* 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 FlashlightPlugin : public QQmlExtensionPlugin
{
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
public:
void registerTypes(const char *uri) override;
};

View file

@ -9,9 +9,13 @@
#include <QObject>
#include <libudev.h>
#include <qqmlregistration.h>
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);

View file

@ -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 {

View file

@ -1,7 +0,0 @@
# SPDX-FileCopyrightText: 2022 Devin Lin <devin@kde.org>
# SPDX-License-Identifier: GPL-2.0-or-later
module org.kde.plasma.quicksetting.flashlight
plugin flashlightplugin
classname FlashlightPlugin

View file

@ -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