From: <ho...@us...> - 2008-02-28 17:33:42
|
Revision: 12886 http://bibdesk.svn.sourceforge.net/bibdesk/?rev=12886&view=rev Author: hofman Date: 2008-02-28 09:33:45 -0800 (Thu, 28 Feb 2008) Log Message: ----------- Improved support for bdsksearch URL. Custom initializer of a search group from a URL. Context menu item to copy URL for an external group. Modified Paths: -------------- trunk/bibdesk/BDSKAppController.m trunk/bibdesk/BDSKSearchGroup.h trunk/bibdesk/BDSKSearchGroup.m trunk/bibdesk/BDSKServerInfo.m trunk/bibdesk/BibDocument+Menus.m trunk/bibdesk/BibDocument_Groups.h trunk/bibdesk/BibDocument_Groups.m trunk/bibdesk/English.lproj/BibDocument.nib/classes.nib trunk/bibdesk/English.lproj/BibDocument.nib/info.nib trunk/bibdesk/English.lproj/BibDocument.nib/keyedobjects.nib Modified: trunk/bibdesk/BDSKAppController.m =================================================================== --- trunk/bibdesk/BDSKAppController.m 2008-02-28 15:06:54 UTC (rev 12885) +++ trunk/bibdesk/BDSKAppController.m 2008-02-28 17:33:45 UTC (rev 12886) @@ -1040,88 +1040,26 @@ - (void)handleGetURLEvent:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEventDescriptor *)replyEvent{ NSString *theURLString = [[event descriptorForKeyword:keyDirectObject] stringValue]; NSURL *theURL = theURLString ? [NSURL URLWithString:theURLString] : nil; + BibDocument *document = nil; + NSError *error = nil; if ([[theURL scheme] isEqualToString:@"bdsk"]) { + NSString *citeKey = [[theURLString substringFromIndex:7] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSString *path = [[NSFileManager defaultManager] spotlightCacheFilePathWithCiteKey:citeKey]; - NSURL *fileURL = path ? [NSURL fileURLWithPath:path] : nil; - BibDocument *document = nil; - NSError *error = nil; + NSURL *fileURL; - if (path == nil) { - error = [NSError mutableLocalErrorWithCode:kBDSKURLOperationFailed localizedDescription:NSLocalizedString(@"Unable to get item from bdsk:// URL.", @"error when opening bdskURL")]; - } else { + if (path && (fileURL = [NSURL fileURLWithPath:path])) { document = [[NSDocumentController sharedDocumentController] openDocumentWithContentsOfURL:fileURL display:YES error:&error]; + } else { + error = [NSError mutableLocalErrorWithCode:kBDSKURLOperationFailed localizedDescription:NSLocalizedString(@"Unable to get item from bdsk:// URL.", @"error when opening bdskURL")]; } - if (document == nil && error) - [NSApp presentError:error]; - } else if ([[theURL scheme] isEqualToString:@"bdsksearch"]) { - NSString *host = [[theURL host] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; - NSNumber *port = [theURL port]; - NSString *path = [[theURL path] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; - NSString *database = [path hasPrefix:@"/"] ? [path substringFromIndex:1] : @""; - NSString *name = database; - NSString *query = [theURL query]; - NSString *password = [theURL password]; - NSString *username = [theURL user]; - NSString *searchTerm = nil; - NSString *type = BDSKSearchGroupZoom; - NSMutableDictionary *options = [NSMutableDictionary dictionary]; - NSEnumerator *queryEnum = [[query componentsSeparatedByString:@"&"] objectEnumerator]; + BDSKSearchGroup *group = [[BDSKSearchGroup alloc] initWithURL:theURL]; - if (port == nil) { - if ([type caseInsensitiveCompare:BDSKSearchGroupEntrez]) - type = BDSKSearchGroupEntrez; - else if ([type caseInsensitiveCompare:BDSKSearchGroupISI]) - type = BDSKSearchGroupISI; - } - - while (query = [queryEnum nextObject]) { - unsigned int idx = [query rangeOfString:@"="].location; - if (idx != NSNotFound && idx > 0) { - NSString *key = [query substringToIndex:idx]; - NSString *value = [[query substringFromIndex:idx + 1] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; - if ([key caseInsensitiveCompare:@"searchTerm"] == NSOrderedSame || [key caseInsensitiveCompare:@"term"] == NSOrderedSame) - searchTerm = value; - else if ([key caseInsensitiveCompare:@"name"] == NSOrderedSame) - name = value; - else if ([key caseInsensitiveCompare:@"password"] == NSOrderedSame) - password = value; - else if ([key caseInsensitiveCompare:@"username"] == NSOrderedSame) - username = value; - else if ([key caseInsensitiveCompare:@"recordSyntax"] == NSOrderedSame) - [options setValue:value forKey:@"recordSyntax"]; - else if ([key caseInsensitiveCompare:@"resultEncoding"] == NSOrderedSame) - [options setValue:value forKey:@"resultEncoding"]; - else if ([key caseInsensitiveCompare:@"removeDiacritics"] == NSOrderedSame) - [options setValue:[NSNumber numberWithBool:[value boolValue]] forKey:@"removeDiacritics"]; - else - [options setValue:value forKey:key]; - } - } - - NSMutableDictionary *info = [NSMutableDictionary dictionaryWithCapacity:7]; - [info setValue:type forKey:@"type"]; - [info setValue:name forKey:@"name"]; - [info setValue:database forKey:@"database"]; - if ([type isEqualToString:BDSKSearchGroupZoom]) { - [info setValue:host forKey:@"host"]; - [info setValue:port forKey:@"port"]; - [info setValue:password forKey:@"password"]; - [info setValue:username forKey:@"username"]; - [info setValue:options forKey:@"options"]; - } - - BDSKSearchGroup *group = [[BDSKSearchGroup alloc] initWithDictionary:info]; - BibDocument *document = nil; - NSError *error = nil; - - if (nil == group) { - error = [NSError mutableLocalErrorWithCode:kBDSKURLOperationFailed localizedDescription:NSLocalizedString(@"Unable to get search group from bdsksearch:// URL.", @"error when opening bdsksearch URL")]; - } else { + if (group) { // try the main document first document = [[NSDocumentController sharedDocumentController] mainDocument]; if (nil == document) { @@ -1131,11 +1069,13 @@ [[document groups] addSearchGroup:group]; [group release]; + } else { + error = [NSError mutableLocalErrorWithCode:kBDSKURLOperationFailed localizedDescription:NSLocalizedString(@"Unable to get search group from bdsksearch:// URL.", @"error when opening bdsksearch URL")]; } - - if (document == nil && error) - [NSApp presentError:error]; } + + if (document == nil && error) + [NSApp presentError:error]; } #pragma mark Service code Modified: trunk/bibdesk/BDSKSearchGroup.h =================================================================== --- trunk/bibdesk/BDSKSearchGroup.h 2008-02-28 15:06:54 UTC (rev 12885) +++ trunk/bibdesk/BDSKSearchGroup.h 2008-02-28 17:33:45 UTC (rev 12886) @@ -74,6 +74,7 @@ - (id)initWithName:(NSString *)aName; - (id)initWithType:(NSString *)aType serverInfo:(BDSKServerInfo *)info searchTerm:(NSString *)string; +- (id)initWithURL:(NSURL *)bdsksearchURL; - (BDSKPublicationsArray *)publications; - (void)setPublications:(NSArray *)newPublications; @@ -100,4 +101,6 @@ - (void)resetServerWithInfo:(BDSKServerInfo *)info; - (NSFormatter *)searchStringFormatter; +- (NSURL *)bdsksearchURL; + @end Modified: trunk/bibdesk/BDSKSearchGroup.m =================================================================== --- trunk/bibdesk/BDSKSearchGroup.m 2008-02-28 15:06:54 UTC (rev 12885) +++ trunk/bibdesk/BDSKSearchGroup.m 2008-02-28 17:33:45 UTC (rev 12886) @@ -100,6 +100,73 @@ return self; } +- (id)initWithURL:(NSURL *)bdsksearchURL { + OBPRECONDITION([[bdsksearchURL scheme] isEqualToString:@"bdsksearch"]); + + NSString *aHost = [[bdsksearchURL host] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; + NSString *aPort = [[bdsksearchURL port] stringValue]; + NSString *aPath = [[bdsksearchURL path] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; + NSString *aDatabase = [aPath hasPrefix:@"/"] ? [aPath substringFromIndex:1] : aPath ? aPath : @""; + NSString *aName = aDatabase; + NSString *query = [bdsksearchURL query]; + NSString *aSearchTerm = nil; + NSString *aType = BDSKSearchGroupZoom; + NSMutableDictionary *options = [NSMutableDictionary dictionary]; + NSEnumerator *queryEnum = [[query componentsSeparatedByString:@"&"] objectEnumerator]; + + [options setValue:[bdsksearchURL password] forKey:@"password"]; + [options setValue:[bdsksearchURL user] forKey:@"username"]; + + if (aPort == nil) { + if ([aType caseInsensitiveCompare:BDSKSearchGroupEntrez]) + aType = BDSKSearchGroupEntrez; + else if ([aType caseInsensitiveCompare:BDSKSearchGroupISI]) + aType = BDSKSearchGroupISI; + } + + while (query = [queryEnum nextObject]) { + unsigned int idx = [query rangeOfString:@"="].location; + if (idx != NSNotFound && idx > 0) { + NSString *key = [query substringToIndex:idx]; + NSString *value = [[query substringFromIndex:idx + 1] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; + if ([key caseInsensitiveCompare:@"searchTerm"] == NSOrderedSame || [key caseInsensitiveCompare:@"term"] == NSOrderedSame) { + aSearchTerm = value; + } else if ([key caseInsensitiveCompare:@"name"] == NSOrderedSame) { + aName = value; + } else { + if ([key caseInsensitiveCompare:@"password"] == NSOrderedSame) { + key = @"password"; + } else if ([key caseInsensitiveCompare:@"username"] == NSOrderedSame) { + key = @"username"; + } else if ([key caseInsensitiveCompare:@"recordSyntax"] == NSOrderedSame) { + key = @"recordSyntax"; + } else if ([key caseInsensitiveCompare:@"resultEncoding"] == NSOrderedSame) { + key = @"resultEncoding"; + } else if ([key caseInsensitiveCompare:@"removeDiacritics"] == NSOrderedSame) { + key = @"removeDiacritics"; + if ([value boolValue]) + value = @"YES"; + else continue; + } + [options setValue:value forKey:key]; + } + } + } + + NSMutableDictionary *dictionary = [NSMutableDictionary dictionaryWithCapacity:7]; + [dictionary setValue:aType forKey:@"type"]; + [dictionary setValue:aName forKey:@"name"]; + [dictionary setValue:aDatabase forKey:@"database"]; + [dictionary setValue:aSearchTerm forKey:@"search term"]; + if ([aType isEqualToString:BDSKSearchGroupZoom]) { + [dictionary setValue:aHost forKey:@"host"]; + [dictionary setValue:aPort forKey:@"port"]; + [dictionary setValue:options forKey:@"options"]; + } + + return [self initWithDictionary:dictionary]; +} + - (NSDictionary *)dictionaryValue { NSMutableDictionary *groupDict = [[[self serverInfo] dictionaryValue] mutableCopy]; @@ -352,4 +419,26 @@ return [server numberOfAvailableResults] > [server numberOfFetchedResults]; } +- (NSURL *)bdsksearchURL { + NSMutableString *string = [NSMutableString stringWithString:@"bdsksearch://"]; + BDSKServerInfo *serverInfo = [self serverInfo]; + if ([serverInfo isZoom]) + [string appendFormat:@"%@:%@", [serverInfo host], [serverInfo port]]; + else + [string appendString:type]; + [string appendFormat:@"/%@", [[serverInfo database] stringByAddingPercentEscapes]]; + [string appendFormat:@"?name=%@", [[serverInfo name] stringByAddingPercentEscapes]]; + if ([serverInfo isZoom]) { + NSEnumerator *keyEnum = [[serverInfo options] keyEnumerator]; + NSString *key; + while (key = [keyEnum nextObject]) { + NSString *value = [[serverInfo options] objectForKey:key]; + if ([key isEqualToString:@"removeDiacritics"]) + value = [serverInfo removeDiacritics] ? @"y" : @"n"; + [string appendFormat:@"&%@=%@", key, [value stringByAddingPercentEscapes]]; + } + } + return [NSURL URLWithString:string]; +} + @end Modified: trunk/bibdesk/BDSKServerInfo.m =================================================================== --- trunk/bibdesk/BDSKServerInfo.m 2008-02-28 15:06:54 UTC (rev 12885) +++ trunk/bibdesk/BDSKServerInfo.m 2008-02-28 17:33:45 UTC (rev 12886) @@ -149,8 +149,6 @@ if ([self isZoom]) { [info setValue:[self host] forKey:@"host"]; [info setValue:[self port] forKey:@"port"]; - [info setValue:[self password] forKey:@"password"]; - [info setValue:[self username] forKey:@"username"]; [info setValue:[self options] forKey:@"options"]; } return info; Modified: trunk/bibdesk/BibDocument+Menus.m =================================================================== --- trunk/bibdesk/BibDocument+Menus.m 2008-02-28 15:06:54 UTC (rev 12885) +++ trunk/bibdesk/BibDocument+Menus.m 2008-02-28 17:33:45 UTC (rev 12886) @@ -404,6 +404,14 @@ } } +- (BOOL) validateCopyGroupURLMenuItem:(NSMenuItem *)menuItem{ + if ([self hasSearchGroupsSelected] || [self hasURLGroupsSelected] || [self hasScriptGroupsSelected]) { + return YES; + } else { + return NO; + } +} + - (BOOL) validateEditGroupMenuItem:(NSMenuItem *)menuItem{ if ([documentWindow isKeyWindow] == NO) return NO; @@ -756,6 +764,9 @@ else if (act == @selector(renameGroupAction:)) { return [self validateRenameGroupMenuItem:menuItem]; } + else if (act == @selector(copyGroupURLAction:)) { + return [self validateCopyGroupURLMenuItem:menuItem]; + } else if (act == @selector(removeGroupFieldAction:)) { // don't allow the removal of the last item return ([[menuItem menu] numberOfItems] > 4); Modified: trunk/bibdesk/BibDocument_Groups.h =================================================================== --- trunk/bibdesk/BibDocument_Groups.h 2008-02-28 15:06:54 UTC (rev 12885) +++ trunk/bibdesk/BibDocument_Groups.h 2008-02-28 17:33:45 UTC (rev 12886) @@ -110,6 +110,7 @@ - (void)editGroupAtRow:(int)row; - (IBAction)editGroupAction:(id)sender; - (IBAction)renameGroupAction:(id)sender; +- (IBAction)copyGroupURLAction:(id)sender; - (IBAction)selectLibraryGroup:(id)sender; - (IBAction)changeIntersectGroupsAction:(id)sender; - (IBAction)editNewStaticGroupWithSelection:(id)sender; Modified: trunk/bibdesk/BibDocument_Groups.m =================================================================== --- trunk/bibdesk/BibDocument_Groups.m 2008-02-28 15:06:54 UTC (rev 12885) +++ trunk/bibdesk/BibDocument_Groups.m 2008-02-28 17:33:45 UTC (rev 12886) @@ -81,6 +81,15 @@ #import "BDSKSearchButtonController.h" #import "BDSKSharingClient.h" + +// Private WebKit class to read and write URLs with titles. I really see no reason why this is not API other than to annoy us, it's even open source +@interface WebURLsWithTitles : NSObject ++ (void)writeURLs:(NSArray *)URLs andTitles:(NSArray *)titles toPasteboard:(NSPasteboard *)pasteboard; ++ (NSArray *)URLsFromPasteboard:(NSPasteboard *)pasteboard; ++ (NSArray *)titlesFromPasteboard:(NSPasteboard *)pasteboard; +@end + + @implementation BibDocument (Groups) #pragma mark Selected group types @@ -1233,6 +1242,40 @@ } +- (IBAction)copyGroupURLAction:(id)sender { + if ([self hasExternalGroupsSelected] == NO) { + NSBeep(); + return; + } + id group = [[self selectedGroups] lastObject]; + NSURL *url = nil; + NSString *title = nil; + if ([group isSearch]) { + url = [(BDSKSearchGroup *)group bdsksearchURL]; + title = [[(BDSKSearchGroup *)group serverInfo] name]; + } else if ([group isURL]) { + url = [(BDSKURLGroup *)group URL]; + } else if ([group isScript] && [(BDSKScriptGroup *)group scriptPath]) { + url = [NSURL fileURLWithPath:[(BDSKScriptGroup *)group scriptPath]]; + } + if (url == nil) { + NSBeep(); + return; + } + NSPasteboard *pboard = [NSPasteboard generalPasteboard]; + Class WebURLsWithTitlesClass = NSClassFromString(@"WebURLsWithTitles"); + if (WebURLsWithTitlesClass && [WebURLsWithTitlesClass respondsToSelector:@selector(writeURLs:andTitles:toPasteboard:)]) { + if (title == nil) + title = [[url path] lastPathComponent]; + [pboard declareTypes:[NSArray arrayWithObjects:@"WebURLsWithTitlesPboardType", NSURLPboardType, nil] owner:nil]; + [WebURLsWithTitlesClass writeURLs:[NSArray arrayWithObjects:url, nil] andTitles:[NSArray arrayWithObjects:title, nil] toPasteboard:pboard]; + [url writeToPasteboard:pboard]; + } else { + [pboard declareTypes:[NSArray arrayWithObject:NSURLPboardType] owner:nil]; + [url writeToPasteboard:pboard]; + } +} + - (IBAction)selectLibraryGroup:(id)sender { [groupTableView deselectAll:sender]; } Modified: trunk/bibdesk/English.lproj/BibDocument.nib/classes.nib =================================================================== --- trunk/bibdesk/English.lproj/BibDocument.nib/classes.nib 2008-02-28 15:06:54 UTC (rev 12885) +++ trunk/bibdesk/English.lproj/BibDocument.nib/classes.nib 2008-02-28 17:33:45 UTC (rev 12886) @@ -1,515 +1,289 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>IBClasses</key> - <array> - <dict> - <key>ACTIONS</key> - <dict> - <key>addBookmark</key> - <string>id</string> - <key>addGroupButtonAction</key> - <string>id</string> - <key>addGroupFieldAction</key> - <string>id</string> - <key>addScriptGroupAction</key> - <string>id</string> - <key>addSearchBookmark</key> - <string>id</string> - <key>addSearchGroupAction</key> - <string>id</string> - <key>addSmartGroupAction</key> - <string>id</string> - <key>addStaticGroupAction</key> - <string>id</string> - <key>addURLGroupAction</key> - <string>id</string> - <key>alternateCut</key> - <string>id</string> - <key>alternateDelete</key> - <string>id</string> - <key>changeGroupFieldAction</key> - <string>id</string> - <key>changeGroupTableFont</key> - <string>id</string> - <key>changeIntersectGroupsAction</key> - <string>id</string> - <key>changeMainTableFont</key> - <string>id</string> - <key>changePreviewDisplay</key> - <string>id</string> - <key>changeSearchType</key> - <string>id</string> - <key>consolidateLinkedFiles</key> - <string>id</string> - <key>copyAsAction</key> - <string>id</string> - <key>copyNotesForLinkedFile</key> - <string>id</string> - <key>copyNotesForLocalURL</key> - <string>id</string> - <key>createNewPubUsingCrossrefAction</key> - <string>id</string> - <key>deleteSelectedPubs</key> - <string>id</string> - <key>deselectAllPublications</key> - <string>id</string> - <key>dismissSearchBookmarkSheet</key> - <string>id</string> - <key>duplicate</key> - <string>id</string> - <key>duplicateTitleToBooktitle</key> - <string>id</string> - <key>editAction</key> - <string>id</string> - <key>editGroupAction</key> - <string>id</string> - <key>editNewCategoryGroupWithSelection</key> - <string>id</string> - <key>editNewGroupWithSelection</key> - <string>id</string> - <key>editNewStaticGroupWithSelection</key> - <string>id</string> - <key>editPubCmd</key> - <string>id</string> - <key>editPubOrOpenURLAction</key> - <string>id</string> - <key>emailPubCmd</key> - <string>id</string> - <key>generateCiteKey</key> - <string>id</string> - <key>importFromFileAction</key> - <string>id</string> - <key>importFromPasteboardAction</key> - <string>id</string> - <key>importFromWebAction</key> - <string>id</string> - <key>makeSearchFieldKey</key> - <string>id</string> - <key>mergeInExternalGroup</key> - <string>id</string> - <key>mergeInExternalPublications</key> - <string>id</string> - <key>migrateFiles</key> - <string>id</string> - <key>newPub</key> - <string>id</string> - <key>newSearchGroupFromBookmark</key> - <string>id</string> - <key>openBookmark</key> - <string>id</string> - <key>openLinkedFile</key> - <string>id</string> - <key>openLinkedURL</key> - <string>id</string> - <key>openLocalURL</key> - <string>id</string> - <key>openRemoteURL</key> - <string>id</string> - <key>pageDownInPreview</key> - <string>id</string> - <key>pageUpInPreview</key> - <string>id</string> - <key>performFindPanelAction</key> - <string>id</string> - <key>postItemToWeblog</key> - <string>id</string> - <key>previewAction</key> - <string>id</string> - <key>refreshAllExternalGroups</key> - <string>id</string> - <key>refreshScriptGroups</key> - <string>id</string> - <key>refreshSearchGroups</key> - <string>id</string> - <key>refreshSelectedGroups</key> - <string>id</string> - <key>refreshSharedBrowsing</key> - <string>id</string> - <key>refreshSharing</key> - <string>id</string> - <key>refreshURLGroups</key> - <string>id</string> - <key>removeGroupFieldAction</key> - <string>id</string> - <key>removeSelectedGroups</key> - <string>id</string> - <key>removeSelectedPubs</key> - <string>id</string> - <key>renameGroupAction</key> - <string>id</string> - <key>revealLinkedFile</key> - <string>id</string> - <key>revealLocalURL</key> - <string>id</string> - <key>search</key> - <string>id</string> - <key>searchByContent</key> - <string>id</string> - <key>selectAllPublications</key> - <string>id</string> - <key>selectCrossrefParentAction</key> - <string>id</string> - <key>selectDuplicates</key> - <string>id</string> - <key>selectIncompletePublications</key> - <string>id</string> - <key>selectLibraryGroup</key> - <string>id</string> - <key>selectPossibleDuplicates</key> - <string>id</string> - <key>sendToLyX</key> - <string>id</string> - <key>showDocumentInfoWindow</key> - <string>id</string> - <key>showMacrosWindow</key> - <string>id</string> - <key>showNotesForLinkedFile</key> - <string>id</string> - <key>showNotesForLocalURL</key> - <string>id</string> - <key>sortForCrossrefs</key> - <string>id</string> - <key>sortGroupsByCount</key> - <string>id</string> - <key>sortGroupsByGroup</key> - <string>id</string> - <key>toggleShowingCustomCiteDrawer</key> - <string>id</string> - <key>toggleStatusBar</key> - <string>id</string> - </dict> - <key>CLASS</key> - <string>BibDocument</string> - <key>LANGUAGE</key> - <string>ObjC</string> - <key>OUTLETS</key> - <dict> - <key>actionMenu</key> - <string>NSMenu</string> - <key>actionMenuButton</key> - <string>BDSKImagePopUpButton</string> - <key>currentPreviewView</key> - <string>NSView</string> - <key>documentWindow</key> - <string>NSWindow</string> - <key>exportAccessoryView</key> - <string>NSView</string> - <key>exportSelectionCheckButton</key> - <string>NSButton</string> - <key>fileCollapsibleView</key> - <string>BDSKCollapsibleView</string> - <key>fileGradientView</key> - <string>BDSKGradientView</string> - <key>fileView</key> - <string>FileView</string> - <key>fileViewSlider</key> - <string>NSSlider</string> - <key>groupActionButton</key> - <string>BDSKImagePopUpButton</string> - <key>groupActionMenuButton</key> - <string>BDSKImagePopUpButton</string> - <key>groupAddButton</key> - <string>NSButton</string> - <key>groupCollapsibleView</key> - <string>BDSKCollapsibleView</string> - <key>groupGradientView</key> - <string>BDSKGradientView</string> - <key>groupMenu</key> - <string>NSMenu</string> - <key>groupSplitView</key> - <string>BDSKSplitView</string> - <key>groupTableView</key> - <string>BDSKGroupTableView</string> - <key>mainBox</key> - <string>BDSKColoredBox</string> - <key>mainView</key> - <string>NSView</string> - <key>previewTextView</key> - <string>NSTextView</string> - <key>saveAccessoryView</key> - <string>NSView</string> - <key>saveTextEncodingPopupButton</key> - <string>BDSKEncodingPopUpButton</string> - <key>searchBookmarkField</key> - <string>NSTextField</string> - <key>searchBookmarkPopUp</key> - <string>NSPopUpButton</string> - <key>searchBookmarkSheet</key> - <string>NSWindow</string> - <key>searchField</key> - <string>NSSearchField</string> - <key>splitView</key> - <string>BDSKSplitView</string> - <key>statusBar</key> - <string>BDSKStatusBar</string> - <key>tableView</key> - <string>BDSKMainTableView</string> - </dict> - <key>SUPERCLASS</key> - <string>NSDocument</string> - </dict> - <dict> - <key>CLASS</key> - <string>BDSKGradientView</string> - <key>LANGUAGE</key> - <string>ObjC</string> - <key>SUPERCLASS</key> - <string>NSView</string> - </dict> - <dict> - <key>CLASS</key> - <string>BDSKPreviewTextView</string> - <key>LANGUAGE</key> - <string>ObjC</string> - <key>SUPERCLASS</key> - <string>NSTextView</string> - </dict> - <dict> - <key>CLASS</key> - <string>BDSKEncodingPopUpButton</string> - <key>LANGUAGE</key> - <string>ObjC</string> - <key>SUPERCLASS</key> - <string>NSPopUpButton</string> - </dict> - <dict> - <key>CLASS</key> - <string>NSControl</string> - <key>LANGUAGE</key> - <string>ObjC</string> - <key>SUPERCLASS</key> - <string>NSView</string> - </dict> - <dict> - <key>CLASS</key> - <string>NSMenu</string> - <key>LANGUAGE</key> - <string>ObjC</string> - <key>SUPERCLASS</key> - <string>NSObject</string> - </dict> - <dict> - <key>ACTIONS</key> - <dict> - <key>delete</key> - <string>id</string> - <key>selectNextIcon</key> - <string>id</string> - <key>selectPreviousIcon</key> - <string>id</string> - </dict> - <key>CLASS</key> - <string>FileView</string> - <key>LANGUAGE</key> - <string>ObjC</string> - <key>OUTLETS</key> - <dict> - <key>dataSource</key> - <string>id</string> - <key>delegate</key> - <string>id</string> - <key>dragDataSource</key> - <string>id</string> - </dict> - <key>SUPERCLASS</key> - <string>NSView</string> - </dict> - <dict> - <key>CLASS</key> - <string>NSObject</string> - <key>LANGUAGE</key> - <string>ObjC</string> - </dict> - <dict> - <key>CLASS</key> - <string>NSWindow</string> - <key>LANGUAGE</key> - <string>ObjC</string> - <key>SUPERCLASS</key> - <string>NSResponder</string> - </dict> - <dict> - <key>CLASS</key> - <string>NSScrollView</string> - <key>LANGUAGE</key> - <string>ObjC</string> - <key>SUPERCLASS</key> - <string>NSView</string> - </dict> - <dict> - <key>CLASS</key> - <string>BDSKCollapsibleView</string> - <key>LANGUAGE</key> - <string>ObjC</string> - <key>SUPERCLASS</key> - <string>BDSKContainerView</string> - </dict> - <dict> - <key>CLASS</key> - <string>NSMenuItem</string> - <key>LANGUAGE</key> - <string>ObjC</string> - <key>SUPERCLASS</key> - <string>NSObject</string> - </dict> - <dict> - <key>CLASS</key> - <string>BDSKMainTableView</string> - <key>LANGUAGE</key> - <string>ObjC</string> - <key>SUPERCLASS</key> - <string>NSTableView</string> - </dict> - <dict> - <key>CLASS</key> - <string>BDSKGroupCell</string> - <key>LANGUAGE</key> - <string>ObjC</string> - <key>SUPERCLASS</key> - <string>NSTextFieldCell</string> - </dict> - <dict> - <key>CLASS</key> - <string>BDSKSplitView</string> - <key>LANGUAGE</key> - <string>ObjC</string> - <key>SUPERCLASS</key> - <string>OASplitView</string> - </dict> - <dict> - <key>CLASS</key> - <string>OASplitView</string> - <key>LANGUAGE</key> - <string>ObjC</string> - <key>SUPERCLASS</key> - <string>NSSplitView</string> - </dict> - <dict> - <key>ACTIONS</key> - <dict> - <key></key> - <string>id</string> - <key>changeSearchType</key> - <string>id</string> - <key>clearQuickSearch</key> - <string>id</string> - <key>selectCrossrefParentAction</key> - <string>id</string> - </dict> - <key>CLASS</key> - <string>FirstResponder</string> - <key>LANGUAGE</key> - <string>ObjC</string> - <key>SUPERCLASS</key> - <string>NSObject</string> - </dict> - <dict> - <key>CLASS</key> - <string>BDSKGroupTableView</string> - <key>LANGUAGE</key> - <string>ObjC</string> - <key>SUPERCLASS</key> - <string>OAGradientTableView</string> - </dict> - <dict> - <key>CLASS</key> - <string>NSTableHeaderView</string> - <key>LANGUAGE</key> - <string>ObjC</string> - <key>SUPERCLASS</key> - <string>NSView</string> - </dict> - <dict> - <key>CLASS</key> - <string>BDSKImagePopUpButton</string> - <key>LANGUAGE</key> - <string>ObjC</string> - <key>OUTLETS</key> - <dict> - <key>delegate</key> - <string>id</string> - </dict> - <key>SUPERCLASS</key> - <string>NSPopUpButton</string> - </dict> - <dict> - <key>CLASS</key> - <string>OAGradientTableView</string> - <key>LANGUAGE</key> - <string>ObjC</string> - <key>SUPERCLASS</key> - <string>NSTableView</string> - </dict> - <dict> - <key>CLASS</key> - <string>BDSKColoredBox</string> - <key>LANGUAGE</key> - <string>ObjC</string> - <key>SUPERCLASS</key> - <string>NSBox</string> - </dict> - <dict> - <key>CLASS</key> - <string>NSTextView</string> - <key>LANGUAGE</key> - <string>ObjC</string> - <key>SUPERCLASS</key> - <string>NSText</string> - </dict> - <dict> - <key>CLASS</key> - <string>BDSKContainerView</string> - <key>LANGUAGE</key> - <string>ObjC</string> - <key>OUTLETS</key> - <dict> - <key>contentView</key> - <string>id</string> - </dict> - <key>SUPERCLASS</key> - <string>NSView</string> - </dict> - <dict> - <key>ACTIONS</key> - <dict> - <key>startAnimation</key> - <string>id</string> - <key>stopAnimation</key> - <string>id</string> - </dict> - <key>CLASS</key> - <string>BDSKStatusBar</string> - <key>LANGUAGE</key> - <string>ObjC</string> - <key>OUTLETS</key> - <dict> - <key>delegate</key> - <string>id</string> - <key>textCell</key> - <string>id</string> - </dict> - <key>SUPERCLASS</key> - <string>BDSKGradientView</string> - </dict> - <dict> - <key>ACTIONS</key> - <dict> - <key>changeFont</key> - <string>id</string> - <key>invertSelection</key> - <string>id</string> - </dict> - <key>CLASS</key> - <string>NSTableView</string> - <key>LANGUAGE</key> - <string>ObjC</string> - <key>SUPERCLASS</key> - <string>NSControl</string> - </dict> - </array> - <key>IBVersion</key> - <string>1</string> -</dict> -</plist> +{ + IBClasses = ( + { + CLASS = BDSKCollapsibleView; + LANGUAGE = ObjC; + SUPERCLASS = BDSKContainerView; + }, + { + CLASS = BDSKColoredBox; + LANGUAGE = ObjC; + SUPERCLASS = NSBox; + }, + { + CLASS = BDSKContainerView; + LANGUAGE = ObjC; + OUTLETS = { + contentView = id; + }; + SUPERCLASS = NSView; + }, + { + CLASS = BDSKEncodingPopUpButton; + LANGUAGE = ObjC; + SUPERCLASS = NSPopUpButton; + }, + { + CLASS = BDSKGradientView; + LANGUAGE = ObjC; + SUPERCLASS = NSView; + }, + { + CLASS = BDSKGroupCell; + LANGUAGE = ObjC; + SUPERCLASS = NSTextFieldCell; + }, + { + CLASS = BDSKGroupTableView; + LANGUAGE = ObjC; + SUPERCLASS = OAGradientTableView; + }, + { + CLASS = BDSKImagePopUpButton; + LANGUAGE = ObjC; + OUTLETS = { + delegate = id; + }; + SUPERCLASS = NSPopUpButton; + }, + { + CLASS = BDSKMainTableView; + LANGUAGE = ObjC; + SUPERCLASS = NSTableView; + }, + { + CLASS = BDSKPreviewTextView; + LANGUAGE = ObjC; + SUPERCLASS = NSTextView; + }, + { + CLASS = BDSKSplitView; + LANGUAGE = ObjC; + SUPERCLASS = OASplitView; + }, + { + ACTIONS = { + startAnimation = id; + stopAnimation = id; + }; + CLASS = BDSKStatusBar; + LANGUAGE = ObjC; + OUTLETS = { + delegate = id; + textCell = id; + }; + SUPERCLASS = BDSKGradientView; + }, + { + ACTIONS = { + addBookmark = id; + addGroupButtonAction = id; + addGroupFieldAction = id; + addScriptGroupAction = id; + addSearchBookmark = id; + addSearchGroupAction = id; + addSmartGroupAction = id; + addStaticGroupAction = id; + addURLGroupAction = id; + alternateCut = id; + alternateDelete = id; + changeGroupFieldAction = id; + changeGroupTableFont = id; + changeIntersectGroupsAction = id; + changeMainTableFont = id; + changePreviewDisplay = id; + changeSearchType = id; + consolidateLinkedFiles = id; + copyAsAction = id; + copyGroupURLAction = id; + copyNotesForLinkedFile = id; + copyNotesForLocalURL = id; + createNewPubUsingCrossrefAction = id; + deleteSelectedPubs = id; + deselectAllPublications = id; + dismissSearchBookmarkSheet = id; + duplicate = id; + duplicateTitleToBooktitle = id; + editAction = id; + editGroupAction = id; + editNewCategoryGroupWithSelection = id; + editNewGroupWithSelection = id; + editNewStaticGroupWithSelection = id; + editPubCmd = id; + editPubOrOpenURLAction = id; + emailPubCmd = id; + generateCiteKey = id; + importFromFileAction = id; + importFromPasteboardAction = id; + importFromWebAction = id; + makeSearchFieldKey = id; + mergeInExternalGroup = id; + mergeInExternalPublications = id; + migrateFiles = id; + newPub = id; + newSearchGroupFromBookmark = id; + openBookmark = id; + openLinkedFile = id; + openLinkedURL = id; + openLocalURL = id; + openRemoteURL = id; + pageDownInPreview = id; + pageUpInPreview = id; + performFindPanelAction = id; + postItemToWeblog = id; + previewAction = id; + refreshAllExternalGroups = id; + refreshScriptGroups = id; + refreshSearchGroups = id; + refreshSelectedGroups = id; + refreshSharedBrowsing = id; + refreshSharing = id; + refreshURLGroups = id; + removeGroupFieldAction = id; + removeSelectedGroups = id; + removeSelectedPubs = id; + renameGroupAction = id; + revealLinkedFile = id; + revealLocalURL = id; + search = id; + searchByContent = id; + selectAllPublications = id; + selectCrossrefParentAction = id; + selectDuplicates = id; + selectIncompletePublications = id; + selectLibraryGroup = id; + selectPossibleDuplicates = id; + sendToLyX = id; + showDocumentInfoWindow = id; + showMacrosWindow = id; + showNotesForLinkedFile = id; + showNotesForLocalURL = id; + sortForCrossrefs = id; + sortGroupsByCount = id; + sortGroupsByGroup = id; + toggleShowingCustomCiteDrawer = id; + toggleStatusBar = id; + }; + CLASS = BibDocument; + LANGUAGE = ObjC; + OUTLETS = { + actionMenu = NSMenu; + actionMenuButton = BDSKImagePopUpButton; + currentPreviewView = NSView; + documentWindow = NSWindow; + exportAccessoryView = NSView; + exportSelectionCheckButton = NSButton; + fileCollapsibleView = BDSKCollapsibleView; + fileGradientView = BDSKGradientView; + fileView = FileView; + fileViewSlider = NSSlider; + groupActionButton = BDSKImagePopUpButton; + groupActionMenuButton = BDSKImagePopUpButton; + groupAddButton = NSButton; + groupCollapsibleView = BDSKCollapsibleView; + groupGradientView = BDSKGradientView; + groupMenu = NSMenu; + groupSplitView = BDSKSplitView; + groupTableView = BDSKGroupTableView; + mainBox = BDSKColoredBox; + mainView = NSView; + previewTextView = NSTextView; + saveAccessoryView = NSView; + saveTextEncodingPopupButton = BDSKEncodingPopUpButton; + searchBookmarkField = NSTextField; + searchBookmarkPopUp = NSPopUpButton; + searchBookmarkSheet = NSWindow; + searchField = NSSearchField; + splitView = BDSKSplitView; + statusBar = BDSKStatusBar; + tableView = BDSKMainTableView; + }; + SUPERCLASS = NSDocument; + }, + { + ACTIONS = { + delete = id; + selectNextIcon = id; + selectPreviousIcon = id; + }; + CLASS = FileView; + LANGUAGE = ObjC; + OUTLETS = { + dataSource = id; + delegate = id; + dragDataSource = id; + }; + SUPERCLASS = NSView; + }, + { + ACTIONS = { + "" = id; + changeSearchType = id; + clearQuickSearch = id; + selectCrossrefParentAction = id; + }; + CLASS = FirstResponder; + LANGUAGE = ObjC; + SUPERCLASS = NSObject; + }, + { + CLASS = NSControl; + LANGUAGE = ObjC; + SUPERCLASS = NSView; + }, + { + CLASS = NSMenu; + LANGUAGE = ObjC; + SUPERCLASS = NSObject; + }, + { + CLASS = NSMenuItem; + LANGUAGE = ObjC; + SUPERCLASS = NSObject; + }, + { + CLASS = NSObject; + LANGUAGE = ObjC; + }, + { + CLASS = NSScrollView; + LANGUAGE = ObjC; + SUPERCLASS = NSView; + }, + { + CLASS = NSTableHeaderView; + LANGUAGE = ObjC; + SUPERCLASS = NSView; + }, + { + ACTIONS = { + changeFont = id; + invertSelection = id; + }; + CLASS = NSTableView; + LANGUAGE = ObjC; + SUPERCLASS = NSControl; + }, + { + CLASS = NSTextView; + LANGUAGE = ObjC; + SUPERCLASS = NSText; + }, + { + CLASS = NSWindow; + LANGUAGE = ObjC; + SUPERCLASS = NSResponder; + }, + { + CLASS = OAGradientTableView; + LANGUAGE = ObjC; + SUPERCLASS = NSTableView; + }, + { + CLASS = OASplitView; + LANGUAGE = ObjC; + SUPERCLASS = NSSplitView; + } + ); + IBVersion = 1; +} \ No newline at end of file Modified: trunk/bibdesk/English.lproj/BibDocument.nib/info.nib =================================================================== --- trunk/bibdesk/English.lproj/BibDocument.nib/info.nib 2008-02-28 15:06:54 UTC (rev 12885) +++ trunk/bibdesk/English.lproj/BibDocument.nib/info.nib 2008-02-28 17:33:45 UTC (rev 12886) @@ -2,8 +2,15 @@ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> + <key>IBDocumentLocation</key> + <string>69 68 356 240 0 0 1440 938 </string> + <key>IBEditorPositions</key> + <dict> + <key>819</key> + <string>69 313 281 377 0 0 1440 938 </string> + </dict> <key>IBFramework Version</key> - <string>629</string> + <string>489.0</string> <key>IBLastKnownRelativeProjectPath</key> <string>../../Bibdesk.xcodeproj</string> <key>IBOldestOS</key> @@ -13,7 +20,7 @@ <integer>819</integer> </array> <key>IBSystem Version</key> - <string>9C7</string> + <string>9C31</string> <key>targetFramework</key> <string>IBCocoaFramework</string> </dict> Modified: trunk/bibdesk/English.lproj/BibDocument.nib/keyedobjects.nib =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |