diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-09-10 09:53:25 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-09-10 09:53:25 +0000 |
| commit | 134781f6cfa3b75ebd91b7028e0e9de709d86702 (patch) | |
| tree | e88f9e63e645029093ba5d6c65ab96a8a59f6c3a /src/QXmppVersionManager.cpp | |
| parent | 966067c17e939bb4b03fee41ecaa468a3f836c4e (diff) | |
| download | qxmpp-134781f6cfa3b75ebd91b7028e0e9de709d86702.tar.gz | |
refactor QXmppVersionManager as a client extension
Diffstat (limited to 'src/QXmppVersionManager.cpp')
| -rw-r--r-- | src/QXmppVersionManager.cpp | 64 |
1 files changed, 32 insertions, 32 deletions
diff --git a/src/QXmppVersionManager.cpp b/src/QXmppVersionManager.cpp index 4ee5c687..46db6cea 100644 --- a/src/QXmppVersionManager.cpp +++ b/src/QXmppVersionManager.cpp @@ -21,56 +21,56 @@ * */ +#include <QCoreApplication> +#include <QDomElement> + #include "QXmppVersionManager.h" #include "QXmppOutgoingClient.h" #include "QXmppVersionIq.h" #include "QXmppGlobal.h" -#include <QCoreApplication> - -QXmppVersionManager::QXmppVersionManager(QXmppOutgoingClient* stream, QObject *parent) - : QObject(parent), - m_stream(stream) +bool QXmppVersionManager::handleStanza(QXmppStream *stream, const QDomElement &element) { - bool check = QObject::connect(m_stream, SIGNAL(versionIqReceived(const QXmppVersionIq&)), - this, SLOT(versionIqReceived(const QXmppVersionIq&))); - Q_ASSERT(check); - Q_UNUSED(check); -} - -void QXmppVersionManager::versionIqReceived(const QXmppVersionIq& versionIq) -{ - if(versionIq.type() == QXmppIq::Get) + if (element.tagName() == "iq" && QXmppVersionIq::isVersionIq(element)) { - // respond to query - QXmppVersionIq responseIq; - responseIq.setType(QXmppIq::Result); - responseIq.setId(versionIq.id()); - responseIq.setTo(versionIq.from()); + QXmppVersionIq versionIq; + versionIq.parse(element); - QString name = qApp->applicationName(); - if(name.isEmpty()) - name = "Based on QXmpp"; - responseIq.setName(name); + if(versionIq.type() == QXmppIq::Get) + { + // respond to query + QXmppVersionIq responseIq; + responseIq.setType(QXmppIq::Result); + responseIq.setId(versionIq.id()); + responseIq.setTo(versionIq.from()); - QString version = qApp->applicationVersion(); - if(version.isEmpty()) - version = QXmppVersion(); - responseIq.setVersion(version); + QString name = qApp->applicationName(); + if(name.isEmpty()) + name = "Based on QXmpp"; + responseIq.setName(name); - // TODO set OS aswell + QString version = qApp->applicationVersion(); + if(version.isEmpty()) + version = QXmppVersion(); + responseIq.setVersion(version); - m_stream->sendPacket(responseIq); + // TODO set OS aswell + stream->sendPacket(responseIq); + } + + emit versionReceived(versionIq); + return true; } - emit versionReceived(versionIq); + return false; } void QXmppVersionManager::requestVersion(const QString& jid) { QXmppVersionIq request; request.setType(QXmppIq::Get); - request.setFrom(m_stream->configuration().jid()); + request.setFrom(client()->configuration().jid()); request.setTo(jid); - m_stream->sendPacket(request); + client()->sendPacket(request); } + |
