aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJake Petroules <jake.petroules@petroules.com>2013-04-15 09:31:36 -0400
committerJake Petroules <jake.petroules@petroules.com>2013-04-15 15:47:05 +0200
commitdbbe46bf04399c6f4943a5c622c470b6d55809e6 (patch)
tree591bd009c75cbb662bc94d77ea5ac8e0cef6c5fc /src
parentfd69d80b2c5dd0927c1170f0538c6d4c7692306a (diff)
Add type converters for QUrl/NSURL and QByteArray/NSData.
Change-Id: Idbfaa54faa790c29b206c788159709830d846cb3 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/macextras/qmacfunctions.h12
-rw-r--r--src/macextras/qmacfunctions.mm25
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.