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 | |
| parent | ca824b7fe4b209f41072ac41ef263cd5c39da38b (diff) | |
| download | qxmpp-fd84a9f73dd5fffebdf122a0ecd154281b701d52.tar.gz | |
* move QImage-related code out of QXmppUtils
* make it possible to disable QtGui-dependent code
| -rw-r--r-- | source/QXmppUtils.cpp | 56 | ||||
| -rw-r--r-- | source/QXmppUtils.h | 5 | ||||
| -rw-r--r-- | source/QXmppVCard.cpp | 51 |
3 files changed, 53 insertions, 59 deletions
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 <QBuffer> +#include <QByteArray> +#include <QDateTime> #include <QDebug> +#include <QRegExp> #include <QString> #include <QXmlStreamWriter> -#include <QByteArray> -#include <QBuffer> -#include <QImage> -#include <QImageReader> -#include <QCryptographicHash> -#include <QDateTime> + +#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 <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 |
