Revision: 22652
http://sourceforge.net/p/bibdesk/svn/22652
Author: hofman
Date: 2018-09-22 22:10:14 +0000 (Sat, 22 Sep 2018)
Log Message:
-----------
don't add identical objects in scripting add command
Modified Paths:
--------------
trunk/bibdesk/BDSKAddCommand.m
Modified: trunk/bibdesk/BDSKAddCommand.m
===================================================================
--- trunk/bibdesk/BDSKAddCommand.m 2018-09-22 14:46:11 UTC (rev 22651)
+++ trunk/bibdesk/BDSKAddCommand.m 2018-09-22 22:10:14 UTC (rev 22652)
@@ -129,17 +129,27 @@
[self setScriptErrorNumber:NSArgumentsWrongScriptError];
[self setScriptErrorString:NSLocalizedString(@"Invalid
container to add to", @"Error description")];
} else {
+ NSArray *objects = [insertionContainer
valueForKey:insertionKey];
+ NSMutableArray *insertedObjects = [NSMutableArray array];
// insert using scripting KVC
if (insertionIndex >= 0) {
- for (id obj in insertionObjects)
- [insertionContainer insertValue:obj
atIndex:insertionIndex++ inPropertyWithKey:insertionKey];
+ for (id obj in insertionObjects) {
+ if ([objects indexOfObjectIdenticalTo:obj] ==
NSNotFound) {
+ [insertionContainer insertValue:obj
atIndex:insertionIndex++ inPropertyWithKey:insertionKey];
+ [insertedObjects addObject:obj];
+ }
+ }
} else {
- for (id obj in insertionObjects)
- [insertionContainer insertValue:obj
inPropertyWithKey:insertionKey];
+ for (id obj in insertionObjects) {
+ if ([objects indexOfObjectIdenticalTo:obj] ==
NSNotFound) {
+ [insertionContainer insertValue:obj
inPropertyWithKey:insertionKey];
+ [insertedObjects addObject:obj];
+ }
+ }
}
// get the return value as an NSAppleEventDescriptor
- return [(isArray ? insertionObjects : [insertionObjects
firstObject]) aeDescriptorValue];
+ return [(isArray ? insertedObjects : [insertedObjects
firstObject]) aeDescriptorValue];
}
}
}
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