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