1 /* 2 SPDX-FileCopyrightText: 2012 Samikshan Bairagya <samikshan@gmail.com> 3 4 SPDX-License-Identifier: GPL-2.0-or-later 5 */ 6 7 #include "skyobjlistmodel.h" 8 9 #include "skyobject.h" 10 #include "skyobjitem.h" 11 SkyObjListModel(SkyObjItem * soitem,QObject * parent)12SkyObjListModel::SkyObjListModel(SkyObjItem *soitem, QObject *parent) : QAbstractListModel(parent) 13 { 14 //FIXME Needs porting to KF5 15 //Fixed in roleNames(). setRoleNames is not a member of QAbstractListModel anymore 16 //setRoleNames(soitem->roleNames()); 17 Q_UNUSED(soitem); 18 } 19 roleNames() const20QHash<int, QByteArray> SkyObjListModel::roleNames() const 21 { 22 QHash<int, QByteArray> roles; 23 roles[SkyObjItem::DispNameRole] = "dispName"; 24 roles[SkyObjItem::DispImageRole] = "imageSource"; 25 roles[SkyObjItem::DispSummaryRole] = "dispObjSummary"; 26 roles[SkyObjItem::CategoryRole] = "type"; 27 roles[SkyObjItem::CategoryNameRole] = "typeName"; 28 return roles; 29 } 30 addSkyObject(SkyObjItem * soitem)31void SkyObjListModel::addSkyObject(SkyObjItem *soitem) 32 { 33 beginInsertRows(QModelIndex(), rowCount(), rowCount()); 34 m_SoItemList.append(soitem); 35 endInsertRows(); 36 } 37 rowCount(const QModelIndex & parent) const38int SkyObjListModel::rowCount(const QModelIndex &parent) const 39 { 40 Q_UNUSED(parent) 41 42 return m_SoItemList.size(); 43 } 44 data(const QModelIndex & index,int role) const45QVariant SkyObjListModel::data(const QModelIndex &index, int role) const 46 { 47 if (index.row() < 0 || index.row() > rowCount()) 48 return QVariant(); 49 50 SkyObjItem *soitem = m_SoItemList[index.row()]; 51 52 return soitem->data(role); 53 } 54 getSkyObjItems()55QList<SkyObjItem *> SkyObjListModel::getSkyObjItems() 56 { 57 return m_SoItemList; 58 } 59 getSkyObjItem(int index)60SkyObjItem *SkyObjListModel::getSkyObjItem(int index) 61 { 62 if (m_SoItemList.size() > index) 63 return m_SoItemList[index]; 64 else 65 return nullptr; 66 } 67 getSkyObjIndex(SkyObjItem * item)68int SkyObjListModel::getSkyObjIndex(SkyObjItem *item) 69 { 70 for (int i = 0; i < m_SoItemList.size(); i++) 71 { 72 if (item->getName() == m_SoItemList[i]->getName()) 73 return i; 74 } 75 return -1; 76 } 77 resetModel()78void SkyObjListModel::resetModel() 79 { 80 m_SoItemList.clear(); 81 } 82