File indexing completed on 2024-04-28 15:11:24
0001 /* 0002 SPDX-FileCopyrightText: 2012 Samikshan Bairagya <samikshan@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "skyobjlistmodel.h" 0008 0009 #include "skyobject.h" 0010 #include "skyobjitem.h" 0011 0012 SkyObjListModel::SkyObjListModel(SkyObjItem *soitem, QObject *parent) : QAbstractListModel(parent) 0013 { 0014 //FIXME Needs porting to KF5 0015 //Fixed in roleNames(). setRoleNames is not a member of QAbstractListModel anymore 0016 //setRoleNames(soitem->roleNames()); 0017 Q_UNUSED(soitem); 0018 } 0019 0020 QHash<int, QByteArray> SkyObjListModel::roleNames() const 0021 { 0022 QHash<int, QByteArray> roles; 0023 roles[SkyObjItem::DispNameRole] = "dispName"; 0024 roles[SkyObjItem::DispImageRole] = "imageSource"; 0025 roles[SkyObjItem::DispSummaryRole] = "dispObjSummary"; 0026 roles[SkyObjItem::CategoryRole] = "type"; 0027 roles[SkyObjItem::CategoryNameRole] = "typeName"; 0028 return roles; 0029 } 0030 0031 void SkyObjListModel::addSkyObject(SkyObjItem *soitem) 0032 { 0033 beginInsertRows(QModelIndex(), rowCount(), rowCount()); 0034 m_SoItemList.append(soitem); 0035 endInsertRows(); 0036 } 0037 0038 int SkyObjListModel::rowCount(const QModelIndex &parent) const 0039 { 0040 Q_UNUSED(parent) 0041 0042 return m_SoItemList.size(); 0043 } 0044 0045 QVariant SkyObjListModel::data(const QModelIndex &index, int role) const 0046 { 0047 if (index.row() < 0 || index.row() > rowCount()) 0048 return QVariant(); 0049 0050 SkyObjItem *soitem = m_SoItemList[index.row()]; 0051 0052 return soitem->data(role); 0053 } 0054 0055 QList<SkyObjItem *> SkyObjListModel::getSkyObjItems() 0056 { 0057 return m_SoItemList; 0058 } 0059 0060 SkyObjItem *SkyObjListModel::getSkyObjItem(int index) 0061 { 0062 if (m_SoItemList.size() > index) 0063 return m_SoItemList[index]; 0064 else 0065 return nullptr; 0066 } 0067 0068 int SkyObjListModel::getSkyObjIndex(SkyObjItem *item) 0069 { 0070 for (int i = 0; i < m_SoItemList.size(); i++) 0071 { 0072 if (item->getName() == m_SoItemList[i]->getName()) 0073 return i; 0074 } 0075 return -1; 0076 } 0077 0078 void SkyObjListModel::resetModel() 0079 { 0080 m_SoItemList.clear(); 0081 }