diff options
author | Max <post@wickenrode.com> | 2015-11-11 00:08:45 +0100 |
---|---|---|
committer | Max <post@wickenrode.com> | 2015-11-11 00:08:45 +0100 |
commit | 74a90251228a07995ea5ab1bae0fb2428f9cfbc7 (patch) | |
tree | 1cf4b1e9b0a9e96948313631378539170025463a /Source/SPTableStructureDelegate.m | |
parent | 2ae3aec0c721c70941f0d23eecfa880861faf3cf (diff) | |
download | sequelpro-74a90251228a07995ea5ab1bae0fb2428f9cfbc7.tar.gz sequelpro-74a90251228a07995ea5ab1bae0fb2428f9cfbc7.tar.bz2 sequelpro-74a90251228a07995ea5ab1bae0fb2428f9cfbc7.zip |
Fix an issue where changing a table collation could cause an exception (fixes #2320)
This issue probably was introduced in f02fb787063caabe246a0ee420394f5676c55a9c
The empty item at the top of the collation list will now no longer have a selection mark, though.
Diffstat (limited to 'Source/SPTableStructureDelegate.m')
-rw-r--r-- | Source/SPTableStructureDelegate.m | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/Source/SPTableStructureDelegate.m b/Source/SPTableStructureDelegate.m index da173271..a7fa9337 100644 --- a/Source/SPTableStructureDelegate.m +++ b/Source/SPTableStructureDelegate.m @@ -102,7 +102,7 @@ static void _BuildMenuWithPills(NSMenu *menu,struct _cmpMap *map,size_t mapEntri [[collationCell lastItem] setTitle:@""]; //if this is not set the column either has no encoding (numeric etc.) or retrieval failed. Either way we can't provide collations - if(columnEncoding) { + if([columnEncoding length]) { collations = [databaseDataInstance getDatabaseCollationsForEncoding:columnEncoding]; if ([collations count] > 0) { @@ -129,19 +129,18 @@ static void _BuildMenuWithPills(NSMenu *menu,struct _cmpMap *map,size_t mapEntri } } - //look up the right item - NSInteger idx = [collationCell indexOfItemWithRepresentedObject:columnCollation]; - if(idx > 0) return @(idx); + // the popup cell is subclassed to take the representedObject instead of the item index + return columnCollation; } } - return @0; + return nil; } else if ([[tableColumn identifier] isEqualToString:@"encoding"]) { // the encoding menu was already configured during setTableDetails: NSString *columnEncoding = [rowData objectForKey:@"encodingName"]; - if(columnEncoding) { + if([columnEncoding length]) { NSInteger idx = [encodingPopupCell indexOfItemWithRepresentedObject:columnEncoding]; if(idx > 0) return @(idx); } @@ -193,7 +192,8 @@ static void _BuildMenuWithPills(NSMenu *menu,struct _cmpMap *map,size_t mapEntri return; } else if ([[aTableColumn identifier] isEqualToString:@"collation"]) { - NSString *newCollation = [[(NSPopUpButtonCell *)[aTableColumn dataCell] itemAtIndex:[anObject integerValue]] representedObject]; + //the popup button is subclassed to return the representedObject instead of the item index + NSString *newCollation = anObject; if(!newCollation) [currentRow removeObjectForKey:@"collationName"]; |