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


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

The following commit has been merged in the master branch:
commit 688d70d98275fb933ad878618fa4fbdef63d1ada
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