[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