From 494df25dd3d965321551602567057770d7893ced Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Sun, 29 Aug 2010 02:09:50 +0000 Subject: add support for birthday & email to vCard --- src/QXmppVCard.cpp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'src/QXmppVCard.cpp') diff --git a/src/QXmppVCard.cpp b/src/QXmppVCard.cpp index 598ed1f7..77c9e2a4 100644 --- a/src/QXmppVCard.cpp +++ b/src/QXmppVCard.cpp @@ -67,6 +67,26 @@ QXmppVCard::QXmppVCard(const QString& jid) : QXmppIq(QXmppIq::Get) setTo(jid); } +QDate QXmppVCard::birthday() const +{ + return m_birthday; +} + +void QXmppVCard::setBirthday(const QDate &birthday) +{ + m_birthday = birthday; +} + +QString QXmppVCard::email() const +{ + return m_email; +} + +void QXmppVCard::setEmail(const QString &email) +{ + m_email = email; +} + QString QXmppVCard::firstName() const { return m_firstName; @@ -158,6 +178,9 @@ void QXmppVCard::parseElementFromChild(const QDomElement& nodeRecv) { // vCard QDomElement cardElement = nodeRecv.firstChildElement("vCard"); + m_birthday = QDate::fromString(cardElement.firstChildElement("BDAY").text(), "yyyy-MM-dd"); + QDomElement emailElement = cardElement.firstChildElement("EMAIL"); + m_email = emailElement.firstChildElement("USERID").text(); m_fullName = cardElement.firstChildElement("FN").text(); m_nickName = cardElement.firstChildElement("NICKNAME").text(); QDomElement nameElement = cardElement.firstChildElement("N"); @@ -175,6 +198,15 @@ void QXmppVCard::toXmlElementFromChild(QXmlStreamWriter *writer) const { writer->writeStartElement("vCard"); helperToXmlAddAttribute(writer,"xmlns", ns_vcard); + if (m_birthday.isValid()) + helperToXmlAddTextElement(writer, "BDAY", m_birthday.toString("yyyy-MM-dd")); + if (!m_email.isEmpty()) + { + writer->writeStartElement("EMAIL"); + writer->writeEmptyElement("INTERNET"); + helperToXmlAddTextElement(writer, "USERID", m_email); + writer->writeEndElement(); + } if (!m_fullName.isEmpty()) helperToXmlAddTextElement(writer, "FN", m_fullName); if(!m_nickName.isEmpty()) -- cgit v1.2.3