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

Reply via email to