[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:07:31 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-contact-list.git;a=commitdiff;h=59c19e4
The following commit has been merged in the master branch:
commit 59c19e47733a2cf5863c9f5852dfd413017e03c8
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-contact-list packaging
More information about the pkg-kde-commits
mailing list