aboutsummaryrefslogtreecommitdiff
path: root/examples/GuiClient
diff options
context:
space:
mode:
authorManjeet Dahiya <manjeetdahiya@gmail.com>2010-09-12 14:46:21 +0000
committerManjeet Dahiya <manjeetdahiya@gmail.com>2010-09-12 14:46:21 +0000
commit72954fc541fb356571d213ca263eb8fa6a743004 (patch)
tree75f23ce9b9746eb022bff0d8dde69aba04151bc1 /examples/GuiClient
parentcd140721d0c65632367fa5892a4c2a952acb644e (diff)
downloadqxmpp-72954fc541fb356571d213ca263eb8fa6a743004.tar.gz
show time on profile dialog
Diffstat (limited to 'examples/GuiClient')
-rw-r--r--examples/GuiClient/profileDialog.cpp29
-rw-r--r--examples/GuiClient/profileDialog.h3
2 files changed, 31 insertions, 1 deletions
diff --git a/examples/GuiClient/profileDialog.cpp b/examples/GuiClient/profileDialog.cpp
index 65743bf6..c1f4d668 100644
--- a/examples/GuiClient/profileDialog.cpp
+++ b/examples/GuiClient/profileDialog.cpp
@@ -7,6 +7,8 @@
#include "QXmppVersionManager.h"
#include "QXmppRosterManager.h"
#include "QXmppUtils.h"
+#include "QXmppEntityTimeManager.h"
+#include "QXmppEntityTimeIq.h"
profileDialog::profileDialog(QWidget *parent, const QString& bareJid, QXmppClient& client) :
QDialog(parent, Qt::WindowTitleHint|Qt::WindowSystemMenuHint),
@@ -18,10 +20,22 @@ profileDialog::profileDialog(QWidget *parent, const QString& bareJid, QXmppClien
SLOT(versionReceived(const QXmppVersionIq&)));
Q_ASSERT(check);
+ QXmppEntityTimeManager* timeManager = m_xmppClient.findExtension<QXmppEntityTimeManager*>();
+
+ if(timeManager)
+ {
+ check = connect(timeManager, SIGNAL(timeReceived(const QXmppEntityTimeIq&)),
+ SLOT(timeReceived(const QXmppEntityTimeIq&)));
+ Q_ASSERT(check);
+ }
+
QStringList resources = m_xmppClient.rosterManager().getResources(bareJid);
foreach(QString resource, resources)
{
- m_xmppClient.versionManager().requestVersion(bareJid + "/" + resource);
+ QString jid = bareJid + "/" + resource;
+ m_xmppClient.versionManager().requestVersion(jid);
+ if(timeManager)
+ timeManager->requestTime(jid);
}
updateText();
}
@@ -64,6 +78,13 @@ void profileDialog::versionReceived(const QXmppVersionIq& ver)
updateText();
}
+void profileDialog::timeReceived(const QXmppEntityTimeIq& time)
+{
+ m_time[jidToResource(time.from())] = time;
+ if(time.type() == QXmppIq::Result)
+ updateText();
+}
+
void profileDialog::updateText()
{
QStringList resources = m_xmppClient.rosterManager().getResources(m_bareJid);
@@ -81,6 +102,12 @@ void profileDialog::updateText()
arg(m_versions[resource].name()).
arg(m_versions[resource].version()).
arg(m_versions[resource].os());
+ statusText += "<BR>";
+
+ if(m_time.contains(resource))
+ statusText += "<B>Time: </B>" + QString("utc=%1 [tzo=%2]").
+ arg(m_time[resource].utc()).
+ arg(m_time[resource].tzo());
if(i < resources.count() - 1) // skip for the last item
statusText += "<BR><BR>";
diff --git a/examples/GuiClient/profileDialog.h b/examples/GuiClient/profileDialog.h
index 86b2bba5..79cd0577 100644
--- a/examples/GuiClient/profileDialog.h
+++ b/examples/GuiClient/profileDialog.h
@@ -10,6 +10,7 @@ namespace Ui {
class QXmppClient;
class QXmppVersionIq;
+class QXmppEntityTimeIq;
class profileDialog : public QDialog
{
@@ -27,6 +28,7 @@ public:
private slots:
void versionReceived(const QXmppVersionIq&);
+ void timeReceived(const QXmppEntityTimeIq&);
private:
void updateText();
@@ -36,6 +38,7 @@ private:
QString m_bareJid;
QXmppClient& m_xmppClient; // reference to the active QXmppClient (No ownership)
QMap<QString, QXmppVersionIq> m_versions;
+ QMap<QString, QXmppEntityTimeIq> m_time;
};
#endif // PROFILEDIALOG_H