KNewStuff

qmlplugin.cpp
1 /*
2  * Copyright (C) 2016 Dan Leinir Turthra Jensen <[email protected]>
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) version 3, or any
8  * later version accepted by the membership of KDE e.V. (or its
9  * successor approved by the membership of KDE e.V.), which shall
10  * act as a proxy defined in Section 6 of version 3 of the license.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
19  *
20  */
21 
22 #include "qmlplugin.h"
23 
24 #include "quickengine.h"
25 #include "quickitemsmodel.h"
26 #include "quickquestionlistener.h"
27 #include "author.h"
28 #include "categoriesmodel.h"
29 #include "commentsmodel.h"
30 #include "downloadlinkinfo.h"
31 #include "entrywrapper.h"
32 
33 #include "provider.h"
34 #include "question.h"
35 
36 #include <QQmlEngine>
37 #include <qqml.h>
38 
39 void QmlPlugins::initializeEngine(QQmlEngine *engine, const char *)
40 {
41  Q_UNUSED(engine);
42 }
43 
44 void QmlPlugins::registerTypes(const char *uri)
45 {
46  const char* coreUri{"org.kde.newstuff.core"};
47 
48  // Initial version
49  qmlRegisterType<Engine>(uri, 1, 0, "Engine");
50  qmlRegisterType<ItemsModel>(uri, 1, 0, "ItemsModel");
51 
52  // Version 1.62
53  qmlRegisterType<KNewStuffQuick::Author>(uri, 1, 62, "Author");
54  qmlRegisterType<KNewStuffQuick::CommentsModel>(uri, 1, 62, "CommentsModel");
55  qmlRegisterUncreatableType<DownloadLinkInfo>(uri, 1, 0, "DownloadLinkInfo", QStringLiteral("This should only be created by the ItemsModel, and is associated with one entry in that model"));
56  qmlRegisterUncreatableType<CategoriesModel>(uri, 1, 0, "CategoriesModel", QStringLiteral("This should only be created by the Engine, and provides the categories available in that engine"));
57  qmlRegisterUncreatableMetaObject(KNSCore::Provider::staticMetaObject, coreUri, 1, 62, "Provider", QLatin1String("Error: this only exists to forward enums"));
58  qmlRegisterUncreatableMetaObject(KNSCore::Question::staticMetaObject, coreUri, 1, 62, "Question", QLatin1String("Error: this only exists to forward enums"));
59  qmlRegisterSingletonType<KNewStuffQuick::QuickQuestionListener>(uri, 1, 62, "QuickQuestionListener", [](QQmlEngine *engine, QJSEngine *scriptEngine) -> QObject * {
60  Q_UNUSED(scriptEngine)
61  engine->setObjectOwnership(KNewStuffQuick::QuickQuestionListener::instance(), QQmlEngine::CppOwnership);
62  return KNewStuffQuick::QuickQuestionListener::instance();
63  });
64 
65  // Version 1.67
66  qmlRegisterUncreatableType<KNSCore::EntryWrapper>(coreUri, 1, 67, "EntryWrapper", QStringLiteral("This should only be created by the Engine, and wraps EntryInternal objects for passing through Qt Quick"));
67 }
Contains the core functionality for handling interaction with NewStuff providers. ...
Encapsulates a KNSCore::Engine for use in Qt Quick.
Definition: quickengine.h:38
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Sun Aug 9 2020 22:43:40 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.