aboutsummaryrefslogtreecommitdiff
path: root/source/QXmppVCard.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/QXmppVCard.cpp')
-rw-r--r--source/QXmppVCard.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/source/QXmppVCard.cpp b/source/QXmppVCard.cpp
index 1d4b9509..caf47ef8 100644
--- a/source/QXmppVCard.cpp
+++ b/source/QXmppVCard.cpp
@@ -28,6 +28,7 @@
#include <QTextStream>
#include <QImage>
+#include <QBuffer>
QXmppVCard::QXmppVCard(const QString& jid) : QXmppIq(QXmppIq::Get)
{
@@ -55,6 +56,15 @@ void QXmppVCard::setPhoto(const QByteArray& photo)
m_photo = photo;
}
+void QXmppVCard::setPhoto(const QImage& image)
+{
+ QByteArray ba;
+ QBuffer buffer(&ba);
+ buffer.open(QIODevice::WriteOnly);
+ image.save(&buffer, "PNG");
+ m_photo = ba;
+}
+
void QXmppVCard::parse(const QDomElement& nodeRecv)
{
QString id = nodeRecv.attribute("id");
@@ -87,9 +97,9 @@ QByteArray QXmppVCard::toXmlElementFromChild() const
if(!getPhoto().isEmpty())
{
- stream << "<PHOTO";
+ stream << "<PHOTO>";
helperToXmlAddElement(stream, "TYPE", getImageType(getPhoto()));
- helperToXmlAddElement(stream, "BINVAL", getPhoto());
+ helperToXmlAddElement(stream, "BINVAL", getPhoto().toBase64());
stream << "</PHOTO>";
}