[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [ktp-common-internals/mklapetek/SpaceBar] KTp/Declarative: [declarative] Expose the unread messages 
From:       Martin Klapetek <mklapetek () kde ! org>
Date:       2016-03-17 18:47:32
Message-ID: E1agcxI-0007Bu-Cd () scm ! kde ! org
[Download RAW message or body]

Git commit 423a2ad516ff1d050127d12946ae0e47bcd81c76 by Martin Klapetek.
Committed on 17/03/2016 at 18:46.
Pushed by mklapetek into branch 'mklapetek/SpaceBar'.

[declarative] Expose the unread messages count in the MainLogModel

M  +8    -0    KTp/Declarative/mainlogmodel.cpp
M  +1    -0    KTp/Declarative/mainlogmodel.h

http://commits.kde.org/telepathy-common-internals/423a2ad516ff1d050127d12946ae0e47bcd81c76

diff --git a/KTp/Declarative/mainlogmodel.cpp b/KTp/Declarative/mainlogmodel.cpp
index 6c1720f..2cce096 100644
--- a/KTp/Declarative/mainlogmodel.cpp
+++ b/KTp/Declarative/mainlogmodel.cpp
@@ -118,6 +118,7 @@ QVariant MainLogModel::data(const QModelIndex &index, int role) const
         case MainLogModel::LastMessageTextRole:
         case MainLogModel::ConversationRole:
         case MainLogModel::HasUnreadMessagesRole:
+        case MainLogModel::UnreadMessagesCountRole:
         case MainLogModel::ContactDisplayNameRole:
         case MainLogModel::PersonUriRole:
         {
@@ -142,6 +143,10 @@ QVariant MainLogModel::data(const QModelIndex &index, int role) const
             if (!conversation->isValid()) {
                 if (role == MainLogModel::HasUnreadMessagesRole) {
                     return false;
+                } else if (role == MainLogModel::UnreadMessagesCountRole) {
+                    // TODO this needs to be replaced once the persistent
+                    //      unread count is done
+                    return 0;
                 } else if (role == MainLogModel::LastMessageDateRole) {
                     return m_logItems.at(row).messageDateTime;
                 } else if (role == MainLogModel::LastMessageTextRole) {
@@ -150,6 +155,8 @@ QVariant MainLogModel::data(const QModelIndex &index, int role) const
             } else {
                 if (role == MainLogModel::HasUnreadMessagesRole) {
                     return conversation->hasUnreadMessages();
+                } else if (role == MainLogModel::UnreadMessagesCountRole) {
+                    return conversation->messages()->unreadCount();
                 } else if (role == MainLogModel::LastMessageDateRole) {
                     return conversation->messages()->lastMessageDateTime();
                 } else if (role == MainLogModel::LastMessageTextRole) {
@@ -184,6 +191,7 @@ QHash<int, QByteArray> MainLogModel::roleNames() const
     roles.insert(LastMessageTextRole, "lastMessageText");
     roles.insert(ConversationRole, "conversation");
     roles.insert(HasUnreadMessagesRole, "hasUnreadMessages");
+    roles.insert(UnreadMessagesCountRole, "unreadMessagesCount");
 
     return roles;
 }
diff --git a/KTp/Declarative/mainlogmodel.h b/KTp/Declarative/mainlogmodel.h
index 3d269ba..a586e23 100644
--- a/KTp/Declarative/mainlogmodel.h
+++ b/KTp/Declarative/mainlogmodel.h
@@ -55,6 +55,7 @@ public:
         LastMessageTextRole,
         ConversationRole,
         HasUnreadMessagesRole,
+        UnreadMessagesCountRole,
 
         UserRole = Qt::UserRole + 0x1000 ///< in case it's needed to extend, use this one to start from
     };
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic