[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:04:33 UTC 2016


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

The following commit has been merged in the master branch:
commit 6980e2d1a83cd2a32dfbd9f247ee7ec23bc04b91
Author: Martin Klapetek <martin.klapetek at gmail.com>
Date:   Tue Sep 13 12:17:07 2011 +0200

    Custom presence sort order
    
    BUG: 280749
---
 models/accounts-filter-model.cpp | 63 +++++++++++++++++++++++-----------------
 models/accounts-filter-model.h   |  5 +++-
 2 files changed, 40 insertions(+), 28 deletions(-)

diff --git a/models/accounts-filter-model.cpp b/models/accounts-filter-model.cpp
index 24580d4..8c31686 100644
--- a/models/accounts-filter-model.cpp
+++ b/models/accounts-filter-model.cpp
@@ -35,7 +35,16 @@ AccountsFilterModel::AccountsFilterModel(QObject *parent)
       m_showOfflineUsers(false),
       m_filterByName(false)
 {
-
+    m_presenceSorting[Tp::ConnectionPresenceTypeAvailable] = 0;
+    m_presenceSorting[Tp::ConnectionPresenceTypeBusy] = 1;
+    m_presenceSorting[Tp::ConnectionPresenceTypeHidden] = 2;
+    m_presenceSorting[Tp::ConnectionPresenceTypeAway] = 3;
+    m_presenceSorting[Tp::ConnectionPresenceTypeExtendedAway] = 4;
+    //don't distinguish between the following three presences
+    m_presenceSorting[Tp::ConnectionPresenceTypeError] = 5;
+    m_presenceSorting[Tp::ConnectionPresenceTypeUnknown] = 5;
+    m_presenceSorting[Tp::ConnectionPresenceTypeUnset] = 5;
+    m_presenceSorting[Tp::ConnectionPresenceTypeOffline] = 6;
 }
 
 void AccountsFilterModel::showOfflineUsers(bool showOfflineUsers)
@@ -130,34 +139,34 @@ void AccountsFilterModel::clearFilterString()
 
 bool AccountsFilterModel::lessThan( const QModelIndex &left, const QModelIndex &right ) const
 {
-        uint leftPresence;
-        uint rightPresence;
-
-        QString leftDisplayedName = sourceModel()->data(left).toString();
-        QString rightDisplayedName = sourceModel()->data(right).toString();
-
-        if (sortRole() == AccountsModel::PresenceTypeRole) {
-            leftPresence = sourceModel()->data(left, AccountsModel::PresenceTypeRole).toUInt();
-            rightPresence = sourceModel()->data(right, AccountsModel::PresenceTypeRole).toUInt();
-
-            if (leftPresence == rightPresence) {
-                return QString::localeAwareCompare(leftDisplayedName, rightDisplayedName) < 0;
-            } else {
-                if (leftPresence == Tp::ConnectionPresenceTypeAvailable) {
-                    return true;
-                }
-                if (leftPresence == Tp::ConnectionPresenceTypeUnset ||
-                        leftPresence == Tp::ConnectionPresenceTypeOffline ||
-                        leftPresence == Tp::ConnectionPresenceTypeUnknown ||
-                        leftPresence == Tp::ConnectionPresenceTypeError) {
-                    return false;
-                }
-
-                return leftPresence < rightPresence;
-            }
-        } else {
+    uint leftPresence;
+    uint rightPresence;
+
+    QString leftDisplayedName = sourceModel()->data(left).toString();
+    QString rightDisplayedName = sourceModel()->data(right).toString();
+
+    if (sortRole() == AccountsModel::PresenceTypeRole) {
+        leftPresence = sourceModel()->data(left, AccountsModel::PresenceTypeRole).toUInt();
+        rightPresence = sourceModel()->data(right, AccountsModel::PresenceTypeRole).toUInt();
+
+        if (leftPresence == rightPresence) {
             return QString::localeAwareCompare(leftDisplayedName, rightDisplayedName) < 0;
+        } else {
+            if (leftPresence == Tp::ConnectionPresenceTypeAvailable) {
+                return true;
+            }
+            if (leftPresence == Tp::ConnectionPresenceTypeUnset ||
+                    leftPresence == Tp::ConnectionPresenceTypeOffline ||
+                    leftPresence == Tp::ConnectionPresenceTypeUnknown ||
+                    leftPresence == Tp::ConnectionPresenceTypeError) {
+                return false;
+            }
+
+            return m_presenceSorting[leftPresence] < m_presenceSorting[rightPresence];
         }
+    } else {
+        return QString::localeAwareCompare(leftDisplayedName, rightDisplayedName) < 0;
+    }
 }
 
 void AccountsFilterModel::setSortByPresence(bool enabled)
diff --git a/models/accounts-filter-model.h b/models/accounts-filter-model.h
index 4340ad4..ffe936d 100644
--- a/models/accounts-filter-model.h
+++ b/models/accounts-filter-model.h
@@ -42,7 +42,7 @@ class AccountsFilterModel : public QSortFilterProxyModel
 
 public:
     AccountsFilterModel(QObject *parent = 0);
-    
+
     bool showOfflineUsers() const;
 
     /**
@@ -81,6 +81,9 @@ private:
 
     /// Holds the string which is searched in the model
     QString m_filterString;
+
+    /// Sets the sorting order of presences
+    QHash<uint, int> m_presenceSorting;
 };
 
 #endif // ACCOUNTFILTERMODEL_H

-- 
ktp-common-internals packaging



More information about the pkg-kde-commits mailing list