Declare Cocoa conversion funcs in objc-mode only.
In practice, there are several ways to forward-declare
objective-c classes. Qt uses "struct objc_object",
other projects may use a plain "class". Mismatched
forward declarations will lead to compile errors,
and this is a form of header pollution.
dd5e40d9
added a workaround where Q_FORWARD_DECLARE_OBJC_CLASS
can be predefined in order to sync up the declarations.
Make forward declaration clashes less likely by
forward-declaring in objc-mode only.
Change-Id: I9f7a399d64dc88bfe05d5385b3d46b5302112aef
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
This commit is contained in:
parent
2eb1e28a90
commit
fc26b053df
@ -51,8 +51,10 @@
|
||||
#include <QtCore/qglobal.h>
|
||||
|
||||
#ifdef Q_OS_MAC
|
||||
Q_FORWARD_DECLARE_OBJC_CLASS(NSURL);
|
||||
Q_FORWARD_DECLARE_CF_TYPE(CFURL);
|
||||
# ifdef __OBJC__
|
||||
Q_FORWARD_DECLARE_OBJC_CLASS(NSURL);
|
||||
# endif
|
||||
#endif
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
@ -265,8 +267,10 @@ public:
|
||||
#if defined(Q_OS_MAC) || defined(Q_QDOC)
|
||||
static QUrl fromCFURL(CFURLRef url);
|
||||
CFURLRef toCFURL() const Q_DECL_CF_RETURNS_RETAINED;
|
||||
# if defined(__OBJC__) || defined(Q_QDOC)
|
||||
static QUrl fromNSURL(const NSURL *url);
|
||||
NSURL *toNSURL() const Q_DECL_NS_RETURNS_AUTORELEASED;
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if QT_DEPRECATED_SINCE(5,0)
|
||||
|
@ -65,8 +65,10 @@ namespace std
|
||||
#endif
|
||||
|
||||
#ifdef Q_OS_MAC
|
||||
Q_FORWARD_DECLARE_OBJC_CLASS(NSString);
|
||||
Q_FORWARD_DECLARE_CF_TYPE(CFString);
|
||||
# ifdef __OBJC__
|
||||
Q_FORWARD_DECLARE_OBJC_CLASS(NSString);
|
||||
# endif
|
||||
#endif
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
@ -681,8 +683,10 @@ public:
|
||||
#if defined(Q_OS_MAC) || defined(Q_QDOC)
|
||||
static QString fromCFString(CFStringRef string);
|
||||
CFStringRef toCFString() const Q_DECL_CF_RETURNS_RETAINED;
|
||||
# if defined(__OBJC__) || defined(Q_QDOC)
|
||||
static QString fromNSString(const NSString *string);
|
||||
NSString *toNSString() const Q_DECL_NS_RETURNS_AUTORELEASED;
|
||||
# endif
|
||||
#endif
|
||||
// compatibility
|
||||
struct Null { };
|
||||
|
Loading…
Reference in New Issue
Block a user