diff options
author | Abhi Beckert <abhi@abhibeckert.com> | 2017-03-10 13:38:59 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-10 13:38:59 +1000 |
commit | f5e022b6667815a05c0b2478db07f50af2e52d0b (patch) | |
tree | 9ebf384a89caa2a726fce85dffb9c4878a43fac8 /Source/SPTableContentDataSource.m | |
parent | cbfadab19e17a4c50e4ddfd5599887cb0597ced5 (diff) | |
parent | 1d12c0e41319ffd2a1f1ab62305bd2688910f151 (diff) | |
download | sequelpro-f5e022b6667815a05c0b2478db07f50af2e52d0b.tar.gz sequelpro-f5e022b6667815a05c0b2478db07f50af2e52d0b.tar.bz2 sequelpro-f5e022b6667815a05c0b2478db07f50af2e52d0b.zip |
Merge pull request #2721 from abhibeckert/master
#2629 show binary data as hex now also applies to blob
Diffstat (limited to 'Source/SPTableContentDataSource.m')
-rw-r--r-- | Source/SPTableContentDataSource.m | 34 |
1 files changed, 27 insertions, 7 deletions
diff --git a/Source/SPTableContentDataSource.m b/Source/SPTableContentDataSource.m index 34b886d4..56e8df71 100644 --- a/Source/SPTableContentDataSource.m +++ b/Source/SPTableContentDataSource.m @@ -106,10 +106,6 @@ value = [self _contentValueForTableColumn:columnIndex row:rowIndex asPreview:YES]; } } - - NSDictionary *columnDefinition = [[(id <SPDatabaseContentViewDelegate>)[tableContentView delegate] dataColumnDefinitions] objectAtIndex:columnIndex]; - - NSString *columnType = [columnDefinition objectForKey:@"typegrouping"]; if ([value isKindOfClass:[SPMySQLGeometryData class]]) { return [value wktString]; @@ -120,9 +116,12 @@ } if ([value isKindOfClass:[NSData class]]) { - - if ([columnType isEqualToString:@"binary"] && [prefs boolForKey:SPDisplayBinaryDataAsHex]) { - return [NSString stringWithFormat:@"0x%@", [value dataToHexString]]; + + if ([self cellValueIsDisplayedAsHexForColumn:columnIndex]) { + if ([(NSData *)value length] > 255) { + return [NSString stringWithFormat:@"0x%@...", [[(NSData *)value subdataWithRange:NSMakeRange(0, 255)] dataToHexString]]; + } + return [NSString stringWithFormat:@"0x%@", [(NSData *)value dataToHexString]]; } pthread_mutex_t *fieldEditorCheckLock = NULL; @@ -207,6 +206,27 @@ } } +- (BOOL)cellValueIsDisplayedAsHexForColumn:(NSUInteger)columnIndex +{ + if (![prefs boolForKey:SPDisplayBinaryDataAsHex]) { + return NO; + } + + NSDictionary *columnDefinition = [[(id <SPDatabaseContentViewDelegate>)[tableContentView delegate] dataColumnDefinitions] objectAtIndex:columnIndex]; + NSString *typeGrouping = columnDefinition[@"typegrouping"]; + + if ([typeGrouping isEqual:@"binary"]) { + return YES; + } + + if ([typeGrouping isEqual:@"blobdata"]) { + return YES; + } + + + return NO; +} + @end @implementation SPTableContent (SPTableContentDataSource_Private_API) |