Revision: 30053
http://sourceforge.net/p/bibdesk/svn/30053
Author: hofman
Date: 2026-02-24 18:09:44 +0000 (Tue, 24 Feb 2026)
Log Message:
-----------
ignore editing inherited fields when inherited value can change
Modified Paths:
--------------
trunk/bibdesk/BDSKEditor.m
Modified: trunk/bibdesk/BDSKEditor.m
===================================================================
--- trunk/bibdesk/BDSKEditor.m 2026-02-24 17:21:29 UTC (rev 30052)
+++ trunk/bibdesk/BDSKEditor.m 2026-02-24 18:09:44 UTC (rev 30053)
@@ -2338,8 +2338,16 @@
// Reset if the crossref changed.
// We should first set the new value, because resetFields will set the
edited value. This happens when it is set through drag/drop
NSInteger editedRow = [tableView editedTextRow];
- if (editedRow != -1 && [[fields objectAtIndex:editedRow]
isEqualToString:BDSKCrossrefString])
- [[[self textFieldAtRow:editedRow] currentEditor]
setString:newValue ?: @""];
+ if (editedRow != -1) {
+ NSString *editedField = [fields objectAtIndex:editedRow];
+ if ([editedField isEqualToString:BDSKCrossrefString]) {
+ [[[self textFieldAtRow:editedRow] currentEditor]
setString:newValue ?: @""];
+ } else if ([NSString isEmptyAsComplexString:[publication
valueOfField:editedField inherit:NO]]) {
+ NSString *tmpValue = [publication valueOfField:editedField] ?:
@"";
+ BDSKEditorTextField *textField = [self
textFieldAtRow:editedRow];
+ [[textField currentEditor] setString:[textField formatter] ?
[[textField formatter] editingStringForObjectValue:tmpValue] : tmpValue];
+ }
+ }
NSArray *currentFields = nil;
if ([NSString isEmptyString:newValue] != [NSString
isEmptyString:oldValue])
// Crossref field was added or removed
@@ -2351,7 +2359,11 @@
}
else if(parentChanged){
// Reset if our parent's cite key changed. Every field value could
change.
- [self reloadTableWithFields:nil];
+ NSInteger editedRow = [tableView editedTextRow];
+ if (editedRow != -1 && [NSString isEmptyAsComplexString:[publication
valueOfField:[fields objectAtIndex:editedRow] inherit:NO]])
+ [self reloadTableIgnoringEditsForField:nil];
+ else
+ [self reloadTableWithFields:nil];
[authorTableView reloadData];
[self synchronizeWindowTitleWithDocumentName];
[self updateCiteKeyDuplicateWarning];
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