File indexing completed on 2024-05-12 15:54:51

0001 /*
0002  * SPDX-FileCopyrightText: (C) 2014  Vishesh Handa <me@vhanda.in>
0003  *
0004  * SPDX-License-Identifier: LGPL-2.1-or-later
0005  */
0006 
0007 #include "qmlplugins.h"
0008 
0009 #include "dirmodelutils.h"
0010 #include "displaycolorspace.h"
0011 #include "exiv2extractor.h"
0012 #include "fileinfo.h"
0013 #include "imagefavoritesmodel.h"
0014 #include "imagefoldermodel.h"
0015 #include "imagelistmodel.h"
0016 #include "imagelocationmodel.h"
0017 #include "imagetagsmodel.h"
0018 #include "imagetimemodel.h"
0019 #include "notificationmanager.h"
0020 #include "roles.h"
0021 #include "sortmodel.h"
0022 #include "types.h"
0023 
0024 #include <QtQml/qqml.h>
0025 
0026 void QmlPlugins::initializeEngine(QQmlEngine *, const char *)
0027 {
0028 }
0029 
0030 void QmlPlugins::registerTypes(const char *uri)
0031 {
0032 #if QT_VERSION < QT_VERSION_CHECK(5, 14, 0)
0033     qmlRegisterType<QAbstractItemModel>();
0034 #else
0035     qmlRegisterAnonymousType<QAbstractItemModel>(uri, 0);
0036 #endif
0037     qmlRegisterType<ImageLocationModel>(uri, 0, 1, "ImageLocationModel");
0038     qmlRegisterType<ImageTimeModel>(uri, 0, 1, "ImageTimeModel");
0039     qmlRegisterType<ImageFavoritesModel>(uri, 0, 1, "ImageFavoritesModel");
0040     qmlRegisterType<ImageTagsModel>(uri, 0, 1, "ImageTagsModel");
0041     qmlRegisterType<ImageFolderModel>(uri, 0, 1, "ImageFolderModel");
0042     qmlRegisterType<Exiv2Extractor>(uri, 0, 1, "Exiv2Extractor");
0043     qmlRegisterType<SortModel>(uri, 0, 1, "SortModel");
0044     qmlRegisterType<ImageListModel>(uri, 0, 1, "ImageListModel");
0045     qmlRegisterType<NotificationManager>(uri, 0, 1, "NotificationManager");
0046     qmlRegisterUncreatableType<Types>(uri, 0, 1, "Types", "Cannot instantiate the Types class");
0047     qmlRegisterUncreatableType<Roles>(uri, 0, 1, "Roles", "Cannot instantiate the Roles class");
0048     qmlRegisterSingletonType<DirModelUtils>(uri, 0, 1, "DirModelUtils", [=](QQmlEngine *, QJSEngine *) {
0049         return new DirModelUtils;
0050     });
0051     qmlRegisterType<FileInfo>(uri, 0, 1, "FileInfo");
0052     qmlRegisterSingletonType<DisplayColorSpace>(uri, 0, 1, "DisplayColorSpace", [](QQmlEngine *, QJSEngine *) {
0053         return new DisplayColorSpace{};
0054     });
0055 }