1/*
2 SPDX-FileCopyrightText: 2014 Bhushan Shah <bhush94@gmail.com>
3 SPDX-FileCopyrightText: 2014 David Edmundson <davidedmundson@kde.org>
4 SPDX-FileCopyrightText: 2023 Alexander Lohnau <alexander.lohnau@gmx.de>
5
6 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
7*/
8
9#include <QQmlEngine>
10#include <QQmlExtensionPlugin>
11
12#include <KAboutData>
13#include <KTextToHTML>
14
15class KTextToHtmlWrapper
16{
17 Q_GADGET
18 Q_INVOKABLE [[nodiscard]] static QString
19 convertToHtml(const QString &plainText, const KTextToHTML::Options &options, int maxUrlLen = 4096, int maxAddressLen = 255)
20 {
21 return KTextToHTML::convertToHtml(plainText, options, maxUrlLen, maxAddressLen);
22 }
23};
24
25class KCoreAddonsPlugin : public QQmlExtensionPlugin
26{
27 Q_OBJECT
28 Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
29
30public:
31 void registerTypes(const char *uri) override
32 {
33 qmlRegisterSingletonType(uri, versionMajor: 1, versionMinor: 0, typeName: "AboutData", callback: [](QQmlEngine *engine, QJSEngine *) -> QJSValue {
34 return engine->toScriptValue(value: KAboutData::applicationData());
35 });
36 qmlRegisterSingletonType(uri, versionMajor: 1, versionMinor: 0, typeName: "KTextToHTML", callback: [](QQmlEngine *engine, QJSEngine *) -> QJSValue {
37 return engine->toScriptValue(value: KTextToHtmlWrapper());
38 });
39 }
40};
41
42#include "kcoreaddonsplugin.moc"
43

source code of kcoreaddons/src/qml/kcoreaddonsplugin.cpp