Revision: 22928 http://sourceforge.net/p/bibdesk/svn/22928 Author: hofman Date: 2018-11-05 17:30:07 +0000 (Mon, 05 Nov 2018) Log Message: ----------- method to get front bibliography document in documentcontroller class, use for opening search group file
Modified Paths: -------------- trunk/bibdesk/BDSKAppController.m trunk/bibdesk/BDSKDocumentController.h trunk/bibdesk/BDSKDocumentController.m Modified: trunk/bibdesk/BDSKAppController.m =================================================================== --- trunk/bibdesk/BDSKAppController.m 2018-11-04 19:05:34 UTC (rev 22927) +++ trunk/bibdesk/BDSKAppController.m 2018-11-05 17:30:07 UTC (rev 22928) @@ -792,20 +792,7 @@ #pragma mark URL handling code -- (BibDocument *)frontDocumentOfClass:(Class)aClass error:(NSError **)error { - // try the main document first - id document = [[NSDocumentController sharedDocumentController] mainDocument]; - if ([document isKindOfClass:aClass] == NO) { - document = nil; - for (document in [NSApp orderedDocuments]) - if ([document isKindOfClass:aClass]) break; - if (document == nil) - document = [[NSDocumentController sharedDocumentController] openUntitledDocumentAndDisplay:YES error:error]; - } - return document; -} - - (void)handleGetURLEvent:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEventDescriptor *)replyEvent{ NSString *theURLString = [[event descriptorForKeyword:keyDirectObject] stringValue]; NSScriptObjectSpecifier *subject = [NSScriptObjectSpecifier objectSpecifierWithDescriptor:[event attributeDescriptorForKeyword:'subj']]; @@ -849,7 +836,7 @@ if (group) { if (document == nil) - document = [self frontDocumentOfClass:[BibDocument class] error:&error]; + document = [[NSDocumentController sharedDocumentController] frontBibliographyDocumentReturningError:&error]; [[document groups] addSearchGroup:group]; [group release]; } else { @@ -859,7 +846,7 @@ } else if ([@"http" isCaseInsensitiveEqual:[theURL scheme]] || [@"https" isCaseInsensitiveEqual:[theURL scheme]]|| [[theURL absoluteString] hasCaseInsensitivePrefix:@"bibdesk:"]) { if (document == nil) - document = [self frontDocumentOfClass:[BibDocument class] error:&error]; + document = [[NSDocumentController sharedDocumentController] frontBibliographyDocumentReturningError:&error]; [document openURL:theURL]; } else if (theURL) { Modified: trunk/bibdesk/BDSKDocumentController.h =================================================================== --- trunk/bibdesk/BDSKDocumentController.h 2018-11-04 19:05:34 UTC (rev 22927) +++ trunk/bibdesk/BDSKDocumentController.h 2018-11-05 17:30:07 UTC (rev 22928) @@ -44,6 +44,8 @@ @end #endif +@class BibDocument; + @interface BDSKDocumentController : NSDocumentController { BOOL didInitialize; @@ -55,6 +57,7 @@ } - (id)mainDocument; +- (BibDocument *)frontBibliographyDocumentReturningError:(NSError **)outError; - (NSStringEncoding)lastSelectedEncodingForURL:(NSURL *)aURL; Modified: trunk/bibdesk/BDSKDocumentController.m =================================================================== --- trunk/bibdesk/BDSKDocumentController.m 2018-11-04 19:05:34 UTC (rev 22927) +++ trunk/bibdesk/BDSKDocumentController.m 2018-11-05 17:30:07 UTC (rev 22928) @@ -109,6 +109,19 @@ return mainDocument; } +- (BibDocument *)frontBibliographyDocumentReturningError:(NSError **)outError { + // try the main document first + id document = [[NSDocumentController sharedDocumentController] mainDocument]; + if ([document isKindOfClass:[BibDocument class]] == NO) { + document = nil; + for (document in [NSApp orderedDocuments]) + if ([document isKindOfClass:[BibDocument class]]) break; + if (document == nil) + document = [self openUntitledDocumentAndDisplay:YES error:outError]; + } + return document; +} + - (void)handleWindowDidBecomeMainNotification:(NSNotification *)notification{ id currentDocument = [self currentDocument]; if ([currentDocument isKindOfClass:[BibDocument class]] == NO) @@ -380,22 +393,17 @@ } else { NSError *error = nil; - BOOL wasOpen = YES; + id wasMainDocument = [self mainDocument]; // try the main document first - id document = [self mainDocument]; - if (nil == document) { - wasOpen = NO; - document = [self openUntitledDocumentAndDisplay:YES error:&error]; - } - if ([document respondsToSelector:@selector(groups)]) { - [[document groups] addSearchGroup:group]; - [document selectGroup:group]; - } + BibDocument *document = [self frontBibliographyDocumentReturningError:&error]; + [[document groups] addSearchGroup:group]; + [document selectGroup:group]; + [group release]; if (completionHandler) - completionHandler(document, wasOpen, error); + completionHandler(document, wasMainDocument == document, error); } [customOpenSettings removeObjectForKey:absoluteURL]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. _______________________________________________ Bibdesk-commit mailing list Bibdesk-commit@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bibdesk-commit