File indexing completed on 2024-05-12 05:53:15
0001 /* 0002 * Copyright 2019 Eike Hein <hein@kde.org> 0003 * 0004 * This library is free software; you can redistribute it and/or 0005 * modify it under the terms of the GNU Lesser General Public 0006 * License as published by the Free Software Foundation; either 0007 * version 2.1 of the License, or (at your option) version 3, or any 0008 * later version accepted by the membership of KDE e.V. (or its 0009 * successor approved by the membership of KDE e.V.), which shall 0010 * act as a proxy defined in Section 6 of version 3 of the license. 0011 * 0012 * This library 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 GNU 0015 * Lesser General Public License for more details. 0016 * 0017 * You should have received a copy of the GNU Lesser General Public 0018 * License along with this library. If not, see <http://www.gnu.org/licenses/>. 0019 */ 0020 0021 #include "vehiclesupportpluginmodel.h" 0022 #include "debug.h" 0023 #include "vehiclesupportplugin.h" 0024 0025 #include <KPluginFactory> 0026 0027 #include <QCoreApplication> 0028 #include <QMetaEnum> 0029 0030 namespace Kirogi 0031 { 0032 VehicleSupportPluginModel::VehicleSupportPluginModel(QObject *parent) 0033 : AbstractPluginModel(parent) 0034 { 0035 loadPluginByType(QStringLiteral("vehiclesupport")); 0036 } 0037 0038 VehicleSupportPluginModel::~VehicleSupportPluginModel() = default; 0039 0040 QVariant VehicleSupportPluginModel::data(const QModelIndex &index, int role) const 0041 { 0042 if (!checkIndex(index, CheckIndexOption::IndexIsValid | CheckIndexOption::ParentIsInvalid)) { 0043 return QVariant(); 0044 } 0045 0046 auto metadata = metadataAt(index.row()); 0047 const QString &id = metadata.pluginId(); 0048 0049 switch (role) { 0050 case Qt::DisplayRole: 0051 return metadata.name(); 0052 case Id: 0053 return metadata.pluginId(); 0054 case Status: 0055 return pluginForId(id) ? PluginLoaded : PluginNotLoaded; 0056 case Plugin: 0057 return QVariant::fromValue(pluginForId(id)); 0058 } 0059 0060 return QVariant(); 0061 } 0062 0063 QObject *VehicleSupportPluginModel::requestFromFactory(KPluginFactory *factory) 0064 { 0065 return factory->create<VehicleSupportPlugin>(this); 0066 } 0067 0068 }