Port intial start module to declarative qml type registration

This commit is contained in:
Carl Schwan 2024-01-17 16:28:09 +01:00 committed by Devin Lin
parent d467c0e0ed
commit 0c774e1133
11 changed files with 30 additions and 86 deletions

View file

@ -3,20 +3,25 @@
add_definitions(-DTRANSLATION_DOMAIN=\"plasma_org.kde.plasma.mobileinitialstart\") add_definitions(-DTRANSLATION_DOMAIN=\"plasma_org.kde.plasma.mobileinitialstart\")
set(plasma-mobile-initial-start_SRCS add_subdirectory(modules)
add_executable(plasma-mobile-initial-start
main.cpp main.cpp
wizard.cpp wizard.cpp
wizard.h
settings.cpp settings.cpp
settings.h
utils.h utils.h
initialstartutil.cpp
initialstartutil.h
) )
qt_add_resources(RESOURCES resources.qrc) qt_add_qml_module(plasma-mobile-initial-start
URI org.kde.plasma.mobileinitialstart.initialstart
VERSION 1.0
)
add_subdirectory(modules) target_link_libraries(plasma-mobile-initial-start PUBLIC
add_subdirectory(plugin)
add_executable(plasma-mobile-initial-start ${plasma-mobile-initial-start_SRCS} ${RESOURCES})
target_link_libraries(plasma-mobile-initial-start
Qt::Qml Qt::Qml
Qt::Gui Qt::Gui
Qt::Widgets Qt::Widgets
@ -29,5 +34,19 @@ target_link_libraries(plasma-mobile-initial-start
KF6::Package KF6::Package
) )
qt_target_qml_sources(plasma-mobile-initial-start
QML_FILES
qml/Main.qml
qml/Wizard.qml
qml/LandingComponent.qml
)
qt_add_resources(plasma-mobile-initial-start
PREFIX
"/"
FILES
assets/background.png
)
target_include_directories(plasma-mobile-initial-start PRIVATE ${CMAKE_BINARY_DIR}) target_include_directories(plasma-mobile-initial-start PRIVATE ${CMAKE_BINARY_DIR})
install(TARGETS plasma-mobile-initial-start ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) install(TARGETS plasma-mobile-initial-start ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 MiB

After

Width:  |  Height:  |  Size: 833 KiB

View file

@ -5,10 +5,13 @@
#include <KOSRelease> #include <KOSRelease>
#include <QObject> #include <QObject>
#include <QtQml>
class InitialStartUtil : public QObject class InitialStartUtil : public QObject
{ {
Q_OBJECT Q_OBJECT
QML_ELEMENT
QML_SINGLETON
Q_PROPERTY(QString distroName READ distroName CONSTANT); Q_PROPERTY(QString distroName READ distroName CONSTANT);
public: public:

View file

@ -63,7 +63,7 @@ int main(int argc, char *argv[])
return wizard; return wizard;
}); });
engine.load(QUrl(QStringLiteral("qrc:/qml/main.qml"))); engine.load(QUrl(QStringLiteral("qrc:org/kde/plasma/mobileinitialstart/initialstart/qml/Main.qml")));
app.setWindowIcon(QIcon::fromTheme(QStringLiteral("start-here-symbolic"))); app.setWindowIcon(QIcon::fromTheme(QStringLiteral("start-here-symbolic")));

View file

@ -1,22 +0,0 @@
# SPDX-FileCopyrightText: 2023 Devin Lin <devin@kde.org>
# SPDX-License-Identifier: GPL-2.0-or-later
set(initialstartplugin_SRCS
initialstartplugin.cpp
initialstartutil.cpp
)
add_library(initialstartplugin ${initialstartplugin_SRCS})
target_link_libraries(initialstartplugin
Qt::Core
Qt::Quick
KF6::CoreAddons
KF6::I18n
)
set_property(TARGET initialstartplugin PROPERTY LIBRARY_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/org/kde/plasma/mobileinitialstart/initialstart)
file(COPY qmldir DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/org/kde/plasma/mobileinitialstart/initialstart)
install(TARGETS initialstartplugin DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/plasma/mobileinitialstart/initialstart)
install(FILES qmldir ${qml_SRC} DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/plasma/mobileinitialstart/initialstart)

View file

@ -1,17 +0,0 @@
// SPDX-FileCopyrightText: 2023 Devin Lin <devin@kde.org>
// SPDX-License-Identifier: GPL-2.0-or-later
#include "initialstartplugin.h"
#include "initialstartutil.h"
#include <QQmlContext>
#include <QQuickItem>
void InitialStartPlugin::registerTypes(const char *uri)
{
Q_ASSERT(QLatin1String(uri) == QLatin1String("org.kde.plasma.mobileinitialstart.initialstart"));
qmlRegisterSingletonType<InitialStartUtil>(uri, 1, 0, "InitialStartUtil", [](QQmlEngine *, QJSEngine *) {
return new InitialStartUtil;
});
}

View file

@ -1,18 +0,0 @@
// SPDX-FileCopyrightText: 2023 Devin Lin <devin@kde.org>
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include <QUrl>
#include <QQmlEngine>
#include <QQmlExtensionPlugin>
class InitialStartPlugin : public QQmlExtensionPlugin
{
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
public:
void registerTypes(const char *uri) override;
};

View file

@ -1,6 +0,0 @@
# SPDX-FileCopyrightText: 2023 Devin Lin <devin@kde.org>
# SPDX-License-Identifier: GPL-2.0-or-later
module org.kde.plasma.mobileinitialstart.initialstart
plugin initialstartplugin
classname InitialStartPlugin

View file

@ -1,15 +0,0 @@
<!--
- Copyright 2023 Devin Lin <devin@kde.org>
- SPDX-License-Identifier: GPL-2.0-or-later
-->
<RCC>
<qresource prefix="/">
<file>qml/main.qml</file>
<file>qml/Wizard.qml</file>
<file>qml/LandingComponent.qml</file>
<file>assets/background.png</file>
</qresource>
</RCC>