[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:08:22 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-common-internals.git;a=commitdiff;h=f223bde
The following commit has been merged in the master branch:
commit f223bde62eb72ea829f768fa3b999a5f5e2ad522
Author: Marcin Ziemiński <zieminn at gmail.com>
Date: Wed Aug 6 21:24:13 2014 +0200
Wait for account to become ready.
Signed-off-by: Marcin Ziemiński <zieminn at gmail.com>
---
otr-proxy/KTpProxy/proxy-observer.cpp | 49 +++++++++++++++++++++++++---
otr-proxy/KTpProxy/proxy-service-adaptee.cpp | 4 +--
otr-proxy/KTpProxy/proxy-service.cpp | 9 +++--
3 files changed, 53 insertions(+), 9 deletions(-)
diff --git a/otr-proxy/KTpProxy/proxy-observer.cpp b/otr-proxy/KTpProxy/proxy-observer.cpp
index 1df7372..92dec25 100644
--- a/otr-proxy/KTpProxy/proxy-observer.cpp
+++ b/otr-proxy/KTpProxy/proxy-observer.cpp
@@ -19,12 +19,50 @@
#include "proxy-observer.h"
#include "proxy-service.h"
+#include "pending-curry-operation.h"
#include <TelepathyQt/ChannelClassSpecList>
#include <TelepathyQt/Channel>
+#include <TelepathyQt/PendingReady>
#include <KDebug>
+// class to wait for all account fields to be ready
+// (displayName is not properly initializted sometimes)
+// and magic things happen
+class PendingAccountReady : public PendingCurryOperation
+{
+ public:
+ PendingAccountReady(
+ Tp::PendingOperation *op,
+ const Tp::AccountPtr &account,
+ const QList<Tp::ChannelPtr> &channels,
+ const Tp::MethodInvocationContextPtr<> &context,
+ ProxyService *ps)
+ : PendingCurryOperation(op, Tp::SharedPtr<Tp::RefCounted>::dynamicCast(account)),
+ account(account),
+ channels(channels),
+ context(context),
+ ps(ps)
+ {
+ }
+
+ virtual void extract(Tp::PendingOperation *op)
+ {
+ Q_UNUSED(op);
+
+ Q_FOREACH(const Tp::ChannelPtr &chan, channels) {
+ ps->addChannel(chan, account);
+ }
+ context->setFinished();
+ }
+
+ private:
+ Tp::AccountPtr account;
+ QList<Tp::ChannelPtr> channels;
+ Tp::MethodInvocationContextPtr<> context;
+ ProxyService *ps;
+};
ProxyObserver::ProxyObserver(ProxyService *ps)
: Tp::AbstractClientObserver(Tp::ChannelClassSpecList() << Tp::ChannelClassSpec::textChat()),
@@ -49,10 +87,11 @@ void ProxyObserver::observeChannels(
Q_UNUSED(dispatchOperation);
Q_UNUSED(requestsSatisfied);
Q_UNUSED(observerInfo);
-
kDebug() << "Observed a channel";
- Q_FOREACH(const Tp::ChannelPtr &chan, channels) {
- ps->addChannel(chan, account);
- }
- context->setFinished();
+
+ PendingAccountReady *ready = new PendingAccountReady(
+ account->becomeReady(Tp::Features() << Tp::Account::FeatureCore),
+ account, channels, context, ps);
+
+ QObject::connect(ready, SIGNAL(finished(Tp::PendingOperation*)), ready, SLOT(deleteLater()));
}
diff --git a/otr-proxy/KTpProxy/proxy-service-adaptee.cpp b/otr-proxy/KTpProxy/proxy-service-adaptee.cpp
index eb503fb..1fc505a 100644
--- a/otr-proxy/KTpProxy/proxy-service-adaptee.cpp
+++ b/otr-proxy/KTpProxy/proxy-service-adaptee.cpp
@@ -93,7 +93,7 @@ void ProxyServiceAdaptee::generatePrivateKey(const QDBusObjectPath &accountPath,
{
Tp::AccountPtr ac = ps->accountManager()->accountForObjectPath(accountPath.path());
if(ac && ac->isValidAccount() &&
- ps->createNewPrivateKey(OTR::utils::accountIdFor(accountPath), ac->normalizedName())) {
+ ps->createNewPrivateKey(OTR::utils::accountIdFor(accountPath), ac->displayName())) {
context->setFinished();
} else {
// TODO better errors
@@ -107,7 +107,7 @@ void ProxyServiceAdaptee::getFingerprintForAccount(QDBusObjectPath accountPath,
{
Tp::AccountPtr ac = ps->accountManager()->accountForObjectPath(accountPath.path());
if(ac && ac->isValidAccount()) {
- context->setFinished(ps->getFingerprintFor(OTR::utils::accountIdFor(accountPath), ac->normalizedName()));
+ context->setFinished(ps->getFingerprintFor(OTR::utils::accountIdFor(accountPath), ac->displayName()));
} else {
context->setFinishedWithError(TP_QT_ERROR_INVALID_ARGUMENT, QLatin1String("No such valid account"));
}
diff --git a/otr-proxy/KTpProxy/proxy-service.cpp b/otr-proxy/KTpProxy/proxy-service.cpp
index c0bb282..cda0bdf 100644
--- a/otr-proxy/KTpProxy/proxy-service.cpp
+++ b/otr-proxy/KTpProxy/proxy-service.cpp
@@ -153,7 +153,7 @@ void ProxyService::onChannelReady(Tp::PendingOperation *pendingChanReady)
OTR::SessionContext ctx =
{
OTR::utils::accountIdFor(QDBusObjectPath(pendingReady->account->objectPath())),
- pendingReady->account->normalizedName(),
+ pendingReady->account->displayName(),
textChannel->targetId(),
textChannel->connection()->protocolName()
};
@@ -180,7 +180,12 @@ void ProxyService::onChannelReady(Tp::PendingOperation *pendingChanReady)
&adaptee, SLOT(onProxyDisconnected(const QDBusObjectPath&)));
kDebug() << "Installed proxy: " << proxyChannel->objectPath() << "
"
- << " for the channel: " << textChannel->objectPath();
+ << " for the channel: " << textChannel->objectPath() << "
"
+ << "Context: " << "
"
+ << " id: " << ctx.accountId << "
"
+ << " name: " << ctx.accountName << "
"
+ << " protocol: " << ctx.protocol << "
"
+ << " recipient: " << ctx.recipientName;
}
bool ProxyService::createNewPrivateKey(const QString &accountId, const QString &accountName)
--
ktp-common-internals packaging
More information about the pkg-kde-commits
mailing list