[SCM] ktp-contact-list packaging branch, master, updated. debian/15.12.1-2-1070-g6c56f91
Maximiliano Curia
maxy at moszumanska.debian.org
Sat May 28 00:06:41 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-contact-list.git;a=commitdiff;h=474f420
The following commit has been merged in the master branch:
commit 474f420998036147475d5b558cb54168a17fa7d8
Author: David Edmundson <kde at davidedmundson.co.uk>
Date: Wed Jun 15 23:49:23 2011 +0100
Complete tidy up of filterAcceptsRow in AccountFilterModel
Review: 101638
Reviewed by: Martin Klapetek
---
account-filter-model.cpp | 106 ++++++++++++++++++++++++++++-------------------
account-filter-model.h | 10 ++++-
2 files changed, 72 insertions(+), 44 deletions(-)
diff --git a/account-filter-model.cpp b/account-filter-model.cpp
index d86b340..5b37ec8 100644
--- a/account-filter-model.cpp
+++ b/account-filter-model.cpp
@@ -23,6 +23,13 @@
#include "accounts-model.h"
#include "groups-model.h"
+#include "groups-model-item.h"
+#include "contact-model-item.h"
+#include "accounts-model-item.h"
+
+
+#include <KDebug>
+
AccountFilterModel::AccountFilterModel(QObject *parent)
: QSortFilterProxyModel(parent),
m_showOfflineUsers(false),
@@ -42,58 +49,71 @@ bool AccountFilterModel::showOfflineUsers() const
return m_showOfflineUsers;
}
-bool AccountFilterModel::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const
+bool AccountFilterModel::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const
{
- bool rowAccepted = true;
- //if we're looking at filtering an account or not
- if (source_parent != QModelIndex()) {
- //filter by name in the contact list
- if (m_filterByName &&
- !source_parent.child(source_row, 0).data(AccountsModel::AliasRole).toString()
- .contains(m_filterString, Qt::CaseInsensitive)) {
-
- rowAccepted = false;
- }
+ QModelIndex index = sourceModel()->index(sourceRow, 0, sourceParent);
- //filter offline users out
- if (!m_showOfflineUsers &&
- ((source_parent.child(source_row, 0).data(AccountsModel::PresenceTypeRole).toUInt()
- == Tp::ConnectionPresenceTypeOffline) ||
- (source_parent.child(source_row, 0).data(AccountsModel::PresenceTypeRole).toUInt()
- == Tp::ConnectionPresenceTypeUnknown))) {
+ int type = index.data(AccountsModel::ItemRole).userType();
+ if (type == qMetaTypeId<ContactModelItem*>()) {
+ return filterAcceptsContact(index);
+ }
+ else if (type == qMetaTypeId<AccountsModelItem*>()) {
+ return filterAcceptsAccount(index);
+ }
+ else if (type == qMetaTypeId<GroupsModelItem*>()) {
+ return filterAcceptsGroup(index);
+ }
+ else {
+ kDebug() << "Unknown type found in Account Filter";
+ return true;
+ }
+}
- rowAccepted = false;
- }
- } else {
- QModelIndex index = sourceModel()->index(source_row, 0);
- if (index.isValid()) {
- if (m_groupsActive) {
- if (!m_showOfflineUsers) {
- if (index.data(AccountsModel::OnlineUsersCountRole).toInt() > 0) {
- return true;
- } else {
- return false;
- }
- } else {
- //if the offline users are shown, display all the groups
- return true;
- }
- } else {
- if (!index.data(AccountsModel::EnabledRole).toBool()) {
- rowAccepted = false;
- }
- if (index.data(AccountsModel::ConnectionStatusRole).toUInt()
- != Tp::ConnectionStatusConnected) {
+bool AccountFilterModel::filterAcceptsAccount(const QModelIndex &index) const
+{
+ bool rowAccepted = true;
+ //hide disabled accounts
+ if (!index.data(AccountsModel::EnabledRole).toBool()) {
+ rowAccepted = false;
+ }
+ //hide
+ if (index.data(AccountsModel::ConnectionStatusRole).toUInt()
+ != Tp::ConnectionStatusConnected) {
+ rowAccepted = false;
+ }
+ return rowAccepted;
+}
- rowAccepted = false;
- }
- }
- }
+bool AccountFilterModel::filterAcceptsContact(const QModelIndex &index) const
+{
+ bool rowAccepted = true;
+ if (m_filterByName &&
+ !index.data(AccountsModel::AliasRole).toString().contains(m_filterString, Qt::CaseInsensitive)) {
+ rowAccepted = false;
}
+ //filter offline users out
+ if (!m_showOfflineUsers &&
+ ((index.data(AccountsModel::PresenceTypeRole).toUInt()
+ == Tp::ConnectionPresenceTypeOffline) ||
+ (index.data(AccountsModel::PresenceTypeRole).toUInt()
+ == Tp::ConnectionPresenceTypeUnknown))) {
+ rowAccepted = false;
+ }
return rowAccepted;
}
+bool AccountFilterModel::filterAcceptsGroup(const QModelIndex &index) const
+{
+ bool acceptRow = true;
+ if (!m_showOfflineUsers) {
+ if (index.data(AccountsModel::OnlineUsersCountRole).toInt() == 0) {
+ acceptRow = false;
+ }
+ }
+ return acceptRow;
+}
+
void AccountFilterModel::setFilterString(const QString &str)
{
m_filterString = str;
diff --git a/account-filter-model.h b/account-filter-model.h
index 1e30a25..4952e3e 100644
--- a/account-filter-model.h
+++ b/account-filter-model.h
@@ -23,6 +23,9 @@
#include <QSortFilterProxyModel>
+class AccountsModelItem;
+class ContactModelItem;
+
/**
* rief Class used to sort and filter the contacts.
*
@@ -64,10 +67,15 @@ public slots:
void setSortByPresence(bool enabled);
protected:
- bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const;
+ bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const;
bool lessThan ( const QModelIndex &left, const QModelIndex &right ) const;
private:
+
+ bool filterAcceptsAccount(const QModelIndex &index) const;
+ bool filterAcceptsContact(const QModelIndex &index) const;
+ bool filterAcceptsGroup(const QModelIndex &index) const;
+
/// Shows offline users
bool m_showOfflineUsers;
--
ktp-contact-list packaging
More information about the pkg-kde-commits
mailing list