diff options
| author | Manjeet Dahiya <manjeetdahiya@gmail.com> | 2010-09-08 09:23:18 +0000 |
|---|---|---|
| committer | Manjeet Dahiya <manjeetdahiya@gmail.com> | 2010-09-08 09:23:18 +0000 |
| commit | da88f5f0bb5e73bc69bf7ed3962691622b1ae4f9 (patch) | |
| tree | c3686f7649785a2bfcc2c637a1588acdb8a721e8 /examples/GuiClient/utils.cpp | |
| parent | 3431f5a37174b7eb8490672686db68df2b48e35f (diff) | |
| download | qxmpp-da88f5f0bb5e73bc69bf7ed3962691622b1ae4f9.tar.gz | |
add Gui Client example
Diffstat (limited to 'examples/GuiClient/utils.cpp')
| -rw-r--r-- | examples/GuiClient/utils.cpp | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/examples/GuiClient/utils.cpp b/examples/GuiClient/utils.cpp new file mode 100644 index 00000000..0d19830e --- /dev/null +++ b/examples/GuiClient/utils.cpp @@ -0,0 +1,120 @@ +#include "utils.h"
+#include <QDir>
+#include <QDesktopServices>
+
+int comparisonWeightsPresenceStatusType(QXmppPresence::Status::Type statusType)
+{
+ switch(statusType)
+ {
+ case QXmppPresence::Status::Online:
+ case QXmppPresence::Status::Chat:
+ return 0;
+ case QXmppPresence::Status::DND:
+ return 1;
+ case QXmppPresence::Status::Away:
+ case QXmppPresence::Status::XA:
+ return 2;
+ case QXmppPresence::Status::Offline:
+ case QXmppPresence::Status::Invisible:
+ return 3;
+ }
+}
+
+int comparisonWeightsPresenceType(QXmppPresence::Type type)
+{
+ switch(type)
+ {
+ case QXmppPresence::Available:
+ return 0;
+ case QXmppPresence::Unavailable:
+ return 1;
+ case QXmppPresence::Error:
+ case QXmppPresence::Subscribe:
+ case QXmppPresence::Subscribed:
+ case QXmppPresence::Unsubscribe:
+ case QXmppPresence::Unsubscribed:
+ case QXmppPresence::Probe:
+ return 3;
+ }
+}
+
+QString presenceToStatusText(const QXmppPresence& presence)
+{
+ QString statusText = presence.getStatus().getStatusText();
+ if(statusText.isEmpty())
+ {
+ if(presence.getType() == QXmppPresence::Available)
+ {
+ switch(presence.getStatus().getType())
+ {
+ case QXmppPresence::Status::Invisible:
+ case QXmppPresence::Status::Offline:
+ statusText = "Offline";
+ break;
+ case QXmppPresence::Status::Online:
+ case QXmppPresence::Status::Chat:
+ statusText = "Available";
+ break;
+ case QXmppPresence::Status::Away:
+ case QXmppPresence::Status::XA:
+ statusText = "Idle";
+ break;
+ case QXmppPresence::Status::DND:
+ statusText = "Busy";
+ break;
+ }
+ }
+ else
+ statusText = "Offline";
+ }
+
+ return statusText;
+}
+
+QString getSettingsDir()
+{
+ return "appCache/";
+}
+
+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();
+}
+
+QString getImageType1(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";
+}
|
