aboutsummaryrefslogtreecommitdiff
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
parentca824b7fe4b209f41072ac41ef263cd5c39da38b (diff)
downloadqxmpp-fd84a9f73dd5fffebdf122a0ecd154281b701d52.tar.gz
* move QImage-related code out of QXmppUtils
* make it possible to disable QtGui-dependent code
-rw-r--r--source/QXmppUtils.cpp56
-rw-r--r--source/QXmppUtils.h5
-rw-r--r--source/QXmppVCard.cpp51
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