summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools
diff options
context:
space:
mode:
authorMorten Johan Sørvig <morten.sorvig@digia.com>2013-10-31 13:03:24 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-11-05 17:37:05 +0100
commitfc26b053df9cbf3886c4c6efc5a678fa1f60b20f (patch)
treec5900aa00aa49a3f6371e601d5a7a97c16baf879 /src/corelib/tools
parent2eb1e28a90eaf82f4405dc65584021f16415014b (diff)
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>
Diffstat (limited to 'src/corelib/tools')
-rw-r--r--src/corelib/tools/qstring.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/corelib/tools/qstring.h b/src/corelib/tools/qstring.h
index 2eaed65148..3140af084b 100644
--- a/src/corelib/tools/qstring.h
+++ b/src/corelib/tools/qstring.h
@@ -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 { };