Port powermenu to declarative type registration

This commit is contained in:
Nicolas Fella 2025-04-18 22:08:58 +02:00
parent c9f3d5f2ae
commit f344399ae9
6 changed files with 10 additions and 64 deletions

View file

@ -1,16 +1,13 @@
# SPDX-FileCopyrightText: 2022 Devin Lin <devin@kde.org>
# SPDX-License-Identifier: GPL-2.0-or-later
set(powermenuplugin_SRCS
powermenuplugin.cpp
powermenuutil.cpp
)
add_library(powermenuplugin ${powermenuplugin_SRCS})
find_package(LibKWorkspace)
target_link_libraries(powermenuplugin
ecm_add_qml_module(powermenuplugin URI "org.kde.plasma.quicksetting.powermenu" GENERATE_PLUGIN_SOURCE)
target_sources(powermenuplugin PRIVATE powermenuutil.cpp)
target_link_libraries(powermenuplugin PRIVATE
Qt::Core
Qt::Qml
Qt::Quick
@ -18,11 +15,7 @@ target_link_libraries(powermenuplugin
PW::KWorkspace
)
set_property(TARGET powermenuplugin PROPERTY LIBRARY_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/org/kde/plasma/quicksetting/powermenu)
file(COPY qmldir DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/org/kde/plasma/quicksetting/powermenu)
install(TARGETS powermenuplugin DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/plasma/quicksetting/powermenu)
install(FILES qmldir ${qml_SRC} DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/plasma/quicksetting/powermenu)
ecm_finalize_qml_module(powermenuplugin)
plasma_install_package(package org.kde.plasma.quicksetting.powermenu quicksettings)

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: LGPL-2.0-or-later
*/
import org.kde.plasma.quicksetting.powermenu 1.0 as PowerMenu
import org.kde.plasma.quicksetting.powermenu as PowerMenu
import org.kde.plasma.private.mobileshell.quicksettingsplugin as QS
QS.QuickSetting {

View file

@ -1,23 +0,0 @@
/*
* SPDX-FileCopyrightText: 2022 by Devin Lin <devin@kde.org>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#include "powermenuplugin.h"
#include <QQmlContext>
#include <QQuickItem>
#include "powermenuutil.h"
void PowerMenuPlugin::registerTypes(const char *uri)
{
Q_ASSERT(QLatin1String(uri) == QLatin1String("org.kde.plasma.quicksetting.powermenu"));
qmlRegisterSingletonType<PowerMenuUtil>(uri, 1, 0, "PowerMenuUtil", [](QQmlEngine *, QJSEngine *) {
return new PowerMenuUtil;
});
}
//#include "moc_powermenuplugin.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 PowerMenuPlugin : public QQmlExtensionPlugin
{
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
public:
void registerTypes(const char *uri) override;
};

View file

@ -7,10 +7,13 @@
#pragma once
#include <QObject>
#include <qqmlregistration.h>
class PowerMenuUtil : public QObject
{
Q_OBJECT
QML_ELEMENT
QML_SINGLETON
public:
PowerMenuUtil(QObject *parent = nullptr);

View file

@ -1,6 +0,0 @@
# SPDX-FileCopyrightText: 2022 Devin Lin <devin@kde.org>
# SPDX-License-Identifier: GPL-2.0-or-later
module org.kde.plasma.quicksetting.powermenu
plugin powermenuplugin
classname PowerMenuPlugin