From 2938fe935e88af318090cbe463a338ce69d758ea Mon Sep 17 00:00:00 2001 From: rowanbeentje Date: Sun, 7 Mar 2010 23:45:02 +0000 Subject: - Fix exception on duplication of table source rows that haven't been saved yet; this addresses http://log.sequelpro.com/view/23 - Clean up fix in r1859 --- Source/TableSource.m | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'Source/TableSource.m') diff --git a/Source/TableSource.m b/Source/TableSource.m index 655dffc1..44a11321 100644 --- a/Source/TableSource.m +++ b/Source/TableSource.m @@ -325,16 +325,20 @@ loads aTable, put it in an array, update the tableViewColumns and reload the tab - (IBAction)copyField:(id)sender { NSMutableDictionary *tempRow; + NSUInteger rowToCopy; - if ( ![tableSourceView numberOfSelectedRows] ) { - [tableSourceView selectRowIndexes:[NSIndexSet indexSetWithIndex:[tableSourceView numberOfRows]-1] byExtendingSelection:NO]; + // Store the row to duplicate, as saveRowOnDeselect and subsequent reloads may trigger a deselection + if ([tableSourceView numberOfSelectedRows]) { + rowToCopy = [tableSourceView selectedRow]; + } else { + rowToCopy = [tableSourceView numberOfRows]-1; } // Check whether a save of the current row is required. if ( ![self saveRowOnDeselect] ) return; //add copy of selected row and go in edit mode - tempRow = [NSMutableDictionary dictionaryWithDictionary:[tableFields objectAtIndex:[tableSourceView selectedRow]]]; + tempRow = [NSMutableDictionary dictionaryWithDictionary:[tableFields objectAtIndex:rowToCopy]]; [tempRow setObject:[[tempRow objectForKey:@"Field"] stringByAppendingString:@"Copy"] forKey:@"Field"]; [tempRow setObject:@"" forKey:@"Key"]; [tempRow setObject:@"None" forKey:@"Extra"]; -- cgit v1.2.3