Revision: 22577
http://sourceforge.net/p/bibdesk/svn/22577
Author: hofman
Date: 2018-09-10 16:59:32 +0000 (Mon, 10 Sep 2018)
Log Message:
-----------
Allow evaluated object (linked files or linked URLs) as arguments to remove
scripting command, rather than just specifiers
Modified Paths:
--------------
trunk/bibdesk/BDSKRemoveCommand.m
trunk/bibdesk/Scripting/BibDesk.sdef
Modified: trunk/bibdesk/BDSKRemoveCommand.m
===================================================================
--- trunk/bibdesk/BDSKRemoveCommand.m 2018-09-10 16:34:47 UTC (rev 22576)
+++ trunk/bibdesk/BDSKRemoveCommand.m 2018-09-10 16:59:32 UTC (rev 22577)
@@ -50,10 +50,25 @@
id receiver = [self evaluatedReceivers];
NSArray *removeObjects = nil;
+ if ([directParameter isKindOfClass:[NSAppleEventDescriptor class]] &&
[directParameter descriptorType] == typeAEList) {
+ NSMutableArray *array = [NSMutableArray array];
+ NSUInteger i, iMax = [directParameter numberOfItems];
+ for (i = 1; i <= iMax; i++)
+ [array addObject:[directParameter descriptorAtIndex:i]];
+ directParameter = array;
+ }
+
if (directParameter && [directParameter isKindOfClass:[NSArray class]] ==
NO)
directParameter = [NSArray arrayWithObjects:directParameter, nil];
- removeObjects = [receiver isKindOfClass:[NSArray class]] ? receiver :
[NSArray arrayWithObjects:receiver, nil];
+ if (NSNotFound == [directParameter indexOfObjectPassingTest:^BOOL(id obj,
NSUInteger idx, BOOL *stop){ return NO == [obj
respondsToSelector:@selector(keyClassDescription)]; }]) {
+ removeObjects = [receiver isKindOfClass:[NSArray class]] ? receiver :
[NSArray arrayWithObjects:receiver, nil];
+ } else if (NSNotFound == [directParameter
indexOfObjectPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop){ return NO
== [obj isKindOfClass:[NSAppleEventDescriptor class]]; }]) {
+ if (NSNotFound == [directParameter indexOfObjectPassingTest:^BOOL(id
obj, NSUInteger idx, BOOL *stop){ return nil == [obj fileURLValue]; }])
+ removeObjects = [directParameter valueForKey:@"fileURLValue"];
+ else if (NSNotFound == [directParameter
indexOfObjectPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop){ obj = [obj
stringValue]; return nil == obj || nil == [NSURL URLWithString:obj]; }])
+ removeObjects = [directParameter valueForKey:@"stringValue"];
+ }
if (removeObjects == nil) {
[self setScriptErrorNumber:NSArgumentsWrongScriptError];
Modified: trunk/bibdesk/Scripting/BibDesk.sdef
===================================================================
--- trunk/bibdesk/Scripting/BibDesk.sdef 2018-09-10 16:34:47 UTC (rev
22576)
+++ trunk/bibdesk/Scripting/BibDesk.sdef 2018-09-10 16:59:32 UTC (rev
22577)
@@ -471,6 +471,8 @@
description="the object(s) to remove.">
<type type="specifier"/>
<type type="specifier" list="yes"/>
+ <type type="any"/>
+ <type type="any" list="yes"/>
</direct-parameter>
<parameter name="from" code="from" optional="yes"
description="The container to remove the object(s) from.">
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit