Skip to content
Snippets Groups Projects
Commit 86d690c4 authored by Alexandre Lision's avatar Alexandre Lision Committed by Edric Milaret
Browse files

TextRecording: add IsRead role

We can now check to see if a message has been read or set it as such.
Setting the message to read will re-save the text recording on disk.

Tuleap: #203
Change-Id: Idfe67fc374dbf97833825db6fb278663fdada4b0
parent 9eb6d45a
Branches
Tags
No related merge requests found
...@@ -550,6 +550,7 @@ QHash<int,QByteArray> InstantMessagingModel::roleNames() const ...@@ -550,6 +550,7 @@ QHash<int,QByteArray> InstantMessagingModel::roleNames() const
roles.insert((int)Media::TextRecording::Role::AuthorUri , "authorUri" ); roles.insert((int)Media::TextRecording::Role::AuthorUri , "authorUri" );
roles.insert((int)Media::TextRecording::Role::AuthorPresenceStatus, "authorPresenceStatus"); roles.insert((int)Media::TextRecording::Role::AuthorPresenceStatus, "authorPresenceStatus");
roles.insert((int)Media::TextRecording::Role::Timestamp , "timestamp" ); roles.insert((int)Media::TextRecording::Role::Timestamp , "timestamp" );
roles.insert((int)Media::TextRecording::Role::IsRead , "isRead" );
roles.insert((int)Media::TextRecording::Role::FormattedDate , "formattedDate" ); roles.insert((int)Media::TextRecording::Role::FormattedDate , "formattedDate" );
roles.insert((int)Media::TextRecording::Role::IsStatus , "isStatus" ); roles.insert((int)Media::TextRecording::Role::IsStatus , "isStatus" );
} }
...@@ -597,6 +598,8 @@ QVariant InstantMessagingModel::data( const QModelIndex& idx, int role) const ...@@ -597,6 +598,8 @@ QVariant InstantMessagingModel::data( const QModelIndex& idx, int role) const
n->m_pContactMethod->contact()->isPresent() : n->m_pContactMethod->isPresent(); n->m_pContactMethod->contact()->isPresent() : n->m_pContactMethod->isPresent();
case (int)Media::TextRecording::Role::Timestamp : case (int)Media::TextRecording::Role::Timestamp :
return (int)n->m_pMessage->timestamp; return (int)n->m_pMessage->timestamp;
case (int)Media::TextRecording::Role::IsRead :
return (int)n->m_pMessage->isRead;
case (int)Media::TextRecording::Role::FormattedDate : case (int)Media::TextRecording::Role::FormattedDate :
return QDateTime::fromTime_t(n->m_pMessage->timestamp).toString(); return QDateTime::fromTime_t(n->m_pMessage->timestamp).toString();
case (int)Media::TextRecording::Role::IsStatus : case (int)Media::TextRecording::Role::IsStatus :
...@@ -630,10 +633,22 @@ Qt::ItemFlags InstantMessagingModel::flags(const QModelIndex& idx) const ...@@ -630,10 +633,22 @@ Qt::ItemFlags InstantMessagingModel::flags(const QModelIndex& idx) const
///Set model data ///Set model data
bool InstantMessagingModel::setData(const QModelIndex& idx, const QVariant &value, int role) bool InstantMessagingModel::setData(const QModelIndex& idx, const QVariant &value, int role)
{ {
Q_UNUSED(idx) if (idx.column() || !idx.isValid())
Q_UNUSED(value) return false;
Q_UNUSED(role)
return false; ::TextMessageNode* n = m_pRecording->d_ptr->m_lNodes[idx.row()];
switch (role) {
case (int)Media::TextRecording::Role::IsRead :
n->m_pMessage->isRead = value.toBool();
emit dataChanged(idx,idx);
break;
default:
return false;
}
//Save the conversation
m_pRecording->save();
return true;
} }
void InstantMessagingModel::addRowBegin() void InstantMessagingModel::addRowBegin()
......
...@@ -54,6 +54,7 @@ public: ...@@ -54,6 +54,7 @@ public:
AuthorUri , AuthorUri ,
AuthorPresenceStatus , AuthorPresenceStatus ,
Timestamp , Timestamp ,
IsRead ,
FormattedDate , FormattedDate ,
IsStatus , IsStatus ,
HTML , HTML ,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment