From fd84a9f73dd5fffebdf122a0ecd154281b701d52 Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Thu, 15 Apr 2010 12:22:19 +0000 Subject: * move QImage-related code out of QXmppUtils * make it possible to disable QtGui-dependent code --- source/QXmppUtils.cpp | 56 +++++++-------------------------------------------- source/QXmppUtils.h | 5 ----- source/QXmppVCard.cpp | 51 +++++++++++++++++++++++++++++++++++++++++----- 3 files changed, 53 insertions(+), 59 deletions(-) (limited to 'source') diff --git a/source/QXmppUtils.cpp b/source/QXmppUtils.cpp index f59462a1..bf58706b 100644 --- a/source/QXmppUtils.cpp +++ b/source/QXmppUtils.cpp @@ -22,17 +22,16 @@ */ -#include "QXmppUtils.h" -#include "QXmppLogger.h" +#include +#include +#include #include +#include #include #include -#include -#include -#include -#include -#include -#include + +#include "QXmppUtils.h" +#include "QXmppLogger.h" QDateTime datetimeFromString(const QString &str) { @@ -137,45 +136,4 @@ QString unescapeString(const QString& str) return strOut; } -QString getImageType(const QByteArray& image) -{ - 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"; - - return "image/unknown"; -} -QString getImageHash(const QByteArray& image) -{ - if(image.isEmpty()) - return ""; - else - return QString(QCryptographicHash::hash(image, - QCryptographicHash::Sha1).toHex()); -} - -QImage getImageFromByteArray(const QByteArray& image) -{ - QBuffer buffer; - buffer.setData(image); - buffer.open(QIODevice::ReadOnly); - QImageReader imageReader(&buffer); - return imageReader.read(); -} diff --git a/source/QXmppUtils.h b/source/QXmppUtils.h index 8479a29b..5d7fd5f5 100644 --- a/source/QXmppUtils.h +++ b/source/QXmppUtils.h @@ -35,7 +35,6 @@ class QByteArray; class QDateTime; class QString; -class QImage; // XEP-0082: XMPP Date and Time Profiles QDateTime datetimeFromString(const QString &str); @@ -55,8 +54,4 @@ void helperToXmlAddNumberElement(QXmlStreamWriter* stream, const QString& name, QString escapeString(const QString& str); QString unescapeString(const QString& str); -QString getImageType(const QByteArray& image); -QString getImageHash(const QByteArray& image); -QImage getImageFromByteArray(const QByteArray& image); - #endif // QXMPPUTILS_H 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 +#include + +#ifndef QXMPP_NO_GUI +#include +#include +#endif + #include "QXmppVCard.h" #include "QXmppUtils.h" #include "QXmppConstants.h" -#include -#include -#include +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 -- cgit v1.2.3