aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBibiko <bibiko@eva.mpg.de>2010-08-05 08:52:20 +0000
committerBibiko <bibiko@eva.mpg.de>2010-08-05 08:52:20 +0000
commit466a6f7c4f06429acef29efcffef56f05cbaaa26 (patch)
treeeb655f8a4d38dc4a6a29de86cf18b346bc49f7aa
parentd20d35aedb551516e1974979e8a0048a0ea81cbf (diff)
downloadsequelpro-466a6f7c4f06429acef29efcffef56f05cbaaa26.tar.gz
sequelpro-466a6f7c4f06429acef29efcffef56f05cbaaa26.tar.bz2
sequelpro-466a6f7c4f06429acef29efcffef56f05cbaaa26.zip
• added svn prop Id to GeneratePreview/ThumbnailForURL.m
• added SP's SPData/StringAdditions to QuickLook generator to avoid double-coding • cleaned generator code a bit
-rw-r--r--Source/GeneratePreviewForURL.m404
-rw-r--r--Source/GenerateThumbnailForURL.m6
-rw-r--r--sequel-pro.xcodeproj/project.pbxproj26
3 files changed, 170 insertions, 266 deletions
diff --git a/Source/GeneratePreviewForURL.m b/Source/GeneratePreviewForURL.m
index 30ca2ae2..d2a60c2b 100644
--- a/Source/GeneratePreviewForURL.m
+++ b/Source/GeneratePreviewForURL.m
@@ -1,3 +1,6 @@
+//
+// $Id$
+//
// GeneratePreviewForURL.m
// sequel-pro
//
@@ -22,6 +25,8 @@
#include <CoreFoundation/CoreFoundation.h>
#include <CoreServices/CoreServices.h>
#include <QuickLook/QuickLook.h>
+#import "SPDataAdditions.h"
+#import "SPStringAdditions.h"
#import <Cocoa/Cocoa.h>
/* -----------------------------------------------------------------------------
@@ -30,295 +35,161 @@
This function's job is to create preview for designated file
----------------------------------------------------------------------------- */
-static char base64encodingTable[64] = {
-'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P',
-'Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f',
-'g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v',
-'w','x','y','z','0','1','2','3','4','5','6','7','8','9','+','/' };
-
-@interface NSData (QLDataAdditions)
-
-- (NSString *)base64EncodingWithLineLength:(NSUInteger)lineLength;
-
-@end
-
-
-@implementation NSData (QLDataAdditions)
-
-/*
- * Derived from http://colloquy.info/project/browser/trunk/NSDataAdditions.m?rev=1576
- * Created by khammond on Mon Oct 29 2001.
- * Formatted by Timothy Hatcher on Sun Jul 4 2004.
- * Copyright (c) 2001 Kyle Hammond. All rights reserved.
- * Original development by Dave Winer.
- *
- * Convert self to a base64 encoded NSString
- */
-- (NSString *) base64EncodingWithLineLength:(NSUInteger)lineLength {
-
- const unsigned char *bytes = [self bytes];
- NSUInteger ixtext = 0;
- NSUInteger lentext = [self length];
- NSInteger ctremaining = 0;
- unsigned char inbuf[3], outbuf[4];
- short i = 0;
- short charsonline = 0, ctcopy = 0;
- NSUInteger ix = 0;
-
- NSMutableString *base64 = [NSMutableString stringWithCapacity:lentext];
-
- while(1) {
- ctremaining = lentext - ixtext;
- if( ctremaining <= 0 ) break;
-
- for( i = 0; i < 3; i++ ) {
- ix = ixtext + i;
- if( ix < lentext ) inbuf[i] = bytes[ix];
- else inbuf [i] = 0;
- }
-
- outbuf [0] = (inbuf [0] & 0xFC) >> 2;
- outbuf [1] = ((inbuf [0] & 0x03) << 4) | ((inbuf [1] & 0xF0) >> 4);
- outbuf [2] = ((inbuf [1] & 0x0F) << 2) | ((inbuf [2] & 0xC0) >> 6);
- outbuf [3] = inbuf [2] & 0x3F;
- ctcopy = 4;
-
- switch( ctremaining ) {
- case 1:
- ctcopy = 2;
- break;
- case 2:
- ctcopy = 3;
- break;
- }
-
- for( i = 0; i < ctcopy; i++ )
- [base64 appendFormat:@"%c", base64encodingTable[outbuf[i]]];
-
- for( i = ctcopy; i < 4; i++ )
- [base64 appendFormat:@"%c",'='];
-
- ixtext += 3;
- charsonline += 4;
-
- if( lineLength > 0 ) {
- if (charsonline >= lineLength) {
- charsonline = 0;
- [base64 appendString:@"\n"];
- }
- }
- }
-
- return base64;
-}
-@end
-
-@interface NSString (QLStringAdditions)
-
-+ (NSString *)stringForByteSize:(long long)byteSize;
-
-@end
-
-@implementation NSString (QLStringAdditions)
-
-/*
- * Returns a human readable version string of the supplied byte size.
- */
-+ (NSString *)stringForByteSize:(long long)byteSize
-{
- CGFloat size = byteSize;
-
- NSNumberFormatter *numberFormatter = [[[NSNumberFormatter alloc] init] autorelease];
-
- [numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
-
- if (size < 1023) {
- [numberFormatter setFormat:@"#,##0 B"];
-
- return [numberFormatter stringFromNumber:[NSNumber numberWithInteger:size]];
- }
-
- size = (size / 1024);
-
- if (size < 1023) {
- [numberFormatter setFormat:@"#,##0.0 KiB"];
-
- return [numberFormatter stringFromNumber:[NSNumber numberWithDouble:size]];
- }
-
- size = (size / 1024);
-
- if (size < 1023) {
- [numberFormatter setFormat:@"#,##0.0 MiB"];
-
- return [numberFormatter stringFromNumber:[NSNumber numberWithDouble:size]];
- }
-
- size = (size / 1024);
-
- if (size < 1023) {
- [numberFormatter setFormat:@"#,##0.0 GiB"];
-
- return [numberFormatter stringFromNumber:[NSNumber numberWithDouble:size]];
- }
-
- size = (size / 1024);
-
- [numberFormatter setFormat:@"#,##0.0 TiB"];
-
- return [numberFormatter stringFromNumber:[NSNumber numberWithDouble:size]];
-}
-@end
OSStatus GeneratePreviewForURL(void *thisInterface, QLPreviewRequestRef preview, CFURLRef url, CFStringRef contentTypeUTI, CFDictionaryRef options)
{
NSURL *myURL = (NSURL *)url;
NSString *urlExtension = [[[myURL path] pathExtension] lowercaseString];
+
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
NSError *templateReadError = nil;
+ if (QLPreviewRequestIsCancelled(preview))
+ return noErr;
+
+ // Get current set file icon
NSImage *iconImage = [[NSWorkspace sharedWorkspace] iconForFile:[myURL path]];
NSMutableString *html;
NSString *template = nil;
- if (false == QLPreviewRequestIsCancelled(preview)) {
+ if (QLPreviewRequestIsCancelled(preview))
+ return noErr;
- NSDictionary *fileAttributes = [[NSFileManager defaultManager] attributesOfItemAtPath:[myURL path] error:nil];
+ NSDictionary *fileAttributes = [[NSFileManager defaultManager] attributesOfItemAtPath:[myURL path] error:nil];
- if([urlExtension isEqualToString:@"spf"]) {
+ // Dispatch different fiel extensions
+ if([urlExtension isEqualToString:@"spf"]) {
- NSError *readError = nil;
- NSString *convError = nil;
- NSPropertyListFormat format;
- NSDictionary *spf = nil;
+ NSError *readError = nil;
+ NSString *convError = nil;
+ NSPropertyListFormat format;
+ NSDictionary *spf = nil;
- NSData *pData = [NSData dataWithContentsOfFile:[myURL path] options:NSUncachedRead error:&readError];
+ // Get spf data as dictionary
+ NSData *pData = [NSData dataWithContentsOfFile:[myURL path] options:NSUncachedRead error:&readError];
+ spf = [[NSPropertyListSerialization propertyListFromData:pData
+ mutabilityOption:NSPropertyListImmutable format:&format errorDescription:&convError] retain];
- spf = [[NSPropertyListSerialization propertyListFromData:pData
- mutabilityOption:NSPropertyListImmutable format:&format errorDescription:&convError] retain];
+ if(!spf || readError != nil || [convError length] || !(format == NSPropertyListXMLFormat_v1_0 || format == NSPropertyListBinaryFormat_v1_0)) {
+ if(spf) [spf release];
+ [pool release];
+ return noErr;
+ }
- if(!spf || readError != nil || [convError length] || !(format == NSPropertyListXMLFormat_v1_0 || format == NSPropertyListBinaryFormat_v1_0)) {
- if(spf) [spf release];
+ // Dispatch different spf formats
+ if([[spf objectForKey:@"format"] isEqualToString:@"connection"]) {
+ template = [NSString stringWithContentsOfFile:[[NSBundle bundleWithIdentifier:@"com.google.code.sequel-pro.qlgenerator"] pathForResource:@"SPQLPluginConnectionTemplate" ofType:@"html"]
+ encoding:NSUTF8StringEncoding error:&templateReadError];
+
+ if (template == nil || ![template length] || templateReadError != nil) {
[pool release];
return noErr;
}
- if([[spf objectForKey:@"format"] isEqualToString:@"connection"]) {
- template = [NSString stringWithContentsOfFile:[[NSBundle bundleWithIdentifier:@"com.google.code.sequel-pro.qlgenerator"] pathForResource:@"SPQLPluginConnectionTemplate" ofType:@"html"]
- encoding:NSUTF8StringEncoding error:&templateReadError];
-
- if (template == nil || ![template length] || templateReadError != nil) {
- [pool release];
- return noErr;
- }
-
- NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
- [dateFormatter setTimeStyle:NSDateFormatterShortStyle];
- [dateFormatter setDateStyle:NSDateFormatterMediumStyle];
- [dateFormatter setLocale:[NSLocale currentLocale]];
-
- NSString *name = @"••••";
- NSString *host = @"••••";
- NSString *user = @"••••";
- NSString *database = @"••••";
- NSString *autoConnect = ([[spf objectForKey:@"auto_connect"] boolValue]) ? @"checked" : @"";
-
- if([[spf objectForKey:@"data"] isKindOfClass:[NSDictionary class]]) {
- if([[spf objectForKey:@"data"] objectForKey:@"connection"] && [[[spf objectForKey:@"data"] objectForKey:@"connection"] objectForKey:@"name"])
- name = [[[spf objectForKey:@"data"] objectForKey:@"connection"] objectForKey:@"name"];
- else
- name = @"";
- if([[spf objectForKey:@"data"] objectForKey:@"connection"] && [[[spf objectForKey:@"data"] objectForKey:@"connection"] objectForKey:@"host"])
- host = [[[spf objectForKey:@"data"] objectForKey:@"connection"] objectForKey:@"host"];
- else
- host = @"";
- if([[spf objectForKey:@"data"] objectForKey:@"connection"] && [[[spf objectForKey:@"data"] objectForKey:@"connection"] objectForKey:@"user"])
- user = [[[spf objectForKey:@"data"] objectForKey:@"connection"] objectForKey:@"user"];
- else
- user = @"";
- if([[spf objectForKey:@"data"] objectForKey:@"connection"] && [[[spf objectForKey:@"data"] objectForKey:@"connection"] objectForKey:@"database"])
- database = [[[spf objectForKey:@"data"] objectForKey:@"connection"] objectForKey:@"database"];
- else
- database = @"";
- }
-
- // compose the html
- html = [[NSMutableString alloc] initWithString:[NSString stringWithFormat:template,
- [[iconImage TIFFRepresentationUsingCompression:NSTIFFCompressionJPEG factor:0.01] base64EncodingWithLineLength:0],
- [spf objectForKey:@"rdbms_type"],
- [spf objectForKey:@"rdbms_version"],
- [name stringByReplacingOccurrencesOfString:@" " withString:@"&nbsp;"],
- [host stringByReplacingOccurrencesOfString:@" " withString:@"&nbsp;"],
- [user stringByReplacingOccurrencesOfString:@" " withString:@"&nbsp;"],
- [database stringByReplacingOccurrencesOfString:@" " withString:@"&nbsp;"],
- [NSString stringForByteSize:[[fileAttributes objectForKey:NSFileSize] longLongValue]],
- [dateFormatter stringFromDate:[fileAttributes fileModificationDate]],
- autoConnect
- ]];
+ NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
+ [dateFormatter setTimeStyle:NSDateFormatterShortStyle];
+ [dateFormatter setDateStyle:NSDateFormatterMediumStyle];
+ [dateFormatter setLocale:[NSLocale currentLocale]];
+
+ NSString *name = @"••••";
+ NSString *host = @"••••";
+ NSString *user = @"••••";
+ NSString *database = @"••••";
+ NSString *autoConnect = ([[spf objectForKey:@"auto_connect"] boolValue]) ? @"checked" : @"";
+
+ if([[spf objectForKey:@"data"] isKindOfClass:[NSDictionary class]]) {
+ if([[spf objectForKey:@"data"] objectForKey:@"connection"] && [[[spf objectForKey:@"data"] objectForKey:@"connection"] objectForKey:@"name"])
+ name = [[[spf objectForKey:@"data"] objectForKey:@"connection"] objectForKey:@"name"];
+ else
+ name = @"";
+ if([[spf objectForKey:@"data"] objectForKey:@"connection"] && [[[spf objectForKey:@"data"] objectForKey:@"connection"] objectForKey:@"host"])
+ host = [[[spf objectForKey:@"data"] objectForKey:@"connection"] objectForKey:@"host"];
+ else
+ host = @"";
+ if([[spf objectForKey:@"data"] objectForKey:@"connection"] && [[[spf objectForKey:@"data"] objectForKey:@"connection"] objectForKey:@"user"])
+ user = [[[spf objectForKey:@"data"] objectForKey:@"connection"] objectForKey:@"user"];
+ else
+ user = @"";
+ if([[spf objectForKey:@"data"] objectForKey:@"connection"] && [[[spf objectForKey:@"data"] objectForKey:@"connection"] objectForKey:@"database"])
+ database = [[[spf objectForKey:@"data"] objectForKey:@"connection"] objectForKey:@"database"];
+ else
+ database = @"";
+ }
- [dateFormatter release];
- [spf release];
+ // compose the html
+ html = [[NSMutableString alloc] initWithString:[NSString stringWithFormat:template,
+ [[iconImage TIFFRepresentationUsingCompression:NSTIFFCompressionJPEG factor:0.01] base64EncodingWithLineLength:0],
+ [spf objectForKey:@"rdbms_type"],
+ [spf objectForKey:@"rdbms_version"],
+ [name stringByReplacingOccurrencesOfString:@" " withString:@"&nbsp;"],
+ [host stringByReplacingOccurrencesOfString:@" " withString:@"&nbsp;"],
+ [user stringByReplacingOccurrencesOfString:@" " withString:@"&nbsp;"],
+ [database stringByReplacingOccurrencesOfString:@" " withString:@"&nbsp;"],
+ [NSString stringForByteSize:[[fileAttributes objectForKey:NSFileSize] longLongValue]],
+ [dateFormatter stringFromDate:[fileAttributes fileModificationDate]],
+ autoConnect
+ ]];
+
+ [dateFormatter release];
+ }
+ else if([[spf objectForKey:@"format"] isEqualToString:@"content filters"]) {
+ template = [NSString stringWithContentsOfFile:[[NSBundle bundleWithIdentifier:@"com.google.code.sequel-pro.qlgenerator"] pathForResource:@"SPQLPluginContentFiltersTemplate" ofType:@"html"]
+ encoding:NSUTF8StringEncoding error:&templateReadError];
+
+ if (template == nil || ![template length] || templateReadError != nil) {
+ [pool release];
+ return noErr;
}
- else if([[spf objectForKey:@"format"] isEqualToString:@"content filters"]) {
- template = [NSString stringWithContentsOfFile:[[NSBundle bundleWithIdentifier:@"com.google.code.sequel-pro.qlgenerator"] pathForResource:@"SPQLPluginContentFiltersTemplate" ofType:@"html"]
- encoding:NSUTF8StringEncoding error:&templateReadError];
-
- if (template == nil || ![template length] || templateReadError != nil) {
- [pool release];
- return noErr;
- }
- // compose the html
- html = [[NSMutableString alloc] initWithString:[NSString stringWithFormat:template,
- [[iconImage TIFFRepresentationUsingCompression:NSTIFFCompressionJPEG factor:0.01] base64EncodingWithLineLength:0],
- [NSString stringWithContentsOfFile:[myURL path] encoding:NSUTF8StringEncoding error:nil]
- ]];
- }
- else if([[spf objectForKey:@"format"] isEqualToString:@"query favorites"]) {
- template = [NSString stringWithContentsOfFile:[[NSBundle bundleWithIdentifier:@"com.google.code.sequel-pro.qlgenerator"] pathForResource:@"SPQLPluginQueryFavoritesTemplate" ofType:@"html"]
- encoding:NSUTF8StringEncoding error:&templateReadError];
-
- if (template == nil || ![template length] || templateReadError != nil) {
- [pool release];
- return noErr;
- }
- // compose the html
- html = [[NSMutableString alloc] initWithString:[NSString stringWithFormat:template,
- [[iconImage TIFFRepresentationUsingCompression:NSTIFFCompressionJPEG factor:0.01] base64EncodingWithLineLength:0],
- [NSString stringWithContentsOfFile:[myURL path] encoding:NSUTF8StringEncoding error:nil]
- ]];
- }
+ // compose the html
+ html = [[NSMutableString alloc] initWithString:[NSString stringWithFormat:template,
+ [[iconImage TIFFRepresentationUsingCompression:NSTIFFCompressionJPEG factor:0.01] base64EncodingWithLineLength:0],
+ [NSString stringWithContentsOfFile:[myURL path] encoding:NSUTF8StringEncoding error:nil]
+ ]];
}
- else if([urlExtension isEqualToString:@"sql"]) {
- template = [NSString stringWithContentsOfFile:[[NSBundle bundleWithIdentifier:@"com.google.code.sequel-pro.qlgenerator"] pathForResource:@"SPQLPluginSQLTemplate" ofType:@"html"]
+
+ else if([[spf objectForKey:@"format"] isEqualToString:@"query favorites"]) {
+ template = [NSString stringWithContentsOfFile:[[NSBundle bundleWithIdentifier:@"com.google.code.sequel-pro.qlgenerator"] pathForResource:@"SPQLPluginQueryFavoritesTemplate" ofType:@"html"]
encoding:NSUTF8StringEncoding error:&templateReadError];
if (template == nil || ![template length] || templateReadError != nil) {
[pool release];
return noErr;
}
-
// compose the html
- if(fileAttributes)
- {
- NSNumber *filesize = [fileAttributes objectForKey:NSFileSize];
- // catch large files since Finder blocks
- if([filesize unsignedLongValue] > 6000000) {
- html = [[NSMutableString alloc] initWithString:[NSString stringWithFormat:template,
- [[iconImage TIFFRepresentationUsingCompression:NSTIFFCompressionJPEG factor:0.01] base64EncodingWithLineLength:0],
- [NSString stringForByteSize:[[fileAttributes objectForKey:NSFileSize] longLongValue]],
- @"... SQL ..."
- ]];
- } else {
- html = [[NSMutableString alloc] initWithString:[NSString stringWithFormat:template,
- [[iconImage TIFFRepresentationUsingCompression:NSTIFFCompressionJPEG factor:0.01] base64EncodingWithLineLength:0],
- [NSString stringForByteSize:[[fileAttributes objectForKey:NSFileSize] longLongValue]],
- [NSString stringWithContentsOfFile:[myURL path] encoding:NSUTF8StringEncoding error:nil]
- ]];
- }
+ html = [[NSMutableString alloc] initWithString:[NSString stringWithFormat:template,
+ [[iconImage TIFFRepresentationUsingCompression:NSTIFFCompressionJPEG factor:0.01] base64EncodingWithLineLength:0],
+ [NSString stringWithContentsOfFile:[myURL path] encoding:NSUTF8StringEncoding error:nil]
+ ]];
+ }
+
+ [spf release];
+
+ }
+
+ else if([urlExtension isEqualToString:@"sql"]) {
+ template = [NSString stringWithContentsOfFile:[[NSBundle bundleWithIdentifier:@"com.google.code.sequel-pro.qlgenerator"] pathForResource:@"SPQLPluginSQLTemplate" ofType:@"html"]
+ encoding:NSUTF8StringEncoding error:&templateReadError];
+
+ if (template == nil || ![template length] || templateReadError != nil) {
+ [pool release];
+ return noErr;
+ }
+
+ // compose the html
+ if(fileAttributes)
+ {
+ NSNumber *filesize = [fileAttributes objectForKey:NSFileSize];
+ // catch large files since Finder blocks
+ if([filesize unsignedLongValue] > 3000000) {
+ html = [[NSMutableString alloc] initWithString:[NSString stringWithFormat:template,
+ [[iconImage TIFFRepresentationUsingCompression:NSTIFFCompressionJPEG factor:0.01] base64EncodingWithLineLength:0],
+ [NSString stringForByteSize:[[fileAttributes objectForKey:NSFileSize] longLongValue]],
+ @"... SQL ..."
+ ]];
} else {
html = [[NSMutableString alloc] initWithString:[NSString stringWithFormat:template,
[[iconImage TIFFRepresentationUsingCompression:NSTIFFCompressionJPEG factor:0.01] base64EncodingWithLineLength:0],
@@ -326,19 +197,26 @@ OSStatus GeneratePreviewForURL(void *thisInterface, QLPreviewRequestRef preview,
[NSString stringWithContentsOfFile:[myURL path] encoding:NSUTF8StringEncoding error:nil]
]];
}
+ } else {
+ html = [[NSMutableString alloc] initWithString:[NSString stringWithFormat:template,
+ [[iconImage TIFFRepresentationUsingCompression:NSTIFFCompressionJPEG factor:0.01] base64EncodingWithLineLength:0],
+ [NSString stringForByteSize:[[fileAttributes objectForKey:NSFileSize] longLongValue]],
+ [NSString stringWithContentsOfFile:[myURL path] encoding:NSUTF8StringEncoding error:nil]
+ ]];
}
-
- CFDictionaryRef properties = (CFDictionaryRef)[NSDictionary dictionary];
- QLPreviewRequestSetDataRepresentation(preview,
- (CFDataRef)[html dataUsingEncoding:NSUTF8StringEncoding],
- kUTTypeHTML,
- properties
- );
- [html release];
-
}
+
+ CFDictionaryRef properties = (CFDictionaryRef)[NSDictionary dictionary];
+ QLPreviewRequestSetDataRepresentation(preview,
+ (CFDataRef)[html dataUsingEncoding:NSUTF8StringEncoding],
+ kUTTypeHTML,
+ properties
+ );
+
+ [html release];
[pool release];
- return noErr;
+ return noErr;
+
}
void CancelPreviewGeneration(void* thisInterface, QLPreviewRequestRef preview)
diff --git a/Source/GenerateThumbnailForURL.m b/Source/GenerateThumbnailForURL.m
index cee74c74..4267c2c0 100644
--- a/Source/GenerateThumbnailForURL.m
+++ b/Source/GenerateThumbnailForURL.m
@@ -1,3 +1,6 @@
+//
+// $Id$
+//
// GenerateThumbnailForURL.m
// sequel-pro
//
@@ -42,7 +45,8 @@ OSStatus GenerateThumbnailForURL(void *thisInterface, QLThumbnailRequestRef thum
{
return noErr;
- // The following code is meant as example maybe fr the future
+ // The following code is meant as example maybe for the future
+
// NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
//
// NSData *thumbnailData = [NSData dataWithContentsOfFile:@"appicon.icns"];
diff --git a/sequel-pro.xcodeproj/project.pbxproj b/sequel-pro.xcodeproj/project.pbxproj
index 45c690e4..e6f3112b 100644
--- a/sequel-pro.xcodeproj/project.pbxproj
+++ b/sequel-pro.xcodeproj/project.pbxproj
@@ -332,6 +332,11 @@
B5F4F7810F7BCF990059AE84 /* toolbar-switch-to-procedures.tiff in Resources */ = {isa = PBXBuildFile; fileRef = B5F4F7800F7BCF990059AE84 /* toolbar-switch-to-procedures.tiff */; };
BC01BCCF104024BE006BDEE7 /* SPEncodingPopupAccessory.m in Sources */ = {isa = PBXBuildFile; fileRef = BC01BCCE104024BE006BDEE7 /* SPEncodingPopupAccessory.m */; };
BC05F1C5101241DF008A97F8 /* YRKSpinningProgressIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = BC05F1C4101241DF008A97F8 /* YRKSpinningProgressIndicator.m */; };
+ BC0E1486120AAB5600E52E25 /* SPDataAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = BC2C16D30FEBEDF10003993B /* SPDataAdditions.m */; };
+ BC0E1487120AAB5C00E52E25 /* SPStringAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 1789343B0F30C1DD0097539A /* SPStringAdditions.m */; };
+ BC0E1493120AABE900E52E25 /* libcrypto.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 17B7B58F1016028F00F057DE /* libcrypto.dylib */; };
+ BC0E14A1120AAC2E00E52E25 /* libbz2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 179ECEC611F265EE009C6A40 /* libbz2.dylib */; };
+ BC0E14A4120AAC5000E52E25 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 583CE52C11725642008F148E /* libz.dylib */; };
BC1847EA0FE6EC8400094BFB /* SPEditSheetTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC1847E90FE6EC8400094BFB /* SPEditSheetTextView.m */; };
BC1E55C4100DC92200AAE9F0 /* table-view-small-square.tiff in Resources */ = {isa = PBXBuildFile; fileRef = BC1E55C3100DC92200AAE9F0 /* table-view-small-square.tiff */; };
BC2777A011514B940034DF6A /* SPNavigatorController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC27779F11514B940034DF6A /* SPNavigatorController.m */; };
@@ -360,6 +365,8 @@
BCCDED6B115940CB00285E65 /* sync_arrows_04.tiff in Resources */ = {isa = PBXBuildFile; fileRef = BCCDED65115940CB00285E65 /* sync_arrows_04.tiff */; };
BCCDED6C115940CB00285E65 /* sync_arrows_05.tiff in Resources */ = {isa = PBXBuildFile; fileRef = BCCDED66115940CB00285E65 /* sync_arrows_05.tiff */; };
BCCDED6D115940CB00285E65 /* sync_arrows_06.tiff in Resources */ = {isa = PBXBuildFile; fileRef = BCCDED67115940CB00285E65 /* sync_arrows_06.tiff */; };
+ BCD06FC6120AAAC200C73602 /* SPDataAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = BC2C16D20FEBEDF10003993B /* SPDataAdditions.h */; };
+ BCD06FC7120AAACB00C73602 /* SPStringAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 1789343A0F30C1DD0097539A /* SPStringAdditions.h */; };
BCD0AD490FBBFC340066EA5C /* SPSQLTokenizer.l in Sources */ = {isa = PBXBuildFile; fileRef = BCD0AD480FBBFC340066EA5C /* SPSQLTokenizer.l */; };
BCE0025D11173D2A009DA533 /* SPFieldMapperController.m in Sources */ = {isa = PBXBuildFile; fileRef = BCE0025C11173D2A009DA533 /* SPFieldMapperController.m */; };
BCEF78C6115215CA0023F8C2 /* network-small.tif in Resources */ = {isa = PBXBuildFile; fileRef = BCEF78C5115215CA0023F8C2 /* network-small.tif */; };
@@ -384,7 +391,7 @@
isa = PBXContainerItemProxy;
containerPortal = 2A37F4A9FDCFA73011CA2CEA /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 584754C1120A04560057631F /* Sequel Pro QLGenerator */;
+ remoteGlobalIDString = 584754C1120A04560057631F;
remoteInfo = "Sequel Pro QLGenerator";
};
58B907CC11BDA552000826E5 /* PBXContainerItemProxy */ = {
@@ -1020,6 +1027,9 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
+ BC0E14A1120AAC2E00E52E25 /* libbz2.dylib in Frameworks */,
+ BC0E14A4120AAC5000E52E25 /* libz.dylib in Frameworks */,
+ BC0E1493120AABE900E52E25 /* libcrypto.dylib in Frameworks */,
58475686120A065B0057631F /* CoreFoundation.framework in Frameworks */,
584756B5120A06740057631F /* CoreServices.framework in Frameworks */,
584756B7120A067B0057631F /* ApplicationServices.framework in Frameworks */,
@@ -1093,9 +1103,9 @@
584756B6120A067B0057631F /* ApplicationServices.framework */,
584756B8120A06830057631F /* QuickLook.framework */,
296DC8BE0F9091DF002A3258 /* libicucore.dylib */,
- 17B7B58F1016028F00F057DE /* libcrypto.dylib */,
179ECEC611F265EE009C6A40 /* libbz2.dylib */,
17B7B591101602AE00F057DE /* libssl.dylib */,
+ 17B7B58F1016028F00F057DE /* libcrypto.dylib */,
583CE52C11725642008F148E /* libz.dylib */,
);
name = "Linked Frameworks";
@@ -2146,6 +2156,15 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ BCD06FD5120AAAD700C73602 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ BCD06FC7120AAACB00C73602 /* SPStringAdditions.h in Headers */,
+ BCD06FC6120AAAC200C73602 /* SPDataAdditions.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
@@ -2188,6 +2207,7 @@
isa = PBXNativeTarget;
buildConfigurationList = 584754C7120A04560057631F /* Build configuration list for PBXNativeTarget "Sequel Pro QLGenerator" */;
buildPhases = (
+ BCD06FD5120AAAD700C73602 /* Headers */,
584754BE120A04560057631F /* Resources */,
584754BF120A04560057631F /* Sources */,
584754C0120A04560057631F /* Frameworks */,
@@ -2533,6 +2553,8 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
+ BC0E1487120AAB5C00E52E25 /* SPStringAdditions.m in Sources */,
+ BC0E1486120AAB5600E52E25 /* SPDataAdditions.m in Sources */,
584754D3120A05910057631F /* GeneratePreviewForURL.m in Sources */,
584754D4120A05910057631F /* GenerateThumbnailForURL.m in Sources */,
584754D5120A05910057631F /* main.c in Sources */,