File indexing completed on 2024-04-28 04:40:44

0001 /*
0002  *   SPDX-FileCopyrightText: 2019 David Edmundson <davidedmundson@kde.org>
0003  *
0004  *   SPDX-License-Identifier: LGPL-2.0-or-later
0005  */
0006 
0007 #include <QQmlExtensionPlugin>
0008 #include <QQmlEngine>
0009 
0010 #include "yearmodel.h"
0011 #include "monthmodel.h"
0012 #include "infinitecalendarviewmodel.h"
0013 
0014 #ifdef Q_OS_ANDROID
0015 #include "androidintegration.h"
0016 
0017 using namespace KirigamiAddonsDateAndTime;
0018 #endif
0019 
0020 class KirigamiAddonsDataAndTimePlugin : public QQmlExtensionPlugin
0021 {
0022     Q_OBJECT
0023     Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
0024 
0025 public:
0026     KirigamiAddonsDataAndTimePlugin() = default;
0027     ~KirigamiAddonsDataAndTimePlugin() = default;
0028     void registerTypes(const char *uri) override;
0029 };
0030 
0031 void KirigamiAddonsDataAndTimePlugin::registerTypes(const char *uri)
0032 {
0033     qmlRegisterType<YearModel>(uri, 1, 0, "YearModel");
0034     qmlRegisterType<MonthModel>(uri, 1, 0, "MonthModel");
0035     qmlRegisterType<InfiniteCalendarViewModel>(uri, 1, 0, "InfiniteCalendarViewModel");
0036 
0037 #ifdef Q_OS_ANDROID
0038     qmlRegisterSingletonType<AndroidIntegration>(uri, 1, 0, "AndroidIntegration", [](QQmlEngine*, QJSEngine*) -> QObject* {
0039         QQmlEngine::setObjectOwnership(&AndroidIntegration::instance(), QQmlEngine::CppOwnership);
0040         return &AndroidIntegration::instance();
0041     });
0042 #endif
0043 }
0044 
0045 #include "plugin.moc"