aboutsummaryrefslogtreecommitdiff
path: root/examples/GuiClient
diff options
context:
space:
mode:
Diffstat (limited to 'examples/GuiClient')
-rw-r--r--examples/GuiClient/mainDialog.cpp34
1 files changed, 13 insertions, 21 deletions
diff --git a/examples/GuiClient/mainDialog.cpp b/examples/GuiClient/mainDialog.cpp
index e4ea6fe1..fba4f250 100644
--- a/examples/GuiClient/mainDialog.cpp
+++ b/examples/GuiClient/mainDialog.cpp
@@ -217,28 +217,20 @@ void mainDialog::presenceChanged(const QString& bareJid, const QString& resource
m_rosterItemModel.updatePresence(bareJid, presences);
QXmppPresence& pre = presences[resource];
- QString nodeVer;
- foreach(QXmppElement extension, pre.extensions())
+
+ QString node = pre.capabilityNode();
+ QString ver = pre.capabilityVer();
+ QStringList exts = pre.capabilityExt();
+
+ QString nodeVer = node + "#" + ver;
+ if(!m_capabilitiesCache.isCapabilityAvailable(nodeVer))
+ m_capabilitiesCache.requestInfo(jid, nodeVer);
+
+ foreach(QString ext, exts)
{
- if(extension.tagName() == "c" &&
- extension.attribute("xmlns") == ns_capabilities)
- {
- QString node = extension.attribute("node");
- QString ver = extension.attribute("ver");
- QString exts = extension.attribute("ext");
- nodeVer = node + "#" + ver;
- if(!m_capabilitiesCache.isCapabilityAvailable(nodeVer))
- m_capabilitiesCache.requestInfo(jid, nodeVer);
- if(!exts.isEmpty())
- {
- foreach(QString ext, exts.split(" ", QString::SkipEmptyParts))
- {
- nodeVer = node + "#" + ext;
- if(!m_capabilitiesCache.isCapabilityAvailable(nodeVer))
- m_capabilitiesCache.requestInfo(jid, nodeVer);
- }
- }
- }
+ nodeVer = node + "#" + ext;
+ if(!m_capabilitiesCache.isCapabilityAvailable(nodeVer))
+ m_capabilitiesCache.requestInfo(jid, nodeVer);
}