diff options
| author | Manjeet Dahiya <manjeetdahiya@gmail.com> | 2010-09-23 08:36:23 +0000 |
|---|---|---|
| committer | Manjeet Dahiya <manjeetdahiya@gmail.com> | 2010-09-23 08:36:23 +0000 |
| commit | f0ddddce663e30a88c5c5246743145fe8dd8e11a (patch) | |
| tree | f5a1a18cd3ac04d69c35138da1c2107ba0507180 /examples/GuiClient | |
| parent | 59f95fafeebd23bed8b1dbb608912a364d1d2809 (diff) | |
| download | qxmpp-f0ddddce663e30a88c5c5246743145fe8dd8e11a.tar.gz | |
bugfixes and improvements
Diffstat (limited to 'examples/GuiClient')
| -rw-r--r-- | examples/GuiClient/capabilitiesCollection.cpp | 30 | ||||
| -rw-r--r-- | examples/GuiClient/capabilitiesCollection.h | 1 | ||||
| -rw-r--r-- | examples/GuiClient/mainDialog.cpp | 4 |
3 files changed, 26 insertions, 9 deletions
diff --git a/examples/GuiClient/capabilitiesCollection.cpp b/examples/GuiClient/capabilitiesCollection.cpp index 8b662342..ea3e5228 100644 --- a/examples/GuiClient/capabilitiesCollection.cpp +++ b/examples/GuiClient/capabilitiesCollection.cpp @@ -53,7 +53,21 @@ void capabilitiesCollection::requestInfo(const QString& jid, const QString& node QXmppDiscoveryManager* ext = m_client->findExtension<QXmppDiscoveryManager>();
if(ext)
{
- ext->requestInfo(jid, node);
+ bool alreadyRequested = false;
+ foreach(QString key, m_mapIdNodeVer.keys())
+ {
+ if(m_mapIdNodeVer[key] == node)
+ {
+ alreadyRequested = true;
+ break;
+ }
+ }
+
+ if(!alreadyRequested)
+ {
+ QString id = ext->requestInfo(jid, node);
+ m_mapIdNodeVer[id] = node;
+ }
}
}
@@ -63,14 +77,16 @@ void capabilitiesCollection::infoReceived(const QXmppDiscoveryIq& discoIqRcv) if(discoIq.queryType() == QXmppDiscoveryIq::InfoQuery &&
discoIq.type() == QXmppIq::Result)
{
- if(!discoIq.queryNode().isEmpty())
+ if(discoIq.queryNode().isEmpty())
{
- discoIq.setTo("");
- discoIq.setFrom("");
- discoIq.setId("");
- m_mapCapabilities[discoIq.queryNode()] = discoIq;
- saveToCache(discoIq.queryNode());
+ discoIq.setQueryNode(m_mapIdNodeVer[discoIq.id()]);
}
+
+ discoIq.setTo("");
+ discoIq.setFrom("");
+ discoIq.setId("");
+ m_mapCapabilities[discoIq.queryNode()] = discoIq;
+ saveToCache(discoIq.queryNode());
}
}
diff --git a/examples/GuiClient/capabilitiesCollection.h b/examples/GuiClient/capabilitiesCollection.h index 216ff4c2..c4636321 100644 --- a/examples/GuiClient/capabilitiesCollection.h +++ b/examples/GuiClient/capabilitiesCollection.h @@ -54,6 +54,7 @@ private: QXmppClient* m_client;
QMap<QString, QXmppDiscoveryIq> m_mapCapabilities;
+ QMap<QString, QString> m_mapIdNodeVer;
};
#endif // CAPABILITIESCOLLECTION_H
diff --git a/examples/GuiClient/mainDialog.cpp b/examples/GuiClient/mainDialog.cpp index 04bb76f4..32ef899a 100644 --- a/examples/GuiClient/mainDialog.cpp +++ b/examples/GuiClient/mainDialog.cpp @@ -191,8 +191,8 @@ void mainDialog::presenceChanged(const QString& bareJid, const QString& resource extension.attribute("xmlns") == ns_capabilities) { QString node = extension.attribute("node"); - QString ver = extension.attribute("node"); - QString exts = extension.attribute("node"); + QString ver = extension.attribute("ver"); + QString exts = extension.attribute("ext"); nodeVer = node + "#" + ver; if(!m_capabilitiesCollection.isCapabilityAvailable(nodeVer)) m_capabilitiesCollection.requestInfo(jid, nodeVer); |
