[Telepathy-commits] [telepathy-qt4/master] ContactManager: Use the proper contacts for subscribe and publish lists.

Andre Moreira Magalhaes (andrunko) andre.magalhaes at collabora.co.uk
Wed Feb 25 07:17:57 PST 2009


---
 TelepathyQt4/Client/contact-manager.cpp |   30 +++++++++++++++---------------
 1 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/TelepathyQt4/Client/contact-manager.cpp b/TelepathyQt4/Client/contact-manager.cpp
index 63169b4..3f48d85 100644
--- a/TelepathyQt4/Client/contact-manager.cpp
+++ b/TelepathyQt4/Client/contact-manager.cpp
@@ -199,7 +199,7 @@ bool ContactManager::canDenyContactsPresencePublication() const
     if (mPriv->contactListsChannels.contains(ContactListChannel::TypePublish)) {
         publishChannel = mPriv->contactListsChannels[ContactListChannel::TypePublish].channel;
     }
-    return publishChannel && publishChannel->groupCanRescindContacts();
+    return publishChannel && publishChannel->groupCanRemoveContacts();
 }
 
 PendingOperation *ContactManager::denyContactsPresencePublication(
@@ -352,15 +352,15 @@ void ContactManager::onSubscribeChannelMembersChanged(
         const QSet<QSharedPointer<Contact> > &groupMembersRemoved,
         const Channel::GroupMemberChangeDetails &details)
 {
-    Q_UNUSED(groupRemotePendingMembersAdded);
+    Q_UNUSED(groupLocalPendingMembersAdded);
     Q_UNUSED(details);
 
     foreach (QSharedPointer<Contact> contact, groupMembersAdded) {
         contact->setSubscriptionState(Contact::PresenceStateYes);
     }
 
-    foreach (QSharedPointer<Contact> contact, groupLocalPendingMembersAdded) {
-        contact->setSubscriptionState(Contact::PresenceStateYes);
+    foreach (QSharedPointer<Contact> contact, groupRemotePendingMembersAdded) {
+        contact->setSubscriptionState(Contact::PresenceStateAsk);
     }
 
     foreach (QSharedPointer<Contact> contact, groupMembersRemoved) {
@@ -375,23 +375,23 @@ void ContactManager::onPublishChannelMembersChanged(
         const QSet<QSharedPointer<Contact> > &groupMembersRemoved,
         const Channel::GroupMemberChangeDetails &details)
 {
-    Q_UNUSED(groupLocalPendingMembersAdded);
+    Q_UNUSED(groupRemotePendingMembersAdded);
     Q_UNUSED(details);
 
     foreach (QSharedPointer<Contact> contact, groupMembersAdded) {
         contact->setPublishState(Contact::PresenceStateYes);
     }
 
-    foreach (QSharedPointer<Contact> contact, groupRemotePendingMembersAdded) {
-        contact->setPublishState(Contact::PresenceStateYes);
+    foreach (QSharedPointer<Contact> contact, groupLocalPendingMembersAdded) {
+        contact->setPublishState(Contact::PresenceStateAsk);
     }
 
     foreach (QSharedPointer<Contact> contact, groupMembersRemoved) {
         contact->setPublishState(Contact::PresenceStateNo);
     }
 
-    if (!groupRemotePendingMembersAdded.isEmpty()) {
-        emit presencePublicationRequested(groupRemotePendingMembersAdded);
+    if (!groupLocalPendingMembersAdded.isEmpty()) {
+        emit presencePublicationRequested(groupLocalPendingMembersAdded);
     }
 }
 
@@ -545,23 +545,23 @@ void ContactManager::Private::updateContactsPresenceState()
 {
     QSharedPointer<Channel> subscribeChannel;
     QSet<QSharedPointer<Contact> > subscribeContacts;
-    QSet<QSharedPointer<Contact> > subscribeContactsLP;
+    QSet<QSharedPointer<Contact> > subscribeContactsRP;
     if (contactListsChannels.contains(ContactListChannel::TypeSubscribe)) {
         subscribeChannel = contactListsChannels[ContactListChannel::TypeSubscribe].channel;
         if (subscribeChannel) {
             subscribeContacts = subscribeChannel->groupContacts();
-            subscribeContactsLP = subscribeChannel->groupLocalPendingContacts();
+            subscribeContactsRP = subscribeChannel->groupRemotePendingContacts();
         }
     }
 
     QSharedPointer<Channel> publishChannel;
     QSet<QSharedPointer<Contact> > publishContacts;
-    QSet<QSharedPointer<Contact> > publishContactsRP;
+    QSet<QSharedPointer<Contact> > publishContactsLP;
     if (contactListsChannels.contains(ContactListChannel::TypePublish)) {
         publishChannel = contactListsChannels[ContactListChannel::TypePublish].channel;
         if (publishChannel) {
             publishContacts = publishChannel->groupContacts();
-            publishContactsRP = publishChannel->groupLocalPendingContacts();
+            publishContactsLP = publishChannel->groupLocalPendingContacts();
         }
     }
 
@@ -575,7 +575,7 @@ void ContactManager::Private::updateContactsPresenceState()
             // not in "subscribe" -> No, in "subscribe" lp -> Ask, in "subscribe" current -> Yes
             if (subscribeContacts.contains(contact)) {
                 contact->setSubscriptionState(Contact::PresenceStateYes);
-            } else if (subscribeContactsLP.contains(contact)) {
+            } else if (subscribeContactsRP.contains(contact)) {
                 contact->setSubscriptionState(Contact::PresenceStateAsk);
             } else {
                 contact->setSubscriptionState(Contact::PresenceStateNo);
@@ -586,7 +586,7 @@ void ContactManager::Private::updateContactsPresenceState()
             // not in "publish" -> No, in "subscribe" rp -> Ask, in "publish" current -> Yes
             if (publishContacts.contains(contact)) {
                 contact->setPublishState(Contact::PresenceStateYes);
-            } else if (publishContactsRP.contains(contact)) {
+            } else if (publishContactsLP.contains(contact)) {
                 contact->setPublishState(Contact::PresenceStateAsk);
             } else {
                 contact->setPublishState(Contact::PresenceStateNo);
-- 
1.5.6.5




More information about the telepathy-commits mailing list