File indexing completed on 2024-04-21 05:46:51

0001 /*
0002     Copyright © 2017 Harald Sitter <sitter@kde.org>
0003 
0004     This program is free software; you can redistribute it and/or
0005     modify it under the terms of the GNU General Public License as
0006     published by the Free Software Foundation; either version 2 of
0007     the License or (at your option) version 3 or any later version
0008     accepted by the membership of KDE e.V. (or its successor approved
0009     by the membership of KDE e.V.), which shall act as a proxy
0010     defined in Section 14 of version 3 of the license.
0011 
0012     This program is distributed in the hope that it will be useful,
0013     but WITHOUT ANY WARRANTY; without even the implied warranty of
0014     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0015     GNU General Public License for more details.
0016 
0017     You should have received a copy of the GNU General Public License
0018     along with this program.  If not, see <http://www.gnu.org/licenses/>.
0019 */
0020 
0021 #include "Plugin.h"
0022 
0023 #include <QtQml>
0024 
0025 #include <PackageKit/Daemon>
0026 
0027 #include "Transaction.h"
0028 #include "TransactionModel.h"
0029 
0030 static QObject *daemon_singleton_provider(QQmlEngine *engine, QJSEngine *)
0031 {
0032     auto obj = PackageKit::Daemon::global();
0033     engine->setObjectOwnership(obj, QQmlEngine::CppOwnership);
0034     return obj;
0035 }
0036 
0037 void Plugin::registerTypes(const char* uri)
0038 {
0039     qmlRegisterSingletonType<PackageKit::Daemon>(uri, 0, 1, "Daemon", daemon_singleton_provider);
0040 //    qRegisterMetaType<PackageKit::Transaction::Role>(); // So it becomes a QVariant.
0041     qmlRegisterUncreatableType<PackageKit::Transaction>(uri, 0, 1, "Transaction",
0042                                                         "Transactions can only be generated from C++");
0043     qmlRegisterType<TransactionModel>(uri, 0, 1, "TransactionModel");
0044 }