Kirigami-addons

dateandtime/lib/plugin.cpp
1/*
2 * SPDX-FileCopyrightText: 2019 David Edmundson <davidedmundson@kde.org>
3 *
4 * SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6
7#include <QQmlExtensionPlugin>
8#include <QQmlEngine>
9
10#include "yearmodel.h"
11#include "monthmodel.h"
12#include "infinitecalendarviewmodel.h"
13
14#ifdef Q_OS_ANDROID
15#include "androidintegration.h"
16
17using namespace KirigamiAddonsDateAndTime;
18#endif
19
20class KirigamiAddonsDataAndTimePlugin : public QQmlExtensionPlugin
21{
23 Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
24
25public:
26 KirigamiAddonsDataAndTimePlugin() = default;
27 ~KirigamiAddonsDataAndTimePlugin() = default;
28 void registerTypes(const char *uri) override;
29};
30
31void KirigamiAddonsDataAndTimePlugin::registerTypes(const char *uri)
32{
33 qmlRegisterType<YearModel>(uri, 1, 0, "YearModel");
34 qmlRegisterType<MonthModel>(uri, 1, 0, "MonthModel");
35 qmlRegisterType<InfiniteCalendarViewModel>(uri, 1, 0, "InfiniteCalendarViewModel");
36
37#ifdef Q_OS_ANDROID
38 qmlRegisterSingletonType<AndroidIntegration>(uri, 1, 0, "AndroidIntegration", [](QQmlEngine*, QJSEngine*) -> QObject* {
39 QQmlEngine::setObjectOwnership(&AndroidIntegration::instance(), QQmlEngine::CppOwnership);
40 return &AndroidIntegration::instance();
41 });
42#endif
43}
44
45#include "plugin.moc"
void setObjectOwnership(QObject *object, ObjectOwnership ownership)
Q_OBJECTQ_OBJECT
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Tue Mar 26 2024 11:16:11 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.