[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:07 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-common-internals.git;a=commitdiff;h=73f27b0
The following commit has been merged in the master branch:
commit 73f27b0f301ad17a16770aef016ab8c86e31e64b
Author: David Edmundson <kde at davidedmundson.co.uk>
Date: Tue Sep 10 01:00:47 2013 +0000
Fix empty combo box in "add contact" dialog
In Kpeople mode we never request FeatureRoster to reduce DBus traffic
fetching a roster list that we get from Nepomuk anyway.
The add contact dialog needs this in order to tell if a roster is editable.
This patch upgrades all connections.
REVIEW: 112631
BUG: 324698
---
KTp/Widgets/add-contact-dialog.cpp | 29 +++++++++++++++++++++++++++++
KTp/Widgets/add-contact-dialog.h | 1 +
2 files changed, 30 insertions(+)
diff --git a/KTp/Widgets/add-contact-dialog.cpp b/KTp/Widgets/add-contact-dialog.cpp
index fb34eb5..045c0e3 100644
--- a/KTp/Widgets/add-contact-dialog.cpp
+++ b/KTp/Widgets/add-contact-dialog.cpp
@@ -22,6 +22,8 @@
#include "add-contact-dialog.h"
#include "ui_add-contact-dialog.h"
+#include <KTp/types.h>
+
#include <QObject>
#include <QCloseEvent>
@@ -36,6 +38,7 @@
#include <TelepathyQt/PendingContacts>
#include <TelepathyQt/Filter>
#include <TelepathyQt/AccountSet>
+#include <TelepathyQt/PendingReady>
namespace KTp {
@@ -90,11 +93,27 @@ AddContactDialog::AddContactDialog(const Tp::AccountManagerPtr &accountManager,
d->ui->setupUi(widget);
setMainWidget(widget);
+
Tp::AccountFilterPtr filter = Tp::AccountFilterPtr(new KTp::SubscribableAccountFilter());
Tp::AccountSetPtr accountSet = accountManager->filterAccounts(filter);
d->ui->accountCombo->setAccountSet(accountSet);
+ //bodge.
+ //Wtih KPeople support we don't enable FeatureRoster
+ //We need FeatureRoster in order to determine canRequestPresenceSubscription();
+ //so we upgrade any accounts here
+
+ //See https://bugs.kde.org/show_bug.cgi?id=324698
+ Q_FOREACH(const Tp::AccountPtr &account, accountManager->allAccounts()) {
+ if (account->connection()) {
+ Tp::PendingOperation *op = account->connection()->becomeReady(Tp::Connection::FeatureRoster);
+ op->setProperty("account", QVariant::fromValue<Tp::AccountPtr>(account));
+ connect(op, SIGNAL(finished(Tp::PendingOperation*)), SLOT(_k_onAccountUpgraded(Tp::PendingOperation*)));
+ }
+ }
+ //end bodge
+
d->ui->screenNameLineEdit->setFocus();
}
@@ -104,6 +123,16 @@ AddContactDialog::~AddContactDialog()
delete d;
}
+//bodge
+void AddContactDialog::_k_onAccountUpgraded(Tp::PendingOperation* op)
+{
+ const Tp::AccountPtr &account = op->property("account").value<Tp::AccountPtr>();
+ //pretend the account changed.
+ //emit that the account properties have changed to invalidate the filter
+ QMetaObject::invokeMethod(account.data(), "propertyChanged", Q_ARG(QString, QString()));
+}
+//end bodge
+
void AddContactDialog::accept()
{
Tp::AccountPtr account = d->ui->accountCombo->currentAccount();
diff --git a/KTp/Widgets/add-contact-dialog.h b/KTp/Widgets/add-contact-dialog.h
index c12834a..2004a27 100644
--- a/KTp/Widgets/add-contact-dialog.h
+++ b/KTp/Widgets/add-contact-dialog.h
@@ -50,6 +50,7 @@ protected:
private Q_SLOTS:
KTP_NO_EXPORT void _k_onContactsForIdentifiersFinished(Tp::PendingOperation *op);
KTP_NO_EXPORT void _k_onRequestPresenceSubscriptionFinished(Tp::PendingOperation *op);
+ KTP_NO_EXPORT void _k_onAccountUpgraded(Tp::PendingOperation *op);
private:
KTP_NO_EXPORT void setInProgress(bool inProgress);
--
ktp-common-internals packaging
More information about the pkg-kde-commits
mailing list