Revision: 30037
http://sourceforge.net/p/bibdesk/svn/30037
Author: hofman
Date: 2026-02-22 15:19:43 +0000 (Sun, 22 Feb 2026)
Log Message:
-----------
convenience method to edit a textfield in the fields table
Modified Paths:
--------------
trunk/bibdesk/BDSKEditor.m
Modified: trunk/bibdesk/BDSKEditor.m
===================================================================
--- trunk/bibdesk/BDSKEditor.m 2026-02-21 18:31:43 UTC (rev 30036)
+++ trunk/bibdesk/BDSKEditor.m 2026-02-22 15:19:43 UTC (rev 30037)
@@ -146,6 +146,7 @@
- (void)updateStatusForAutoGenerate:(BDSKAutoGenerateStatus)mask;
- (void)mergeWithPublication:(BibItem *)pub;
- (BDSKEditorTextField *)textFieldAtRow:(NSInteger)row;
+- (void)editTextFieldAtRow:(NSInteger)row selection:(NSArray *)selection;
- (id)representedObjectForValue:(NSString *)value forField:(NSString *)field;
@end
@@ -409,14 +410,9 @@
// fields may be changed due to the commit
if (editedRow >= [tableView numberOfRows] || [[fields
objectAtIndex:editedRow] isEqualToString:editedField] == NO)
editedRow = [fields indexOfObject:editedField];
- if (editedRow < [tableView numberOfRows]) {
- [tableView editColumn:1 row:editedRow withEvent:nil select:NO];
- [(NSTextView *)[[self textFieldAtRow:editedRow] currentEditor]
setSafeSelectedRanges:selection];
- }
+ [self editTextFieldAtRow:editedRow selection:selection];
} else if ([[self window] makeFirstResponder:firstResponder]) {
- if ([firstResponder isKindOfClass:[NSTextField class]])
- textView = (NSTextView *)[(NSTextField *)firstResponder
currentEditor];
- [textView setSafeSelectedRanges:selection];
+ [self editTextFieldAtRow:editedRow selection:selection];
}
}
@@ -489,10 +485,7 @@
// fields may be changed due to the commit
if (editedRow >= [tableView numberOfRows] || [[fields
objectAtIndex:editedRow] isEqualToString:editedField] == NO)
editedRow = [fields indexOfObject:editedField];
- if (editedRow < [tableView numberOfRows]) {
- [tableView editColumn:1 row:editedRow withEvent:nil select:NO];
- [(NSTextView *)[[self textFieldAtRow:editedRow] currentEditor]
setSafeSelectedRanges:selection];
- }
+ [self editTextFieldAtRow:editedRow selection:selection];
} else if ([[self window] makeFirstResponder:firstResponder]) {
if (textField)
textView = (NSTextView *)[textField currentEditor];
@@ -1904,8 +1897,7 @@
[[self window] makeFirstResponder:[(BDSKEditorCollectionViewItem
*)[collectionView itemAtIndex:idx] button]];
}else{
NSUInteger row = [fields indexOfObject:fieldName];
- if (row != NSNotFound)
- [tableView editColumn:1 row:row withEvent:nil select:YES];
+ [self editTextFieldAtRow:row selection:nil];
}
}
@@ -1922,7 +1914,7 @@
return;
}
[tableCellFormatter setEditAsComplexString:YES];
- [tableView editColumn:1 row:row withEvent:nil select:YES];
+ [self editTextFieldAtRow:row selection:nil];
}
// this is called when the user actually starts editing
@@ -2175,7 +2167,7 @@
return NO;
}
if (nonRemovable || editorFlags.isEditing == NO || [[[control
currentEditor] string] length] > 0) {
- [tableView editColumn:1 row:row withEvent:nil select:YES];
+ [self editTextFieldAtRow:row selection:nil];
} else {
// ending the edit may remove the row, which could lead to an invalid
row selection
NSString *field = [fields objectAtIndex:row];
@@ -2182,8 +2174,7 @@
if ([[self window] makeFirstResponder:[self window]]) {
if (row >= [tableView numberOfRows] || [[fields objectAtIndex:row]
isEqualToString:field] == NO)
row = [fields indexOfObject:field];
- if (row < [tableView numberOfRows])
- [tableView editColumn:1 row:row withEvent:nil select:YES];
+ [self editTextFieldAtRow:row selection:nil];
}
}
return YES;
@@ -3294,11 +3285,7 @@
// restore the edited cell and its selection
if (editedTitle) {
NSUInteger editingRow = [fields indexOfObject:editedTitle];
- if (editingRow != NSNotFound && [tableView editedTextRow] !=
(NSInteger)editingRow && [tableView numberOfRows] > (NSInteger)editingRow) {
- [tableView editColumn:1 row:editingRow withEvent:nil select:NO];
- NSTextView *fieldEditor = (NSTextView *)[[self
textFieldAtRow:editingRow] currentEditor];
- [fieldEditor setSafeSelectedRanges:selection];
- }
+ [self editTextFieldAtRow:editedRow selection:selection];
}
}
@@ -3558,6 +3545,14 @@
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]) {
+ [tableView editColumn:1 row:row withEvent:nil select:selection == nil];
+ if (selection)
+ [(NSTextView *)[[self textFieldAtRow:row] currentEditor]
setSafeSelectedRanges:selection];
+ }
+}
+
- (id)representedObjectForValue:(NSString *)value forField:(NSString *)field {
if ([value isInherited] || ([field isEqualToString:BDSKCrossrefString] &&
[NSString isEmptyString:value] == NO))
return [[BDSKField alloc] initWithName:field bibItem:nil];
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