[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:31 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-common-internals.git;a=commitdiff;h=0536d72
The following commit has been merged in the master branch:
commit 0536d7216580111a87859b7c777b151d4b2c32d2
Author: David Edmundson <kde at davidedmundson.co.uk>
Date: Sun Mar 3 19:53:55 2013 +0000
Persistent Contact now takes an AccountManager argument (not in the ctor) for easier loading removing the need for GlobalContactManager
---
KTp/persistent-contact.cpp | 44 +++++++++++++++++++++++++++++++++++---------
KTp/persistent-contact.h | 21 ++++++++++++++++-----
2 files changed, 51 insertions(+), 14 deletions(-)
diff --git a/KTp/persistent-contact.cpp b/KTp/persistent-contact.cpp
index 763e9cf..3bc15a9 100644
--- a/KTp/persistent-contact.cpp
+++ b/KTp/persistent-contact.cpp
@@ -19,9 +19,12 @@
#include "persistent-contact.h"
#include <TelepathyQt/Account>
+#include <TelepathyQt/AccountManager>
#include <TelepathyQt/PendingContacts>
#include <TelepathyQt/ContactManager>
+#include <KDebug>
+
namespace KTp
{
class PersistentContact::Private
@@ -30,20 +33,26 @@ public:
QString contactId;
QString accountId;
KTp::ContactPtr contact;
+ Tp::AccountPtr account;
};
}
-KTp::PersistentContact::PersistentContact(const QString &accountId, const QString contactId, KTp::GlobalContactManager *globalContactManager)
- : QObject(globalContactManager)
+KTp::PersistentContactPtr KTp::PersistentContact::create(const QString &accountId, const QString contactId)
+{
+ return KTp::PersistentContactPtr(new KTp::PersistentContact(accountId, contactId));
+}
+
+KTp::PersistentContact::PersistentContact(const QString &accountId, const QString contactId)
+ : QObject(),
+ d(new PersistentContact::Private())
{
d->contactId = contactId;
d->accountId = accountId;
+}
- const Tp::AccountPtr account = globalContactManager->accountForAccountId(accountId);
- if (account) {
- connect(account.data(), SIGNAL(connectionChanged(Tp::ConnectionPtr)), SLOT(onAccountConnectionChanged()));
- onAccountConnectionChanged(account->connection());
- }
+KTp::PersistentContact::~PersistentContact()
+{
+ delete d;
}
QString KTp::PersistentContact::contactId() const
@@ -56,21 +65,38 @@ QString KTp::PersistentContact::accountId() const
return d->accountId;
}
+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
{
return d->contact;
}
+Tp::AccountPtr KTp::PersistentContact::account() const
+{
+ return d->account;
+}
void KTp::PersistentContact::onAccountConnectionChanged(const Tp::ConnectionPtr &connection)
{
if (connection) {
Tp::ContactManagerPtr manager = connection->contactManager();
- connect(manager->contactsForIdentifiers(QStringList() << d->contactId), SIGNAL(finished(Tp::PendingOperation*)), SLOT(onPendingContactsFinished(Tp::PendingContacts*)));
+ connect(manager->contactsForIdentifiers(QStringList() << d->contactId), SIGNAL(finished(Tp::PendingOperation*)), SLOT(onPendingContactsFinished(Tp::PendingOperation*)));
}
}
-void KTp::PersistentContact::onPendingContactsFinished(Tp::PendingContacts *op)
+void KTp::PersistentContact::onPendingContactsFinished(Tp::PendingOperation *op)
{
Tp::PendingContacts* pendingContactsOp = qobject_cast<Tp::PendingContacts*>(op);
Q_ASSERT(pendingContactsOp);
diff --git a/KTp/persistent-contact.h b/KTp/persistent-contact.h
index 8fbfc4a..40f454d 100644
--- a/KTp/persistent-contact.h
+++ b/KTp/persistent-contact.h
@@ -21,27 +21,34 @@
#include <QObject>
-#include "KTp/global-contact-manager.h"
#include "KTp/contact.h"
+#include "ktp-export.h"
+
namespace KTp {
/** Object monitors a specific account/contact identifier and will populate it with the most up-to-date contact as connections get destroyed/created
*
*/
-class PersistentContact : public QObject
+class KTP_EXPORT PersistentContact : public QObject, public Tp::RefCounted
{
Q_OBJECT
public:
- explicit PersistentContact(const QString &accountId, const QString contactId, KTp::GlobalContactManager *globalContactManager);
+ static Tp::SharedPtr<KTp::PersistentContact> create(const QString &accountId, const QString contactId);
+ virtual ~PersistentContact();
QString contactId() const;
QString accountId() const;
+ void setAccountManager(const Tp::AccountManagerPtr &accountManager);
+
/** The contact object for these ID
- @warning This may be null
+ @warning This may be null if no accountManager is set 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
+ */
Tp::AccountPtr account() const;
Q_SIGNALS:
@@ -50,12 +57,16 @@ Q_SIGNALS:
private Q_SLOTS:
void onAccountConnectionChanged(const Tp::ConnectionPtr &connection);
- void onPendingContactsFinished(Tp::PendingContacts*);
+ void onPendingContactsFinished(Tp::PendingOperation*);
private:
+ PersistentContact(const QString &accountId, const QString contactId);
+
class Private;
Private *d;
};
+typedef Tp::SharedPtr<KTp::PersistentContact> PersistentContactPtr;
+
}
#endif // PERSISTENTCONTACT_H
--
ktp-common-internals packaging
More information about the pkg-kde-commits
mailing list