chatmessagemodel.cpp 853 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #include "chatmessagemodel.h"
  2. ChatMessageModel::ChatMessageModel(QObject *parent)
  3. : QAbstractListModel(parent)
  4. {}
  5. int ChatMessageModel::rowCount(const QModelIndex &parent) const
  6. {
  7. if (parent.isValid())
  8. return 0;
  9. return m_messages.size();
  10. }
  11. QVariant ChatMessageModel::data(const QModelIndex &index, int role) const
  12. {
  13. if (!index.isValid())
  14. return QVariant();
  15. const ChatMessage &message = m_messages[index.row()];
  16. if (role == Qt::DisplayRole)
  17. return QVariant::fromValue(message);
  18. return QVariant();
  19. }
  20. void ChatMessageModel::addMessage(const ChatMessage &message)
  21. {
  22. beginInsertRows(QModelIndex(), m_messages.size(), m_messages.size());
  23. m_messages.append(message);
  24. endInsertRows();
  25. }
  26. void ChatMessageModel::clear()
  27. {
  28. beginResetModel();
  29. m_messages.clear();
  30. endResetModel();
  31. }