diff options
Diffstat (limited to 'source')
| -rw-r--r-- | source/QXmppRoster.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/source/QXmppRoster.cpp b/source/QXmppRoster.cpp index 98e9ec85..84b98ed5 100644 --- a/source/QXmppRoster.cpp +++ b/source/QXmppRoster.cpp @@ -44,7 +44,12 @@ void QXmppRoster::presenceReceived(const QXmppPresence& presence) QString bareJid = jidToBareJid(jid); QString resource = jidToResource(jid); - m_presences[bareJid][resource] = presence; + if (presence.getType() == QXmppPresence::Available) + m_presences[bareJid][resource] = presence; + else if (presence.getType() == QXmppPresence::Unavailable) + m_presences[bareJid].remove(resource); + else + return; emit presenceChanged(bareJid, resource); } |
