diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-04-15 12:22:19 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-04-15 12:22:19 +0000 |
| commit | fd84a9f73dd5fffebdf122a0ecd154281b701d52 (patch) | |
| tree | 17c373e5a1eb82da3fae0827c1c6915e2e704cd7 /source/QXmppVCard.cpp | |
| parent | ca824b7fe4b209f41072ac41ef263cd5c39da38b (diff) | |
| download | qxmpp-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.cpp | 51 |
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 |
