aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorManjeet Dahiya <manjeetdahiya@gmail.com>2010-09-16 09:28:38 +0000
committerManjeet Dahiya <manjeetdahiya@gmail.com>2010-09-16 09:28:38 +0000
commit4de7cdced4bea96df1a9fde5610057ddb70adc3c (patch)
tree0fb5ec30c112c16769a42dde2cfb7b70f7f3edfb /src
parentddbfd7423e339213241d8df0c396733b435ccc7e (diff)
downloadqxmpp-4de7cdced4bea96df1a9fde5610057ddb70adc3c.tar.gz
functions to specify client's software version
Diffstat (limited to 'src')
-rw-r--r--src/QXmppVersionManager.cpp52
-rw-r--r--src/QXmppVersionManager.h14
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