File indexing completed on 2024-05-19 16:31:58
0001 /* 0002 * SPDX-FileCopyrightText: 2015 Kai Uwe Broulik <kde@privat.broulik.de> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef KCM_ENERGYINFO_BATTERYMODEL_H 0008 #define KCM_ENERGYINFO_BATTERYMODEL_H 0009 0010 #include <QAbstractListModel> 0011 #include <QList> 0012 0013 #include <Solid/Battery> 0014 #include <Solid/Device> 0015 0016 class BatteryModel : public QAbstractListModel 0017 { 0018 Q_OBJECT 0019 0020 Q_PROPERTY(int count READ rowCount NOTIFY countChanged) 0021 0022 public: 0023 explicit BatteryModel(QObject *parent); 0024 ~BatteryModel() override = default; 0025 0026 enum Roles { 0027 BatteryRole = Qt::UserRole, 0028 UdiRole, 0029 VendorRole, 0030 ProductRole, 0031 }; 0032 Q_ENUM(Roles) 0033 0034 QVariant data(const QModelIndex &index, int role) const override; 0035 int rowCount(const QModelIndex &parent = QModelIndex()) const override; 0036 QHash<int, QByteArray> roleNames() const override; 0037 0038 signals: 0039 void countChanged(); 0040 0041 private: 0042 QList<Solid::Device> m_batteries; 0043 }; 0044 0045 #endif // KCM_ENERGYINFO_BATTERYMODEL_H