Revision: 13052
          http://sourceforge.net/p/skim-app/code/13052
Author:   hofman
Date:     2022-07-25 17:42:51 +0000 (Mon, 25 Jul 2022)
Log Message:
-----------
also create setup bookmark when passing document file to with properties 
argument of make command. use file name as default label.

Modified Paths:
--------------
    trunk/SKBookmark.m

Modified: trunk/SKBookmark.m
===================================================================
--- trunk/SKBookmark.m  2022-07-25 17:17:38 UTC (rev 13051)
+++ trunk/SKBookmark.m  2022-07-25 17:42:51 UTC (rev 13052)
@@ -46,6 +46,7 @@
 #import "NSShadow_SKExtensions.h"
 #import "SKBookmarkController.h"
 #import "NSCharacterSet_SKExtensions.h"
+#import "NSDate_SKExtensions.h"
 
 #define BOOKMARK_STRING     @"bookmark"
 #define SESSION_STRING      @"session"
@@ -751,18 +752,19 @@
                     [[NSScriptCommand currentCommand] 
setScriptErrorString:@"New file bookmark requires an existing file."];
                 } else if ((docClass = [[NSDocumentController 
sharedDocumentController] documentClassForContentsOfURL:aURL])) {
                     NSDocument *doc = nil;
+                    NSScriptObjectSpecifier *spec = nil;
                     if (contentsValue) {
                         NSAppleEventDescriptor *desc = [[[NSScriptCommand 
currentCommand] arguments] objectForKey:@"ObjectData"];
-                        if ([desc isKindOfClass:[NSAppleEventDescriptor 
class]] && [desc descriptorType] == typeObjectSpecifier) {
-                            NSScriptObjectSpecifier *spec = 
[NSScriptObjectSpecifier objectSpecifierWithDescriptor:desc];
-                            if ([[[spec containerClassDescription] className] 
isEqualToString:@"document"]) {
-                                doc = [[spec containerSpecifier] 
objectsByEvaluatingSpecifier];
-                                if ([doc isKindOfClass:[NSDocument class]] == 
NO)
-                                    doc = nil;
-                            }
-                        }
+                        if ([desc isKindOfClass:[NSAppleEventDescriptor 
class]] && [desc descriptorType] == typeObjectSpecifier)
+                            spec = [NSScriptObjectSpecifier 
objectSpecifierWithDescriptor:desc];
+                    } else {
+                        spec = [[[[NSScriptCommand currentCommand] arguments] 
objectForKey:@"KeyDictionary"] objectForKey:@"fileURL"];
                     }
-                    if (doc) {
+                    if ([spec isKindOfClass:[NSScriptObjectSpecifier class]] 
&& [[[spec containerClassDescription] className] isEqualToString:@"document"])
+                        doc = [[spec containerSpecifier] 
objectsByEvaluatingSpecifier];
+                    if (aLabel == nil)
+                        [aURL getResourceValue:&aLabel 
forKey:NSURLLocalizedNameKey error:NULL];
+                    if ([doc isKindOfClass:[NSDocument class]]) {
                         bookmark = [[SKBookmark alloc] initWithSetup:[doc 
currentDocumentSetup] label:aLabel ?: @""];
                     } else {
                         NSUInteger aPageNumber = [[properties 
objectForKey:@"pageNumber"] unsignedIntegerValue];
@@ -772,7 +774,7 @@
                             aPageNumber = [docClass isPDFDocument] ? 0 : 
NSNotFound;
                         if (aLabel == nil)
                             [aURL getResourceValue:&aLabel 
forKey:NSURLLocalizedNameKey error:NULL];
-                        bookmark = [[SKBookmark alloc] initWithURL:aURL 
pageIndex:aPageNumber label:aLabel ?: @""];
+                        bookmark = [[SKBookmark alloc] initWithURL:aURL 
pageIndex:aPageNumber label:aLabel ?: [[[NSDate date] shortDateFormat] 
description]];
                     }
                 } else {
                     [[NSScriptCommand currentCommand] 
setScriptErrorNumber:NSArgumentsWrongScriptError];

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Skim-app-commit mailing list
Skim-app-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to