Revision: 22592
http://sourceforge.net/p/bibdesk/svn/22592
Author: hofman
Date: 2018-09-13 15:05:42 +0000 (Thu, 13 Sep 2018)
Log Message:
-----------
We don't remove from bibtex type field group, we do remove from selected groups
Modified Paths:
--------------
trunk/bibdesk/BibDocument_Actions.m
trunk/bibdesk/BibDocument_Menus.m
Modified: trunk/bibdesk/BibDocument_Actions.m
===================================================================
--- trunk/bibdesk/BibDocument_Actions.m 2018-09-13 14:56:02 UTC (rev 22591)
+++ trunk/bibdesk/BibDocument_Actions.m 2018-09-13 15:05:42 UTC (rev 22592)
@@ -197,14 +197,21 @@
if ([[alert suppressionButton]state] == NSOnState)
[[NSUserDefaults standardUserDefaults] setBool:NO
forKey:BDSKWarnOnRemovalFromGroupKey];
if (returnCode == NSAlertFirstButtonReturn) {
- NSArray *selectedGroups = [self selectedGroups];
- if ([self hasGroupTypeSelected:BDSKStaticGroupType]) {
- NSArray *staticGroups = [selectedGroups
filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"groupType =
%lu", (unsigned long)BDSKStaticGroupType]];
+ NSMutableArray *staticGroups = [NSMutableArray array];
+ NSMutableArray *categoryGroups = [NSMutableArray array];
+ for (id group in [self selectedGroups]) {
+ if ([group groupType] == BDSKStaticGroupType)
+ [staticGroups addObject:group];
+ else if ([group groupType] == BDSKCategoryGroupType &&
+ [[group key] isSingleValuedField] == NO &&
+ [[group key] isEqualToString:BDSKPubTypeString] == NO)
+ [categoryGroups addObject:group];
+ }
+ if ([staticGroups count]) {
[staticGroups
makeObjectsPerformSelector:@selector(removePublicationsInArray:)
withObject:pubs];
[[self undoManager] setActionName:NSLocalizedString(@"Remove From
Group", @"Undo action name")];
}
- if ([self hasGroupTypeSelected:BDSKCategoryGroupType]) {
- NSArray *categoryGroups = [selectedGroups
filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"groupType =
%lu", (unsigned long)BDSKCategoryGroupType]];
+ if ([categoryGroups count]) {
[self removePublications:pubs fromGroups:categoryGroups];
}
}
@@ -220,7 +227,7 @@
BOOL canRemove = NO;
if ([self hasGroupTypeSelected:BDSKStaticGroupType])
canRemove = YES;
- else if (NSNotFound != [selectedGroups
indexOfObjectPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop){ return [obj
groupType] == BDSKCategoryGroupType && [[obj key] isSingleValuedGroupField] ==
NO; }])
+ else if (NSNotFound != [selectedGroups
indexOfObjectPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop){ return [obj
groupType] == BDSKCategoryGroupType && [[obj key] isSingleValuedGroupField] ==
NO && [[obj key] isEqualToString:BDSKPubTypeString] == NO; }])
canRemove = YES;
if (canRemove == NO) {
NSBeep();
Modified: trunk/bibdesk/BibDocument_Menus.m
===================================================================
--- trunk/bibdesk/BibDocument_Menus.m 2018-09-13 14:56:02 UTC (rev 22591)
+++ trunk/bibdesk/BibDocument_Menus.m 2018-09-13 15:05:42 UTC (rev 22592)
@@ -126,7 +126,7 @@
if ([self hasGroupTypeSelected:BDSKStaticGroupType])
return YES;
// don't remove from single valued group field, as that will clear the
field, which is most probably a mistake. See bug # 1435344
- if (NSNotFound != [[self clickedOrSelectedGroups]
indexOfObjectPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop){ return [obj
groupType] == BDSKCategoryGroupType && [[obj key] isSingleValuedGroupField] ==
NO; }])
+ if (NSNotFound != [[self selectedGroups] indexOfObjectPassingTest:^BOOL(id
obj, NSUInteger idx, BOOL *stop){ return [obj groupType] ==
BDSKCategoryGroupType && [[obj key] isSingleValuedGroupField] == NO && [[obj
key] isEqualToString:BDSKPubTypeString] == NO; }])
return YES;
return NO;
}
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