From 0b606b76e679c587fb14c2472de1b809954f29bf Mon Sep 17 00:00:00 2001 From: Manjeet Dahiya Date: Mon, 7 Sep 2009 15:17:44 +0000 Subject: XEP-0054: vcard-temp implementation and other code cleanups --- source/QXmppVCard.cpp | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 source/QXmppVCard.cpp (limited to 'source/QXmppVCard.cpp') diff --git a/source/QXmppVCard.cpp b/source/QXmppVCard.cpp new file mode 100644 index 00000000..35333319 --- /dev/null +++ b/source/QXmppVCard.cpp @@ -0,0 +1,101 @@ +/* + * Copyright (C) 2008-2009 Manjeet Dahiya + * + * Author: + * Manjeet Dahiya + * + * Source: + * http://code.google.com/p/qxmpp + * + * This file is a part of QXmpp library. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + */ + + +#include "QXmppVCard.h" +#include "QXmppUtils.h" +#include "QXmppConstants.h" + +#include +#include + +QXmppVCard::QXmppVCard(const QString& jid) : QXmppIq(QXmppIq::Get) +{ + // for self jid should be empty + setTo(jid); +} + +QString QXmppVCard::getFullName() const +{ + return m_fullName; +} + +void QXmppVCard::setFullName(const QString& str) +{ + m_fullName = str; +} + +const QByteArray& QXmppVCard::getPhoto() const +{ + return m_photo; +} + +void QXmppVCard::setPhoto(const QByteArray& photo) +{ + m_photo = photo; +} + +void QXmppVCard::parse(const QDomElement& nodeRecv) +{ + QString id = nodeRecv.attribute("id"); + QString to = nodeRecv.attribute("to"); + QString from = nodeRecv.attribute("from"); + QString type = nodeRecv.attribute("type"); + setTypeFromStr(type); + setId(id); + setTo(to); + setFrom(from); + + // vCard + setFullName(nodeRecv.firstChildElement("vCard"). + firstChildElement("FN").text()); + QByteArray base64data = nodeRecv.firstChildElement("vCard"). + firstChildElement("PHOTO"). + firstChildElement("BINVAL").text().toAscii(); + setPhoto(QByteArray::fromBase64(base64data)); +} + +QByteArray QXmppVCard::toXmlElementFromChild() const +{ + QString data; + QTextStream stream(&data); + + stream << ""; + helperToXmlAddElement(stream, "FN", getFullName()); + + stream << ""; + + stream << ""; + + return data.toAscii(); +} + +const QImage& QXmppVCard::getPhotoAsImage() const +{ + return getImageFromByteArray(getPhoto()); +} -- cgit v1.2.3