initialstart: Use distro name

This commit is contained in:
Devin Lin 2023-11-05 21:27:44 -08:00
parent a83a723e97
commit 715bc8bbd2
9 changed files with 107 additions and 2 deletions

View file

@ -13,6 +13,7 @@ set(plasma-mobile-initial-start_SRCS
qt_add_resources(RESOURCES resources.qrc)
add_subdirectory(modules)
add_subdirectory(plugin)
add_executable(plasma-mobile-initial-start ${plasma-mobile-initial-start_SRCS} ${RESOURCES})
target_link_libraries(plasma-mobile-initial-start

View file

@ -4,8 +4,11 @@
import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15
import org.kde.kirigami 2.20 as Kirigami
import org.kde.plasma.mobileinitialstart.initialstart
Item {
id: root
@ -18,7 +21,7 @@ Item {
Label {
Layout.fillWidth: true
Layout.alignment: Qt.AlignHCenter | Qt.AlignTop
text: i18n("Your device is now ready. <br /><br />Enjoy <b>Plasma 6.0</b>!")
text: i18n("Your device is now ready. <br /><br />Enjoy <b>%1</b>!", InitialStartUtil.distroName)
wrapMode: Text.Wrap
horizontalAlignment: Text.AlignHCenter
}

View file

@ -0,0 +1,22 @@
# 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

@ -0,0 +1,17 @@
// 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

@ -0,0 +1,18 @@
// 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

@ -0,0 +1,14 @@
// SPDX-FileCopyrightText: 2023 Devin Lin <devin@kde.org>
// SPDX-License-Identifier: GPL-2.0-or-later
#include "initialstartutil.h"
InitialStartUtil::InitialStartUtil(QObject *parent)
: QObject{parent}
{
}
QString InitialStartUtil::distroName() const
{
return m_osrelease.name();
}

View file

@ -0,0 +1,21 @@
// SPDX-FileCopyrightText: 2023 Devin Lin <devin@kde.org>
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include <KOSRelease>
#include <QObject>
class InitialStartUtil : public QObject
{
Q_OBJECT
Q_PROPERTY(QString distroName READ distroName CONSTANT);
public:
InitialStartUtil(QObject *parent = nullptr);
QString distroName() const;
private:
KOSRelease m_osrelease;
};

View file

@ -0,0 +1,6 @@
# 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

@ -4,8 +4,11 @@
import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15
import org.kde.kirigami 2.20 as Kirigami
import org.kde.plasma.mobileinitialstart.initialstart
Item {
id: root
@ -78,7 +81,7 @@ Item {
Label {
Layout.fillWidth: true
text: i18n("Welcome to <b>Plasma</b>")
text: i18n("Welcome to<br/><b>%1</b>", InitialStartUtil.distroName)
horizontalAlignment: Text.AlignHCenter
wrapMode: Text.Wrap