File indexing completed on 2024-05-12 16:14:33
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 "timeinputvalidator.h" 0011 #include "yearmodel.h" 0012 #include "monthmodel.h" 0013 #include "infinitecalendarviewmodel.h" 0014 0015 #ifdef Q_OS_ANDROID 0016 #include "androidintegration.h" 0017 0018 using namespace KirigamiAddonsDateAndTime; 0019 #endif 0020 0021 class KirigamiAddonsDataAndTimePlugin : public QQmlExtensionPlugin 0022 { 0023 Q_OBJECT 0024 Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface") 0025 0026 public: 0027 KirigamiAddonsDataAndTimePlugin() = default; 0028 ~KirigamiAddonsDataAndTimePlugin() = default; 0029 void initializeEngine(QQmlEngine *engine, const char *uri) override; 0030 void registerTypes(const char *uri) override; 0031 }; 0032 0033 void KirigamiAddonsDataAndTimePlugin::initializeEngine(QQmlEngine *engine, const char *uri) 0034 { 0035 Q_UNUSED(engine) 0036 Q_UNUSED(uri) 0037 } 0038 0039 void KirigamiAddonsDataAndTimePlugin::registerTypes(const char *uri) 0040 { 0041 qmlRegisterType<YearModel>(uri, 0, 1, "YearModel"); 0042 qmlRegisterType<MonthModel>(uri, 0, 1, "MonthModel"); 0043 qmlRegisterType<TimeInputValidator>(uri, 0, 1, "TimeInputValidator"); 0044 qmlRegisterType<InfiniteCalendarViewModel>(uri, 0, 1, "InfiniteCalendarViewModel"); 0045 0046 #ifdef Q_OS_ANDROID 0047 qmlRegisterSingletonType<AndroidIntegration>(uri, 0, 1, "AndroidIntegration", [](QQmlEngine*, QJSEngine*) -> QObject* { 0048 QQmlEngine::setObjectOwnership(&AndroidIntegration::instance(), QQmlEngine::CppOwnership); 0049 return &AndroidIntegration::instance(); 0050 }); 0051 #endif 0052 } 0053 0054 #include "plugin.moc"