Revision: 24622
          http://sourceforge.net/p/bibdesk/svn/24622
Author:   hofman
Date:     2020-02-08 22:33:29 +0000 (Sat, 08 Feb 2020)
Log Message:
-----------
Set cite key or pub type if needed. Use toggleAll: from selectAll: and 
selectNone:

Modified Paths:
--------------
    trunk/bibdesk/BDSKMergeController.m

Modified: trunk/bibdesk/BDSKMergeController.m
===================================================================
--- trunk/bibdesk/BDSKMergeController.m 2020-02-08 15:15:29 UTC (rev 24621)
+++ trunk/bibdesk/BDSKMergeController.m 2020-02-08 22:33:29 UTC (rev 24622)
@@ -122,16 +122,13 @@
 }
 
 - (IBAction)toggleAll:(id)sender {
-    NSNumber *value = [NSNumber numberWithBool:[sender state]];
-    [[overwriteFields allValues] setValue:value forKey:SELECTED_COLUMNID];
-    [tableView reloadDataForRowIndexes:[NSIndexSet 
indexSetWithIndexesInRange:NSMakeRange(0, [fieldNames count])] 
columnIndexes:[NSIndexSet indexSetWithIndex:0]];
+    [selectAllButton setState:NSOnState];
+    [self toggleAll:selectAllButton];
 }
 
 - (IBAction)selectAll:(id)sender {
-    NSNumber *value = [NSNumber numberWithBool:YES];
-    [[overwriteFields allValues] setValue:value forKey:SELECTED_COLUMNID];
-    [tableView reloadDataForRowIndexes:[NSIndexSet indexSetWithIndex:0] 
columnIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, [fieldNames 
count])]];
-    [selectAllButton setState:NSOnState];
+    [selectAllButton setState:NSOffState];
+    [self toggleAll:selectAllButton];
 }
 
 - (IBAction)selectNone:(id)sender {
@@ -259,14 +256,18 @@
         NSString *oldValue = [item objectForKey:CURRENT_COLUMNID];
         NSString *newValue = [item objectForKey:PASTED_COLUMNID];
         
-        if ([field isEqualToString:BDSKCrossrefString] && [publication 
canSetCrossref:newValue] != BDSKNoCrossrefError)
-            continue;
+        if ([field isEqualToString:BDSKCiteKeyString]) {
+            if ([publication canSetCiteKey:newValue] != BDSKNoCrossrefError)
+                continue;
+            [publication setCiteKey:newValue];
+        } else if ([field isEqualToString:BDSKPubTypeString]) {
+            [publication setPubType:newValue];
+        } else {
+            if ([field isEqualToString:BDSKCrossrefString] && [publication 
canSetCrossref:newValue] != BDSKNoCrossrefError)
+                continue;
+            [publication setField:field toValue:newValue];
+        }
         
-        if ([field isEqualToString:BDSKCiteKeyString] && [publication 
canSetCiteKey:newValue] != BDSKNoCrossrefError)
-            continue;
-        
-        [publication setField:field toValue:newValue];
-        
         autoGenerateStatus |= [document userChangedField:field 
ofPublication:publication from:oldValue to:newValue];
         didMerge = YES;
     }
@@ -274,14 +275,16 @@
     for (NSString *field in addedFields) {
         NSString *value = [addedFields objectForKey:field];
         
-        if ([field isEqualToString:BDSKCrossrefString] && [publication 
canSetCrossref:value] != BDSKNoCrossrefError)
-            continue;
+        if ([field isEqualToString:BDSKCiteKeyString]) {
+            if ([publication canSetCiteKey:value] != BDSKNoCrossrefError)
+                continue;
+            [publication setCiteKey:value];
+        } else {
+            if ([field isEqualToString:BDSKCrossrefString] && [publication 
canSetCrossref:value] != BDSKNoCrossrefError)
+                continue;
+            [publication setField:field toValue:value];
+        }
         
-        if ([field isEqualToString:BDSKCiteKeyString] && [publication 
canSetCiteKey:value] != BDSKNoCrossrefError)
-            continue;
-        
-        [publication setField:field toValue:value];
-        
         autoGenerateStatus |= [document userChangedField:field 
ofPublication:publication from:@"" to:value];
         didMerge = YES;
     }

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



_______________________________________________
Bibdesk-commit mailing list
Bibdesk-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit

Reply via email to