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


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

The following commit has been merged in the master branch:
commit f670945a6243fc33897627e16385ea6586685e0d
Author: Martin Klapetek <mklapetek at kde.org>
Date:   Thu Nov 14 19:44:57 2013 +0100

    Port the KTp data source to the latest KPeople API changes
---
 KTp/im-persons-data-source.cpp | 162 +++++++++++++++++++++--------------------
 KTp/im-persons-data-source.h   |  26 +------
 2 files changed, 86 insertions(+), 102 deletions(-)

diff --git a/KTp/im-persons-data-source.cpp b/KTp/im-persons-data-source.cpp
index 25767e8..765adc5 100644
--- a/KTp/im-persons-data-source.cpp
+++ b/KTp/im-persons-data-source.cpp
@@ -40,133 +40,141 @@
 
 using namespace KPeople;
 
-class IMPersonsDataSource::Private {
-public:
-    KTp::GlobalContactManager *contactManager;
-    Tp::AccountManagerPtr accountManager;
-    QHash<QString, KTp::ContactPtr> contacts;
-    IMPersonsDataSource *q;
 
+class KTpAllContacts : public AllContactsMonitor
+{
+    Q_OBJECT
+public:
+    KTpAllContacts();
+    ~KTpAllContacts();
+    virtual KABC::Addressee::Map contacts();
+
+private Q_SLOTS:
+    void onAccountManagerReady(Tp::PendingOperation *op);
+    void onContactChanged();
+    void onContactInvalidated();
     void onAllKnownContactsChanged(const Tp::Contacts &contactsAdded, const Tp::Contacts &contactsRemoved);
+
+private:
+    KABC::Addressee contactToAddressee(const QString &contactId) const;
+
+    KTp::GlobalContactManager *m_contactManager;
+    Tp::AccountManagerPtr m_accountManager;
+    QHash<QString, KTp::ContactPtr> m_contacts;
 };
 
-void IMPersonsDataSource::Private::onAllKnownContactsChanged(const Tp::Contacts &contactsAdded, const Tp::Contacts &contactsRemoved)
+KTpAllContacts::KTpAllContacts()
 {
-    if (!contacts.isEmpty()) {
+    Tp::registerTypes();
+
+    m_accountManager = KTp::accountManager();
+    connect(m_accountManager->becomeReady(), SIGNAL(finished(Tp::PendingOperation*)),
+            this, SLOT(onAccountManagerReady(Tp::PendingOperation*)));
+}
+
+KTpAllContacts::~KTpAllContacts()
+{
+}
+
+void KTpAllContacts::onAccountManagerReady(Tp::PendingOperation *op)
+{
+    if (op->isError()) {
+        kWarning() << "Failed to initialize AccountManager:" << op->errorName();
+        kWarning() << op->errorMessage();
+
+        return;
+    }
+
+    kDebug() << "Account manager ready";
+
+    m_contactManager = new KTp::GlobalContactManager(m_accountManager, this);
+    connect(m_contactManager, SIGNAL(allKnownContactsChanged(Tp::Contacts,Tp::Contacts)),
+            this, SLOT(onAllKnownContactsChanged(Tp::Contacts,Tp::Contacts)));
+
+    onAllKnownContactsChanged(m_contactManager->allKnownContacts(), Tp::Contacts());
+}
+
+void KTpAllContacts::onAllKnownContactsChanged(const Tp::Contacts &contactsAdded, const Tp::Contacts &contactsRemoved)
+{
+    if (!m_contacts.isEmpty()) {
         Q_FOREACH (const Tp::ContactPtr &contact, contactsRemoved) {
-            contacts.remove(contact->id());
-            Q_EMIT q->contactRemoved(contact->id());
+            m_contacts.remove(contact->id());
+            Q_EMIT contactRemoved(contact->id());
         }
     }
 
     Q_FOREACH (const Tp::ContactPtr &contact, contactsAdded) {
         KTp::ContactPtr ktpContact = KTp::ContactPtr::qObjectCast(contact);
-        contacts.insert(contact->id(), ktpContact);
-        Q_EMIT q->contactAdded(contact->id());
+        m_contacts.insert(contact->id(), ktpContact);
+        QString contactId = contact->id();
+        Q_EMIT contactAdded(contactId, contactToAddressee(contactId));
 
         connect(ktpContact.data(), SIGNAL(presenceChanged(Tp::Presence)),
-                q, SLOT(onContactChanged()));
+                this, SLOT(onContactChanged()));
 
         connect(ktpContact.data(), SIGNAL(capabilitiesChanged(Tp::ContactCapabilities)),
-                q, SLOT(onContactChanged()));
+                this, SLOT(onContactChanged()));
 
         connect(ktpContact.data(), SIGNAL(invalidated()),
-                q, SLOT(onContactInvalidated()));
+                this, SLOT(onContactInvalidated()));
     }
 }
 
-//-----------------------------------------------------------------------------
-
-IMPersonsDataSource::IMPersonsDataSource(QObject *parent, const QVariantList &data)
-    : BasePersonsDataSource(parent)
-    , d(new Private)
+void KTpAllContacts::onContactChanged()
 {
-    Q_UNUSED(data);
-
-    d->q = this;
-    Tp::registerTypes();
+    QString id = qobject_cast<Tp::Contact*>(sender())->id();
 
-    d->accountManager = KTp::accountManager();
-    connect(d->accountManager->becomeReady(), SIGNAL(finished(Tp::PendingOperation*)),
-            this, SLOT(onAccountManagerReady(Tp::PendingOperation*)));
+    Q_EMIT contactChanged(id, contactToAddressee(id));
 }
 
-IMPersonsDataSource::~IMPersonsDataSource()
+void KTpAllContacts::onContactInvalidated()
 {
-    delete d;
+    QString id = qobject_cast<Tp::Contact*>(sender())->id();
+
+    m_contacts.remove(id);
+
+    Q_EMIT contactChanged(id, contactToAddressee(id));
 }
 
-const KABC::Addressee::Map IMPersonsDataSource::allContacts()
+KABC::Addressee::Map KTpAllContacts::contacts()
 {
-    KABC::Addressee::Map contacts;
-    Q_FOREACH(const QString &key, d->contacts.keys()) {
-        contacts.insert(key, contact(key));
+    KABC::Addressee::Map contactMap;
+    Q_FOREACH(const QString &key, m_contacts.keys()) {
+        contactMap.insert(key, contactToAddressee(key));
     }
-    return contacts;
+    kDebug() << contactMap.keys().size();
+    return contactMap;
 }
 
-const KABC::Addressee IMPersonsDataSource::contact(const QString &contactId)
+KABC::Addressee KTpAllContacts::contactToAddressee(const QString &contactId) const
 {
     KABC::Addressee vcard;
 
     qDebug() << "running ktp datasource" << contactId;
-    KTp::ContactPtr contact = d->contacts[contactId];
+    KTp::ContactPtr contact = m_contacts[contactId];
     if (contact) {
         vcard.setFormattedName(contact->alias());
         vcard.insertCustom(QLatin1String("telepathy"), QLatin1String("contactId"), contact->id());
-//         vcard.insertCustom("telepathy", "accountId", contact->id());
+        vcard.insertCustom(QLatin1String("telepathy"), QLatin1String("presence"), contact->presence().status());
+        //         vcard.insertCustom("telepathy", "accountId", contact->id());
         vcard.setPhoto(KABC::Picture(contact->avatarData().fileName));
     }
     return vcard;
 }
 
-void IMPersonsDataSource::onAccountManagerReady(Tp::PendingOperation *op)
-{
-    if (op->isError()) {
-        kWarning() << "Failed to initialize AccountManager:" << op->errorName();
-        kWarning() << op->errorMessage();
-
-        return;
-    }
-
-    kDebug() << "Account manager ready";
-
-    d->contactManager = new KTp::GlobalContactManager(d->accountManager, this);
-    connect(d->contactManager, SIGNAL(allKnownContactsChanged(Tp::Contacts,Tp::Contacts)),
-            this, SLOT(onAllKnownContactsChanged(Tp::Contacts,Tp::Contacts)));
-
-    d->onAllKnownContactsChanged(d->contactManager->allKnownContacts(), Tp::Contacts());
-}
-
-void IMPersonsDataSource::onContactChanged()
-{
-    QString id = qobject_cast<Tp::Contact*>(sender())->id();
-
-    Q_EMIT contactChanged(id);
-}
-
-void IMPersonsDataSource::onContactInvalidated()
-{
-    QString id = qobject_cast<Tp::Contact*>(sender())->id();
-
-    d->contacts.remove(id);
-
-    Q_EMIT contactChanged(id);
-}
-
-KTp::ContactPtr IMPersonsDataSource::contactForContactId(const QString &contactId) const
+IMPersonsDataSource::IMPersonsDataSource(QObject *parent, const QVariantList &args)
+    : BasePersonsDataSource(parent)
 {
-    return d->contacts.value(contactId);
+    Q_UNUSED(args);
 }
 
-Tp::AccountPtr IMPersonsDataSource::accountForContact(const KTp::ContactPtr &contact) const
+IMPersonsDataSource::~IMPersonsDataSource()
 {
-    return d->contactManager->accountForContact(contact);
 }
 
-Tp::AccountManagerPtr IMPersonsDataSource::accountManager() const
+AllContactsMonitor* IMPersonsDataSource::createAllContactsMonitor()
 {
-    return d->accountManager;
+    return new KTpAllContacts();
 }
 
 #include "im-persons-data-source.moc"
diff --git a/KTp/im-persons-data-source.h b/KTp/im-persons-data-source.h
index 6635613..11780de 100644
--- a/KTp/im-persons-data-source.h
+++ b/KTp/im-persons-data-source.h
@@ -24,39 +24,15 @@
 
 #include <TelepathyQt/Types>
 
-#include "KTp/contact.h"
 #include "KTp/ktp-export.h"
 
-#include <KABC/Addressee>
-
-namespace KTp { class GlobalContactManager; }
-namespace Tp { class PendingOperation; }
-
 class KTP_EXPORT IMPersonsDataSource : public KPeople::BasePersonsDataSource
 {
-    Q_OBJECT
 public:
     IMPersonsDataSource(QObject *parent, const QVariantList &data);
     virtual ~IMPersonsDataSource();
 
-    virtual const KABC::Addressee contact(const QString &contactId);
-    virtual const KABC::Addressee::Map allContacts();
-
-    KTp::ContactPtr contactForContactId(const QString &contactId) const;
-    Tp::AccountPtr accountForContact(const KTp::ContactPtr &contact) const;
-
-    Tp::AccountManagerPtr accountManager() const;
-
-private Q_SLOTS:
-    void onAccountManagerReady(Tp::PendingOperation *op);
-    void onContactChanged();
-    void onContactInvalidated();
-
-private:
-    Q_PRIVATE_SLOT(d, void onAllKnownContactsChanged(const Tp::Contacts &contactsAdded, const Tp::Contacts &contactsRemoved) )
-
-    class Private;
-    Private* d;
+    virtual AllContactsMonitor* createAllContactsMonitor();
 };
 
 #endif // IM_PERSONS_DATA_SOURCE_H

-- 
ktp-common-internals packaging



More information about the pkg-kde-commits mailing list