diff -Naur psi-0.10-test3-orig/iris/include/im.h psi-0.10-test3/iris/include/im.h
--- psi-0.10-test3-orig/iris/include/im.h 2005-12-04 23:41:54.000000000 +0000
+++ psi-0.10-test3/iris/include/im.h 2005-12-04 23:49:31.000000000 +0000
@@ -189,6 +189,7 @@
const QString & xsigned() const;
const QString & songTitle() const;
+ const QString & nickName() const;
void setPriority(int);
void setShow(const QString &);
@@ -201,6 +202,7 @@
void setXSigned(const QString &);
void setSongTitle(const QString &);
+ void setNickname(const QString &);
// JEP-8 Avatars
const QString& avatarHash() const;
diff -Naur psi-0.10-test3-orig/iris/xmpp-im/types.cpp psi-0.10-test3/iris/xmpp-im/types.cpp
--- psi-0.10-test3-orig/iris/xmpp-im/types.cpp 2005-12-04 23:41:54.000000000 +0000
+++ psi-0.10-test3/iris/xmpp-im/types.cpp 2005-12-04 23:49:00.000000000 +0000
@@ -884,6 +884,7 @@
bool v_isInvisible;
QString v_xsigned;
+ QString v_nickname;
// gabber song extension
QString v_songTitle;
@@ -986,6 +987,11 @@
d->v_songTitle = _songtitle;
}
+void Status::setNickname(const QString & _nickname)
+{
+ d->v_nickname = _nickname;
+}
+
const QString& Status::avatarHash() const
{
return v_avatarHash;
@@ -1078,6 +1084,11 @@
return d->v_songTitle;
}
+const QString & Status::nickName() const
+{
+ return d->v_nickname;
+}
+
int Status::errorCode() const
{
return d->ecode;
diff -Naur psi-0.10-test3-orig/iris/xmpp-im/xmpp_tasks.cpp psi-0.10-test3/iris/xmpp-im/xmpp_tasks.cpp
--- psi-0.10-test3-orig/iris/xmpp-im/xmpp_tasks.cpp 2005-12-04 23:41:46.000000000 +0000
+++ psi-0.10-test3/iris/xmpp-im/xmpp_tasks.cpp 2005-12-04 23:51:13.000000000 +0000
@@ -523,10 +523,13 @@
x.appendChild(textTag(doc(), "hash", s.avatarHash()));
tag.appendChild(x);
}
- if(s.hasPhotoHash()) {
+ if(s.hasPhotoHash() || !s.nickName().isEmpty()) {
QDomElement x = doc()->createElement("x");
x.setAttribute("xmlns", "vcard-temp:x:update");
- x.appendChild(textTag(doc(), "photo", s.avatarHash()));
+ if(s.hasPhotoHash())
+ x.appendChild(textTag(doc(), "photo", s.avatarHash()));
+ if(!s.nickName().isEmpty())
+ x.appendChild(textTag(doc(), "nickname", s.nickName()));
tag.appendChild(x);
}
}
@@ -694,6 +697,11 @@
p.setPhotoHash(tagContent(t));
else
p.setPhotoHash("");
+ t = findSubTag(i, "nickname", &found);
+ if (found)
+ p.setNickname(tagContent(t));
+ else
+ p.setNickname("");
}
else if(i.tagName() == "x" && i.attribute("xmlns") == "http://jabber.org/protocol/muc") {
p.setMuc(true);
diff -Naur psi-0.10-test3-orig/src/psiaccount.cpp psi-0.10-test3/src/psiaccount.cpp
--- psi-0.10-test3-orig/src/psiaccount.cpp 2005-12-04 23:41:55.000000000 +0000
+++ psi-0.10-test3/src/psiaccount.cpp 2005-12-05 00:10:07.000000000 +0000
@@ -1831,7 +1831,8 @@
{
d->loginStatus = s;
- d->client->setPresence(s);
+ d->loginStatus.setNickname(nick());
+ d->client->setPresence(d->loginStatus);
if(presenceSent) {
stateChanged();
}
@@ -3884,6 +3885,7 @@
d->self.setName(nick);
cpUpdate(d->self);
nickChanged();
+ setStatusActual(d->loginStatus);
}
QString PsiAccount::nick() const
diff -Naur psi-0.10-test3-orig/src/userlist.cpp psi-0.10-test3/src/userlist.cpp
--- psi-0.10-test3-orig/src/userlist.cpp 2005-12-04 23:41:55.000000000 +0000
+++ psi-0.10-test3/src/userlist.cpp 2005-12-05 00:08:15.000000000 +0000
@@ -450,6 +450,15 @@
str += QString("
") + QObject::tr("Listening to") + QString(": %1").arg(s) + "";
}
+ // nickname
+ if(!r.status().nickName().isEmpty()) {
+ QString nick = r.status().nickName();
+ if(trim)
+ nick = dot_truncate(nick, 80);
+ nick = expandEntities(nick);
+ str += QString("
") + QObject::tr("Nickname") + QString(": %1").arg(nick) + "";
+ }
+
// client
if(!r.versionString().isEmpty()) {
QString ver = r.versionString();