rahulch

Untitled

Oct 31st, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "config.h"
  2. #include "persondisplaydetailsmodel.h"
  3.  
  4. #include <QDebug>
  5.  
  6. PersonDisplayDetailsModel::PersonDisplayDetailsModel(QObject* parent)
  7.                          : QAbstractTableModel(parent)
  8. {
  9.     this->m_personDisplayDetailsList.reserve(MAX_ICO_FACES);
  10. }
  11.  
  12. QHash<int, QByteArray> PersonDisplayDetailsModel::roleNames() const
  13. {
  14.     QHash<int, QByteArray> roles;
  15.  
  16.     roles[XCoordRole] = "xCoord";
  17.     roles[YCoordRole] = "yCoord";
  18.     roles[HeightRole] = "faceHeight";
  19.     roles[WidthRole] = "faceWidth";
  20.     roles[FRIDRole] = "frID";
  21.     roles[DisplayTextRole] = "displayText";
  22.     roles[FaceStatusColor] = "faceStatusColor";
  23.  
  24.     return roles;
  25. }
  26.  
  27. QVariant PersonDisplayDetailsModel::data(const QModelIndex& index, int role) const
  28. {
  29.     if (!index.isValid()) {
  30.         return QVariant();
  31.     }
  32.  
  33.     if (index.row() >= this->m_personDisplayDetailsList.count()) {
  34.         return QVariant();
  35.     }
  36.  
  37.     const PersonDisplayDetails& personDisplayDetails = this->m_personDisplayDetailsList.at(index.row());
  38.     switch (role) {
  39.         case XCoordRole:
  40.             return personDisplayDetails.getFaceBoundaryBox().getNLoc_X();
  41.         case YCoordRole:
  42.             return personDisplayDetails.getFaceBoundaryBox().getNLoc_Y();
  43.         case HeightRole:
  44.             return personDisplayDetails.getFaceBoundaryBox().getNHeight();
  45.         case WidthRole:
  46.             return personDisplayDetails.getFaceBoundaryBox().getNWidth();
  47.         case FRIDRole:
  48.             return personDisplayDetails.getFRID();
  49.         case DisplayTextRole:
  50.             return personDisplayDetails.getDisplayText();
  51.         case FaceStatusColor:
  52.             return personDisplayDetails.getFaceStatusColor();
  53.         default:
  54.             return QVariant();
  55.     }
  56. }
  57.  
  58. int PersonDisplayDetailsModel::rowCount(const QModelIndex& parent) const
  59. {
  60.     if (parent.isValid()) {
  61.         return 0;
  62.     }
  63.     return this->m_personDisplayDetailsList.count();
  64. }
  65.  
  66. int PersonDisplayDetailsModel::columnCount(const QModelIndex& parent) const
  67. {
  68.     if (parent.isValid()) {
  69.         return 0;
  70.     }
  71.     return this->m_columnCount;
  72. }
  73.  
  74. QModelIndex PersonDisplayDetailsModel::index(int row, int column, const QModelIndex& parent) const
  75. {
  76.     const QModelIndex& i = createIndex(row, column);
  77.     return i;
  78. }
  79.  
  80. void PersonDisplayDetailsModel::updateModelData(const QVector<PersonDisplayDetails>& personDisplayDetails)
  81. {
  82.     int i;
  83.     for (i = 0; i < personDisplayDetails.size(); ++i) {
  84.         if (i >= this->m_personDisplayDetailsList.size()) {
  85.             beginInsertRows(QModelIndex(), rowCount(), rowCount());
  86.             this->m_personDisplayDetailsList.append(personDisplayDetails[i]);
  87.             endInsertRows();
  88.         } else {
  89.             this->m_personDisplayDetailsList[i] = personDisplayDetails[i];
  90.             QModelIndex r1 = index(i, 0);
  91.             QModelIndex r2 = index(i, columnCount() - 1);
  92.             emit dataChanged(r1, r2);
  93.         }
  94.     }
  95.  
  96.     if (i < this->m_personDisplayDetailsList.size()) {
  97.         beginRemoveRows(QModelIndex(), i, this->m_personDisplayDetailsList.size() - 1);
  98.         for (; i < this->m_personDisplayDetailsList.size(); ++i) {
  99.             this->m_personDisplayDetailsList.removeAt(i);
  100.         }
  101.         endRemoveRows();
  102.     }
  103. }
Add Comment
Please, Sign In to add comment