You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
114 lines
2.3 KiB
114 lines
2.3 KiB
Index: iris/xmpp-im/xmpp_tasks.h
|
|
===================================================================
|
|
--- iris/xmpp-im/xmpp_tasks.h (revision 419672)
|
|
+++ iris/xmpp-im/xmpp_tasks.h (working copy)
|
|
@@ -195,6 +195,29 @@
|
|
Private *d;
|
|
};
|
|
|
|
+ class JT_GetLastActivity : public Task
|
|
+ {
|
|
+ Q_OBJECT
|
|
+ public:
|
|
+ JT_GetLastActivity(Task *);
|
|
+ ~JT_GetLastActivity();
|
|
+
|
|
+ void get(const Jid &);
|
|
+
|
|
+ int seconds() const;
|
|
+ const QString &message() const;
|
|
+
|
|
+ void onGo();
|
|
+ bool take(const QDomElement &x);
|
|
+
|
|
+ private:
|
|
+ class Private;
|
|
+ Private *d;
|
|
+
|
|
+ QDomElement iq;
|
|
+ Jid jid;
|
|
+ };
|
|
+
|
|
class JT_GetServices : public Task
|
|
{
|
|
Q_OBJECT
|
|
Index: iris/xmpp-im/xmpp_tasks.cpp
|
|
===================================================================
|
|
--- iris/xmpp-im/xmpp_tasks.cpp (revision 419672)
|
|
+++ iris/xmpp-im/xmpp_tasks.cpp (working copy)
|
|
@@ -773,6 +773,74 @@
|
|
|
|
|
|
//----------------------------------------------------------------------------
|
|
+// JT_GetLastActivity
|
|
+//----------------------------------------------------------------------------
|
|
+class JT_GetLastActivity::Private
|
|
+{
|
|
+public:
|
|
+ Private() {}
|
|
+
|
|
+ int seconds;
|
|
+ QString message;
|
|
+};
|
|
+
|
|
+JT_GetLastActivity::JT_GetLastActivity(Task *parent)
|
|
+:Task(parent)
|
|
+{
|
|
+ d = new Private;
|
|
+}
|
|
+
|
|
+JT_GetLastActivity::~JT_GetLastActivity()
|
|
+{
|
|
+ delete d;
|
|
+}
|
|
+
|
|
+void JT_GetLastActivity::get(const Jid &j)
|
|
+{
|
|
+ jid = j;
|
|
+ iq = createIQ(doc(), "get", jid.full(), id());
|
|
+ QDomElement query = doc()->createElement("query");
|
|
+ query.setAttribute("xmlns", "jabber:iq:last");
|
|
+ iq.appendChild(query);
|
|
+}
|
|
+
|
|
+int JT_GetLastActivity::seconds() const
|
|
+{
|
|
+ return d->seconds;
|
|
+}
|
|
+
|
|
+const QString &JT_GetLastActivity::message() const
|
|
+{
|
|
+ return d->message;
|
|
+}
|
|
+
|
|
+void JT_GetLastActivity::onGo()
|
|
+{
|
|
+ send(iq);
|
|
+}
|
|
+
|
|
+bool JT_GetLastActivity::take(const QDomElement &x)
|
|
+{
|
|
+ if(!iqVerify(x, jid, id()))
|
|
+ return false;
|
|
+
|
|
+ if(x.attribute("type") == "result") {
|
|
+ QDomElement q = queryTag(x);
|
|
+
|
|
+ d->message = q.text();
|
|
+ bool ok;
|
|
+ d->seconds = q.attribute("seconds").toInt(&ok);
|
|
+
|
|
+ setSuccess(ok);
|
|
+ }
|
|
+ else {
|
|
+ setError(x);
|
|
+ }
|
|
+
|
|
+ return true;
|
|
+}
|
|
+
|
|
+//----------------------------------------------------------------------------
|
|
// JT_GetServices
|
|
//----------------------------------------------------------------------------
|
|
JT_GetServices::JT_GetServices(Task *parent)
|