File indexing completed on 2023-09-24 08:13:16

0001 // SPDX-FileCopyrightText: (C) 2020 Carl Schwan <carl@carlschwan.eu>
0002 //
0003 // SPDX-License-Identifier: GPL-3.0-or-later
0004 
0005 #include "gamesmodel.h"
0006 
0007 #include <QtQml>
0008 #include <QDebug>
0009 
0010 #include <KPackage/PackageLoader>
0011 #include <KLocalizedString>
0012 #include <KPluginMetaData>
0013 
0014 GamesModel::GamesModel(QObject *parent)
0015     : QStandardItemModel(parent)
0016 {
0017     reload();
0018 }
0019 
0020 void GamesModel::reload()
0021 {
0022     clear();
0023 
0024     auto list = KPackage::PackageLoader::self()->listPackages(QStringLiteral("Arkade/Game"));
0025     // NOTE: This will disable completely the internal in-memory cache 
0026     KPackage::Package p;
0027     p.install(QString(), QString());
0028     
0029     for (auto plugin : list) {
0030         qDebug() << plugin.name();
0031         auto item = new QStandardItem(plugin.name());
0032         item->setData(plugin.pluginId(), GamesModel::PluginIdRole);
0033         appendRow(item);
0034     }
0035 }
0036 
0037 QString GamesModel::pluginId(int row)
0038 {
0039     return data(index(row, 0), PluginIdRole).toString();
0040 }
0041 
0042 QHash<int, QByteArray> GamesModel::roleNames() const
0043 {
0044     QHash<int, QByteArray> roles = QAbstractItemModel::roleNames();
0045  
0046     roles[PluginIdRole] = "pluginId";
0047     return roles;
0048 }
0049 
0050 #include "moc_gamesmodel.cpp"