Skip to content

Commit

Permalink
Bugfix: Override accessibility for special IMBObjects, so that contro…
Browse files Browse the repository at this point in the history
…llers do not have to consider numerous edge cases.
  • Loading branch information
peterb180369 committed Sep 19, 2012
1 parent b2d8ff8 commit bad8ee1
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 26 deletions.
6 changes: 6 additions & 0 deletions IMBButtonObject.m
Expand Up @@ -121,6 +121,12 @@ - (BOOL) isDraggable
}


- (IMBResourceAccessibility) accessibility
{
return kIMBResourceIsAccessible;
}


//----------------------------------------------------------------------------------------------------------------------


Expand Down
9 changes: 3 additions & 6 deletions IMBImageBrowserCell.m
Expand Up @@ -300,25 +300,22 @@ - (CALayer *) layerForType:(NSString*) type
layer.frame = CGRectMake(0, 0, frame.size.width, frame.size.height);

IMBObject* item = (IMBObject*) [self representedItem];
BOOL isButtonObject = [item isKindOfClass:[IMBButtonObject class]];
BOOL isNodeObject = [item isKindOfClass:[IMBNodeObject class]];
BOOL isNormalObject = !(isButtonObject || isNodeObject);

// Display warning or error sign badge if resource that thumbnail is representing is not accessible

CGImageRef imageRef = NULL;

if (item.accessibility == kIMBResourceDoesNotExist && isNormalObject)
if (item.accessibility == kIMBResourceDoesNotExist)
{
imageRef = [NSImage imb_CGImageNamed:@"IMBStopIcon.icns"];
[layer addSublayer: [self imb_layerWithBadge:imageRef inRect:relativeImageFrame]];
}
else if (item.accessibility == kIMBResourceNoPermission && isNormalObject)
else if (item.accessibility == kIMBResourceNoPermission)
{
imageRef = [NSImage imb_CGImageNamed:@"warning.tiff"];
[layer addSublayer: [self imb_layerWithBadge:imageRef inRect:relativeImageFrame]];
}
else if (item.accessibility == kIMBResourceIsAccessible && isNormalObject)
else if (item.accessibility == kIMBResourceIsAccessible)
{
// Display any kind of badge if host app wants us to (should not exceed 16x16 points)

Expand Down
9 changes: 9 additions & 0 deletions IMBLinkObject.m
Expand Up @@ -181,4 +181,13 @@ - (NSURL*) previewItemURL
//----------------------------------------------------------------------------------------------------------------------


- (IMBResourceAccessibility) accessibility
{
return kIMBResourceIsAccessible;
}


//----------------------------------------------------------------------------------------------------------------------


@end
6 changes: 6 additions & 0 deletions IMBNodeObject.m
Expand Up @@ -145,6 +145,12 @@ - (BOOL) isDraggable
}


- (IMBResourceAccessibility) accessibility
{
return kIMBResourceIsAccessible;
}


//----------------------------------------------------------------------------------------------------------------------


Expand Down
32 changes: 12 additions & 20 deletions IMBObjectViewController.m
Expand Up @@ -1167,9 +1167,6 @@ - (NSImage*) draggedImageForController:(IMBObjectViewController*)inController dr
- (void) tableView:(NSTableView*)inTableView willDisplayCell:(id)inCell forTableColumn:(NSTableColumn*)inTableColumn row:(NSInteger)inRow
{
IMBObject* object = [[ibObjectArrayController arrangedObjects] objectAtIndex:inRow];
BOOL isButtonObject = [object isKindOfClass:[IMBButtonObject class]];
BOOL isNodeObject = [object isKindOfClass:[IMBNodeObject class]];
BOOL isNormalObject = !(isButtonObject || isNodeObject);
NSString* columnIdentifier = [inTableColumn identifier];

// If we are in combo view, then assign thumbnail, title, subd subtitle (metadataDescription). If they are
Expand Down Expand Up @@ -1206,12 +1203,12 @@ - (void) tableView:(NSTableView*)inTableView willDisplayCell:(id)inCell forTable

if ([inCell respondsToSelector:@selector(setBadge:)])
{
if (object.accessibility == kIMBResourceDoesNotExist && isNormalObject)
if (object.accessibility == kIMBResourceDoesNotExist)
{
CGImageRef stop = [NSImage imb_CGImageNamed:@"IMBStopIcon.icns"];
[inCell setBadge:stop];
}
else if (object.accessibility == kIMBResourceNoPermission && isNormalObject)
else if (object.accessibility == kIMBResourceNoPermission)
{
CGImageRef warning = [NSImage imb_CGImageNamed:@"warning.tiff"];
[inCell setBadge:warning];
Expand All @@ -1224,12 +1221,12 @@ - (void) tableView:(NSTableView*)inTableView willDisplayCell:(id)inCell forTable

if ([columnIdentifier isEqualToString:@"icon"] && [inCell isKindOfClass:[NSImageCell class]])
{
if (object.accessibility == kIMBResourceDoesNotExist && isNormalObject)
if (object.accessibility == kIMBResourceDoesNotExist)
{
NSImage* stop = [NSImage imb_imageNamed:@"IMBStopIcon.icns"];
[inCell setImage:stop];
}
else if (object.accessibility == kIMBResourceNoPermission && isNormalObject)
else if (object.accessibility == kIMBResourceNoPermission)
{
NSImage* warning = [NSImage imb_imageNamed:@"warning.tiff"];
[inCell setImage:warning];
Expand Down Expand Up @@ -1375,17 +1372,16 @@ - (IBAction) tableViewWasDoubleClicked:(id)inSender

if (object != nil)
{
switch (object.accessibility)
if (object.accessibility == kIMBResourceDoesNotExist)
{
case kIMBResourceDoesNotExist:
[IMBAccessRightsViewController showMissingResourceAlertForObject:object view:view relativeToRect:rect];
break;
case kIMBResourceNoPermission:
}
else if (object.accessibility == kIMBResourceNoPermission)
{
[[IMBAccessRightsViewController sharedViewController] grantAccessRightsForObjectsOfNode:self.currentNode];
break;
case kIMBResourceIsAccessible:
}
else
{
if ([delegate respondsToSelector:@selector(libraryController:didDoubleClickSelectedObjects:inNode:)])
{
IMBNode* node = self.currentNode;
Expand All @@ -1411,11 +1407,7 @@ - (IBAction) tableViewWasDoubleClicked:(id)inSender
[self openSelectedObjects:inSender];
}
}
break;

default:
break;
}
}
}
}

Expand Down

0 comments on commit bad8ee1

Please sign in to comment.