File indexing completed on 2024-05-19 15:51:25

0001 #include "cmakeprojectsmodel.h"
0002 
0003 #include "controllers/cmakeproject.h"
0004 
0005 CMakeProjectsModel::CMakeProjectsModel(QObject *parent) : QAbstractListModel(parent)
0006 {
0007     qRegisterMetaType<CMakeProjectData>("CMakeProjectData");
0008 
0009 }
0010 
0011 void CMakeProjectsModel::setProjectsData(const QVector<CMakeProjectData> &data)
0012 {
0013     this->beginResetModel();
0014     m_data = data;
0015     this->endResetModel();
0016 }
0017 
0018 int CMakeProjectsModel::rowCount(const QModelIndex &parent) const
0019 {
0020     if (parent.isValid())
0021     {
0022         return 0;
0023     }
0024 
0025     return m_data.size();
0026 }
0027 
0028 QVariant CMakeProjectsModel::data(const QModelIndex &index, int role) const
0029 {
0030     if (!index.isValid())
0031         return QVariant();
0032 
0033     auto value = m_data.at(index.row());
0034 
0035     switch(role)
0036     {
0037     case Roles::Title : return QVariant(value.name);
0038     case Roles::Data : return QVariant::fromValue(value);
0039     default: return QVariant();
0040     }
0041 }
0042 
0043 QHash<int, QByteArray> CMakeProjectsModel::roleNames() const
0044 {
0045     return QHash<int, QByteArray> {{Roles::Title, "title"}, {Roles::Data, "data"}};
0046 }