diff options
author | Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com> | 2015-11-11 15:26:03 +0100 |
---|---|---|
committer | Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com> | 2015-11-16 14:26:43 +0000 |
commit | 2f9effeb64e00325c6d0978c48f2c820021bb414 (patch) | |
tree | a8380ecd57121007ad68e5f9d89580c07efad2ea /tests/auto/other | |
parent | 3d6975af4b0b77f13b5a4f36f82b86ed551aa85a (diff) |
Fix OS X 10.11 (Xcode 7.1) build issues due to strongly typed enums
Apple changed some enums in the 10.11 SDK from being just:
enum { ... }; typedef uint64_t Foo;
to:
typedef CF_ENUM(uint64_t, Foo) { ... };
which in C++11 mode expands to:
typedef enum Foo : uint64_t Foo; enum Foo : uint64_t { ... };
The use of strongly typed enums means we need to explicitly cast from
int in the places where we know what we are doing.
Change-Id: I7c8cfdbc0549471a3292de14d8b766fe17133e25
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Diffstat (limited to 'tests/auto/other')
-rw-r--r-- | tests/auto/other/macnativeevents/qnativeevents_mac.cpp | 29 | ||||
-rw-r--r-- | tests/auto/other/qaccessibilitymac/tst_qaccessibilitymac_helpers.mm | 12 |
2 files changed, 25 insertions, 16 deletions
diff --git a/tests/auto/other/macnativeevents/qnativeevents_mac.cpp b/tests/auto/other/macnativeevents/qnativeevents_mac.cpp index 6053a649a1..d3b50a5405 100644 --- a/tests/auto/other/macnativeevents/qnativeevents_mac.cpp +++ b/tests/auto/other/macnativeevents/qnativeevents_mac.cpp @@ -56,15 +56,15 @@ static Qt::KeyboardModifiers getModifiersFromQuartzEvent(CGEventRef inEvent) static void setModifiersFromQNativeEvent(CGEventRef inEvent, const QNativeEvent &event) { - CGEventFlags flags = 0; + CGEventFlags flags = CGEventFlags(0); if (event.modifiers.testFlag(Qt::ShiftModifier)) - flags |= kCGEventFlagMaskShift; + flags = CGEventFlags(flags | kCGEventFlagMaskShift); if (event.modifiers.testFlag(Qt::ControlModifier)) - flags |= kCGEventFlagMaskControl; + flags = CGEventFlags(flags | kCGEventFlagMaskControl); if (event.modifiers.testFlag(Qt::AltModifier)) - flags |= kCGEventFlagMaskAlternate; + flags = CGEventFlags(flags | kCGEventFlagMaskAlternate); if (event.modifiers.testFlag(Qt::MetaModifier)) - flags |= kCGEventFlagMaskCommand; + flags = CGEventFlags(flags | kCGEventFlagMaskCommand); CGEventSetFlags(inEvent, flags); } @@ -240,7 +240,7 @@ Qt::Native::Status sendNativeMouseMoveEvent_Quartz(const QNativeMouseMoveEvent & pos.x = event.globalPos.x(); pos.y = event.globalPos.y(); - CGEventRef e = CGEventCreateMouseEvent(0, kCGEventMouseMoved, pos, 0); + CGEventRef e = CGEventCreateMouseEvent(0, kCGEventMouseMoved, pos, kCGMouseButtonLeft /* ignored */); setModifiersFromQNativeEvent(e, event); CGEventPost(kCGHIDEventTap, e); CFRelease(e); @@ -253,7 +253,7 @@ Qt::Native::Status sendNativeMouseButtonEvent_Quartz(const QNativeMouseButtonEve pos.x = event.globalPos.x(); pos.y = event.globalPos.y(); - CGEventType type = 0; + CGEventType type = kCGEventNull; if (event.button == Qt::LeftButton) type = (event.clickCount > 0) ? kCGEventLeftMouseDown : kCGEventLeftMouseUp; else if (event.button == Qt::RightButton) @@ -261,7 +261,12 @@ Qt::Native::Status sendNativeMouseButtonEvent_Quartz(const QNativeMouseButtonEve else type = (event.clickCount > 0) ? kCGEventOtherMouseDown : kCGEventOtherMouseUp; - CGEventRef e = CGEventCreateMouseEvent(0, type, pos, event.button); + // The mouseButton argument to CGEventCreateMouseEvent() is ignored unless the type + // is kCGEventOtherSomething, so defaulting to kCGMouseButtonLeft is fine. + CGMouseButton mouseButton = (type == kCGEventOtherMouseDown || type == kCGEventOtherMouseUp) ? + kCGMouseButtonCenter : kCGMouseButtonLeft; + + CGEventRef e = CGEventCreateMouseEvent(0, type, pos, mouseButton); setModifiersFromQNativeEvent(e, event); CGEventSetIntegerValueField(e, kCGMouseEventClickState, event.clickCount); CGEventPost(kCGHIDEventTap, e); @@ -275,7 +280,7 @@ Qt::Native::Status sendNativeMouseDragEvent_Quartz(const QNativeMouseDragEvent & pos.x = event.globalPos.x(); pos.y = event.globalPos.y(); - CGEventType type = 0; + CGEventType type = kCGEventNull; if (event.button == Qt::LeftButton) type = kCGEventLeftMouseDragged; else if (event.button == Qt::RightButton) @@ -283,7 +288,11 @@ Qt::Native::Status sendNativeMouseDragEvent_Quartz(const QNativeMouseDragEvent & else type = kCGEventOtherMouseDragged; - CGEventRef e = CGEventCreateMouseEvent(0, type, pos, event.button); + // The mouseButton argument to CGEventCreateMouseEvent() is ignored unless the type + // is kCGEventOtherSomething, so defaulting to kCGMouseButtonLeft is fine. + CGMouseButton mouseButton = type == kCGEventOtherMouseDragged ? kCGMouseButtonCenter : kCGMouseButtonLeft; + + CGEventRef e = CGEventCreateMouseEvent(0, type, pos, mouseButton); setModifiersFromQNativeEvent(e, event); CGEventPost(kCGHIDEventTap, e); CFRelease(e); diff --git a/tests/auto/other/qaccessibilitymac/tst_qaccessibilitymac_helpers.mm b/tests/auto/other/qaccessibilitymac/tst_qaccessibilitymac_helpers.mm index 3056904dcf..65dbff4f92 100644 --- a/tests/auto/other/qaccessibilitymac/tst_qaccessibilitymac_helpers.mm +++ b/tests/auto/other/qaccessibilitymac/tst_qaccessibilitymac_helpers.mm @@ -199,7 +199,7 @@ QDebug operator<<(QDebug dbg, AXErrorTag err) CFRange cfRange; NSRange range = NSMakeRange(0, 0); - if (!AXValueGetValue((AXValueRef)value, kAXValueCFRangeType, &cfRange)) + if (!AXValueGetValue(AXValueRef(value), AXValueType(kAXValueCFRangeType), &cfRange)) qDebug() << "Could not get CFRange value out of AXValueRef"; else if (cfRange.location < 0 || cfRange.length < 0) qDebug() << "Cannot convert CFRange with negative location or length to NSRange"; @@ -217,7 +217,7 @@ QDebug operator<<(QDebug dbg, AXErrorTag err) + (NSRect)_rectFromValue:(CFTypeRef)value { NSRect rect = NSMakeRect(0, 0, 0, 0); - if (!AXValueGetValue((AXValueRef)value, kAXValueCGRectType, reinterpret_cast<CGRect*>(&rect))) + if (!AXValueGetValue(AXValueRef(value), AXValueType(kAXValueCGRectType), reinterpret_cast<CGRect*>(&rect))) { qDebug() << "Could not get CGRect value out of AXValueRef"; } @@ -227,7 +227,7 @@ QDebug operator<<(QDebug dbg, AXErrorTag err) + (NSPoint)_pointFromValue:(CFTypeRef)value { NSPoint point = NSMakePoint(0, 0); - if (!AXValueGetValue((AXValueRef)value, kAXValueCGPointType, reinterpret_cast<CGPoint*>(&point))) + if (!AXValueGetValue(AXValueRef(value), AXValueType(kAXValueCGPointType), reinterpret_cast<CGPoint*>(&point))) { qDebug() << "Could not get CGPoint value out of AXValueRef"; } @@ -237,7 +237,7 @@ QDebug operator<<(QDebug dbg, AXErrorTag err) + (NSSize)_sizeFromValue:(CFTypeRef)value { NSSize size = NSMakeSize(0, 0); - if (!AXValueGetValue((AXValueRef)value, kAXValueCGSizeType, reinterpret_cast<CGSize*>(&size))) + if (!AXValueGetValue(AXValueRef(value), AXValueType(kAXValueCGSizeType), reinterpret_cast<CGSize*>(&size))) { qDebug() << "Could not get CGSize value out of AXValueRef"; } @@ -308,7 +308,7 @@ QDebug operator<<(QDebug dbg, AXErrorTag err) - (CFTypeRef)_attributeValue:(CFStringRef)attribute forRange:(NSRange)aRange { CFRange cfRange = CFRangeMake(aRange.location, aRange.length); - AXValueRef range = AXValueCreate(kAXValueCFRangeType, &cfRange); + AXValueRef range = AXValueCreate(AXValueType(kAXValueCFRangeType), &cfRange); CFTypeRef value = [self _attributeValue:attribute forParameter:range]; CFRelease(range); return value; @@ -324,7 +324,7 @@ QDebug operator<<(QDebug dbg, AXErrorTag err) - (CFTypeRef)_attributeValue:(CFStringRef)attribute forPoint:(CGPoint)aPoint { - AXValueRef point = AXValueCreate(kAXValueCGPointType, &aPoint); + AXValueRef point = AXValueCreate(AXValueType(kAXValueCGPointType), &aPoint); CFTypeRef value = [self _attributeValue:attribute forParameter:point]; CFRelease(point); return value; |