File indexing completed on 2024-05-19 04:48:24
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 }