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"