Warning, file /plasma/kdeplasma-addons/applets/weather/plugin/abstractunitlistmodel.cpp 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 #include "abstractunitlistmodel.h" 0008 0009 AbstractUnitListModel::AbstractUnitListModel(const QVector<UnitItem> &items, QObject *parent) 0010 : QAbstractListModel(parent) 0011 , m_items(items) 0012 { 0013 } 0014 0015 QVariant AbstractUnitListModel::data(const QModelIndex &index, int role) const 0016 { 0017 if (!index.isValid() || index.row() >= m_items.size()) { 0018 return QVariant(); 0019 } 0020 0021 const UnitItem &item = m_items.at(index.row()); 0022 0023 switch (role) { 0024 case Qt::DisplayRole: 0025 return item.name; 0026 } 0027 0028 return QVariant(); 0029 } 0030 0031 int AbstractUnitListModel::rowCount(const QModelIndex &index) const 0032 { 0033 if (!index.isValid()) { 0034 return m_items.size(); 0035 } 0036 0037 return 0; 0038 } 0039 0040 int AbstractUnitListModel::listIndexForUnitId(int unitId) const 0041 { 0042 for (int i = 0; i < m_items.count(); ++i) { 0043 if (m_items.at(i).unitId == unitId) { 0044 return i; 0045 } 0046 } 0047 0048 return -1; 0049 } 0050 0051 int AbstractUnitListModel::unitIdForListIndex(int listIndex) const 0052 { 0053 if (0 <= listIndex && listIndex < m_items.count()) { 0054 return m_items.at(listIndex).unitId; 0055 } 0056 0057 return -1; 0058 }