From: <ho...@us...> - 2006-08-07 16:34:18
|
Revision: 7292 Author: hofman Date: 2006-08-07 09:34:09 -0700 (Mon, 07 Aug 2006) ViewCVS: http://svn.sourceforge.net/bibdesk/?rev=7292&view=rev Log Message: ----------- Use new methods to add Open With submenu items. Modified Paths: -------------- trunk/bibdesk/BibDocument.m trunk/bibdesk/BibEditor.m trunk/bibdesk/BibPref_Export.m trunk/bibdesk/English.lproj/BibPref_Export.nib/info.nib trunk/bibdesk/English.lproj/BibPref_Export.nib/keyedobjects.nib Modified: trunk/bibdesk/BibDocument.m =================================================================== --- trunk/bibdesk/BibDocument.m 2006-08-07 16:32:11 UTC (rev 7291) +++ trunk/bibdesk/BibDocument.m 2006-08-07 16:34:09 UTC (rev 7292) @@ -2837,7 +2837,6 @@ NSString *tcId = [[[tableView tableColumns] objectAtIndex:column] identifier]; NSURL *theURL; - NSDictionary *representedObject; if([[BibTypeManager sharedManager] isLocalFileField:tcId]){ myMenu = [[fileMenu copyWithZone:[NSMenu menuZone]] autorelease]; @@ -2845,26 +2844,16 @@ [[myMenu itemAtIndex:1] setRepresentedObject:tcId]; theURL = [[shownPublications objectAtIndex:row] URLForField:tcId]; if(nil != theURL){ - theItem = [myMenu insertItemWithTitle:NSLocalizedString(@"Open With",@"Open Local-Url file") - submenuTitle:@"" - submenuDelegate:self - atIndex:1]; - theItem = [[theItem submenu] addItemWithTitle:@"" action:NULL keyEquivalent:@""]; - representedObject = [NSDictionary dictionaryWithObjectsAndKeys:theURL, BDSKMenuTargetURL, nil]; - [theItem setRepresentedObject:representedObject]; + theItem = [myMenu insertItemWithTitle:NSLocalizedString(@"Open With", @"Open with") + andSubmenuOfApplicationsForURL:theURL atIndex:1]; } }else if([[BibTypeManager sharedManager] isRemoteURLField:tcId]){ myMenu = [[URLMenu copyWithZone:[NSMenu menuZone]] autorelease]; [[myMenu itemAtIndex:0] setRepresentedObject:tcId]; theURL = [[shownPublications objectAtIndex:row] URLForField:tcId]; if(nil != theURL){ - theItem = [myMenu insertItemWithTitle:NSLocalizedString(@"Open With",@"Open Local-Url file") - submenuTitle:@"" - submenuDelegate:self - atIndex:1]; - theItem = [[theItem submenu] addItemWithTitle:@"" action:NULL keyEquivalent:@""]; - representedObject = [NSDictionary dictionaryWithObjectsAndKeys:theURL, BDSKMenuTargetURL, nil]; - [theItem setRepresentedObject:representedObject]; + theItem = [myMenu insertItemWithTitle:NSLocalizedString(@"Open With", @"Open with") + andSubmenuOfApplicationsForURL:theURL atIndex:1]; } }else{ myMenu = [[actionMenu copyWithZone:[NSMenu menuZone]] autorelease]; @@ -2895,12 +2884,6 @@ return myMenu; } -- (void)menuNeedsUpdate:(NSMenu *)menu{ - NSURL *theURL = [[[[menu itemArray] lastObject] representedObject] valueForKey:BDSKMenuTargetURL]; - if(theURL != nil) - [menu fillWithApplicationsForURL:theURL]; -} - #pragma mark - #pragma mark Notification handlers Modified: trunk/bibdesk/BibEditor.m =================================================================== --- trunk/bibdesk/BibEditor.m 2006-08-07 16:32:11 UTC (rev 7291) +++ trunk/bibdesk/BibEditor.m 2006-08-07 16:34:09 UTC (rev 7292) @@ -484,11 +484,6 @@ [self updateSafariRecentDownloadsMenu:menu]; } else if([menuTitle isEqualToString:@"safariRecentURLsMenu"]){ [self updateSafariRecentURLsMenu:menu]; - } else { - // should be an "Open With..." submenu - NSString *field = [menu title]; - if(field) - [menu fillWithApplicationsForURL:[theBib URLForField:field]]; } } @@ -527,8 +522,7 @@ theURL = [theBib URLForField:field]; if(nil != theURL){ [menu addItemWithTitle:[NSString stringWithFormat:NSLocalizedString(@"Open %@ With",@"Open Local-Url file"), field] - submenuTitle:field - submenuDelegate:self]; + andSubmenuOfApplicationsForURL:theURL]; } item = [menu addItemWithTitle:[NSString stringWithFormat:NSLocalizedString(@"Reveal %@ in Finder",@"Reveal Local-Url in finder"), field] @@ -579,8 +573,7 @@ theURL = [theBib URLForField:field]; if(nil != theURL){ [menu addItemWithTitle:[NSString stringWithFormat:NSLocalizedString(@"View %@ With",@"Open URL"), field] - submenuTitle:field - submenuDelegate:self]; + andSubmenuOfApplicationsForURL:theURL]; } } Modified: trunk/bibdesk/BibPref_Export.m =================================================================== --- trunk/bibdesk/BibPref_Export.m 2006-08-07 16:32:11 UTC (rev 7291) +++ trunk/bibdesk/BibPref_Export.m 2006-08-07 16:34:09 UTC (rev 7292) @@ -42,8 +42,7 @@ #import "NSFileManager_BDSKExtensions.h" #import "BDSKTemplate.h" #import "BibAppController.h" -#import "NSWorkspace_BDSKExtensions.h" -#import "NSURL_BDSKExtensions.h" +#import "NSMenu_BDSKExtensions.h" static NSString *BDSKTemplateRowsPboardType = @"BDSKTemplateRowsPboardType"; @@ -472,52 +471,24 @@ theURL = [[tv itemAtRow:row] representedFileURL]; if(nil != theURL){ - - NSZone *menuZone = [NSMenu menuZone]; - menu = [[[tv menu] copyWithZone:menuZone] autorelease]; - - NSWorkspace *workspace = [NSWorkspace sharedWorkspace]; - NSEnumerator *appEnum = [[workspace editorAndViewerURLsForURL:theURL] objectEnumerator]; - NSURL *defaultEditorURL = [workspace defaultEditorOrViewerURLForURL:theURL]; NSMenuItem *item; - item = [[NSMenuItem allocWithZone:menuZone] initWithTitle:NSLocalizedString(@"Open With", @"") action:NULL keyEquivalent:@""]; - NSMenu *submenu = [[[NSMenu allocWithZone:menuZone] initWithTitle:@""] autorelease]; - [item setSubmenu:submenu]; - [menu insertItem:item atIndex:0]; - [item release]; - - NSString *menuTitle; + menu = [[[NSMenu allocWithZone:[NSMenu menuZone]] init] autorelease]; - while(theURL = [appEnum nextObject]){ - menuTitle = [theURL lastPathComponent]; - - // mark the default app, if we have one - if([defaultEditorURL isEqual:theURL]) - menuTitle = [menuTitle stringByAppendingString:NSLocalizedString(@" (Default)", @"Need a single leading space")]; - - item = [[NSMenuItem allocWithZone:menuZone] initWithTitle:menuTitle action:@selector(editFile:) keyEquivalent:@""]; - [item setTarget:self]; - [item setRepresentedObject:theURL]; - - // use the application's icon as an image; using [NSImage imageForURL:] doesn't work for some reason - NSImage *image = [workspace iconForFileURL:theURL]; - [image setSize:NSMakeSize(16,16)]; - [item setImage:image]; - [submenu addItem:item]; - [item release]; - } + item = [menu addItemWithTitle:NSLocalizedString(@"Open With", @"Open with") andSubmenuOfApplicationsForURL:theURL]; - // add the choose... item - item = [[NSMenuItem allocWithZone:menuZone] initWithTitle:[NSLocalizedString(@"Choose",@"Choose") stringByAppendingEllipsis] action:@selector(editFile:) keyEquivalent:@""]; + item = [menu addItemWithTitle:NSLocalizedString(@"Reveal in Finder", @"Reveal in Finder") action:@selector(revealInFinder:) keyEquivalent:@""]; [item setTarget:self]; - [item setRepresentedObject:nil]; - [submenu addItem:item]; - [item release]; } return menu; } +- (void)menuNeedsUpdate:(NSMenu *)menu{ + NSURL *theURL = [[[[menu itemArray] lastObject] representedObject] valueForKey:BDSKMenuTargetURL]; + if(theURL != nil) + [menu fillWithApplicationsForURL:theURL]; +} + - (BOOL)validateMenuItem:(id <NSMenuItem>)menuItem; { SEL action = [menuItem action]; Modified: trunk/bibdesk/English.lproj/BibPref_Export.nib/info.nib =================================================================== --- trunk/bibdesk/English.lproj/BibPref_Export.nib/info.nib 2006-08-07 16:32:11 UTC (rev 7291) +++ trunk/bibdesk/English.lproj/BibPref_Export.nib/info.nib 2006-08-07 16:34:09 UTC (rev 7292) @@ -3,22 +3,19 @@ <plist version="1.0"> <dict> <key>IBDocumentLocation</key> - <string>77 132 356 240 0 0 1280 1002 </string> + <string>90 121 356 240 0 0 1440 938 </string> <key>IBEditorPositions</key> <dict> - <key>30</key> - <string>109 502 144 49 0 0 1280 1002 </string> <key>5</key> - <string>382 503 516 357 0 0 1280 1002 </string> + <string>462 462 516 357 0 0 1440 938 </string> </dict> <key>IBFramework Version</key> <string>446.1</string> <key>IBOpenObjects</key> <array> - <integer>30</integer> <integer>5</integer> </array> <key>IBSystem Version</key> - <string>8I127</string> + <string>8J135</string> </dict> </plist> Modified: trunk/bibdesk/English.lproj/BibPref_Export.nib/keyedobjects.nib =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |