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 }