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

Reply via email to