Warning, file /maui/mauikit-calendar/src/code/plugin.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 #include "plugin.h"
0002 
0003 #include <QQmlEngine>
0004 
0005 #include "infinitecalendarviewmodel.h"
0006 #include "hourlyincidencemodel.h"
0007 #include "incidenceoccurrencemodel.h"
0008 #include "timezonelistmodel.h"
0009 #include "monthmodel.h"
0010 
0011 #include "calendarmanager.h"
0012 #include "incidencewrapper.h"
0013 #include "filter.h"
0014 
0015 #include "collection.h"
0016 #include "collectioncomboboxmodel.h"
0017 #include "mimetypes.h"
0018 
0019 //#include <KCalendarCore/MemoryCalendar>
0020 //#include <KCalendarCore/VCalFormat>
0021 #include <akonadi_version.h>
0022 #include <Akonadi/Collection>
0023 #include <Akonadi/AgentFilterProxyModel>
0024 
0025 void MauiCalendarPlugin::registerTypes(const char *uri)
0026 {
0027     Q_ASSERT(uri == QByteArray("org.mauikit.calendar"));
0028 
0029     qmlRegisterType<IncidenceWrapper>(uri, 1, 0, "IncidenceWrapper");
0030     //        qmlRegisterType<AttendeesModel>(uri, 1, 0, "AttendeesModel");
0031     qmlRegisterType<MultiDayIncidenceModel>(uri, 1, 0, "MultiDayIncidenceModel");
0032     qmlRegisterType<IncidenceOccurrenceModel>(uri, 1, 0, "IncidenceOccurrenceModel");
0033     //        qmlRegisterType<TodoSortFilterProxyModel>(uri, 1, 0, "TodoSortFilterProxyModel");
0034     //        qmlRegisterType<ItemTagsModel>(uri, 1, 0, "ItemTagsModel");
0035     qmlRegisterType<HourlyIncidenceModel>(uri, 1, 0, "HourlyIncidenceModel");
0036     qmlRegisterType<TimeZoneListModel>(uri, 1, 0, "TimeZoneListModel");
0037     qmlRegisterType<MonthModel>(uri, 1, 0, "MonthModel");
0038     qmlRegisterType<InfiniteCalendarViewModel>(uri, 1, 0, "InfiniteCalendarViewModel");
0039 
0040     qmlRegisterSingletonType<CalendarManager>(uri, 1, 0, "CalendarManager", [](QQmlEngine *engine, QJSEngine *scriptEngine) -> QObject * {
0041         Q_UNUSED(scriptEngine)
0042         auto cal = CalendarManager::instance();
0043         engine->setObjectOwnership(cal, QQmlEngine::CppOwnership);
0044         return cal;
0045     });
0046 
0047     qmlRegisterSingletonType<Filter>(uri, 1, 0, "Filter", [](QQmlEngine *engine, QJSEngine *scriptEngine) {
0048         Q_UNUSED(engine)
0049         Q_UNUSED(scriptEngine)
0050         return new Filter;
0051     });
0052 
0053     //Taken from Kalendar Akonadi plugin
0054     qmlRegisterSingletonType<Akonadi::Quick::MimeTypes>(uri, 1, 0, "MimeTypes", [](QQmlEngine *engine, QJSEngine *scriptEngine) {
0055         Q_UNUSED(engine)
0056         Q_UNUSED(scriptEngine)
0057         return new Akonadi::Quick::MimeTypes;
0058     });
0059 
0060     qmlRegisterType<Akonadi::Quick::CollectionComboBoxModel>(uri, 1, 0, "CollectionComboBoxModel");
0061     // qmlRegisterType<Akonadi::Quick::CollectionPickerModel>(uri, 1, 0, "CollectionPickerModel");
0062     qmlRegisterUncreatableType<Akonadi::Quick::Collection>(uri, 1, 0, "Collection", QStringLiteral("It's just an enum"));
0063     qRegisterMetaType<Akonadi::ETMCalendar::Ptr>();
0064     qRegisterMetaType<QAbstractProxyModel *>("QAbstractProxyModel*");
0065     qRegisterMetaType<Akonadi::AgentFilterProxyModel *>();
0066 
0067     //QML STUFF
0068     qmlRegisterSingletonType(resolveFileUrl(QStringLiteral("KalendarUiUtils.qml")), uri, 1, 0, "KalendarUiUtils");
0069 
0070     qmlRegisterType(resolveFileUrl(QStringLiteral("DayLabelsBar.qml")), uri, 1, 0, "DayLabelsBar");
0071     qmlRegisterType(resolveFileUrl(QStringLiteral("MonthView.qml")), uri, 1, 0, "MonthView");
0072     qmlRegisterType(resolveFileUrl(QStringLiteral("YearView.qml")), uri, 1, 0, "YearView");
0073 
0074     qmlRegisterType(resolveFileUrl(QStringLiteral("EventPage.qml")), uri, 1, 0, "EventPage");
0075 
0076     qmlRegisterType(resolveFileUrl(QStringLiteral("DayGridView.qml")), uri, 1, 0, "DayGridView");
0077     qmlRegisterType(resolveFileUrl(QStringLiteral("HourlyView.qml")), uri, 1, 0, "HourlyView");
0078 
0079     qmlRegisterType(resolveFileUrl(QStringLiteral("DateComboBox.qml")), uri, 1, 0, "DateComboBox");
0080     qmlRegisterType(resolveFileUrl(QStringLiteral("TimeComboBox.qml")), uri, 1, 0, "TimeComboBox");
0081 
0082     qmlRegisterType(resolveFileUrl(QStringLiteral("TimePicker.qml")), uri, 1, 0, "TimePicker");
0083     qmlRegisterType(resolveFileUrl(QStringLiteral("DatePicker.qml")), uri, 1, 0, "DatePicker");
0084 
0085     qmlRegisterType(resolveFileUrl(QStringLiteral("MonthsGrid.qml")), uri, 1, 0, "MonthsGrid");
0086     qmlRegisterType(resolveFileUrl(QStringLiteral("DaysGrid.qml")), uri, 1, 0, "DaysGrid");
0087     qmlRegisterType(resolveFileUrl(QStringLiteral("YearsGrid.qml")), uri, 1, 0, "YearsGrid");
0088 }
0089 
0090 #include "plugin.moc"
0091 #include "moc_plugin.cpp"