[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:56 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-common-internals.git;a=commitdiff;h=b91b14a
The following commit has been merged in the master branch:
commit b91b14a36c63e154b4d3038d78bd0691bd9855b7
Author: David Edmundson <kde at davidedmundson.co.uk>
Date: Sun Dec 22 18:42:03 2013 +0100
Create an account directly in PersistentContact
This saves having to create an AccountManager to load contact info.
This saves having to load every account from DBus in order to get one
contact's info.
REVIEW: 114621
---
KTp/persistent-contact.cpp | 33 ++++++++++++++++++++++++---------
KTp/persistent-contact.h | 11 ++++++++---
2 files changed, 32 insertions(+), 12 deletions(-)
diff --git a/KTp/persistent-contact.cpp b/KTp/persistent-contact.cpp
index 919fad1..c7885d3 100644
--- a/KTp/persistent-contact.cpp
+++ b/KTp/persistent-contact.cpp
@@ -21,8 +21,12 @@
#include <TelepathyQt/Account>
#include <TelepathyQt/AccountManager>
#include <TelepathyQt/PendingContacts>
+#include <TelepathyQt/PendingReady>
#include <TelepathyQt/ContactManager>
+
+#include <KTp/core.h>
+
#include <KDebug>
namespace KTp
@@ -48,6 +52,12 @@ KTp::PersistentContact::PersistentContact(const QString &accountId, const QStrin
{
d->contactId = contactId;
d->accountId = accountId;
+
+ //FIXME there must be a const for this?
+ QString objectPath = TP_QT_ACCOUNT_OBJECT_PATH_BASE + QLatin1Char('/') + accountId;
+
+ Tp::PendingReady *op = KTp::accountFactory()->proxy(TP_QT_ACCOUNT_MANAGER_BUS_NAME, objectPath, KTp::connectionFactory(), KTp::channelFactory(), KTp::contactFactory());
+ connect(op, SIGNAL(finished(Tp::PendingOperation*)), SLOT(onCreateAccountFinished(Tp::PendingOperation*)));
}
KTp::PersistentContact::~PersistentContact()
@@ -67,15 +77,6 @@ QString KTp::PersistentContact::accountId() const
void KTp::PersistentContact::setAccountManager(const Tp::AccountManagerPtr &accountManager)
{
- Q_FOREACH(const Tp::AccountPtr &account, accountManager->allAccounts()) {
- if (account->uniqueIdentifier() == d->accountId) {
- d->account = account;
- connect(account.data(), SIGNAL(connectionChanged(Tp::ConnectionPtr)), SLOT(onAccountConnectionChanged(Tp::ConnectionPtr)));
- onAccountConnectionChanged(account->connection());
- return;
- }
- }
- kWarning() << "Could not find account " << d->accountId;
}
KTp::ContactPtr KTp::PersistentContact::contact() const
@@ -88,6 +89,20 @@ Tp::AccountPtr KTp::PersistentContact::account() const
return d->account;
}
+void KTp::PersistentContact::onAccountReady(Tp::PendingOperation *op)
+{
+ if (op->isError()) {
+ kWarning() << "could not load account " << d->accountId;
+ }
+ Tp::PendingReady *pendingReady = qobject_cast<Tp::PendingReady*>(op);
+ Q_ASSERT(pendingReady);
+ Tp::AccountPtr account = Tp::AccountPtr::qObjectCast(pendingReady->proxy());
+ d->account = account;
+ connect(account.data(), SIGNAL(connectionChanged(Tp::ConnectionPtr)), SLOT(onAccountConnectionChanged(Tp::ConnectionPtr)));
+ onAccountConnectionChanged(account->connection());
+}
+
+
void KTp::PersistentContact::onAccountConnectionChanged(const Tp::ConnectionPtr &connection)
{
if (connection) {
diff --git a/KTp/persistent-contact.h b/KTp/persistent-contact.h
index f5367a3..aedfbd8 100644
--- a/KTp/persistent-contact.h
+++ b/KTp/persistent-contact.h
@@ -40,14 +40,18 @@ public:
QString contactId() const;
QString accountId() const;
- void setAccountManager(const Tp::AccountManagerPtr &accountManager);
+ /**
+ * This does nothing. Do not use
+ */
+ void KDE_DEPRECATED setAccountManager(const Tp::AccountManagerPtr &accountManager);
/** The contact object for these ID
- @warning This may be null if no accountManager is set or if you are offline
+ @warning This may be null whilst loading or if you are offline
*/
KTp::ContactPtr contact() const;
+
/**
- * @warning This may be null if no accountManager is set or the account has been deleted
+ * @warning This may be null whilst loading or if the account has been deleted
*/
Tp::AccountPtr account() const;
@@ -56,6 +60,7 @@ Q_SIGNALS:
void contactChanged(KTp::ContactPtr);
private Q_SLOTS:
+ void onAccountReady(Tp::PendingOperation *op);
void onAccountConnectionChanged(const Tp::ConnectionPtr &connection);
void onPendingContactsFinished(Tp::PendingOperation*);
void onContactInvalid();
--
ktp-common-internals packaging
More information about the pkg-kde-commits
mailing list