[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