[SCM] ktp-common-internals packaging branch, master, updated. debian/15.12.1-2-1839-gf0635e9

Maximiliano Curia maxy at moszumanska.debian.org
Mon May 9 09:06:26 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-common-internals.git;a=commitdiff;h=e682d75

The following commit has been merged in the master branch:
commit e682d7558adf3027aada70f62b7612ec2cbec4fa
Author: Aleix Pol <aleixpol at kde.org>
Date:   Thu Feb 21 13:56:35 2013 +0100

    Add ConversationsModel::totalUnreadCount property
    
    Adds a property to the ConversationsModel to tell how many unread messages
    we have.
    
    REVIEW: 109073
    BUG: 296928
---
 KTp/Declarative/conversations-model.cpp | 12 ++++++++++++
 KTp/Declarative/conversations-model.h   |  7 +++++++
 2 files changed, 19 insertions(+)

diff --git a/KTp/Declarative/conversations-model.cpp b/KTp/Declarative/conversations-model.cpp
index c013241..8a5ae80 100644
--- a/KTp/Declarative/conversations-model.cpp
+++ b/KTp/Declarative/conversations-model.cpp
@@ -48,6 +48,8 @@ ConversationsModel::ConversationsModel(QObject *parent) :
     QHash<int, QByteArray> roles;
     roles[ConversationRole] = "conversation";
     setRoleNames(roles);
+    connect(this, SIGNAL(rowsInserted(QModelIndex,int,int)), SIGNAL(totalUnreadCountChanged()));
+    connect(this, SIGNAL(rowsRemoved(QModelIndex,int,int)), SIGNAL(totalUnreadCountChanged()));
 }
 
 ConversationsModel::~ConversationsModel()
@@ -135,6 +137,7 @@ void ConversationsModel::handleChannels(const Tp::MethodInvocationContextPtr<> &
         d->conversations.append(newConvo);
         connect(newConvo, SIGNAL(validityChanged(bool)), SLOT(handleValidityChange(bool)));
         connect(newConvo, SIGNAL(conversationDelegated()), SLOT(conversationDelegated()));
+        connect(newConvo->messages(), SIGNAL(unreadCountChanged(int)), SIGNAL(unreadCountChanged()));
         endInsertRows();
         context->setFinished();
     }
@@ -194,3 +197,12 @@ int ConversationsModel::nextActiveConversation(int fromRow)
     }
     return -1;
 }
+
+int ConversationsModel::totalUnreadCount() const
+{
+    int ret = 0;
+    Q_FOREACH(Conversation *c, d->conversations) {
+        ret += c->messages()->unreadCount();
+    }
+    return ret;
+}
diff --git a/KTp/Declarative/conversations-model.h b/KTp/Declarative/conversations-model.h
index 5cf626c..3708250 100644
--- a/KTp/Declarative/conversations-model.h
+++ b/KTp/Declarative/conversations-model.h
@@ -30,6 +30,7 @@ class Conversation;
 class ConversationsModel : public QAbstractListModel, public Tp::AbstractClientHandler
 {
     Q_OBJECT
+    Q_PROPERTY(int totalUnreadCount READ totalUnreadCount NOTIFY totalUnreadCountChanged)
 
   public:
     explicit ConversationsModel(QObject *parent);
@@ -38,6 +39,9 @@ class ConversationsModel : public QAbstractListModel, public Tp::AbstractClientH
     virtual QVariant data ( const QModelIndex &index, int role = Qt::DisplayRole ) const;
     virtual int rowCount ( const QModelIndex &parent = QModelIndex() ) const;
 
+    /** @returns the sum of all unread messages among all conversations */
+    int totalUnreadCount() const;
+
     enum role {
         ConversationRole = Qt::UserRole
     };
@@ -64,6 +68,9 @@ class ConversationsModel : public QAbstractListModel, public Tp::AbstractClientH
   private Q_SLOTS:
     void handleValidityChange(bool);
     void conversationDelegated();
+
+  Q_SIGNALS:
+      void totalUnreadCountChanged();
 };
 
 #endif // CONVERSATIONS_MODEL_H

-- 
ktp-common-internals packaging



More information about the pkg-kde-commits mailing list