From 85c7230172a9176080a8342bcf6fcf7896bdb45e Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Tue, 29 Jun 2010 07:43:55 +0000 Subject: move subscription auto-accept to QXmppRoster --- source/QXmppRoster.cpp | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) (limited to 'source/QXmppRoster.cpp') diff --git a/source/QXmppRoster.cpp b/source/QXmppRoster.cpp index 8b2a821d..16b1bf89 100644 --- a/source/QXmppRoster.cpp +++ b/source/QXmppRoster.cpp @@ -80,14 +80,26 @@ void QXmppRoster::presenceReceived(const QXmppPresence& presence) QString bareJid = jidToBareJid(jid); QString resource = jidToResource(jid); - if (presence.type() == QXmppPresence::Available) - m_presences[bareJid][resource] = presence; - else if (presence.type() == QXmppPresence::Unavailable) - m_presences[bareJid].remove(resource); - else + if (bareJid.isEmpty()) return; - emit presenceChanged(bareJid, resource); + switch(presence.type()) + { + case QXmppPresence::Available: + m_presences[bareJid][resource] = presence; + emit presenceChanged(bareJid, resource); + break; + case QXmppPresence::Unavailable: + m_presences[bareJid].remove(resource); + emit presenceChanged(bareJid, resource); + break; + case QXmppPresence::Subscribe: + if (m_stream->configuration().autoAcceptSubscriptions()) + m_stream->acceptSubscriptionRequest(jid); + break; + default: + break; + } } void QXmppRoster::rosterIqReceived(const QXmppRosterIq& rosterIq) -- cgit v1.2.3