diff options
Diffstat (limited to 'Source')
-rw-r--r-- | Source/SPCharsetCollationHelper.m | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/Source/SPCharsetCollationHelper.m b/Source/SPCharsetCollationHelper.m index 14b0a987..378fb7cf 100644 --- a/Source/SPCharsetCollationHelper.m +++ b/Source/SPCharsetCollationHelper.m @@ -133,6 +133,8 @@ if (([encodings count] > 0) && [serverSupport supportsPost41CharacterSetHandling]) { + NSUInteger utf8encounters = 0; + for (NSDictionary *encoding in encodings) { NSString *charsetId = [encoding objectForKey:@"CHARACTER_SET_NAME"]; @@ -146,12 +148,9 @@ if(selectedCharset && [charsetId isEqualToString:selectedCharset]) selectedRef = menuItem; - // If the UTF8 entry has been encountered, promote it to the top of the list - if (promoteUTF8 && [charsetId isEqualToString:@"utf8"]) { - [[charsetButton menu] insertItem:[menuItem autorelease] atIndex:0]; - //only add a separator if there actually are more items other than utf8 (might not be true for mysql forks) - if([encodings count] > 1) - [[charsetButton menu] insertItem:[NSMenuItem separatorItem] atIndex:1]; + // If an UTF8 entry has been encountered, promote it to the top of the list + if (promoteUTF8 && [charsetId hasPrefix:@"utf8"]) { + [[charsetButton menu] insertItem:[menuItem autorelease] atIndex:(utf8encounters++)]; } else { [[charsetButton menu] addItem:[menuItem autorelease]]; @@ -159,6 +158,10 @@ } + //only add a separator if there actually are more items other than utf8 (might not be true for mysql forks) + if(utf8encounters && [encodings count] > utf8encounters) + [[charsetButton menu] insertItem:[NSMenuItem separatorItem] atIndex:utf8encounters]; + [charsetButton setEnabled:YES]; } |