Warning, file /plasma/kdeplasma-addons/applets/weather/plugin/abstractunitlistmodel.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 * SPDX-FileCopyrightText: 2016 Friedrich W. H. Kossebau <kossebau@kde.org> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef ABSTRACTUNITLISTMODEL_H 0008 #define ABSTRACTUNITLISTMODEL_H 0009 0010 #include "util.h" 0011 0012 #include <KUnitConversion/Unit> 0013 0014 #include <QAbstractListModel> 0015 #include <QVector> 0016 0017 class UnitItem 0018 { 0019 public: 0020 UnitItem() 0021 { 0022 } 0023 UnitItem(KUnitConversion::UnitId _unitId) 0024 : name(Util::nameFromUnitId(_unitId)) 0025 , unitId(_unitId) 0026 { 0027 } 0028 0029 QString name; 0030 KUnitConversion::UnitId unitId; 0031 }; 0032 0033 Q_DECLARE_METATYPE(UnitItem) 0034 Q_DECLARE_TYPEINFO(UnitItem, Q_MOVABLE_TYPE); 0035 0036 class AbstractUnitListModel : public QAbstractListModel 0037 { 0038 Q_OBJECT 0039 0040 public: 0041 explicit AbstractUnitListModel(const QVector<UnitItem> &items, QObject *parent = nullptr); 0042 0043 public: // QAbstractListModel API 0044 QVariant data(const QModelIndex &index, int role) const override; 0045 int rowCount(const QModelIndex &index) const override; 0046 0047 public: 0048 Q_INVOKABLE int listIndexForUnitId(int unitId) const; 0049 Q_INVOKABLE int unitIdForListIndex(int listIndex) const; 0050 0051 private: 0052 const QVector<UnitItem> m_items; 0053 }; 0054 0055 #endif // ABSTRACTUNITLISTMODEL_H