[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:05:58 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-common-internals.git;a=commitdiff;h=5b87d82
The following commit has been merged in the master branch:
commit 5b87d82594fb18af444a7cefb338ef04fb64d323
Author: David Edmundson <kde at davidedmundson.co.uk>
Date: Fri Dec 28 20:50:09 2012 +0000
Add TreeProxyModel based on our AbstractGroupingModel
---
KTp/Models/accounts-tree-proxy-model.cpp | 63 ++++++++++++++++++++++++++++++++
KTp/Models/accounts-tree-proxy-model.h | 22 +++++++++++
2 files changed, 85 insertions(+)
diff --git a/KTp/Models/accounts-tree-proxy-model.cpp b/KTp/Models/accounts-tree-proxy-model.cpp
new file mode 100644
index 0000000..638d17b
--- /dev/null
+++ b/KTp/Models/accounts-tree-proxy-model.cpp
@@ -0,0 +1,63 @@
+#include "accounts-tree-proxy-model.h"
+
+#include "contacts-model.h"
+
+#include <TelepathyQt/Account>
+
+#include <KIcon>
+
+AccountsTreeProxyModel::AccountsTreeProxyModel(QAbstractItemModel *sourceModel, const Tp::AccountManagerPtr &accountManager) :
+ AbstractGroupingProxyModel(sourceModel),
+ m_accountManager(accountManager)
+{
+
+}
+
+QSet<QString> AccountsTreeProxyModel::groupsForIndex(const QModelIndex &sourceIndex) const
+{
+ const Tp::AccountPtr account = sourceIndex.data(ContactsModel::AccountRole).value<Tp::AccountPtr>();
+ if (account) {
+ qDebug() << "account";
+ return QSet<QString>() << account->objectPath();
+ } else {
+ qDebug() << "no account";
+ return QSet<QString>() << QLatin1String("Unknown");
+ }
+}
+
+
+QVariant AccountsTreeProxyModel::dataForGroup(const QString &group, int role) const
+{
+ Tp::AccountPtr account;
+ switch(role) {
+ case Qt::DisplayRole:
+ account = m_accountManager->accountForObjectPath(group);
+ if (account) {
+ return account->normalizedName();
+ }
+ break;
+ case ContactsModel::IconRole:
+ account = m_accountManager->accountForObjectPath(group);
+ if (account) {
+ return account->iconName();
+ }
+ break;
+ case ContactsModel::AccountRole:
+ return QVariant::fromValue(m_accountManager->accountForObjectPath(group));
+ case ContactsModel::TypeRole:
+ return ContactsModel::AccountRowType;
+ case ContactsModel::EnabledRole:
+ account = m_accountManager->accountForObjectPath(group);
+ if (account) {
+ return account->isEnabled();
+ }
+ return true;
+ case ContactsModel::ConnectionStatusRole:
+ account = m_accountManager->accountForObjectPath(group);
+ if (account) {
+ return account->connectionStatus();
+ }
+ return Tp::ConnectionStatusConnected;
+ }
+ return QVariant();
+}
diff --git a/KTp/Models/accounts-tree-proxy-model.h b/KTp/Models/accounts-tree-proxy-model.h
new file mode 100644
index 0000000..1b8d1fe
--- /dev/null
+++ b/KTp/Models/accounts-tree-proxy-model.h
@@ -0,0 +1,22 @@
+#ifndef ACCOUNTSTREEPROXYMODEL_H
+#define ACCOUNTSTREEPROXYMODEL_H
+
+#include "abstract-grouping-proxy-model.h"
+
+#include <TelepathyQt/AccountManager>
+
+#include <KTp/ktp-export.h>
+
+class KTP_EXPORT AccountsTreeProxyModel : public AbstractGroupingProxyModel
+{
+ Q_OBJECT
+public:
+ AccountsTreeProxyModel(QAbstractItemModel *sourceModel, const Tp::AccountManagerPtr &accountManager);
+
+ virtual QSet<QString> groupsForIndex(const QModelIndex &sourceIndex) const;
+ virtual QVariant dataForGroup(const QString &group, int role) const;
+private:
+ Tp::AccountManagerPtr m_accountManager;
+};
+
+#endif // ACCOUNTSTREEPROXYMODEL_H
--
ktp-common-internals packaging
More information about the pkg-kde-commits
mailing list