[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