[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