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)12 SkyObjListModel::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() const20 QHash<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)31 void SkyObjListModel::addSkyObject(SkyObjItem *soitem)
32 {
33     beginInsertRows(QModelIndex(), rowCount(), rowCount());
34     m_SoItemList.append(soitem);
35     endInsertRows();
36 }
37 
rowCount(const QModelIndex & parent) const38 int 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) const45 QVariant 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()55 QList<SkyObjItem *> SkyObjListModel::getSkyObjItems()
56 {
57     return m_SoItemList;
58 }
59 
getSkyObjItem(int index)60 SkyObjItem *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)68 int 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()78 void SkyObjListModel::resetModel()
79 {
80     m_SoItemList.clear();
81 }
82