Revision: 30039
http://sourceforge.net/p/bibdesk/svn/30039
Author: hofman
Date: 2026-02-22 15:36:21 +0000 (Sun, 22 Feb 2026)
Log Message:
-----------
allow passing field for which to edit text field
Modified Paths:
--------------
trunk/bibdesk/BDSKEditor.m
Modified: trunk/bibdesk/BDSKEditor.m
===================================================================
--- trunk/bibdesk/BDSKEditor.m 2026-02-22 15:23:57 UTC (rev 30038)
+++ trunk/bibdesk/BDSKEditor.m 2026-02-22 15:36:21 UTC (rev 30039)
@@ -146,7 +146,7 @@
- (void)updateStatusForAutoGenerate:(BDSKAutoGenerateStatus)mask;
- (void)mergeWithPublication:(BibItem *)pub;
- (BDSKEditorTextField *)textFieldAtRow:(NSInteger)row;
-- (void)editTextFieldAtRow:(NSInteger)row selection:(NSArray *)selection;
+- (void)editTextFieldAtRow:(NSInteger)row forField:(NSString *)field
selection:(NSArray *)selection;
- (id)representedObjectForValue:(NSString *)value forField:(NSString *)field;
@end
@@ -408,9 +408,7 @@
if (editedRow != -1) {
// fields may be changed due to the commit
- if (editedRow >= [tableView numberOfRows] || [[fields
objectAtIndex:editedRow] isEqualToString:editedField] == NO)
- editedRow = [fields indexOfObject:editedField];
- [self editTextFieldAtRow:editedRow selection:selection];
+ [self editTextFieldAtRow:editedRow forField:editedField
selection:selection];
} else if ([[self window] makeFirstResponder:firstResponder]) {
if ([firstResponder isKindOfClass:[NSTextField class]])
textView = (NSTextView *)[(NSTextField *)firstResponder
currentEditor];
@@ -485,9 +483,7 @@
if (editedRow != -1) {
// fields may be changed due to the commit
- if (editedRow >= [tableView numberOfRows] || [[fields
objectAtIndex:editedRow] isEqualToString:editedField] == NO)
- editedRow = [fields indexOfObject:editedField];
- [self editTextFieldAtRow:editedRow selection:selection];
+ [self editTextFieldAtRow:editedRow forField:editedField
selection:selection];
} else if ([[self window] makeFirstResponder:firstResponder]) {
if (textField)
textView = (NSTextView *)[textField currentEditor];
@@ -1898,8 +1894,7 @@
if (idx != NSNotFound)
[[self window] makeFirstResponder:[(BDSKEditorCollectionViewItem
*)[collectionView itemAtIndex:idx] button]];
}else{
- NSUInteger row = [fields indexOfObject:fieldName];
- [self editTextFieldAtRow:row selection:nil];
+ [self editTextFieldAtRow:NSNotFound forField:fieldName selection:nil];
}
}
@@ -1916,7 +1911,7 @@
return;
}
[tableCellFormatter setEditAsComplexString:YES];
- [self editTextFieldAtRow:row selection:nil];
+ [self editTextFieldAtRow:row forField:nil selection:nil];
}
// this is called when the user actually starts editing
@@ -2169,15 +2164,12 @@
return NO;
}
if (nonRemovable || editorFlags.isEditing == NO || [[[control
currentEditor] string] length] > 0) {
- [self editTextFieldAtRow:row selection:nil];
+ [self editTextFieldAtRow:row forField:nil selection:nil];
} else {
// ending the edit may remove the row, which could lead to an invalid
row selection
NSString *field = [fields objectAtIndex:row];
- if ([[self window] makeFirstResponder:[self window]]) {
- if (row >= [tableView numberOfRows] || [[fields objectAtIndex:row]
isEqualToString:field] == NO)
- row = [fields indexOfObject:field];
- [self editTextFieldAtRow:row selection:nil];
- }
+ if ([[self window] makeFirstResponder:[self window]])
+ [self editTextFieldAtRow:row forField:field selection:nil];
}
return YES;
}
@@ -3285,10 +3277,8 @@
}
// restore the edited cell and its selection
- if (editedTitle) {
- NSUInteger editingRow = [fields indexOfObject:editedTitle];
- [self editTextFieldAtRow:editedRow selection:selection];
- }
+ if (editedTitle)
+ [self editTextFieldAtRow:NSNotFound forField:editedTitle
selection:selection];
}
- (void)updateTableViewDisplay {
@@ -3547,8 +3537,10 @@
return (BDSKEditorTextField *)[[tableView viewAtColumn:1 row:row
makeIfNecessary:NO] textField];
}
-- (void)editTextFieldAtRow:(NSInteger)row selection:(NSArray *)selection {
- if (row != -1 && row != NSNotFound && row < [tableView numberOfRows]) {
+- (void)editTextFieldAtRow:(NSInteger)row forField:(NSString *)field
selection:(NSArray *)selection {
+ if (field && (row == -1 || row >= [tableView numberOfRows] || [[fields
objectAtIndex:row] isEqualToString:field] == NO))
+ row = [fields indexOfObject:field];
+ if (row != -1 && row < [tableView numberOfRows]) {
[tableView editColumn:1 row:row withEvent:nil select:selection == nil];
if (selection)
[(NSTextView *)[[self textFieldAtRow:row] currentEditor]
setSafeSelectedRanges:selection];
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