From 8f880b82a86b2bfe6bbf70ff934096b8a720bb20 Mon Sep 17 00:00:00 2001 From: rowanbeentje Date: Sat, 13 Jun 2009 17:43:14 +0000 Subject: - Default the index type picker to INDEX if a primary key already exists on the table (addresses #290) - Set the default focus correctly on the add index sheet --- Source/TableSource.m | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'Source') diff --git a/Source/TableSource.m b/Source/TableSource.m index 20a7ae11..cf7a7232 100644 --- a/Source/TableSource.m +++ b/Source/TableSource.m @@ -450,16 +450,30 @@ opens the indexSheet */ - (IBAction)openIndexSheet:(id)sender { - int code = 0; + int i, code = 0; // Check whether a save of the current field row is required. if ( ![self saveRowOnDeselect] ) return; + // Set sheet defaults - key type PRIMARY, key name PRIMARY and disabled, and blank indexed columns [indexTypeField selectItemAtIndex:0]; [indexNameField setEnabled:NO]; [indexNameField setStringValue:@"PRIMARY"]; [indexedColumnsField setStringValue:@""]; + [indexSheet makeFirstResponder:indexedColumnsField]; + + // Check to see whether a primary key already exists for the table, and if so select an INDEX instead + for (i = 0; i < [indexes count]; i++) { + if ([[[tableFields objectAtIndex:i] objectForKey:@"Key"] isEqualToString:@"PRI"]) { + [indexTypeField selectItemAtIndex:1]; + [indexNameField setEnabled:YES]; + [indexNameField setStringValue:@""]; + [indexSheet makeFirstResponder:indexNameField]; + break; + } + } + // Begin the sheet [NSApp beginSheet:indexSheet modalForWindow:tableWindow modalDelegate:self didEndSelector:nil contextInfo:nil]; -- cgit v1.2.3