Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "config.h"
- #include "persondisplaydetailsmodel.h"
- #include <QDebug>
- PersonDisplayDetailsModel::PersonDisplayDetailsModel(QObject* parent)
- : QAbstractTableModel(parent)
- {
- this->m_personDisplayDetailsList.reserve(MAX_ICO_FACES);
- }
- QHash<int, QByteArray> PersonDisplayDetailsModel::roleNames() const
- {
- QHash<int, QByteArray> roles;
- roles[XCoordRole] = "xCoord";
- roles[YCoordRole] = "yCoord";
- roles[HeightRole] = "faceHeight";
- roles[WidthRole] = "faceWidth";
- roles[FRIDRole] = "frID";
- roles[DisplayTextRole] = "displayText";
- roles[FaceStatusColor] = "faceStatusColor";
- return roles;
- }
- QVariant PersonDisplayDetailsModel::data(const QModelIndex& index, int role) const
- {
- if (!index.isValid()) {
- return QVariant();
- }
- if (index.row() >= this->m_personDisplayDetailsList.count()) {
- return QVariant();
- }
- const PersonDisplayDetails& personDisplayDetails = this->m_personDisplayDetailsList.at(index.row());
- switch (role) {
- case XCoordRole:
- return personDisplayDetails.getFaceBoundaryBox().getNLoc_X();
- case YCoordRole:
- return personDisplayDetails.getFaceBoundaryBox().getNLoc_Y();
- case HeightRole:
- return personDisplayDetails.getFaceBoundaryBox().getNHeight();
- case WidthRole:
- return personDisplayDetails.getFaceBoundaryBox().getNWidth();
- case FRIDRole:
- return personDisplayDetails.getFRID();
- case DisplayTextRole:
- return personDisplayDetails.getDisplayText();
- case FaceStatusColor:
- return personDisplayDetails.getFaceStatusColor();
- default:
- return QVariant();
- }
- }
- int PersonDisplayDetailsModel::rowCount(const QModelIndex& parent) const
- {
- if (parent.isValid()) {
- return 0;
- }
- return this->m_personDisplayDetailsList.count();
- }
- int PersonDisplayDetailsModel::columnCount(const QModelIndex& parent) const
- {
- if (parent.isValid()) {
- return 0;
- }
- return this->m_columnCount;
- }
- QModelIndex PersonDisplayDetailsModel::index(int row, int column, const QModelIndex& parent) const
- {
- const QModelIndex& i = createIndex(row, column);
- return i;
- }
- void PersonDisplayDetailsModel::updateModelData(const QVector<PersonDisplayDetails>& personDisplayDetails)
- {
- int i;
- for (i = 0; i < personDisplayDetails.size(); ++i) {
- if (i >= this->m_personDisplayDetailsList.size()) {
- beginInsertRows(QModelIndex(), rowCount(), rowCount());
- this->m_personDisplayDetailsList.append(personDisplayDetails[i]);
- endInsertRows();
- } else {
- this->m_personDisplayDetailsList[i] = personDisplayDetails[i];
- QModelIndex r1 = index(i, 0);
- QModelIndex r2 = index(i, columnCount() - 1);
- emit dataChanged(r1, r2);
- }
- }
- if (i < this->m_personDisplayDetailsList.size()) {
- beginRemoveRows(QModelIndex(), i, this->m_personDisplayDetailsList.size() - 1);
- for (; i < this->m_personDisplayDetailsList.size(); ++i) {
- this->m_personDisplayDetailsList.removeAt(i);
- }
- endRemoveRows();
- }
- }
Add Comment
Please, Sign In to add comment