diff options
Diffstat (limited to 'examples/GuiClient')
| -rw-r--r-- | examples/GuiClient/mainDialog.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/examples/GuiClient/mainDialog.cpp b/examples/GuiClient/mainDialog.cpp index 9688cb10..d6300121 100644 --- a/examples/GuiClient/mainDialog.cpp +++ b/examples/GuiClient/mainDialog.cpp @@ -244,9 +244,18 @@ void mainDialog::presenceChanged(const QString& bareJid, const QString& resource m_capabilitiesCache.requestInfo(jid, nodeVer); } - if(m_vCardCache.getPhotoHash(bareJid) != pre.photoHash()) + switch(pre.vCardUpdateType()) { - m_vCardCache.requestVCard(bareJid); + case QXmppPresence::VCardUpdateNone: + case QXmppPresence::PhotoNotReady: + break; + case QXmppPresence::PhotoNotAdvertized: + case QXmppPresence::PhotoAdvertised: + if(m_vCardCache.getPhotoHash(bareJid) != pre.photoHash()) + { + m_vCardCache.requestVCard(bareJid); + } + break; } // QXmppPresence::Type presenceType = presences.begin().value().getType(); |
