Revision: 30065
          http://sourceforge.net/p/bibdesk/svn/30065
Author:   hofman
Date:     2026-02-26 17:25:29 +0000 (Thu, 26 Feb 2026)
Log Message:
-----------
check returnvalue first before getting field(s)

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

Modified: trunk/bibdesk/BDSKEditor.m
===================================================================
--- trunk/bibdesk/BDSKEditor.m  2026-02-26 17:10:56 UTC (rev 30064)
+++ trunk/bibdesk/BDSKEditor.m  2026-02-26 17:25:29 UTC (rev 30065)
@@ -861,8 +861,12 @@
         BDSKFieldSheetController *addFieldController = 
[BDSKFieldSheetController fieldSheetControllerWithChoosableFields:fieldNames
                                                                                
  label:NSLocalizedString(@"Name of field to add:", @"Label for adding field")];
         [addFieldController beginSheetModalForWindow:[self window] 
completionHandler:^(NSModalResponse result){
+            if (result == NSModalResponseCancel)
+                return;
+            
             NSString *newField = [addFieldController chosenField];
-            if(result == NSModalResponseCancel || newField == nil)
+            
+            if (newField == nil)
                 return;
             
             // remove the sheet in case we get an alert
@@ -913,22 +917,26 @@
             [tabView selectFirstTabViewItem:nil];
         
         [removeFieldController beginSheetModalForWindow:[self window] 
completionHandler:^(NSModalResponse result){
+            if (result == NSModalResponseCancel || [removableFields count] == 
0)
+                return;
+            
             NSString *oldField = [removeFieldController selectedField];
             NSString *oldValue = [publication valueOfField:oldField 
inherit:NO];
             
-            if (result == NSModalResponseOK && oldField != nil && 
[removableFields count]) {
-                // remove the sheet in case we get an alert
-                [[removeFieldController window] orderOut:nil];
-                
-                [addedFields removeObject:oldField];
-                [tabView selectFirstTabViewItem:nil];
-                if ([NSString isEmptyAsComplexString:oldValue]) {
-                    [self reloadTableWithFields:[self currentFields] 
ignoreEditing:nil];
-                } else {
-                    [publication setField:oldField toValue:nil];
-                    [[self undoManager] 
setActionName:NSLocalizedString(@"Remove Field", @"Undo action name")];
-                    [self userChangedField:oldField from:oldValue to:@""];
-                }
+            if (oldField == nil)
+                return;
+            
+            // remove the sheet in case we get an alert
+            [[removeFieldController window] orderOut:nil];
+            
+            [addedFields removeObject:oldField];
+            [tabView selectFirstTabViewItem:nil];
+            if ([NSString isEmptyAsComplexString:oldValue]) {
+                [self reloadTableWithFields:[self currentFields] 
ignoreEditing:nil];
+            } else {
+                [publication setField:oldField toValue:nil];
+                [[self undoManager] setActionName:NSLocalizedString(@"Remove 
Field", @"Undo action name")];
+                [self userChangedField:oldField from:oldValue to:@""];
             }
         }];
     }
@@ -968,27 +976,30 @@
         [changeFieldController setSelectedField:field];
     
        [changeFieldController beginSheetModalForWindow:[self window] 
completionHandler:^(NSModalResponse result){
+        if (result == NSModalResponseCancel)
+            return;
+        
         NSString *oldField = [changeFieldController selectedField];
         NSString *newField = [changeFieldController chosenField];
         NSString *oldValue = [publication valueOfField:oldField inherit:NO] ?: 
@"";
         BDSKAutoGenerateStatus autoGenerateStatus = BDSKAutoGeneratedNone;
         
-        if (result == NSModalResponseOK && [NSString isEmptyString:newField] 
== NO  && 
-            [newField isEqualToString:oldField] == NO && [fields 
containsObject:newField] == NO) {
-            // remove the sheet in case we get an alert
-            [[changeFieldController window] orderOut:nil];
-            
-            [addedFields removeObject:oldField];
-            [addedFields addObject:newField];
-            [tabView selectFirstTabViewItem:nil];
-            [publication setField:oldField toValue:nil];
-            [publication setField:newField toValue:oldValue];
-            [[self undoManager] setActionName:NSLocalizedString(@"Change Field 
Name", @"Undo action name")];
-            [self setKeyField:newField];
-            autoGenerateStatus = [[self document] userChangedField:oldField 
ofPublication:publication from:oldValue to:@""];
-            autoGenerateStatus |= [[self document] userChangedField:newField 
ofPublication:publication from:@"" to:oldValue];
-            [self updateStatusForAutoGenerate:autoGenerateStatus];
-        }
+        if ([NSString isEmptyString:newField] || [newField 
isEqualToString:oldField] || [fields containsObject:newField])
+            return;
+        
+        // remove the sheet in case we get an alert
+        [[changeFieldController window] orderOut:nil];
+        
+        [addedFields removeObject:oldField];
+        [addedFields addObject:newField];
+        [tabView selectFirstTabViewItem:nil];
+        [publication setField:oldField toValue:nil];
+        [publication setField:newField toValue:oldValue];
+        [[self undoManager] setActionName:NSLocalizedString(@"Change Field 
Name", @"Undo action name")];
+        [self setKeyField:newField];
+        autoGenerateStatus = [[self document] userChangedField:oldField 
ofPublication:publication from:oldValue to:@""];
+        autoGenerateStatus |= [[self document] userChangedField:newField 
ofPublication:publication from:@"" to:oldValue];
+        [self updateStatusForAutoGenerate:autoGenerateStatus];
        }];
 }
 

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