diff options
| author | Manjeet Dahiya <manjeetdahiya@gmail.com> | 2010-09-16 09:28:38 +0000 |
|---|---|---|
| committer | Manjeet Dahiya <manjeetdahiya@gmail.com> | 2010-09-16 09:28:38 +0000 |
| commit | 4de7cdced4bea96df1a9fde5610057ddb70adc3c (patch) | |
| tree | 0fb5ec30c112c16769a42dde2cfb7b70f7f3edfb /src | |
| parent | ddbfd7423e339213241d8df0c396733b435ccc7e (diff) | |
| download | qxmpp-4de7cdced4bea96df1a9fde5610057ddb70adc3c.tar.gz | |
functions to specify client's software version
Diffstat (limited to 'src')
| -rw-r--r-- | src/QXmppVersionManager.cpp | 52 | ||||
| -rw-r--r-- | src/QXmppVersionManager.h | 14 |
2 files changed, 57 insertions, 9 deletions
diff --git a/src/QXmppVersionManager.cpp b/src/QXmppVersionManager.cpp index efec26a0..0dc93e7b 100644 --- a/src/QXmppVersionManager.cpp +++ b/src/QXmppVersionManager.cpp @@ -30,6 +30,17 @@ #include "QXmppVersionManager.h" #include "QXmppVersionIq.h" +QXmppVersionManager::QXmppVersionManager() : QXmppClientExtension(), + m_name(qApp->applicationName()), + m_version(qApp->applicationVersion()) +{ + if(m_name.isEmpty()) + m_name = "Based on QXmpp"; + + if(m_version.isEmpty()) + m_version = QXmppVersion(); +} + QStringList QXmppVersionManager::discoveryFeatures() const { // XEP-0092: Software Version @@ -51,15 +62,9 @@ bool QXmppVersionManager::handleStanza(QXmppStream *stream, const QDomElement &e responseIq.setId(versionIq.id()); responseIq.setTo(versionIq.from()); - QString name = qApp->applicationName(); - if(name.isEmpty()) - name = "Based on QXmpp"; - responseIq.setName(name); - - QString version = qApp->applicationVersion(); - if(version.isEmpty()) - version = QXmppVersion(); - responseIq.setVersion(version); + responseIq.setName(name()); + responseIq.setVersion(version()); + responseIq.setOs(os()); // TODO set OS aswell stream->sendPacket(responseIq); @@ -81,3 +86,32 @@ void QXmppVersionManager::requestVersion(const QString& jid) client()->sendPacket(request); } +void QXmppVersionManager::setName(const QString& name) +{ + m_name = name; +} + +void QXmppVersionManager::setVersion(const QString& version) +{ + m_version = version; +} + +void QXmppVersionManager::setOs(const QString& os) +{ + m_os = os; +} + +QString QXmppVersionManager::name() +{ + return m_name; +} + +QString QXmppVersionManager::version() +{ + return m_version; +} + +QString QXmppVersionManager::os() +{ + return m_os; +} diff --git a/src/QXmppVersionManager.h b/src/QXmppVersionManager.h index 73233c05..7f1a4ff3 100644 --- a/src/QXmppVersionManager.h +++ b/src/QXmppVersionManager.h @@ -39,8 +39,17 @@ class QXmppVersionManager : public QXmppClientExtension Q_OBJECT public: + QXmppVersionManager(); void requestVersion(const QString& jid); + void setName(const QString&); + void setVersion(const QString&); + void setOs(const QString&); + + QString name(); + QString version(); + QString os(); + /// \cond QStringList discoveryFeatures() const; bool handleStanza(QXmppStream *stream, const QDomElement &element); @@ -48,6 +57,11 @@ public: signals: void versionReceived(const QXmppVersionIq&); + +private: + QString m_name; + QString m_version; + QString m_os; }; #endif // QXMPPVERSIONMANAGER_H |
