From 36b91cb3ac3fe66bf60871e1ff6f30d69ea196d5 Mon Sep 17 00:00:00 2001 From: "Michael J. Rubinsky" Date: Tue, 1 Sep 2009 20:37:35 -0400 Subject: [PATCH] Properly detect image type, add missing datasource protocol methods. --- .../ApertureHeaders/ApertureSDKCommon.h | 14 +++++++ .../ApertureToAnselExportPlugin.m | 43 +++++++++++++++++++-- .../ApertureToAnselExportPlugin.nib/info.nib | 3 +- .../keyedobjects.nib | Bin 26615 -> 26932 bytes 4 files changed, 55 insertions(+), 5 deletions(-) diff --git a/ApertureToAnselExportPlugin/ApertureHeaders/ApertureSDKCommon.h b/ApertureToAnselExportPlugin/ApertureHeaders/ApertureSDKCommon.h index 685977271..101c0a13d 100644 --- a/ApertureToAnselExportPlugin/ApertureHeaders/ApertureSDKCommon.h +++ b/ApertureToAnselExportPlugin/ApertureHeaders/ApertureSDKCommon.h @@ -135,3 +135,17 @@ typedef enum kExportThumbnailSizeMini, kExportThumbnailSizeTiny } ApertureExportThumbnailSize; + +/* + * Add the image type constants + */ + typedef enum + { + kApertureImageFormatJPG = 0, + kApertureImageFormatPNG = 1, + kApertureImageFormatTIFF8 = 2, + kApertureImageFormatTIFF16 = 3, + kApertureImageFormatPSD16 = 4, + kApertureImageFormatPSD8 = 5, + } ApertureImageFormat; + diff --git a/ApertureToAnselExportPlugin/ApertureToAnselExportPlugin.m b/ApertureToAnselExportPlugin/ApertureToAnselExportPlugin.m index 4ba1b0b49..efbcbbca7 100644 --- a/ApertureToAnselExportPlugin/ApertureToAnselExportPlugin.m +++ b/ApertureToAnselExportPlugin/ApertureToAnselExportPlugin.m @@ -247,7 +247,6 @@ NSString * const TURAnselServerPasswordKey = @"password"; [exportProgress.message autorelease]; exportProgress.message = [[NSString stringWithFormat:@"Uploading picture %d / %d", index + 1, [_exportManager imageCount]] retain]; - exportProgress.currentValue++; [self unlockProgress]; NSString *base64ImageData = [NSString base64StringFromData: imageData @@ -255,8 +254,29 @@ NSString * const TURAnselServerPasswordKey = @"password"; NSDictionary *properties = [_exportManager propertiesWithoutThumbnailForImageAtIndex: index]; NSArray *keys = [[NSArray alloc] initWithObjects: @"filename", @"description", @"data", @"type", @"tags", nil]; + + /* Determine the correct filetype */ + NSDictionary *preset = [_exportManager selectedExportPresetDictionary]; + NSLog(@"Preset selected: %@",[_exportManager selectedExportPresetDictionary]); + NSString *fileType; + NSString *format = [preset objectForKey: @"ImageFormat"]; + if ([format isEqual: [NSNumber numberWithInt: kApertureImageFormatJPG]]) { + fileType = @"image/jpg"; + } else if ([format isEqual: [NSNumber numberWithInt: kApertureImageFormatPNG]]) { + fileType = @"image/png"; + } else if ([format isEqual: [NSNumber numberWithInt: kApertureImageFormatTIFF8]] || + [format isEqual: [NSNumber numberWithInt: kApertureImageFormatTIFF16]]) { + + // Ansel can handle converting the tiff - it is obviously unable to display the original TIFF file. + fileType = @"image/tiff"; + } else { + // Not supported. + // @TODO: Need to notify user of failure of this image. + fileType = nil; + } + + NSLog(@"Image Type: %@", fileType); - NSString *fileType = @"jpeg"; //@TODO NSArray *values = [[NSArray alloc] initWithObjects: path, [properties objectForKey: kExportKeyVersionName], @@ -294,6 +314,9 @@ NSString * const TURAnselServerPasswordKey = @"password"; - (void)exportManagerDidWriteImageDataToRelativePath:(NSString *)relativePath forImageAtIndex:(unsigned)index { NSLog(@"exportManagerDidWriteImageDataToRelativePath %@", relativePath); + [self lockProgress]; + exportProgress.currentValue++; + [self unlockProgress]; } - (void)exportManagerDidFinishExport @@ -631,8 +654,7 @@ NSString * const TURAnselServerPasswordKey = @"password"; if ([_anselController state] == TURAnselStateConnected) { //albumName = [mExportMgr albumNameAtIndex: 0]; - newGalleryController = [[TURAnselGalleryPanelController alloc] initWithController: _anselController - withGalleryName: nil]; + newGalleryController = [[TURAnselGalleryPanelController alloc] initWithController: _anselController]; [newGalleryController setDelegate: self]; [newGalleryController showSheetForWindow: [self window]]; } @@ -788,4 +810,17 @@ NSString * const TURAnselServerPasswordKey = @"password"; { return [_browserData objectAtIndex:index]; } +#pragma mark NSTableView Datasource +- (int)numberOfRowsInTableView:(NSTableView *)aTableView +{ + return [_anselServers count]; +} + +- (id)tableView:(NSTableView *)aTableView +objectValueForTableColumn:(NSTableColumn *)aTableColumn + row:(int)rowIndex +{ + return [[_anselServers objectAtIndex: rowIndex] objectForKey: [aTableColumn identifier]]; +} + @end diff --git a/ApertureToAnselExportPlugin/English.lproj/ApertureToAnselExportPlugin.nib/info.nib b/ApertureToAnselExportPlugin/English.lproj/ApertureToAnselExportPlugin.nib/info.nib index dba68c5db..35717405d 100644 --- a/ApertureToAnselExportPlugin/English.lproj/ApertureToAnselExportPlugin.nib/info.nib +++ b/ApertureToAnselExportPlugin/English.lproj/ApertureToAnselExportPlugin.nib/info.nib @@ -10,8 +10,9 @@ 5 IBOpenObjects - 63 + 157 176 + 63 IBSystem Version 9L30 diff --git a/ApertureToAnselExportPlugin/English.lproj/ApertureToAnselExportPlugin.nib/keyedobjects.nib b/ApertureToAnselExportPlugin/English.lproj/ApertureToAnselExportPlugin.nib/keyedobjects.nib index b6e84789562fb6308064a384b4b1802f4b941f89..2a54fd6f39058aac626a7904a4d824b63da18f62 100644 GIT binary patch literal 26932 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 Y%4#ar6fr{cao|UrrT*>yw`TPJ1Jz?5@Bjb+ -- 2.11.0