diff options
author | Jake Petroules <jake.petroules@petroules.com> | 2013-04-15 09:31:36 -0400 |
---|---|---|
committer | Jake Petroules <jake.petroules@petroules.com> | 2013-04-15 15:47:05 +0200 |
commit | dbbe46bf04399c6f4943a5c622c470b6d55809e6 (patch) | |
tree | 591bd009c75cbb662bc94d77ea5ac8e0cef6c5fc | |
parent | fd69d80b2c5dd0927c1170f0538c6d4c7692306a (diff) |
Add type converters for QUrl/NSURL and QByteArray/NSData.
Change-Id: Idbfaa54faa790c29b206c788159709830d846cb3
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
-rw-r--r-- | src/macextras/qmacfunctions.h | 12 | ||||
-rw-r--r-- | src/macextras/qmacfunctions.mm | 25 |
2 files changed, 37 insertions, 0 deletions
diff --git a/src/macextras/qmacfunctions.h b/src/macextras/qmacfunctions.h index b0c521d..1fd14a0 100644 --- a/src/macextras/qmacfunctions.h +++ b/src/macextras/qmacfunctions.h @@ -51,27 +51,39 @@ typedef struct CGImage *CGImageRef; #ifdef __OBJC__ +@class NSData; @class NSImage; @class NSString; @class NSMenu; +@class NSURL; #else +typedef struct objc_object NSData; typedef struct objc_object NSImage; typedef struct objc_object NSString; typedef struct objc_object NSMenu; +typedef struct objc_object NSURL; #endif QT_BEGIN_NAMESPACE +class QByteArray; class QMenu; class QMenuBar; class QPixmap; class QString; +class QUrl; namespace QtMacExtras { Q_MACEXTRAS_EXPORT NSString* toNSString(const QString &string); Q_MACEXTRAS_EXPORT QString fromNSString(const NSString *string); +Q_MACEXTRAS_EXPORT NSURL* toNSURL(const QUrl &url); +Q_MACEXTRAS_EXPORT QUrl fromNSURL(const NSURL *url); + +Q_MACEXTRAS_EXPORT NSData* toNSData(const QByteArray &data); +Q_MACEXTRAS_EXPORT QByteArray fromNSData(const NSData *data); + Q_MACEXTRAS_EXPORT CGImageRef toCGImageRef(const QPixmap &pixmap); Q_MACEXTRAS_EXPORT QPixmap fromCGImageRef(CGImageRef image); diff --git a/src/macextras/qmacfunctions.mm b/src/macextras/qmacfunctions.mm index 93160fc..ba0e940 100644 --- a/src/macextras/qmacfunctions.mm +++ b/src/macextras/qmacfunctions.mm @@ -41,7 +41,9 @@ #include "qmacfunctions.h" #include "qmacfunctions_p.h" +#include <QByteArray> #include <QPixmap> +#include <QUrl> #import <Foundation/Foundation.h> #import <CoreGraphics/CoreGraphics.h> @@ -67,6 +69,29 @@ QString fromNSString(const NSString *string) return qstring; } +NSURL* toNSURL(const QUrl &url) +{ + return [NSURL URLWithString:toNSString(url.toString())]; +} + +QUrl fromNSURL(const NSURL *url) +{ + return QUrl(fromNSString([url absoluteString])); +} + +NSData* toNSData(const QByteArray &data) +{ + return [NSData dataWithBytes:data.constData() length:data.size()]; +} + +QByteArray fromNSData(const NSData *data) +{ + QByteArray ba; + ba.resize([data length]); + [data getBytes:ba.data() length:ba.size()]; + return ba; +} + /*! Creates a \c CGImageRef equivalent to the QPixmap. Returns the \c CGImageRef handle. |