aboutsummaryrefslogtreecommitdiff
path: root/source/QXmppVCard.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2010-04-15 12:22:19 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2010-04-15 12:22:19 +0000
commitfd84a9f73dd5fffebdf122a0ecd154281b701d52 (patch)
tree17c373e5a1eb82da3fae0827c1c6915e2e704cd7 /source/QXmppVCard.cpp
parentca824b7fe4b209f41072ac41ef263cd5c39da38b (diff)
downloadqxmpp-fd84a9f73dd5fffebdf122a0ecd154281b701d52.tar.gz
* move QImage-related code out of QXmppUtils
* make it possible to disable QtGui-dependent code
Diffstat (limited to 'source/QXmppVCard.cpp')
-rw-r--r--source/QXmppVCard.cpp51
1 files changed, 46 insertions, 5 deletions
diff --git a/source/QXmppVCard.cpp b/source/QXmppVCard.cpp
index a2aae198..9efdf173 100644
--- a/source/QXmppVCard.cpp
+++ b/source/QXmppVCard.cpp
@@ -22,13 +22,44 @@
*/
+#include <QBuffer>
+#include <QXmlStreamWriter>
+
+#ifndef QXMPP_NO_GUI
+#include <QImage>
+#include <QImageReader>
+#endif
+
#include "QXmppVCard.h"
#include "QXmppUtils.h"
#include "QXmppConstants.h"
-#include <QXmlStreamWriter>
-#include <QImage>
-#include <QBuffer>
+static QString getImageType(const QByteArray& image)
+{
+#ifndef QXMPP_NO_GUI
+ QBuffer buffer;
+ buffer.setData(image);
+ buffer.open(QIODevice::ReadOnly);
+ QString format = QImageReader::imageFormat(&buffer);
+
+ if(format.toUpper() == "PNG")
+ return "image/png";
+ else if(format.toUpper() == "MNG")
+ return "video/x-mng";
+ else if(format.toUpper() == "GIF")
+ return "image/gif";
+ else if(format.toUpper() == "BMP")
+ return "image/bmp";
+ else if(format.toUpper() == "XPM")
+ return "image/x-xpm";
+ else if(format.toUpper() == "SVG")
+ return "image/svg+xml";
+ else if(format.toUpper() == "JPEG")
+ return "image/jpeg";
+#endif
+
+ return "image/unknown";
+}
QXmppVCard::QXmppVCard(const QString& jid) : QXmppIq(QXmppIq::Get)
{
@@ -106,6 +137,7 @@ void QXmppVCard::setPhoto(const QByteArray& photo)
m_photo = photo;
}
+#ifndef QXMPP_NO_GUI
void QXmppVCard::setPhoto(const QImage& image)
{
QByteArray ba;
@@ -114,6 +146,7 @@ void QXmppVCard::setPhoto(const QImage& image)
image.save(&buffer, "PNG");
m_photo = ba;
}
+#endif
void QXmppVCard::parse(const QDomElement& nodeRecv)
{
@@ -171,10 +204,16 @@ void QXmppVCard::toXmlElementFromChild(QXmlStreamWriter *writer) const
writer->writeEndElement();
}
+#ifndef QXMPP_NO_GUI
QImage QXmppVCard::photoAsImage() const
{
- return getImageFromByteArray(photo());
+ QBuffer buffer;
+ buffer.setData(m_photo);
+ buffer.open(QIODevice::ReadOnly);
+ QImageReader imageReader(&buffer);
+ return imageReader.read();
}
+#endif
QString QXmppVCard::getFullName() const
{
@@ -191,8 +230,10 @@ const QByteArray& QXmppVCard::getPhoto() const
return m_photo;
}
+#ifndef QXMPP_NO_GUI
QImage QXmppVCard::getPhotoAsImage() const
{
- return getImageFromByteArray(photo());
+ return photoAsImage();
}
+#endif