From: Michael J. Rubinsky Date: Fri, 25 Sep 2009 16:42:49 +0000 (-0400) Subject: Refactor iPhoto2Ansel to use the new AnselKit code, tweak some project properties... X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=fd6a0d47591ca120d2b7b0a3b598c55a80088728;p=horde.git Refactor iPhoto2Ansel to use the new AnselKit code, tweak some project properties, etc... --- diff --git a/iPhoto2Ansel/AnselExportController.h b/iPhoto2Ansel/AnselExportController.h index 0a098c6c0..29c1d4400 100644 --- a/iPhoto2Ansel/AnselExportController.h +++ b/iPhoto2Ansel/AnselExportController.h @@ -14,17 +14,6 @@ @class FBProgressController; @class TURNewGalleryController; -// User defaults keys -extern NSString * const TURAnselServersKey; -extern NSString * const TURAnselExportSize; -extern NSString * const TURAnselDefaultServerKey; - -// Server property keys -extern NSString * const TURAnselServerNickKey; -extern NSString * const TURAnselServerEndpointKey; -extern NSString * const TURAnselServerUsernameKey; -extern NSString * const TURAnselServerPasswordKey; - @interface AnselExportController : NSObject { // Export manager passed in from iPhoto @@ -42,7 +31,6 @@ extern NSString * const TURAnselServerPasswordKey; IBOutlet NSImageView *defaultImageView; IBOutlet NSButton *mNewGalleryButton; IBOutlet NSPopUpButton *mServersPopUp; - IBOutlet NSButton *mCancelConnect; IBOutlet NSTextField *mImageCountLabel; // Gallery View @@ -52,7 +40,6 @@ extern NSString * const TURAnselServerPasswordKey; IBOutlet IKImageBrowserView *browserView; NSMutableArray *browserData; - // New Server sheet IBOutlet NSWindow *newServerSheet; IBOutlet NSTextField *mServerSheetHostURL; @@ -60,7 +47,6 @@ extern NSString * const TURAnselServerPasswordKey; IBOutlet NSSecureTextField *mServerSheetPassword; IBOutlet NSTextField *mServerSheetServerNickName; IBOutlet NSButton *mMakeNewServerDefault; - // Server list IBOutlet NSPanel *serverListPanel; @@ -84,11 +70,6 @@ extern NSString * const TURAnselServerPasswordKey; TURAnsel *anselController; TURAnselGallery *currentGallery; int currentImageCount; - - // Remembers the selected server before it changes. Used to reselect the - // proper server if necessary when server panels are closed. - int mIndexOfPreviouslySelectedServer; - } @property (readwrite, retain) TURAnselGallery *currentGallery; @@ -101,8 +82,7 @@ extern NSString * const TURAnselServerPasswordKey; - (IBAction) doAddServer: (id)sender; - (IBAction) doCancelAddServer: (id)sender; - (IBAction) clickServer: (id)sender; -- (IBAction) clickCancelConnect: (id)sender; - +- (void) doSwapImage: (id)theImage; - (IBAction) clickViewGallery: (id)sender; - (IBAction) closeGalleryView: (id)sender; diff --git a/iPhoto2Ansel/AnselExportController.m b/iPhoto2Ansel/AnselExportController.m index 0e127c69d..dcdd36102 100644 --- a/iPhoto2Ansel/AnselExportController.m +++ b/iPhoto2Ansel/AnselExportController.m @@ -1,16 +1,16 @@ -// -// AnselExportController.m -// iPhoto2Ansel -// -// Created by Michael Rubinsky on 10/23/08. -// Copyright 2008 __MyCompanyName__. All rights reserved. -// -#import "TURAnsel.h"; -#import "TURAnselGallery.h"; +/** + * AnselExportController.m + * + * Copyright 2008 The Horde Project (http://www.horde.org) + * + * @license http://opensource.org/licenses/bsd-license.php + * @author Michael J. Rubinsky + */ +#import "TURAnselKit.h" #import "AnselExportController.h"; -#import "TURAnselGalleryPanelController.h"; #import "FBProgressController.h"; -#import "AnselGalleryViewItem.h"; +#import "NSStringAdditions.h"; +#import "NSDataAdditions.h"; @interface AnselExportController (PrivateAPI) - (void)showNewServerSheet; @@ -42,7 +42,8 @@ NSString * const TURAnselServerPasswordKey = @"password"; @synthesize currentGallery; -#pragma mark Overrides +#pragma mark - +#pragma mark init/dealloc /** * Set up UI defaults */ @@ -88,18 +89,18 @@ NSString * const TURAnselServerPasswordKey = @"password"; -(void)dealloc { //anselController is released from the AnselController delegate method. + NSLog(@"dealloc"); [progressController release]; [anselServers release]; [currentServer release]; [browserData release]; [super dealloc]; } - -#pragma mark Getter Setters - (NSWindow *)window { return [mExportMgr window]; } +#pragma mark - #pragma mark Actions - (IBAction)clickViewGallery: (id)sender { @@ -107,9 +108,6 @@ NSString * const TURAnselServerPasswordKey = @"password"; [self setStatusText: @"Getting image list..."]; NSMutableArray *images = [currentGallery listImages]; if ([images count] == 0) { - //TODO: Show a panel showing there are no images? Or just disable the - // view gallery button? - [spinner stopAnimation: self]; [self setStatusText: @"Connected" withColor: [NSColor greenColor]]; return; @@ -117,7 +115,7 @@ NSString * const TURAnselServerPasswordKey = @"password"; for (NSDictionary *image in images) { NSString *caption = [image objectForKey:@"caption"]; - if (caption == nil) { + if (caption == (NSString *)[NSNull null] || [caption length] == 0) { caption = [image objectForKey:@"filename"]; } @@ -196,6 +194,7 @@ NSString * const TURAnselServerPasswordKey = @"password"; // Action sent by the server pop up menu - (IBAction)clickServer: (id)sender { + NSLog(@"clickServer"); // Are we set to "none" now? if ([mServersPopUp indexOfSelectedItem] == 0) { [self disconnect]; @@ -214,6 +213,38 @@ NSString * const TURAnselServerPasswordKey = @"password"; [self doConnect]; } } +- (void)clickGallery +{ + [self setStatusText: @"Loading gallery data..."]; + [[self window] flushWindow]; + + [spinner startAnimation: self]; + int row = [galleryCombo indexOfSelectedItem]; + [currentGallery setDelegate:nil]; + [currentGallery autorelease]; + currentGallery = [[anselController getGalleryByIndex:row] retain]; + [currentGallery setDelegate: self]; + [mImageCountLabel setStringValue:[NSString stringWithFormat: @"Image Count: %d", [currentGallery galleryImageCount]]]; + + // Obtain and properly size the image for screen + NSImage *theImage = [[NSImage alloc] initWithContentsOfURL: [currentGallery galleryKeyImageURL]]; + NSSize imageSize; + imageSize.width = [[theImage bestRepresentationForDevice:nil] pixelsWide]; + imageSize.height = [[theImage bestRepresentationForDevice:nil] pixelsHigh]; + [theImage setScalesWhenResized:YES]; + [theImage setSize:imageSize]; + [self doSwapImage: theImage]; + [theImage autorelease]; +} + +- (void)doSwapImage: (id)theImage +{ + [self setStatusText: @"Connected" withColor: [NSColor greenColor]]; + [defaultImageView setImage: theImage]; + [self canExport]; + [viewGallery setEnabled: YES]; + [spinner stopAnimation: self]; +} - (IBAction) closeServerList: (id)sender { @@ -225,7 +256,6 @@ NSString * const TURAnselServerPasswordKey = @"password"; // Server setup sheet -(IBAction)doAddServer: (id)sender { - // TODO: Sanity checks NSDictionary *newServer = [[NSDictionary alloc] initWithObjectsAndKeys: [mServerSheetServerNickName stringValue], TURAnselServerNickKey, [mServerSheetHostURL stringValue], TURAnselServerEndpointKey, @@ -260,11 +290,7 @@ NSString * const TURAnselServerPasswordKey = @"password"; [newServerSheet orderOut: nil]; } -- (IBAction) clickCancelConnect: (id)sender -{ - [anselController cancel]; -} - +#pragma mark - #pragma mark ExportPluginProtocol // Initialize - (id)initWithExportImageObj:(id )obj @@ -341,7 +367,6 @@ NSString * const TURAnselServerPasswordKey = @"password"; { } - // Export was clicked in the UI // Do any preperations/validations and call our own privatePerformExport // (We don't want the iPhoto progress controller). @@ -355,6 +380,7 @@ NSString * const TURAnselServerPasswordKey = @"password"; { } +#pragma mark - #pragma mark Progress (We don't use these) - (ExportPluginProgress *)progress { @@ -379,6 +405,7 @@ NSString * const TURAnselServerPasswordKey = @"password"; return @"iPhoto2Ansel Export Plugin v1.0"; } +#pragma mark - #pragma mark PrivateAPI - (void) showNewServerSheet { @@ -425,6 +452,7 @@ NSString * const TURAnselServerPasswordKey = @"password"; - (void)updateServersPopupMenu { + NSLog(@"updateServersPopupMenu"); [mServersPopUp removeAllItems]; [mServersPopUp addItemWithTitle:@"(None)"]; for (NSDictionary *server in anselServers) { @@ -449,8 +477,12 @@ NSString * const TURAnselServerPasswordKey = @"password"; // Make sure we clean up from any previous connection -(void)disconnect { - [galleryCombo deselectItemAtIndex: [galleryCombo indexOfSelectedItem]]; + NSLog(@"Disconnect"); + NSLog(@"%d", [galleryCombo indexOfSelectedItem]); [galleryCombo setDelegate: nil]; + if ([galleryCombo indexOfSelectedItem] >= 0) { + [galleryCombo deselectItemAtIndex: [galleryCombo indexOfSelectedItem]]; + } [galleryCombo setDataSource: nil]; [galleryCombo reloadData]; [galleryCombo setEnabled: NO]; @@ -765,6 +797,7 @@ NSString * const TURAnselServerPasswordKey = @"password"; [statusLabel setTextColor: [NSColor blackColor]]; } +#pragma mark - #pragma mark TURAnselDelegate // The ansel controller is initialized, populate the gallery data @@ -783,6 +816,7 @@ NSString * const TURAnselServerPasswordKey = @"password"; - (void)TURAnselHadError: (NSError *)error { // Stop the spinner + NSLog(@"TURAnselHadError"); [spinner stopAnimation: self]; [self disconnect]; [mServersPopUp setEnabled: true]; @@ -809,8 +843,9 @@ NSString * const TURAnselServerPasswordKey = @"password"; [alert release]; } +#pragma mark - #pragma mark TURAnselGalleryDelegate -- (void)TURAnselGalleryDidUploadImage: (TURAnselGallery *)gallery { +- (void)TURAnselGalleryDidUploadImage: (id *)gallery { if (++currentImageCount == [mExportMgr imageCount] || cancelExport == YES) { [currentGallery setDelegate:nil]; [currentGallery release]; @@ -818,37 +853,17 @@ NSString * const TURAnselServerPasswordKey = @"password"; [anselController release]; [galleryCombo setDelegate:nil]; } -} +} +#pragma mark - #pragma mark comboBoxDelegate - (void)comboBoxSelectionDidChange:(NSNotification *)notification -{ - [spinner startAnimation: self]; - [self setStatusText: @"Loading gallery data..."]; - int row = [galleryCombo indexOfSelectedItem]; - [currentGallery setDelegate:nil]; - [currentGallery autorelease]; - currentGallery = [[anselController getGalleryByIndex:row] retain]; - [currentGallery setDelegate: self]; - - // Obtain and properly size the image for screen - NSImage *theImage = [[NSImage alloc] initWithContentsOfURL: [currentGallery galleryDefaultImageURL]]; - NSSize imageSize; - imageSize.width = [[theImage bestRepresentationForDevice:nil] pixelsWide]; - imageSize.height = [[theImage bestRepresentationForDevice:nil] pixelsHigh]; - [theImage setScalesWhenResized:YES]; - [theImage setSize:imageSize]; - - // Show it - [defaultImageView setImage: theImage]; - - [theImage release]; - [self canExport]; - [viewGallery setEnabled: YES]; - [spinner stopAnimation: self]; - [self setStatusText: @"Connected" withColor: [NSColor greenColor]]; +{ + NSLog(@"comboBoxSelectionDidChange"); + [self clickGallery]; } +#pragma mark - #pragma mark TURAnselGalleryPanel Notifications - (void)TURAnselGalleryPanelDidAddGallery { @@ -857,19 +872,20 @@ NSString * const TURAnselServerPasswordKey = @"password"; [galleryCombo selectItemAtIndex: [galleryCombo numberOfItems] - 1]; } -#pragma mark export notifications +#pragma mark - +#pragma mark ExportController notifications - (void)exportWindowWillClose: (NSNotification *)notification { - [mServersPopUp selectItemAtIndex: 0]; + NSLog(@"exportWindowWIllClose"); [self disconnect]; + [mServersPopUp selectItemAtIndex: 0]; [[NSNotificationCenter defaultCenter] removeObserver: self name: NSWindowWillCloseNotification object: nil]; } - - (void)exportWindowDidBecomeKey: (NSNotification *)notification { - + NSLog(@"exportWindowDidBecomeKey"); // Register for the close notification [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(exportWindowWillClose:) @@ -883,11 +899,6 @@ NSString * const TURAnselServerPasswordKey = @"password"; [self updateServersPopupMenu]; - // Register for notifications - [[NSNotificationCenter defaultCenter] addObserver: self - selector: @selector(NSPopUpWillPopUp:) - name:@"NSPopUpButtonWillPopUpNotification" - object: nil]; if ([anselServers count] == 0) { [self showNewServerSheet]; } else { @@ -912,7 +923,6 @@ NSString * const TURAnselServerPasswordKey = @"password"; } } } - - (void)sizeChoiceWillChange: (NSNotification *)notification { NSInteger newSize = [mSizePopUp selectedTag]; @@ -921,35 +931,12 @@ NSString * const TURAnselServerPasswordKey = @"password"; [userPrefs synchronize]; } -#pragma mark NSPopUpButton Notification Handlers -- (void) NSPopUpWillPopUp:(id)theButton -{ - // Remember the previous selection before it changes. - // The 'clickServer' action will handle what to do with the selection. - mIndexOfPreviouslySelectedServer = [mServersPopUp indexOfSelectedItem]; -} - - -#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]]; -} - -#pragma mark +#pragma mark - #pragma mark IKImageBrowserView Datasource methods - (NSUInteger)numberOfItemsInImageBrowser:(IKImageBrowserView *) aBrowser { return [browserData count]; } - - (id)imageBrowser:(IKImageBrowserView *) aBrowser itemAtIndex:(NSUInteger)index { return [browserData objectAtIndex:index]; diff --git a/iPhoto2Ansel/AnselGalleryViewItem.h b/iPhoto2Ansel/AnselGalleryViewItem.h deleted file mode 100644 index e0eece1ff..000000000 --- a/iPhoto2Ansel/AnselGalleryViewItem.h +++ /dev/null @@ -1,33 +0,0 @@ -// -// AnselGalleryViewItem.h -// iPhoto2Ansel -// -// Created by Michael Rubinsky on 5/7/09. -// Copyright 2009 __MyCompanyName__. All rights reserved. -// -#import -#import - -@interface AnselGalleryViewItem: NSObject -{ - NSURL *image; - NSString *imageID; - NSString *imageTitle; - NSCalendarDate *imageDate; -} - -@property(readwrite,copy) NSURL * image; -@property(readwrite,copy) NSString * imageID; - -- (id)initWithURL: (NSURL *)theUrl withTitle: (NSString *)theTitle withDate: (NSDate *)theDate; - -#pragma mark - -#pragma mark Required Methods IKImageBrowserItem Informal Protocol -- (NSString *)imageUID; -- (NSString *)imageRepresentationType; -- (id)imageRepresentation; - -- (NSString *)imageTitle; -- (NSString *)imageSubtitle; - -@end diff --git a/iPhoto2Ansel/AnselGalleryViewItem.m b/iPhoto2Ansel/AnselGalleryViewItem.m deleted file mode 100644 index e792d14dd..000000000 --- a/iPhoto2Ansel/AnselGalleryViewItem.m +++ /dev/null @@ -1,67 +0,0 @@ -// -// AnselGalleryViewItem.m -// iPhoto2Ansel -// -// Implementation of the IKImageBrowserItem protocol - -// Created by Michael Rubinsky on 5/7/09. -// Copyright 2009 __MyCompanyName__. All rights reserved. -// - -#import "AnselGalleryViewItem.h" - -@implementation AnselGalleryViewItem -@synthesize image; -@synthesize imageID; - -- (id)initWithURL: (NSURL *)theURL - withTitle: (NSString *)theTitle - withDate: (NSDate *)theDate -{ - [super init]; - image = [theURL retain]; - imageID = [[theURL absoluteString] retain]; - imageTitle = [theTitle retain]; - imageDate = [theDate retain]; - return self; -} - -- (void)dealloc -{ - [image release]; - [imageID release]; - [imageTitle release]; - [imageDate release]; - [super dealloc]; -} - -#pragma mark -#pragma mark Required methods -- (NSString *)imageUID -{ - return imageID; -} - -- (NSString *)imageRepresentationType -{ - return IKImageBrowserNSURLRepresentationType; -} - -- (id)imageRepresentation -{ - return [[image retain] autorelease]; -} - -#pragma mark -#pragma mark Optional methods. -- (NSString *)imageTitle -{ - return imageTitle; -} - -- (NSString *)imageSubtitle -{ - return [imageDate description]; -} - -@end diff --git a/iPhoto2Ansel/English.lproj/AnselGalleryPanel.nib/designable.nib b/iPhoto2Ansel/English.lproj/AnselGalleryPanel.nib/designable.nib deleted file mode 100644 index aab13b850..000000000 --- a/iPhoto2Ansel/English.lproj/AnselGalleryPanel.nib/designable.nib +++ /dev/null @@ -1,744 +0,0 @@ - - - - 1050 - 9F33 - 672 - 949.34 - 352.00 - - YES - - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - - - YES - - TURAnselGalleryPanelController - - - FirstResponder - - - NSApplication - - - 19 - 2 - {{797, 724}, {267, 276}} - -536866816 - New Gallery - NSPanel - - {3.40282e+38, 3.40282e+38} - - - 256 - - YES - - - 268 - {{20, 219}, {227, 22}} - - YES - - -1804468671 - 272630784 - - - LucidaGrande - 1.300000e+01 - 1044 - - - YES - - 6 - System - textBackgroundColor - - 3 - MQA - - - - 6 - System - textColor - - 3 - MAA - - - - - - - 268 - {{17, 240}, {88, 16}} - - YES - - 68288064 - 272630784 - Gallery Name - - LucidaGrande - 1.200000e+01 - 16 - - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2OQA - - - - 6 - System - controlTextColor - - - - - - - 268 - {{17, 195}, {73, 16}} - - YES - - 68288064 - 272630784 - Gallery Slug - - - - - - - - - 268 - {{20, 174}, {227, 22}} - - YES - - -1804468671 - 272630784 - - - - YES - - - - - - - 268 - {{20, 103}, {227, 47}} - - YES - - -1805517311 - 272629760 - - - - YES - - - - - - - 268 - {{17, 150}, {124, 16}} - - YES - - 68288064 - 272630784 - Gallery Description - - - - - - - - - 268 - {{116, 12}, {68, 32}} - - YES - - 67239424 - 134217728 - Cancel - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{184, 12}, {69, 32}} - - YES - - 67239424 - 134217728 - Save - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{20, 56}, {230, 26}} - - YES - - 879885888 - 272630784 - - - - YES - - - 5 - YES - - - - 274 - {15, 0} - - - YES - - YES - - - 1.200000e+01 - 1.000000e+01 - 1.000000e+03 - - 75628032 - 0 - - - - 3 - MC4zMzMzMzI5OQA - - - - - 338820672 - 1024 - - - YES - - 6 - System - controlBackgroundColor - - - - - 3 - YES - - - - 3.000000e+00 - 2.000000e+00 - - - 6 - System - gridColor - - 3 - MC41AA - - - 1.900000e+01 - tableViewAction: - -767524864 - - - - 1 - 15 - 0 - YES - - - - - - 268 - {{17, 79}, {88, 16}} - - YES - - 68288064 - 272630784 - Gallery Parent - - - - - - - - {267, 276} - - - {{0, 0}, {1920, 1178}} - {3.40282e+38, 3.40282e+38} - - - - - YES - - - newGallerySheet - - - - 43 - - - - doNewGallery: - - - - 48 - - - - galleryDescTextField - - - - 49 - - - - galleryNameTextField - - - - 50 - - - - gallerySlugTextField - - - - 51 - - - - cancelNewGallery: - - - - 53 - - - - - YES - - 0 - - YES - - - - - - -2 - - - RmlsZSdzIE93bmVyA - - - -1 - - - First Responder - - - -3 - - - Application - - - 1 - - - YES - - - - - - 2 - - - YES - - - - - - - - - - - - - - - 3 - - - YES - - - - - - 4 - - - - - 5 - - - YES - - - - - - 6 - - - - - 7 - - - YES - - - - - - 8 - - - - - 9 - - - YES - - - - - - 10 - - - - - 11 - - - YES - - - - - - 12 - - - - - 13 - - - YES - - - - - - 14 - - - - - 15 - - - YES - - - - - - 16 - - - - - 17 - - - YES - - - - - - 18 - - - - - 19 - - - YES - - - - - - 20 - - - - - 21 - - - YES - - - - - - 22 - - - - - - - YES - - YES - -1.IBPluginDependency - -2.IBPluginDependency - -3.IBPluginDependency - 1.IBEditorWindowLastContentRect - 1.IBPluginDependency - 1.IBWindowTemplateEditedContentRect - 1.NSWindowTemplate.visibleAtLaunch - 1.WindowOrigin - 1.editorWindowContentRectSynchronizationRect - 10.IBPluginDependency - 11.IBPluginDependency - 12.IBPluginDependency - 13.IBPluginDependency - 14.IBPluginDependency - 15.IBPluginDependency - 16.IBPluginDependency - 17.IBPluginDependency - 18.IBPluginDependency - 19.IBPluginDependency - 2.IBPluginDependency - 20.IBPluginDependency - 21.IBPluginDependency - 22.IBPluginDependency - 3.IBPluginDependency - 4.IBPluginDependency - 5.IBPluginDependency - 6.IBPluginDependency - 7.IBPluginDependency - 8.IBPluginDependency - 9.IBPluginDependency - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{177, 722}, {267, 276}} - com.apple.InterfaceBuilder.CocoaPlugin - {{177, 722}, {267, 276}} - - {196, 240} - {{357, 418}, {480, 270}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - YES - - YES - - - YES - - - - - YES - - YES - - - YES - - - - 53 - - - - YES - - NSObject - - IBProjectSource - TURAnsel.h - - - - NSObject - - IBProjectSource - TURAnselGallery.h - - - - NSObject - - IBProjectSource - TURAnselGalleryPanelController.h - - - - NSObject - - IBProjectSource - xmlrpc-1.5.1/XMLRPCConnection.h - - - - TURAnselGalleryPanelController - NSObject - - YES - - YES - cancelNewGallery: - doNewGallery: - - - YES - id - id - - - - YES - - YES - delegate - galleryDescTextField - galleryNameTextField - gallerySlugTextField - newGallerySheet - - - YES - id - NSTextField - NSTextField - NSTextField - NSPanel - - - - - - - 0 - ../iPhoto2Ansel.xcodeproj - 3 - - diff --git a/iPhoto2Ansel/English.lproj/AnselGalleryPanel.nib/keyedobjects.nib b/iPhoto2Ansel/English.lproj/AnselGalleryPanel.nib/keyedobjects.nib deleted file mode 100644 index b318b79b4..000000000 Binary files a/iPhoto2Ansel/English.lproj/AnselGalleryPanel.nib/keyedobjects.nib and /dev/null differ diff --git a/iPhoto2Ansel/English.lproj/AnselServers.nib/designable.nib b/iPhoto2Ansel/English.lproj/AnselServers.nib/designable.nib deleted file mode 100644 index a4cabc8cb..000000000 --- a/iPhoto2Ansel/English.lproj/AnselServers.nib/designable.nib +++ /dev/null @@ -1,192 +0,0 @@ - - - - 1050 - 9F33 - 672 - 949.34 - 352.00 - - YES - - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - - - YES - - TURAnselServersPanelController - - - FirstResponder - - - NSApplication - - - 15 - 2 - {{196, 240}, {480, 270}} - 536870912 - Ansel Servers - NSWindow - - {3.40282e+38, 3.40282e+38} - - - 256 - {480, 270} - - - {{0, 0}, {1680, 1028}} - {3.40282e+38, 3.40282e+38} - - - - - YES - - - - YES - - 0 - - YES - - - - - - -2 - - - RmlsZSdzIE93bmVyA - - - -1 - - - First Responder - - - -3 - - - Application - - - 1 - - - YES - - - - - - 2 - - - - - - - YES - - YES - -1.IBPluginDependency - -2.IBPluginDependency - -3.IBPluginDependency - 1.IBEditorWindowLastContentRect - 1.IBPluginDependency - 1.IBWindowTemplateEditedContentRect - 1.NSWindowTemplate.visibleAtLaunch - 1.WindowOrigin - 1.editorWindowContentRectSynchronizationRect - 2.IBPluginDependency - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{21, 852}, {480, 270}} - com.apple.InterfaceBuilder.CocoaPlugin - {{21, 852}, {480, 270}} - - {196, 240} - {{357, 418}, {480, 270}} - com.apple.InterfaceBuilder.CocoaPlugin - - - - YES - - YES - - - YES - - - - - YES - - YES - - - YES - - - - 2 - - - - YES - - NSObject - - IBProjectSource - TURAnsel.h - - - - NSObject - - IBProjectSource - TURAnselGallery.h - - - - NSObject - - IBProjectSource - TURAnselGalleryPanelController.h - - - - NSObject - - IBProjectSource - xmlrpc-1.5.1/XMLRPCConnection.h - - - - TURAnselServersPanelController - NSObject - - IBProjectSource - TURAnselServersPanelController.h - - - - - 0 - ../iPhoto2Ansel.xcodeproj - 3 - - diff --git a/iPhoto2Ansel/English.lproj/AnselServers.nib/keyedobjects.nib b/iPhoto2Ansel/English.lproj/AnselServers.nib/keyedobjects.nib deleted file mode 100644 index 059faac85..000000000 Binary files a/iPhoto2Ansel/English.lproj/AnselServers.nib/keyedobjects.nib and /dev/null differ diff --git a/iPhoto2Ansel/English.lproj/InfoPlist.strings b/iPhoto2Ansel/English.lproj/InfoPlist.strings deleted file mode 100755 index 26bf88013..000000000 Binary files a/iPhoto2Ansel/English.lproj/InfoPlist.strings and /dev/null differ diff --git a/iPhoto2Ansel/English.lproj/Panel.nib/designable.nib b/iPhoto2Ansel/English.lproj/Panel.nib/designable.nib deleted file mode 100644 index 51473bc3e..000000000 --- a/iPhoto2Ansel/English.lproj/Panel.nib/designable.nib +++ /dev/null @@ -1,2848 +0,0 @@ - - - - 1050 - 9J61 - 672 - 949.46 - 353.00 - - YES - - - - - YES - com.apple.imagekit.ibplugin - com.apple.InterfaceBuilder.CocoaPlugin - - - YES - - AnselExportController - - - FirstResponder - - - NSApplication - - - 23 - 2 - {{196, 315}, {455, 195}} - -1543503872 - Add Server - NSPanel - - {3.40282e+38, 3.40282e+38} - - - 256 - - YES - - - 268 - {{124, 124}, {311, 22}} - - YES - - -1804468671 - 272630784 - - - LucidaGrande - 1.300000e+01 - 1044 - - - YES - - 6 - System - textBackgroundColor - - 3 - MQA - - - - 6 - System - textColor - - 3 - MAA - - - - - - - 268 - {{17, 126}, {102, 17}} - - YES - - 68288064 - 272630784 - Path to rpc.php - - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2OQA - - - - 6 - System - controlTextColor - - - - - - - 268 - {{124, 92}, {311, 22}} - - YES - - -1804468671 - 272630784 - - - - YES - - - - - - - 268 - {{124, 60}, {311, 22}} - - YES - - 343014976 - 272630784 - - - - YES - - - - YES - NSAllRomanInputSourcesLocaleIdentifier - - - - - - 268 - {{17, 94}, {67, 17}} - - YES - - 68288064 - 272630784 - Username - - - - - - - - - 268 - {{17, 62}, {67, 17}} - - YES - - 68288064 - 272630784 - Password - - - - - - - - - 268 - {{17, 158}, {102, 17}} - - YES - - 68288064 - 272630784 - Nickname - - - - - - - - - 268 - {{124, 156}, {311, 22}} - - YES - - -1804468671 - 272630784 - - - - YES - - - - - - - 268 - {{345, 12}, {96, 32}} - - YES - - 67239424 - 134217728 - Save - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{244, 12}, {96, 32}} - - YES - - 67239424 - 134217728 - Cancel - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{18, 18}, {145, 18}} - - YES - - 67239424 - 0 - Make Default - - - 1211912703 - 130 - - NSImage - NSSwitch - - - NSSwitch - - - - 200 - 25 - - - - {455, 195} - - {{0, 0}, {1920, 1178}} - {3.40282e+38, 3.40282e+38} - - - 23 - 2 - {{196, 152}, {679, 358}} - -1543503872 - Servers - NSPanel - - {3.40282e+38, 3.40282e+38} - - - 256 - - YES - - - 268 - {{568, 28}, {96, 28}} - - YES - - 67239424 - 134348800 - Done - - LucidaGrande - 1.100000e+01 - 3100 - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - - YES - - - 2304 - - YES - - - 256 - {626, 247} - - YES - - - 256 - {626, 17} - - - - - - 256 - {{627, 0}, {16, 17}} - - - - YES - - nickname - 1.010000e+02 - 4.000000e+01 - 1.000000e+03 - - 75628032 - 0 - Server Name - - - 3 - MC4zMzMzMzI5OQA - - - 6 - System - headerTextColor - - - - - 337772096 - 2048 - Text Cell - - - - 6 - System - controlBackgroundColor - - - - - 3 - YES - YES - - - - username - 1.410000e+02 - 4.000000e+01 - 1.000000e+03 - - 75628032 - 0 - Login Name - - - - - - 337772096 - 2048 - Text Cell - - - - - - 3 - YES - YES - - - - endpoint - 3.750000e+02 - 1.000000e+01 - 3.402823e+38 - - 75628032 - 0 - URL - - - 6 - System - headerColor - - - - - - 337772096 - 2048 - Text Cell - - - - - - 3 - YES - YES - - - - 3.000000e+00 - 2.000000e+00 - - - 6 - System - gridColor - - 3 - MC41AA - - - 1.700000e+01 - -700448768 - 4 - 15 - 0 - YES - - - {{1, 17}, {626, 247}} - - - - - 4 - - - - 256 - {{627, 17}, {15, 247}} - - - _doScroller: - 1.000000e+00 - 1.947368e-01 - - - - 256 - {{1, 264}, {626, 15}} - - 1 - - _doScroller: - 9.984051e-01 - - - - 2304 - - YES - - - {{1, 0}, {626, 17}} - - - - - 4 - - - - {{20, 60}, {643, 280}} - - - 50 - - - - - - QSAAAEEgAABBmAAAQZgAAA - - - - 268 - {{15, 28}, {96, 28}} - - YES - - 67239424 - 134348800 - Remove - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{109, 28}, {123, 28}} - - YES - - 67239424 - 134348800 - Make Default - - - -2038284033 - 129 - - - 200 - 25 - - - - {679, 358} - - {{0, 0}, {1920, 1178}} - {3.40282e+38, 3.40282e+38} - - - 23 - 2 - {{196, 183}, {480, 327}} - -1543503872 - Window - NSPanel - - {3.40282e+38, 3.40282e+38} - - - 256 - - YES - - - 268 - {{370, 12}, {96, 32}} - - YES - - 67239424 - 134217728 - Close - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - - YES - - - 2304 - - YES - - - 18 - - YES - - YES - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - Apple URL pasteboard type - NSFilenamesPboardType - TlNUeXBlZEZpbGVuYW1lc1Bib2FyZFR5cGU6Jy5TR0knA - TlNUeXBlZEZpbGVuYW1lc1Bib2FyZFR5cGU6JzhCUFMnA - TlNUeXBlZEZpbGVuYW1lc1Bib2FyZFR5cGU6J0JNUGYnA - TlNUeXBlZEZpbGVuYW1lc1Bib2FyZFR5cGU6J0VQU0YnA - TlNUeXBlZEZpbGVuYW1lc1Bib2FyZFR5cGU6J0ZQaXgnA - TlNUeXBlZEZpbGVuYW1lc1Bib2FyZFR5cGU6J0dJRmYnA - TlNUeXBlZEZpbGVuYW1lc1Bib2FyZFR5cGU6J0lDTyAnA - TlNUeXBlZEZpbGVuYW1lc1Bib2FyZFR5cGU6J0pQRUcnA - TlNUeXBlZEZpbGVuYW1lc1Bib2FyZFR5cGU6J1BERiAnA - TlNUeXBlZEZpbGVuYW1lc1Bib2FyZFR5cGU6J1BJQ1QnA - TlNUeXBlZEZpbGVuYW1lc1Bib2FyZFR5cGU6J1BOR2YnA - TlNUeXBlZEZpbGVuYW1lc1Bib2FyZFR5cGU6J1BOVEcnA - TlNUeXBlZEZpbGVuYW1lc1Bib2FyZFR5cGU6J1RJRkYnA - TlNUeXBlZEZpbGVuYW1lc1Bib2FyZFR5cGU6J1RQSUMnA - TlNUeXBlZEZpbGVuYW1lc1Bib2FyZFR5cGU6J2pwMiAnA - TlNUeXBlZEZpbGVuYW1lc1Bib2FyZFR5cGU6J3F0aWYnA - NSTypedFilenamesPboardType:BMP - NSTypedFilenamesPboardType:CR2 - NSTypedFilenamesPboardType:CRW - NSTypedFilenamesPboardType:CUR - NSTypedFilenamesPboardType:DCR - NSTypedFilenamesPboardType:DNG - NSTypedFilenamesPboardType:EPI - NSTypedFilenamesPboardType:EPS - NSTypedFilenamesPboardType:EPSF - NSTypedFilenamesPboardType:EPSI - NSTypedFilenamesPboardType:EXR - NSTypedFilenamesPboardType:FAX - NSTypedFilenamesPboardType:FPIX - NSTypedFilenamesPboardType:FPX - NSTypedFilenamesPboardType:GIF - NSTypedFilenamesPboardType:HDR - NSTypedFilenamesPboardType:ICNS - NSTypedFilenamesPboardType:ICO - NSTypedFilenamesPboardType:JP2 - NSTypedFilenamesPboardType:JPEG - NSTypedFilenamesPboardType:JPG - NSTypedFilenamesPboardType:MAC - NSTypedFilenamesPboardType:MRW - NSTypedFilenamesPboardType:NEF - NSTypedFilenamesPboardType:ORF - NSTypedFilenamesPboardType:PCT - NSTypedFilenamesPboardType:PDF - NSTypedFilenamesPboardType:PIC - NSTypedFilenamesPboardType:PICT - NSTypedFilenamesPboardType:PNG - NSTypedFilenamesPboardType:PNT - NSTypedFilenamesPboardType:PNTG - NSTypedFilenamesPboardType:PS - NSTypedFilenamesPboardType:PSD - NSTypedFilenamesPboardType:QTI - NSTypedFilenamesPboardType:QTIF - NSTypedFilenamesPboardType:RAF - NSTypedFilenamesPboardType:RGB - NSTypedFilenamesPboardType:SGI - NSTypedFilenamesPboardType:SRF - NSTypedFilenamesPboardType:TARGA - NSTypedFilenamesPboardType:TGA - NSTypedFilenamesPboardType:TIF - NSTypedFilenamesPboardType:TIFF - NSTypedFilenamesPboardType:XBM - NSTypedFilenamesPboardType:bmp - NSTypedFilenamesPboardType:cr2 - NSTypedFilenamesPboardType:crw - NSTypedFilenamesPboardType:cur - NSTypedFilenamesPboardType:dcr - NSTypedFilenamesPboardType:dng - NSTypedFilenamesPboardType:epi - NSTypedFilenamesPboardType:eps - NSTypedFilenamesPboardType:epsf - NSTypedFilenamesPboardType:epsi - NSTypedFilenamesPboardType:exr - NSTypedFilenamesPboardType:fax - NSTypedFilenamesPboardType:fpix - NSTypedFilenamesPboardType:fpx - NSTypedFilenamesPboardType:gif - NSTypedFilenamesPboardType:hdr - NSTypedFilenamesPboardType:icns - NSTypedFilenamesPboardType:ico - NSTypedFilenamesPboardType:jp2 - NSTypedFilenamesPboardType:jpeg - NSTypedFilenamesPboardType:jpg - NSTypedFilenamesPboardType:mac - NSTypedFilenamesPboardType:mrw - NSTypedFilenamesPboardType:nef - NSTypedFilenamesPboardType:orf - NSTypedFilenamesPboardType:pct - NSTypedFilenamesPboardType:pdf - NSTypedFilenamesPboardType:pic - NSTypedFilenamesPboardType:pict - NSTypedFilenamesPboardType:png - NSTypedFilenamesPboardType:pnt - NSTypedFilenamesPboardType:pntg - NSTypedFilenamesPboardType:ps - NSTypedFilenamesPboardType:psd - NSTypedFilenamesPboardType:qti - NSTypedFilenamesPboardType:qtif - NSTypedFilenamesPboardType:raf - NSTypedFilenamesPboardType:rgb - NSTypedFilenamesPboardType:sgi - NSTypedFilenamesPboardType:srf - NSTypedFilenamesPboardType:targa - NSTypedFilenamesPboardType:tga - NSTypedFilenamesPboardType:tif - NSTypedFilenamesPboardType:tiff - NSTypedFilenamesPboardType:xbm - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT TIFF v4.0 pasteboard type - - - {423, 251} - - NO - YES - YES - YES - YES - NO - NO - 1.000000e+02 - 1.000000e+02 - - - - - {{1, 1}, {423, 251}} - - - - - 6 - - - - 256 - {{424, 1}, {15, 251}} - - - _doScroller: - 1.000000e+00 - 9.636363e-01 - - - - 256 - {{1, 252}, {423, 15}} - - 1 - - _doScroller: - 5.060241e-01 - - - {{20, 60}, {440, 268}} - - - 50 - - - - QSAAAEEgAABCzQAAQvAAAA - - - {480, 327} - - - {{0, 0}, {1920, 1178}} - {3.40282e+38, 3.40282e+38} - - - 15 - 2 - {{220, 358}, {548, 406}} - 1886912512 - - Window - - NSWindow - - View - - {3.40282e+38, 3.40282e+38} - {213, 107} - - - 256 - - YES - - - 256 - - YES - - - 256 - - YES - - - 268 - - YES - - - 256 - - YES - - - 268 - {{15, 71}, {81, 17}} - - YES - - 68288064 - 272630784 - Server - - LucidaGrande - 1.200000e+01 - 16 - - - - - - - - - 268 - {{76, 66}, {382, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 129 - - - 400 - 75 - - - (None) - - 1048576 - 2147483647 - 1 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - _popUpItemAction: - - - YES - - OtherViews - - YES - - - - 1 - YES - YES - 2 - - - - - 268 - {{77, 33}, {117, 17}} - - YES - - 68288064 - 272761856 - Not Logged In - - - - - - - - - 1292 - - {{439, 33}, {16, 16}} - - 28938 - 1.600000e+01 - 1.000000e+02 - - - - 268 - {{15, 37}, {43, 16}} - - YES - - 68288064 - 272630784 - Status - - - - - - - - - 268 - {{367, 32}, {65, 16}} - - YES - - 67239424 - 134479872 - Cancel - - LucidaGrande - 9.000000e+00 - 3614 - - - -2038284033 - 129 - - - 200 - 25 - - - - {{1, 1}, {480, 94}} - - - - {{7, 253}, {482, 110}} - - {0, 0} - - 67239424 - 0 - Connection - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 1 - 0 - 2 - NO - - - - 268 - - YES - - - 256 - - YES - - - 268 - {{135, 165}, {92, 32}} - - YES - - 67239424 - 134479872 - Create New - - - -2038284033 - 129 - - LucidaGrande - 9.000000e+00 - 16 - - - - 200 - 25 - - - - - 268 - {{18, 143}, {211, 26}} - - YES - - 611450433 - 272630784 - - - - YES - - - 5 - YES - YES - YES - - - - - 274 - {15, 0} - - - YES - - YES - - - 1.200000e+01 - 1.000000e+01 - 1.000000e+03 - - 75628032 - 0 - - - - 3 - MC4zMzMzMzI5OQA - - - - - 338820672 - 1024 - - - YES - - - - 3 - YES - - - - 3.000000e+00 - 2.000000e+00 - - - 1.900000e+01 - tableViewAction: - -767524864 - - - 1 - 15 - 0 - YES - - - - - - - 268 - {{15, 173}, {103, 16}} - - YES - - 68288064 - 272630784 - Gallery - - - - - - - - - 268 - - YES - - YES - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - NSFilenamesPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT TIFF v4.0 pasteboard type - - - {{258, 59}, {214, 118}} - - YES - - 130560 - 33554432 - 0 - 0 - 0 - YES - - YES - - - - 268 - {{258, 175}, {158, 16}} - - YES - - 68288064 - 272630784 - Gallery Default Image - - - - - - - - - 256 - {{15, 121}, {114, 17}} - - YES - - 67239424 - 272629760 - Image Size: - - - - - - - - - 256 - {{15, 93}, {130, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - LucidaGrande - 1.300000e+01 - 16 - - - - - - 400 - 75 - - - Large - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - 2 - - - YES - - - OtherViews - - - YES - - - Small - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Medium - - 1048576 - 2147483647 - - - _popUpItemAction: - 1 - - - - - - Full Size - - 1048576 - 2147483647 - - - _popUpItemAction: - 3 - - - - - 2 - 3 - YES - YES - 1 - - - - - 268 - {{256, 7}, {96, 28}} - - YES - - 604110336 - 134348800 - View Gallery - - - -2038284033 - 129 - - - 200 - 25 - - - - - 12 - {{237, 30}, {5, 161}} - - {0, 0} - - 67239424 - 0 - Box - - - - 3 - MCAwLjgwMDAwMDAxAA - - - 3 - 2 - 0 - NO - - - - 268 - {{258, 42}, {207, 17}} - - YES - - 68288064 - 272630784 - Image Count: - - - - - - - - {{1, 1}, {480, 197}} - - - - {{14, 36}, {482, 213}} - - {0, 0} - - 67239424 - 0 - Export Options - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 1 - 0 - 2 - NO - - - {{2, 2}, {510, 373}} - - - - {{17, 16}, {514, 390}} - - {0, 0} - - 67239424 - 0 - Ansel - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - {548, 406} - - - {{0, 0}, {1920, 1178}} - {213, 129} - {3.40282e+38, 3.40282e+38} - - - - - YES - - - mSettingsBox - - - - 37 - - - - mPlugin - - - - 64 - - - - mSizePopUp - - - - 65 - - - - galleryCombo - - - - 142 - - - - spinner - - - - 239 - - - - showNewGallery: - - - - 336 - - - - defaultImageView - - - - 359 - - - - doAddServer: - - - - 419 - - - - doCancelAddServer: - - - - 420 - - - - newServerSheet - - - - 421 - - - - mServersPopUp - - - - 490 - - - - clickServer: - - - - 492 - - - - statusLabel - - - - 497 - - - - serverListPanel - - - - 505 - - - - closeServerList: - - - - 506 - - - - dataSource - - - - 518 - - - - serverTable - - - - 519 - - - - removeServer: - - - - 523 - - - - mCancelConnect - - - - 525 - - - - clickCancelConnect: - - - - 526 - - - - mMakeNewServerDefault - - - - 529 - - - - mServerSheetServerNickName - - - - 530 - - - - mServerSheetHostURL - - - - 531 - - - - mServerSheetUsername - - - - 532 - - - - mServerSheetPassword - - - - 533 - - - - mNewGalleryButton - - - - 534 - - - - clickViewGallery: - - - - 543 - - - - viewGallery - - - - 544 - - - - mviewGallerySheet - - - - 545 - - - - closeGalleryView - - - - 548 - - - - closeGalleryView: - - - - 549 - - - - dataSource - - - - 575 - - - - browserView - - - - 576 - - - - mImageCountLabel - - - - 583 - - - - - YES - - 0 - - YES - - - - - - -2 - - - RmlsZSdzIE93bmVyA - - - -1 - - - First Responder - - - -3 - - - Application - - - 387 - - - YES - - - - Panel (Add Server) - - - 388 - - - YES - - - - - - - - - - - - - - - - 389 - - - YES - - - - - - 391 - - - YES - - - - - - 393 - - - YES - - - - - - 395 - - - YES - - - - - - 397 - - - YES - - - - - - 399 - - - YES - - - - - - 401 - - - YES - - - - - - 403 - - - YES - - - - - - 405 - - - YES - - - - - - 407 - - - YES - - - - - - 409 - - - YES - - - - - - 472 - - - - - 473 - - - - - 474 - - - - - 475 - - - - - 476 - - - - - 477 - - - - - 478 - - - - - 479 - - - - - 480 - - - - - 481 - - - - - 482 - - - - - 501 - - - YES - - - - - - 502 - - - YES - - - - - - - - - 503 - - - YES - - - - - - 504 - - - - - 507 - - - YES - - - - - - - - - 508 - - - - - 509 - - - - - 510 - - - YES - - - - - - - - 511 - - - - - 512 - - - YES - - - - - - 513 - - - YES - - - - - - 514 - - - - - 515 - - - - - 516 - - - YES - - - - - - 517 - - - - - 521 - - - YES - - - - - - 522 - - - - - 527 - - - YES - - - - - - 528 - - - - - 536 - - - YES - - - - GalleryView - - - 537 - - - YES - - - - - - - 5 - - - YES - - - - Window - - - 6 - - - YES - - - - - - 7 - - - YES - - - - - - - 137 - - - YES - - - - - - - - - - - - - - - 500 - - - - - 498 - - - YES - - - - - - 499 - - - - - 138 - - - YES - - - - - - 462 - - - - - 18 - - - YES - - - - - - 461 - - - YES - - - - - - 19 - - - YES - - - - - - - - - 20 - - - - - 21 - - - - - 22 - - - - - 23 - - - - - 9 - - - YES - - - - - - 460 - - - - - 360 - - - YES - - - - - - 466 - - - - - 357 - - - YES - - - - - - 465 - - - - - 169 - - - YES - - - - - - 464 - - - - - 140 - - - YES - - - - - - 463 - - - - - 136 - - - YES - - - - - - - - - - - 495 - - - YES - - - - - - 496 - - - - - 216 - - - - - 167 - - - YES - - - - - - 468 - - - - - 493 - - - YES - - - - - - 494 - - - - - 413 - - - YES - - - - - - 470 - - - - - 484 - - - YES - - - - - - 485 - - - YES - - - - - - 486 - - - YES - - - - - - 489 - - - - - 546 - - - YES - - - - - - 547 - - - - - 577 - - - YES - - - - - - - - 578 - - - - - 579 - - - - - 574 - - - - - 581 - - - YES - - - - - - 582 - - - - - - - YES - - YES - -1.IBPluginDependency - -2.IBPluginDependency - -3.IBPluginDependency - -3.ImportedFromIB2 - 136.IBPluginDependency - 136.ImportedFromIB2 - 137.IBPluginDependency - 137.ImportedFromIB2 - 138.IBPluginDependency - 138.ImportedFromIB2 - 140.IBPluginDependency - 140.ImportedFromIB2 - 167.IBPluginDependency - 167.ImportedFromIB2 - 169.IBPluginDependency - 169.ImportedFromIB2 - 18.IBPluginDependency - 18.ImportedFromIB2 - 19.IBPluginDependency - 19.ImportedFromIB2 - 20.IBPluginDependency - 20.ImportedFromIB2 - 21.IBPluginDependency - 21.ImportedFromIB2 - 216.IBPluginDependency - 216.ImportedFromIB2 - 22.IBPluginDependency - 22.ImportedFromIB2 - 23.IBPluginDependency - 23.ImportedFromIB2 - 357.IBPluginDependency - 357.ImportedFromIB2 - 360.IBPluginDependency - 360.ImportedFromIB2 - 387.IBEditorWindowLastContentRect - 387.IBPluginDependency - 387.IBWindowTemplateEditedContentRect - 387.ImportedFromIB2 - 388.IBPluginDependency - 388.ImportedFromIB2 - 389.IBPluginDependency - 389.ImportedFromIB2 - 391.IBPluginDependency - 391.ImportedFromIB2 - 393.IBPluginDependency - 393.ImportedFromIB2 - 395.IBPluginDependency - 395.ImportedFromIB2 - 397.IBPluginDependency - 397.ImportedFromIB2 - 399.IBPluginDependency - 399.ImportedFromIB2 - 401.IBPluginDependency - 401.ImportedFromIB2 - 403.IBPluginDependency - 403.ImportedFromIB2 - 405.IBPluginDependency - 405.ImportedFromIB2 - 407.IBPluginDependency - 407.ImportedFromIB2 - 409.IBPluginDependency - 409.ImportedFromIB2 - 413.IBPluginDependency - 413.ImportedFromIB2 - 484.IBPluginDependency - 485.IBPluginDependency - 486.IBEditorWindowLastContentRect - 486.IBPluginDependency - 489.IBPluginDependency - 493.IBPluginDependency - 494.IBPluginDependency - 495.IBPluginDependency - 496.IBPluginDependency - 498.IBPluginDependency - 499.IBPluginDependency - 5.IBEditorWindowLastContentRect - 5.IBPluginDependency - 5.IBWindowTemplateEditedContentRect - 5.ImportedFromIB2 - 5.windowTemplate.hasMinSize - 5.windowTemplate.minSize - 500.IBPluginDependency - 501.IBEditorWindowLastContentRect - 501.IBPluginDependency - 501.IBWindowTemplateEditedContentRect - 501.NSWindowTemplate.visibleAtLaunch - 502.IBPluginDependency - 503.IBPluginDependency - 504.IBPluginDependency - 507.IBPluginDependency - 508.IBPluginDependency - 509.IBPluginDependency - 510.IBPluginDependency - 511.IBPluginDependency - 512.IBPluginDependency - 513.IBPluginDependency - 514.IBPluginDependency - 515.IBPluginDependency - 521.IBPluginDependency - 522.IBPluginDependency - 527.IBPluginDependency - 528.IBPluginDependency - 536.IBEditorWindowLastContentRect - 536.IBPluginDependency - 536.IBWindowTemplateEditedContentRect - 536.NSWindowTemplate.visibleAtLaunch - 537.IBPluginDependency - 546.IBPluginDependency - 547.IBPluginDependency - 574.IBPluginDependency - 581.IBPluginDependency - 582.IBPluginDependency - 6.IBPluginDependency - 6.ImportedFromIB2 - 7.CustomClassName - 7.IBPluginDependency - 7.ImportedFromIB2 - 9.IBPluginDependency - 9.ImportedFromIB2 - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{351, 386}, {455, 195}} - com.apple.InterfaceBuilder.CocoaPlugin - {{351, 386}, {455, 195}} - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{682, 774}, {382, 23}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{258, 642}, {548, 406}} - com.apple.InterfaceBuilder.CocoaPlugin - {{258, 642}, {548, 406}} - - - {213, 107} - com.apple.InterfaceBuilder.CocoaPlugin - {{127, 600}, {679, 358}} - com.apple.InterfaceBuilder.CocoaPlugin - {{127, 600}, {679, 358}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{91, 762}, {480, 327}} - com.apple.InterfaceBuilder.CocoaPlugin - {{91, 762}, {480, 327}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.imagekit.ibplugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AnselExportPluginBox - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - YES - - YES - - - YES - - - - - YES - - YES - - - YES - - - - 583 - - - - YES - - AnselExportController - NSObject - - YES - - YES - clickCancelConnect: - clickServer: - clickViewGallery: - closeGalleryView: - closeServerList: - doAddServer: - doCancelAddServer: - removeServer: - showNewGallery: - - - YES - id - id - id - id - id - id - id - id - id - - - - YES - - YES - browserView - closeGalleryView - defaultImageView - firstView - galleryCombo - mCancelConnect - mExportMgr - mImageCountLabel - mMakeNewServerDefault - mNewGalleryButton - mServerSheetHostURL - mServerSheetPassword - mServerSheetServerNickName - mServerSheetUsername - mServersPopUp - mSettingsBox - mSizePopUp - mviewGallerySheet - newServerSheet - serverListPanel - serverTable - spinner - statusLabel - viewGallery - - - YES - IKImageBrowserView - NSButton - NSImageView - NSControl - NSComboBox - NSButton - id - NSTextField - NSButton - NSButton - NSTextField - NSSecureTextField - NSTextField - NSTextField - NSPopUpButton - NSBox - NSPopUpButton - NSWindow - NSWindow - NSPanel - NSTableView - NSProgressIndicator - NSTextField - NSButton - - - - IBProjectSource - AnselExportController.h - - - - AnselExportController - NSObject - - IBUserSource - - - - - AnselExportPluginBox - NSBox - - mPlugin - id - - - IBProjectSource - AnselExportPluginBox.h - - - - AnselExportPluginBox - NSBox - - IBUserSource - - - - - FirstResponder - NSObject - - IBUserSource - - - - - NSObject - - IBProjectSource - TURAnsel.h - - - - NSObject - - IBProjectSource - TURAnselGallery.h - - - - NSObject - - IBProjectSource - TURAnselGalleryPanelController.h - - - - NSObject - - IBProjectSource - xmlrpc-1.5.1/XMLRPCConnection.h - - - - NSObject - - IBUserSource - - - - - - 0 - ../iPhoto2Ansel.xcodeproj - 3 - - diff --git a/iPhoto2Ansel/English.lproj/Panel.nib/keyedobjects.nib b/iPhoto2Ansel/English.lproj/Panel.nib/keyedobjects.nib deleted file mode 100644 index 206fbbe34..000000000 Binary files a/iPhoto2Ansel/English.lproj/Panel.nib/keyedobjects.nib and /dev/null differ diff --git a/iPhoto2Ansel/Info.plist b/iPhoto2Ansel/Info.plist index cc62ba9be..113f68d6c 100644 --- a/iPhoto2Ansel/Info.plist +++ b/iPhoto2Ansel/Info.plist @@ -6,10 +6,8 @@ English CFBundleExecutable ${EXECUTABLE_NAME} - CFBundleIconFile - CFBundleIdentifier - com.theupstairsroom.iphoto2ansel + org.horde.export.iphoto2ansel CFBundleInfoDictionaryVersion 6.0 CFBundleName @@ -24,5 +22,9 @@ Panel NSPrincipalClass AnselExportController + NSHumanReadableCopyright + 2008 - 2009 The Horde Project (http://www.horde.org) + CFBundleIconFile + iPhoto2Ansel diff --git a/iPhoto2Ansel/NSDataAdditions.h b/iPhoto2Ansel/NSDataAdditions.h new file mode 100644 index 000000000..a0f6acb1b --- /dev/null +++ b/iPhoto2Ansel/NSDataAdditions.h @@ -0,0 +1,39 @@ +// +// Copyright 2008 Eric Czarny +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +// IN THE SOFTWARE. +// + +// +// Cocoa XML-RPC Framework +// NSDataAdditions.h +// +// Created by Eric Czarny on Wednesday, January 14, 2004. +// Copyright 2008 Divisible by Zero. +// + +#import + +@class NSString; + +@interface NSData (NSDataAdditions) + ++ (NSData *)base64DataFromString: (NSString *)string; + +@end diff --git a/iPhoto2Ansel/NSDataAdditions.m b/iPhoto2Ansel/NSDataAdditions.m new file mode 100644 index 000000000..4b3c076f4 --- /dev/null +++ b/iPhoto2Ansel/NSDataAdditions.m @@ -0,0 +1,125 @@ +// +// Copyright 2008 Eric Czarny +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +// IN THE SOFTWARE. +// + +// +// Cocoa XML-RPC Framework +// NSDataAdditions.m +// +// Created by Eric Czarny on Wednesday, January 14, 2004. +// Copyright 2008 Divisible by Zero. +// + +#import "NSDataAdditions.h" + +@implementation NSData (NSDataAdditions) + ++ (NSData *)base64DataFromString: (NSString *)string { + unsigned long ixtext, lentext; + unsigned char ch, input[4], output[3]; + short i, ixinput; + Boolean flignore, flendtext = false; + const char *temporary; + NSMutableData *result; + + if (string == nil) { + return [NSData data]; + } + + ixtext = 0; + + temporary = [string UTF8String]; + + lentext = [string length]; + + result = [NSMutableData dataWithCapacity: lentext]; + + ixinput = 0; + + while (true) { + if (ixtext >= lentext) { + break; + } + + ch = temporary[ixtext++]; + + flignore = false; + + if ((ch >= 'A') && (ch <= 'Z')) { + ch = ch - 'A'; + } else if ((ch >= 'a') && (ch <= 'z')) { + ch = ch - 'a' + 26; + } else if ((ch >= '0') && (ch <= '9')) { + ch = ch - '0' + 52; + } else if (ch == '+') { + ch = 62; + } else if (ch == '=') { + flendtext = true; + } else if (ch == '/') { + ch = 63; + } else { + flignore = true; + } + + if (!flignore) { + short ctcharsinput = 3; + Boolean flbreak = false; + + if (flendtext) { + if (ixinput == 0) { + break; + } + + if ((ixinput == 1) || (ixinput == 2)) { + ctcharsinput = 1; + } else { + ctcharsinput = 2; + } + + ixinput = 3; + + flbreak = true; + } + + input[ixinput++] = ch; + + if (ixinput == 4) { + ixinput = 0; + + output[0] = (input[0] << 2) | ((input[1] & 0x30) >> 4); + output[1] = ((input[1] & 0x0F) << 4) | ((input[2] & 0x3C) >> 2); + output[2] = ((input[2] & 0x03) << 6) | (input[3] & 0x3F); + + for (i = 0; i < ctcharsinput; i++) { + [result appendBytes: &output[i] length: 1]; + } + } + + if (flbreak) { + break; + } + } + } + + return result; +} + +@end diff --git a/iPhoto2Ansel/NSStringAdditions.h b/iPhoto2Ansel/NSStringAdditions.h new file mode 100644 index 000000000..b4776f961 --- /dev/null +++ b/iPhoto2Ansel/NSStringAdditions.h @@ -0,0 +1,39 @@ +// +// Copyright 2008 Eric Czarny +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +// IN THE SOFTWARE. +// + +// +// Cocoa XML-RPC Framework +// NSStringAdditions.h +// +// Created by Eric Czarny on Wednesday, January 14, 2004. +// Copyright 2008 Divisible by Zero. +// + +#import + +@class NSData; + +@interface NSString (NSStringAdditions) + ++ (NSString *)base64StringFromData: (NSData *)data length: (NSInteger)length; + +@end diff --git a/iPhoto2Ansel/NSStringAdditions.m b/iPhoto2Ansel/NSStringAdditions.m new file mode 100644 index 000000000..22387b952 --- /dev/null +++ b/iPhoto2Ansel/NSStringAdditions.m @@ -0,0 +1,119 @@ +// +// Copyright 2008 Eric Czarny +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +// IN THE SOFTWARE. +// + +// +// Cocoa XML-RPC Framework +// NSStringAdditions.m +// +// Created by Eric Czarny on Wednesday, January 14, 2004. +// Copyright 2008 Divisible by Zero. +// + +#import "NSDataAdditions.h" + +/* Base64 Encoding Table */ +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', '+', '/' +}; + +@implementation NSString (NSStringExtensions) + ++ (NSString *)base64StringFromData: (NSData *)data length: (NSInteger)length { + unsigned long ixtext, lentext; + long ctremaining; + unsigned char input[3], output[4]; + short i, charsonline = 0, ctcopy; + const unsigned char *raw; + NSMutableString *result; + + lentext = [data length]; + + if (lentext < 1) { + return @""; + } + + result = [NSMutableString stringWithCapacity: lentext]; + + raw = [data bytes]; + + ixtext = 0; + + while (true) { + ctremaining = lentext - ixtext; + + if (ctremaining <= 0) { + break; + } + + for (i = 0; i < 3; i++) { + unsigned long ix = ixtext + i; + + if (ix < lentext) { + input[i] = raw[ix]; + } else { + input[i] = 0; + } + } + + output[0] = (input[0] & 0xFC) >> 2; + output[1] = ((input[0] & 0x03) << 4) | ((input[1] & 0xF0) >> 4); + output[2] = ((input[1] & 0x0F) << 2) | ((input[2] & 0xC0) >> 6); + output[3] = input[2] & 0x3F; + + ctcopy = 4; + + switch (ctremaining) { + case 1: + ctcopy = 2; + break; + case 2: + ctcopy = 3; + break; + } + + for (i = 0; i < ctcopy; i++) { + [result appendString: [NSString stringWithFormat: @"%c", base64EncodingTable[output[i]]]]; + } + + for (i = ctcopy; i < 4; i++) { + [result appendString: @"="]; + } + + ixtext += 3; + charsonline += 4; + + if (length > 0) { + if (charsonline >= length) { + charsonline = 0; + + [result appendString: @"\n"]; + } + } + } + + return result; +} + +@end diff --git a/iPhoto2Ansel/PackageBuilder.pmdoc/01iphoto-contents.xml b/iPhoto2Ansel/PackageBuilder.pmdoc/01iphoto-contents.xml deleted file mode 100644 index 3aa192b3c..000000000 --- a/iPhoto2Ansel/PackageBuilder.pmdoc/01iphoto-contents.xml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/iPhoto2Ansel/PackageBuilder.pmdoc/01iphoto.xml b/iPhoto2Ansel/PackageBuilder.pmdoc/01iphoto.xml deleted file mode 100644 index e28bd7dec..000000000 --- a/iPhoto2Ansel/PackageBuilder.pmdoc/01iphoto.xml +++ /dev/null @@ -1 +0,0 @@ -com.horde.iphoto2anselExportPlugin.iphoto2ansel.pkg1/Users/mrubinsk/Library/Application Support/iPhoto/Plugins/iPhoto2Ansel.iPhotoExporter/Library/Application Support/iPhoto/PluginsparentrequireAuthorizationinstallTo.pathinstallTo.isAbsoluteTypeinstallTo01iphoto-contents.xml/CVS$/\.svn$/\.cvsignore$/\.cvspass$/\.DS_Store$ \ No newline at end of file diff --git a/iPhoto2Ansel/PackageBuilder.pmdoc/index.xml b/iPhoto2Ansel/PackageBuilder.pmdoc/index.xml deleted file mode 100644 index f592cde88..000000000 --- a/iPhoto2Ansel/PackageBuilder.pmdoc/index.xml +++ /dev/null @@ -1 +0,0 @@ -iPhoto2Ansel Export Plugin/Users/mrubinsk/Desktop/iPhoto2Ansel Export Plugin.pkgcom.horde01iphoto.xmlproperties.titleproperties.userDomainproperties.anywhereDomain \ No newline at end of file diff --git a/iPhoto2Ansel/ProgressSheet.nib/classes.nib b/iPhoto2Ansel/ProgressSheet.nib/classes.nib deleted file mode 100644 index fbf4da3f2..000000000 --- a/iPhoto2Ansel/ProgressSheet.nib/classes.nib +++ /dev/null @@ -1,13 +0,0 @@ -{ - IBClasses = ( - { - ACTIONS = {cancel = id; }; - CLASS = FBProgressController; - LANGUAGE = ObjC; - OUTLETS = {progressIndicator = id; progressPanel = id; statusField = id; }; - SUPERCLASS = NSObject; - }, - {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; } - ); - IBVersion = 1; -} \ No newline at end of file diff --git a/iPhoto2Ansel/ProgressSheet.nib/info.nib b/iPhoto2Ansel/ProgressSheet.nib/info.nib deleted file mode 100644 index a92d71dea..000000000 --- a/iPhoto2Ansel/ProgressSheet.nib/info.nib +++ /dev/null @@ -1,16 +0,0 @@ - - - - - IBDocumentLocation - 750 59 356 240 0 0 1440 878 - IBFramework Version - 443.0 - IBOpenObjects - - 5 - - IBSystem Version - 8P2137 - - diff --git a/iPhoto2Ansel/ProgressSheet.nib/keyedobjects.nib b/iPhoto2Ansel/ProgressSheet.nib/keyedobjects.nib deleted file mode 100644 index e70ba65fa..000000000 Binary files a/iPhoto2Ansel/ProgressSheet.nib/keyedobjects.nib and /dev/null differ diff --git a/iPhoto2Ansel/Resources/English.lproj/AnselGalleryPanel.nib/designable.nib b/iPhoto2Ansel/Resources/English.lproj/AnselGalleryPanel.nib/designable.nib new file mode 100644 index 000000000..aab13b850 --- /dev/null +++ b/iPhoto2Ansel/Resources/English.lproj/AnselGalleryPanel.nib/designable.nib @@ -0,0 +1,744 @@ + + + + 1050 + 9F33 + 672 + 949.34 + 352.00 + + YES + + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + TURAnselGalleryPanelController + + + FirstResponder + + + NSApplication + + + 19 + 2 + {{797, 724}, {267, 276}} + -536866816 + New Gallery + NSPanel + + {3.40282e+38, 3.40282e+38} + + + 256 + + YES + + + 268 + {{20, 219}, {227, 22}} + + YES + + -1804468671 + 272630784 + + + LucidaGrande + 1.300000e+01 + 1044 + + + YES + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 6 + System + textColor + + 3 + MAA + + + + + + + 268 + {{17, 240}, {88, 16}} + + YES + + 68288064 + 272630784 + Gallery Name + + LucidaGrande + 1.200000e+01 + 16 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2OQA + + + + 6 + System + controlTextColor + + + + + + + 268 + {{17, 195}, {73, 16}} + + YES + + 68288064 + 272630784 + Gallery Slug + + + + + + + + + 268 + {{20, 174}, {227, 22}} + + YES + + -1804468671 + 272630784 + + + + YES + + + + + + + 268 + {{20, 103}, {227, 47}} + + YES + + -1805517311 + 272629760 + + + + YES + + + + + + + 268 + {{17, 150}, {124, 16}} + + YES + + 68288064 + 272630784 + Gallery Description + + + + + + + + + 268 + {{116, 12}, {68, 32}} + + YES + + 67239424 + 134217728 + Cancel + + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{184, 12}, {69, 32}} + + YES + + 67239424 + 134217728 + Save + + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{20, 56}, {230, 26}} + + YES + + 879885888 + 272630784 + + + + YES + + + 5 + YES + + + + 274 + {15, 0} + + + YES + + YES + + + 1.200000e+01 + 1.000000e+01 + 1.000000e+03 + + 75628032 + 0 + + + + 3 + MC4zMzMzMzI5OQA + + + + + 338820672 + 1024 + + + YES + + 6 + System + controlBackgroundColor + + + + + 3 + YES + + + + 3.000000e+00 + 2.000000e+00 + + + 6 + System + gridColor + + 3 + MC41AA + + + 1.900000e+01 + tableViewAction: + -767524864 + + + + 1 + 15 + 0 + YES + + + + + + 268 + {{17, 79}, {88, 16}} + + YES + + 68288064 + 272630784 + Gallery Parent + + + + + + + + {267, 276} + + + {{0, 0}, {1920, 1178}} + {3.40282e+38, 3.40282e+38} + + + + + YES + + + newGallerySheet + + + + 43 + + + + doNewGallery: + + + + 48 + + + + galleryDescTextField + + + + 49 + + + + galleryNameTextField + + + + 50 + + + + gallerySlugTextField + + + + 51 + + + + cancelNewGallery: + + + + 53 + + + + + YES + + 0 + + YES + + + + + + -2 + + + RmlsZSdzIE93bmVyA + + + -1 + + + First Responder + + + -3 + + + Application + + + 1 + + + YES + + + + + + 2 + + + YES + + + + + + + + + + + + + + + 3 + + + YES + + + + + + 4 + + + + + 5 + + + YES + + + + + + 6 + + + + + 7 + + + YES + + + + + + 8 + + + + + 9 + + + YES + + + + + + 10 + + + + + 11 + + + YES + + + + + + 12 + + + + + 13 + + + YES + + + + + + 14 + + + + + 15 + + + YES + + + + + + 16 + + + + + 17 + + + YES + + + + + + 18 + + + + + 19 + + + YES + + + + + + 20 + + + + + 21 + + + YES + + + + + + 22 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 1.IBEditorWindowLastContentRect + 1.IBPluginDependency + 1.IBWindowTemplateEditedContentRect + 1.NSWindowTemplate.visibleAtLaunch + 1.WindowOrigin + 1.editorWindowContentRectSynchronizationRect + 10.IBPluginDependency + 11.IBPluginDependency + 12.IBPluginDependency + 13.IBPluginDependency + 14.IBPluginDependency + 15.IBPluginDependency + 16.IBPluginDependency + 17.IBPluginDependency + 18.IBPluginDependency + 19.IBPluginDependency + 2.IBPluginDependency + 20.IBPluginDependency + 21.IBPluginDependency + 22.IBPluginDependency + 3.IBPluginDependency + 4.IBPluginDependency + 5.IBPluginDependency + 6.IBPluginDependency + 7.IBPluginDependency + 8.IBPluginDependency + 9.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{177, 722}, {267, 276}} + com.apple.InterfaceBuilder.CocoaPlugin + {{177, 722}, {267, 276}} + + {196, 240} + {{357, 418}, {480, 270}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + YES + + YES + + + YES + + + + + YES + + YES + + + YES + + + + 53 + + + + YES + + NSObject + + IBProjectSource + TURAnsel.h + + + + NSObject + + IBProjectSource + TURAnselGallery.h + + + + NSObject + + IBProjectSource + TURAnselGalleryPanelController.h + + + + NSObject + + IBProjectSource + xmlrpc-1.5.1/XMLRPCConnection.h + + + + TURAnselGalleryPanelController + NSObject + + YES + + YES + cancelNewGallery: + doNewGallery: + + + YES + id + id + + + + YES + + YES + delegate + galleryDescTextField + galleryNameTextField + gallerySlugTextField + newGallerySheet + + + YES + id + NSTextField + NSTextField + NSTextField + NSPanel + + + + + + + 0 + ../iPhoto2Ansel.xcodeproj + 3 + + diff --git a/iPhoto2Ansel/Resources/English.lproj/AnselGalleryPanel.nib/keyedobjects.nib b/iPhoto2Ansel/Resources/English.lproj/AnselGalleryPanel.nib/keyedobjects.nib new file mode 100644 index 000000000..b318b79b4 Binary files /dev/null and b/iPhoto2Ansel/Resources/English.lproj/AnselGalleryPanel.nib/keyedobjects.nib differ diff --git a/iPhoto2Ansel/Resources/English.lproj/AnselServers.nib/designable.nib b/iPhoto2Ansel/Resources/English.lproj/AnselServers.nib/designable.nib new file mode 100644 index 000000000..a4cabc8cb --- /dev/null +++ b/iPhoto2Ansel/Resources/English.lproj/AnselServers.nib/designable.nib @@ -0,0 +1,192 @@ + + + + 1050 + 9F33 + 672 + 949.34 + 352.00 + + YES + + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + TURAnselServersPanelController + + + FirstResponder + + + NSApplication + + + 15 + 2 + {{196, 240}, {480, 270}} + 536870912 + Ansel Servers + NSWindow + + {3.40282e+38, 3.40282e+38} + + + 256 + {480, 270} + + + {{0, 0}, {1680, 1028}} + {3.40282e+38, 3.40282e+38} + + + + + YES + + + + YES + + 0 + + YES + + + + + + -2 + + + RmlsZSdzIE93bmVyA + + + -1 + + + First Responder + + + -3 + + + Application + + + 1 + + + YES + + + + + + 2 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 1.IBEditorWindowLastContentRect + 1.IBPluginDependency + 1.IBWindowTemplateEditedContentRect + 1.NSWindowTemplate.visibleAtLaunch + 1.WindowOrigin + 1.editorWindowContentRectSynchronizationRect + 2.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{21, 852}, {480, 270}} + com.apple.InterfaceBuilder.CocoaPlugin + {{21, 852}, {480, 270}} + + {196, 240} + {{357, 418}, {480, 270}} + com.apple.InterfaceBuilder.CocoaPlugin + + + + YES + + YES + + + YES + + + + + YES + + YES + + + YES + + + + 2 + + + + YES + + NSObject + + IBProjectSource + TURAnsel.h + + + + NSObject + + IBProjectSource + TURAnselGallery.h + + + + NSObject + + IBProjectSource + TURAnselGalleryPanelController.h + + + + NSObject + + IBProjectSource + xmlrpc-1.5.1/XMLRPCConnection.h + + + + TURAnselServersPanelController + NSObject + + IBProjectSource + TURAnselServersPanelController.h + + + + + 0 + ../iPhoto2Ansel.xcodeproj + 3 + + diff --git a/iPhoto2Ansel/Resources/English.lproj/AnselServers.nib/keyedobjects.nib b/iPhoto2Ansel/Resources/English.lproj/AnselServers.nib/keyedobjects.nib new file mode 100644 index 000000000..059faac85 Binary files /dev/null and b/iPhoto2Ansel/Resources/English.lproj/AnselServers.nib/keyedobjects.nib differ diff --git a/iPhoto2Ansel/Resources/English.lproj/InfoPlist.strings b/iPhoto2Ansel/Resources/English.lproj/InfoPlist.strings new file mode 100755 index 000000000..26bf88013 Binary files /dev/null and b/iPhoto2Ansel/Resources/English.lproj/InfoPlist.strings differ diff --git a/iPhoto2Ansel/Resources/English.lproj/Panel.nib/designable.nib b/iPhoto2Ansel/Resources/English.lproj/Panel.nib/designable.nib new file mode 100644 index 000000000..3ce07275d --- /dev/null +++ b/iPhoto2Ansel/Resources/English.lproj/Panel.nib/designable.nib @@ -0,0 +1,3145 @@ + + + + 1050 + 10B504 + 732 + 1038.2 + 437.00 + + YES + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.imagekit.ibplugin + + + YES + 732 + 1.1 + + + + YES + + + + + YES + com.apple.imagekit.ibplugin + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + YES + + + YES + + + + YES + + AnselExportController + + + FirstResponder + + + NSApplication + + + 23 + 2 + {{196, 315}, {455, 195}} + -1543503872 + Add Server + NSPanel + + {1.79769e+308, 1.79769e+308} + + + 256 + + YES + + + 268 + {{124, 124}, {311, 22}} + + YES + + -1804468671 + 272630784 + + + LucidaGrande + 13 + 1044 + + + YES + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 6 + System + textColor + + 3 + MAA + + + + + + + 268 + {{17, 126}, {102, 17}} + + YES + + 68288064 + 272630784 + Path to rpc.php + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + + + + + + 268 + {{124, 92}, {311, 22}} + + YES + + -1804468671 + 272630784 + + + + YES + + + + + + + 268 + {{124, 60}, {311, 22}} + + YES + + 343014976 + 272630784 + + + + YES + + + + YES + NSAllRomanInputSourcesLocaleIdentifier + + + + + + 268 + {{17, 94}, {67, 17}} + + YES + + 68288064 + 272630784 + Username + + + + + + + + + 268 + {{17, 62}, {67, 17}} + + YES + + 68288064 + 272630784 + Password + + + + + + + + + 268 + {{17, 158}, {102, 17}} + + YES + + 68288064 + 272630784 + Nickname + + + + + + + + + 268 + {{124, 156}, {311, 22}} + + YES + + -1804468671 + 272630784 + + + + YES + + + + + + + 268 + {{345, 12}, {96, 32}} + + YES + + 67239424 + 134217728 + Save + + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{244, 12}, {96, 32}} + + YES + + 67239424 + 134217728 + Cancel + + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{18, 18}, {145, 18}} + + YES + + 67239424 + 0 + Make Default + + + 1211912703 + 130 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + + + {455, 195} + + {{0, 0}, {1920, 1178}} + {1.79769e+308, 1.79769e+308} + + + 23 + 2 + {{196, 152}, {679, 358}} + -1543503872 + Servers + NSPanel + + {1.79769e+308, 1.79769e+308} + + + 256 + + YES + + + 268 + {{568, 28}, {96, 28}} + + YES + + 67239424 + 134348800 + Done + + LucidaGrande + 11 + 3100 + + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + + YES + + + 2304 + + YES + + + 256 + {626, 247} + + YES + + + 256 + {626, 17} + + + + + + 256 + {{627, 0}, {16, 17}} + + + + YES + + nickname + 101 + 40 + 1000 + + 75628096 + 2048 + Server Name + + + 3 + MC4zMzMzMzI5OQA + + + 6 + System + headerTextColor + + + + + 337772096 + 2048 + Text Cell + + + + 6 + System + controlBackgroundColor + + + + + 3 + YES + YES + + + + username + 141 + 40 + 1000 + + 75628096 + 2048 + Login Name + + + + + + 337772096 + 2048 + Text Cell + + + + + + 3 + YES + YES + + + + endpoint + 375 + 10 + 3.4028229999999999e+38 + + 75628096 + 2048 + URL + + + 6 + System + headerColor + + + + + + 337772096 + 2048 + Text Cell + + + + + + 3 + YES + YES + + + + 3 + 2 + + + 6 + System + gridColor + + 3 + MC41AA + + + 17 + -700448768 + + + 4 + 15 + 0 + YES + 0 + + + {{1, 17}, {626, 247}} + + + + + 4 + + + + 256 + {{627, 17}, {15, 247}} + + + _doScroller: + 1 + 0.19473679999999999 + + + + 256 + {{1, 264}, {626, 15}} + + 1 + + _doScroller: + 0.99840510000000005 + + + + 2304 + + YES + + + {{1, 0}, {626, 17}} + + + + + 4 + + + + {{20, 60}, {643, 280}} + + + 50 + + + + + + QSAAAEEgAABBmAAAQZgAAA + + + + 268 + {{15, 28}, {96, 28}} + + YES + + 67239424 + 134348800 + Remove + + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{109, 28}, {123, 28}} + + YES + + 67239424 + 134348800 + Make Default + + + -2038284033 + 129 + + + 200 + 25 + + + + {679, 358} + + {{0, 0}, {1920, 1178}} + {1.79769e+308, 1.79769e+308} + + + 23 + 2 + {{196, 183}, {480, 327}} + -1543503872 + Window + NSPanel + + {1.79769e+308, 1.79769e+308} + + + 256 + + YES + + + 268 + {{370, 12}, {96, 32}} + + YES + + 67239424 + 134217728 + Close + + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + + YES + + + 2304 + + YES + + + 18 + + YES + + YES + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + Apple URL pasteboard type + NSFilenamesPboardType + NSTypedFilenamesPboardType:'.SGI' + NSTypedFilenamesPboardType:'8BPS' + NSTypedFilenamesPboardType:'BMP ' + NSTypedFilenamesPboardType:'BMPf' + NSTypedFilenamesPboardType:'EPSF' + NSTypedFilenamesPboardType:'FPix' + NSTypedFilenamesPboardType:'GIFf' + NSTypedFilenamesPboardType:'ICO ' + NSTypedFilenamesPboardType:'JPEG' + NSTypedFilenamesPboardType:'PDF ' + NSTypedFilenamesPboardType:'PICT' + NSTypedFilenamesPboardType:'PNGf' + NSTypedFilenamesPboardType:'PNTG' + NSTypedFilenamesPboardType:'TIFF' + NSTypedFilenamesPboardType:'TPIC' + NSTypedFilenamesPboardType:'icns' + NSTypedFilenamesPboardType:'jp2 ' + NSTypedFilenamesPboardType:'qtif' + NSTypedFilenamesPboardType:3FR + NSTypedFilenamesPboardType:3fr + NSTypedFilenamesPboardType:ARW + NSTypedFilenamesPboardType:BMP + NSTypedFilenamesPboardType:CR2 + NSTypedFilenamesPboardType:CRW + NSTypedFilenamesPboardType:CUR + NSTypedFilenamesPboardType:DCR + NSTypedFilenamesPboardType:DNG + NSTypedFilenamesPboardType:EFX + NSTypedFilenamesPboardType:EPI + NSTypedFilenamesPboardType:EPS + NSTypedFilenamesPboardType:EPSF + NSTypedFilenamesPboardType:EPSI + NSTypedFilenamesPboardType:ERF + NSTypedFilenamesPboardType:EXR + NSTypedFilenamesPboardType:FAX + NSTypedFilenamesPboardType:FFF + NSTypedFilenamesPboardType:FPIX + NSTypedFilenamesPboardType:FPX + NSTypedFilenamesPboardType:G3 + NSTypedFilenamesPboardType:GIF + NSTypedFilenamesPboardType:HDR + NSTypedFilenamesPboardType:ICNS + NSTypedFilenamesPboardType:ICO + NSTypedFilenamesPboardType:JFAX + NSTypedFilenamesPboardType:JFX + NSTypedFilenamesPboardType:JP2 + NSTypedFilenamesPboardType:JPE + NSTypedFilenamesPboardType:JPEG + NSTypedFilenamesPboardType:JPF + NSTypedFilenamesPboardType:JPG + NSTypedFilenamesPboardType:MAC + NSTypedFilenamesPboardType:MOS + NSTypedFilenamesPboardType:MRW + NSTypedFilenamesPboardType:NEF + NSTypedFilenamesPboardType:NRW + NSTypedFilenamesPboardType:ORF + NSTypedFilenamesPboardType:PCT + NSTypedFilenamesPboardType:PDF + NSTypedFilenamesPboardType:PEF + NSTypedFilenamesPboardType:PIC + NSTypedFilenamesPboardType:PICT + NSTypedFilenamesPboardType:PNG + NSTypedFilenamesPboardType:PNT + NSTypedFilenamesPboardType:PNTG + NSTypedFilenamesPboardType:PS + NSTypedFilenamesPboardType:PSD + NSTypedFilenamesPboardType:PWL + NSTypedFilenamesPboardType:QTI + NSTypedFilenamesPboardType:QTIF + NSTypedFilenamesPboardType:RAF + NSTypedFilenamesPboardType:RAW + NSTypedFilenamesPboardType:RGB + NSTypedFilenamesPboardType:RW2 + NSTypedFilenamesPboardType:RWL + NSTypedFilenamesPboardType:SGI + NSTypedFilenamesPboardType:SR2 + NSTypedFilenamesPboardType:SRF + NSTypedFilenamesPboardType:TARGA + NSTypedFilenamesPboardType:TGA + NSTypedFilenamesPboardType:TIF + NSTypedFilenamesPboardType:TIFF + NSTypedFilenamesPboardType:XBM + NSTypedFilenamesPboardType:arw + NSTypedFilenamesPboardType:bmp + NSTypedFilenamesPboardType:cr2 + NSTypedFilenamesPboardType:crw + NSTypedFilenamesPboardType:cur + NSTypedFilenamesPboardType:dcr + NSTypedFilenamesPboardType:dng + NSTypedFilenamesPboardType:efx + NSTypedFilenamesPboardType:epi + NSTypedFilenamesPboardType:eps + NSTypedFilenamesPboardType:epsf + NSTypedFilenamesPboardType:epsi + NSTypedFilenamesPboardType:erf + NSTypedFilenamesPboardType:exr + NSTypedFilenamesPboardType:fax + NSTypedFilenamesPboardType:fff + NSTypedFilenamesPboardType:fpix + NSTypedFilenamesPboardType:fpx + NSTypedFilenamesPboardType:g3 + NSTypedFilenamesPboardType:gif + NSTypedFilenamesPboardType:hdr + NSTypedFilenamesPboardType:icns + NSTypedFilenamesPboardType:ico + NSTypedFilenamesPboardType:jfax + NSTypedFilenamesPboardType:jfx + NSTypedFilenamesPboardType:jp2 + NSTypedFilenamesPboardType:jpe + NSTypedFilenamesPboardType:jpeg + NSTypedFilenamesPboardType:jpf + NSTypedFilenamesPboardType:jpg + NSTypedFilenamesPboardType:mac + NSTypedFilenamesPboardType:mos + NSTypedFilenamesPboardType:mrw + NSTypedFilenamesPboardType:nef + NSTypedFilenamesPboardType:nrw + NSTypedFilenamesPboardType:orf + NSTypedFilenamesPboardType:pct + NSTypedFilenamesPboardType:pdf + NSTypedFilenamesPboardType:pef + NSTypedFilenamesPboardType:pic + NSTypedFilenamesPboardType:pict + NSTypedFilenamesPboardType:png + NSTypedFilenamesPboardType:pnt + NSTypedFilenamesPboardType:pntg + NSTypedFilenamesPboardType:ps + NSTypedFilenamesPboardType:psd + NSTypedFilenamesPboardType:pwl + NSTypedFilenamesPboardType:qti + NSTypedFilenamesPboardType:qtif + NSTypedFilenamesPboardType:raf + NSTypedFilenamesPboardType:raw + NSTypedFilenamesPboardType:rgb + NSTypedFilenamesPboardType:rw2 + NSTypedFilenamesPboardType:rwl + NSTypedFilenamesPboardType:sgi + NSTypedFilenamesPboardType:sr2 + NSTypedFilenamesPboardType:srf + NSTypedFilenamesPboardType:targa + NSTypedFilenamesPboardType:tga + NSTypedFilenamesPboardType:tif + NSTypedFilenamesPboardType:tiff + NSTypedFilenamesPboardType:xbm + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + + {423, 251} + + NO + YES + YES + YES + YES + NO + NO + YES + 100 + 100 + + + + + {{1, 1}, {423, 251}} + + + + + 6 + + + + 256 + {{424, 1}, {15, 251}} + + + _doScroller: + 1 + 0.9636363 + + + + 256 + {{1, 252}, {423, 15}} + + 1 + + _doScroller: + 0.50602409999999998 + + + {{20, 60}, {440, 268}} + + + 50 + + + + QSAAAEEgAABCzQAAQvAAAA + + + {480, 327} + + + {{0, 0}, {1920, 1178}} + {1.79769e+308, 1.79769e+308} + + + 15 + 2 + {{220, 358}, {548, 406}} + 1886912512 + + Window + + NSWindow + + View + + {1.79769e+308, 1.79769e+308} + {213, 107} + + + 256 + + YES + + + 256 + + YES + + + 256 + + YES + + + 268 + + YES + + + 256 + + YES + + + 268 + {{15, 71}, {81, 17}} + + 2 + YES + + 68288064 + 272630784 + Server + + LucidaGrande + 12 + 16 + + + + + + + + + 268 + {{76, 66}, {382, 26}} + + 2 + YES + + -2076049856 + 2048 + + + 109199615 + 129 + + + 400 + 75 + + + (None) + + 1048576 + 2147483647 + 1 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + 1 + YES + YES + 2 + + + + + 268 + {{77, 33}, {117, 17}} + + 2 + YES + + 68288064 + 272761856 + Not Logged In + + + + + + + + + 1292 + + {{439, 33}, {16, 16}} + + 2 + 28938 + 16 + 100 + + + + 268 + {{15, 37}, {43, 16}} + + 2 + YES + + 68288064 + 272630784 + Status + + + + + + + + {{1, 1}, {480, 94}} + + 2 + + + {{7, 253}, {482, 110}} + + 2 + {0, 0} + + 67239424 + 0 + Connection + + + + 3 + MCAwLjgwMDAwMDAxAA + + + + 1 + 0 + 2 + NO + + + + 268 + + YES + + + 256 + + YES + + + 268 + {{135, 165}, {92, 32}} + + 2 + YES + + 67239424 + 134479872 + Create New + + LucidaGrande + 9 + 3614 + + + -2038284033 + 129 + + LucidaGrande + 9 + 16 + + + + 200 + 25 + + + + + 268 + {{18, 143}, {211, 26}} + + 2 + YES + + 611450433 + 272630784 + + + + YES + + + 5 + YES + YES + YES + + + + + 274 + {15, 0} + + + YES + + YES + + + 12 + 10 + 1000 + + 75628032 + 0 + + + + 3 + MC4zMzMzMzI5OQA + + + + + 338820672 + 1024 + + + YES + + + + 3 + YES + + + + 3 + 2 + + + 19 + tableViewAction: + -767524864 + + + 1 + 15 + 0 + YES + 0 + + + + + + + 268 + {{15, 173}, {103, 16}} + + 2 + YES + + 68288064 + 272630784 + Gallery + + + + + + + + + 268 + + YES + + YES + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + + {{250, 37}, {214, 142}} + + YES + 2 + YES + + 67239424 + 33554432 + 0 + 0 + 1 + YES + + YES + + + + 256 + {{15, 64}, {114, 17}} + + 2 + YES + + 67239424 + 272629760 + Image Size: + + + + + + + + + 256 + {{15, 36}, {130, 26}} + + 2 + YES + + -2076049856 + 2048 + + + 109199615 + 1 + + LucidaGrande + 13 + 16 + + + + + + 400 + 75 + + + Large + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + 2 + + + YES + + + OtherViews + + + YES + + + Small + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + Medium + + 1048576 + 2147483647 + + + _popUpItemAction: + 1 + + + + + + Full Size + + 1048576 + 2147483647 + + + _popUpItemAction: + 3 + + + + + 2 + 3 + YES + YES + 1 + + + + + 268 + {{13, 115}, {96, 28}} + + 2 + YES + + 604110336 + 134348800 + View Gallery + + + -2038284033 + 129 + + + 200 + 25 + + + + + 12 + {{237, 30}, {5, 161}} + + 2 + {0, 0} + + 67239424 + 0 + Box + + + + 3 + MCAwLjgwMDAwMDAxAA + + + 3 + 2 + 0 + NO + + + + 268 + {{250, 14}, {207, 17}} + + 2 + YES + + 68288064 + 272630784 + Image Count: + + + + + + + + {{1, 1}, {480, 197}} + + 2 + + + {{7, 36}, {482, 213}} + + 2 + {0, 0} + + 67239424 + 0 + Export Options + + + + 3 + MCAwLjgwMDAwMDAxAA + + + + 1 + 0 + 2 + NO + + + {{2, 2}, {510, 373}} + + 2 + + + {{17, 16}, {514, 390}} + + 2 + {0, 0} + + 67239424 + 0 + Ansel + + + + 3 + MCAwLjgwMDAwMDAxAA + + + + 3 + 0 + 2 + NO + + + {548, 406} + + 2 + + {{0, 0}, {1920, 1178}} + {213, 129} + {1.79769e+308, 1.79769e+308} + + + + + YES + + + mSettingsBox + + + + 37 + + + + mPlugin + + + + 64 + + + + mSizePopUp + + + + 65 + + + + galleryCombo + + + + 142 + + + + spinner + + + + 239 + + + + showNewGallery: + + + + 336 + + + + defaultImageView + + + + 359 + + + + doAddServer: + + + + 419 + + + + doCancelAddServer: + + + + 420 + + + + newServerSheet + + + + 421 + + + + mServersPopUp + + + + 490 + + + + clickServer: + + + + 492 + + + + statusLabel + + + + 497 + + + + serverListPanel + + + + 505 + + + + closeServerList: + + + + 506 + + + + dataSource + + + + 518 + + + + serverTable + + + + 519 + + + + removeServer: + + + + 523 + + + + mMakeNewServerDefault + + + + 529 + + + + mServerSheetServerNickName + + + + 530 + + + + mServerSheetHostURL + + + + 531 + + + + mServerSheetUsername + + + + 532 + + + + mServerSheetPassword + + + + 533 + + + + mNewGalleryButton + + + + 534 + + + + clickViewGallery: + + + + 543 + + + + viewGallery + + + + 544 + + + + mviewGallerySheet + + + + 545 + + + + closeGalleryView + + + + 548 + + + + closeGalleryView: + + + + 549 + + + + dataSource + + + + 575 + + + + browserView + + + + 576 + + + + mImageCountLabel + + + + 583 + + + + + YES + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 387 + + + YES + + + + Panel (Add Server) + + + 388 + + + YES + + + + + + + + + + + + + + + + 389 + + + YES + + + + + + 391 + + + YES + + + + + + 393 + + + YES + + + + + + 395 + + + YES + + + + + + 397 + + + YES + + + + + + 399 + + + YES + + + + + + 401 + + + YES + + + + + + 403 + + + YES + + + + + + 405 + + + YES + + + + + + 407 + + + YES + + + + + + 409 + + + YES + + + + + + 472 + + + + + 473 + + + + + 474 + + + + + 475 + + + + + 476 + + + + + 477 + + + + + 478 + + + + + 479 + + + + + 480 + + + + + 481 + + + + + 482 + + + + + 501 + + + YES + + + + + + 502 + + + YES + + + + + + + + + 503 + + + YES + + + + + + 504 + + + + + 507 + + + YES + + + + + + + + + 508 + + + + + 509 + + + + + 510 + + + YES + + + + + + + + 511 + + + + + 512 + + + YES + + + + + + 513 + + + YES + + + + + + 514 + + + + + 515 + + + + + 516 + + + YES + + + + + + 517 + + + + + 521 + + + YES + + + + + + 522 + + + + + 527 + + + YES + + + + + + 528 + + + + + 536 + + + YES + + + + GalleryView + + + 537 + + + YES + + + + + + + 5 + + + YES + + + + Window + + + 6 + + + YES + + + + + + 7 + + + YES + + + + + + + 137 + + + YES + + + + + + + + + + + + + + 500 + + + + + 498 + + + YES + + + + + + 499 + + + + + 138 + + + YES + + + + + + 462 + + + + + 18 + + + YES + + + + + + 461 + + + YES + + + + + + 19 + + + YES + + + + + + + + + 20 + + + + + 21 + + + + + 22 + + + + + 23 + + + + + 9 + + + YES + + + + + + 460 + + + + + 357 + + + YES + + + + + + 465 + + + + + 169 + + + YES + + + + + + 464 + + + + + 140 + + + YES + + + + + + 463 + + + + + 136 + + + YES + + + + + + + + + + 216 + + + + + 167 + + + YES + + + + + + 468 + + + + + 493 + + + YES + + + + + + 494 + + + + + 413 + + + YES + + + + + + 470 + + + + + 484 + + + YES + + + + + + 485 + + + YES + + + + + + 486 + + + YES + + + + + + 489 + + + + + 546 + + + YES + + + + + + 547 + + + + + 577 + + + YES + + + + + + + + 578 + + + + + 579 + + + + + 574 + + + + + 581 + + + YES + + + + + + 582 + + + + + + + YES + + YES + -3.IBPluginDependency + -3.ImportedFromIB2 + 136.IBPluginDependency + 136.ImportedFromIB2 + 137.IBPluginDependency + 137.ImportedFromIB2 + 138.IBPluginDependency + 138.ImportedFromIB2 + 140.IBPluginDependency + 140.ImportedFromIB2 + 167.IBPluginDependency + 167.ImportedFromIB2 + 169.IBPluginDependency + 169.ImportedFromIB2 + 18.IBPluginDependency + 18.ImportedFromIB2 + 19.IBPluginDependency + 19.ImportedFromIB2 + 20.IBPluginDependency + 20.ImportedFromIB2 + 21.IBPluginDependency + 21.ImportedFromIB2 + 216.IBPluginDependency + 216.ImportedFromIB2 + 22.IBPluginDependency + 22.ImportedFromIB2 + 23.IBPluginDependency + 23.ImportedFromIB2 + 357.IBPluginDependency + 357.IBViewIntegration.shadowBlurRadius + 357.IBViewIntegration.shadowColor + 357.IBViewIntegration.shadowOffsetHeight + 357.IBViewIntegration.shadowOffsetWidth + 357.ImportedFromIB2 + 387.IBEditorWindowLastContentRect + 387.IBPluginDependency + 387.IBWindowTemplateEditedContentRect + 387.ImportedFromIB2 + 388.IBPluginDependency + 388.ImportedFromIB2 + 389.IBPluginDependency + 389.ImportedFromIB2 + 391.IBPluginDependency + 391.ImportedFromIB2 + 393.IBPluginDependency + 393.ImportedFromIB2 + 395.IBPluginDependency + 395.ImportedFromIB2 + 397.IBPluginDependency + 397.ImportedFromIB2 + 399.IBPluginDependency + 399.ImportedFromIB2 + 401.IBPluginDependency + 401.ImportedFromIB2 + 403.IBPluginDependency + 403.ImportedFromIB2 + 405.IBPluginDependency + 405.ImportedFromIB2 + 407.IBPluginDependency + 407.ImportedFromIB2 + 409.IBPluginDependency + 409.ImportedFromIB2 + 413.IBPluginDependency + 413.ImportedFromIB2 + 460.IBPluginDependency + 461.IBPluginDependency + 462.IBPluginDependency + 463.IBPluginDependency + 464.IBPluginDependency + 465.IBPluginDependency + 468.IBPluginDependency + 470.IBPluginDependency + 472.IBPluginDependency + 473.IBPluginDependency + 474.IBPluginDependency + 475.IBPluginDependency + 476.IBPluginDependency + 477.IBPluginDependency + 478.IBPluginDependency + 479.IBPluginDependency + 480.IBPluginDependency + 481.IBPluginDependency + 482.IBPluginDependency + 484.IBPluginDependency + 485.IBPluginDependency + 486.IBEditorWindowLastContentRect + 486.IBPluginDependency + 489.IBPluginDependency + 493.IBPluginDependency + 494.IBPluginDependency + 498.IBPluginDependency + 499.IBPluginDependency + 5.IBEditorWindowLastContentRect + 5.IBPluginDependency + 5.IBWindowTemplateEditedContentRect + 5.ImportedFromIB2 + 5.windowTemplate.hasMinSize + 5.windowTemplate.minSize + 500.IBPluginDependency + 501.IBEditorWindowLastContentRect + 501.IBPluginDependency + 501.IBWindowTemplateEditedContentRect + 501.NSWindowTemplate.visibleAtLaunch + 502.IBPluginDependency + 503.IBPluginDependency + 504.IBPluginDependency + 507.IBPluginDependency + 508.IBPluginDependency + 509.IBPluginDependency + 510.IBPluginDependency + 511.IBPluginDependency + 512.IBPluginDependency + 513.IBPluginDependency + 514.IBPluginDependency + 515.IBPluginDependency + 516.IBPluginDependency + 517.IBPluginDependency + 521.IBPluginDependency + 522.IBPluginDependency + 527.IBPluginDependency + 528.IBPluginDependency + 536.IBEditorWindowLastContentRect + 536.IBPluginDependency + 536.IBWindowTemplateEditedContentRect + 536.NSWindowTemplate.visibleAtLaunch + 537.IBPluginDependency + 546.IBPluginDependency + 547.IBPluginDependency + 574.IBPluginDependency + 577.IBPluginDependency + 578.IBPluginDependency + 579.IBPluginDependency + 581.IBPluginDependency + 582.IBPluginDependency + 6.IBPluginDependency + 6.ImportedFromIB2 + 7.CustomClassName + 7.IBPluginDependency + 7.ImportedFromIB2 + 9.IBPluginDependency + 9.ImportedFromIB2 + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + {{351, 386}, {455, 195}} + com.apple.InterfaceBuilder.CocoaPlugin + {{351, 386}, {455, 195}} + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{682, 774}, {382, 23}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1069, 745}, {548, 406}} + com.apple.InterfaceBuilder.CocoaPlugin + {{1069, 745}, {548, 406}} + + + {213, 107} + com.apple.InterfaceBuilder.CocoaPlugin + {{127, 600}, {679, 358}} + com.apple.InterfaceBuilder.CocoaPlugin + {{127, 600}, {679, 358}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{33, 581}, {480, 327}} + com.apple.InterfaceBuilder.CocoaPlugin + {{33, 581}, {480, 327}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.imagekit.ibplugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AnselExportPluginBox + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + YES + + + YES + + + + + YES + + + YES + + + + 625 + + + + YES + + AnselExportController + NSObject + + YES + + YES + clickServer: + clickViewGallery: + closeGalleryView: + closeServerList: + doAddServer: + doCancelAddServer: + removeServer: + showNewGallery: + + + YES + id + id + id + id + id + id + id + id + + + + YES + + YES + browserView + closeGalleryView + defaultImageView + firstView + galleryCombo + mExportMgr + mImageCountLabel + mMakeNewServerDefault + mNewGalleryButton + mServerSheetHostURL + mServerSheetPassword + mServerSheetServerNickName + mServerSheetUsername + mServersPopUp + mSettingsBox + mSizePopUp + mviewGallerySheet + newServerSheet + serverListPanel + serverTable + spinner + statusLabel + viewGallery + + + YES + IKImageBrowserView + NSButton + NSImageView + NSControl + NSComboBox + id + NSTextField + NSButton + NSButton + NSTextField + NSSecureTextField + NSTextField + NSTextField + NSPopUpButton + NSBox + NSPopUpButton + NSWindow + NSWindow + NSPanel + NSTableView + NSProgressIndicator + NSTextField + NSButton + + + + IBProjectSource + AnselExportController.h + + + + AnselExportController + NSObject + + IBUserSource + + + + + AnselExportPluginBox + NSBox + + mPlugin + id + + + IBProjectSource + AnselExportPluginBox.h + + + + AnselExportPluginBox + NSBox + + IBUserSource + + + + + FirstResponder + NSObject + + IBUserSource + + + + + NSObject + + IBProjectSource + TURAnselKit/TURAnsel.h + + + + NSObject + + IBProjectSource + TURAnselKit/TURAnselGallery.h + + + + NSObject + + IBProjectSource + TURAnselKit/TURAnselGalleryPanelController.h + + + + NSObject + + IBUserSource + + + + + + YES + + IKImageBrowserView + NSView + + YES + + YES + _dataSource + _delegate + _dragDestinationDelegate + _horizontalScroller + _verticalScroller + + + YES + id + id + id + NSScroller + NSScroller + + + + IBFrameworkSource + ImageKit.framework/Headers/IKImageBrowserView.h + + + + NSFormatter + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFormatter.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSClassDescription.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSError.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFileManager.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueObserving.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyedArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObject.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObjectScripting.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSPortCoder.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSRunLoop.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptClassDescription.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptObjectSpecifiers.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptWhoseTests.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSThread.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURL.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLConnection.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLDownload.h + + + + NSObject + + + + NSObject + + IBFrameworkSource + ImageKit.framework/Headers/IKSaveOptions.h + + + + NSObject + + IBFrameworkSource + ImageKit.framework/Headers/ImageKitDeprecated.h + + + + NSObject + + IBFrameworkSource + PDFKit.framework/Headers/PDFDocument.h + + + + NSObject + + IBFrameworkSource + PDFKit.framework/Headers/PDFView.h + + + + NSObject + + IBFrameworkSource + QuartzComposer.framework/Headers/QCCompositionParameterView.h + + + + NSObject + + IBFrameworkSource + QuartzComposer.framework/Headers/QCCompositionPickerView.h + + + + NSObject + + IBFrameworkSource + QuartzCore.framework/Headers/CAAnimation.h + + + + NSObject + + IBFrameworkSource + QuartzCore.framework/Headers/CALayer.h + + + + NSObject + + IBFrameworkSource + QuartzCore.framework/Headers/CIImageProvider.h + + + + NSObject + + IBFrameworkSource + QuartzFilters.framework/Headers/QuartzFilterManager.h + + + + NSObject + + IBFrameworkSource + QuickLookUI.framework/Headers/QLPreviewPanel.h + + + + + 0 + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + ../iPhoto2Ansel.xcodeproj + 3 + + diff --git a/iPhoto2Ansel/Resources/English.lproj/Panel.nib/keyedobjects.nib b/iPhoto2Ansel/Resources/English.lproj/Panel.nib/keyedobjects.nib new file mode 100644 index 000000000..600548e66 Binary files /dev/null and b/iPhoto2Ansel/Resources/English.lproj/Panel.nib/keyedobjects.nib differ diff --git a/iPhoto2Ansel/Resources/English.lproj/ProgressSheet.nib/classes.nib b/iPhoto2Ansel/Resources/English.lproj/ProgressSheet.nib/classes.nib new file mode 100644 index 000000000..fbf4da3f2 --- /dev/null +++ b/iPhoto2Ansel/Resources/English.lproj/ProgressSheet.nib/classes.nib @@ -0,0 +1,13 @@ +{ + IBClasses = ( + { + ACTIONS = {cancel = id; }; + CLASS = FBProgressController; + LANGUAGE = ObjC; + OUTLETS = {progressIndicator = id; progressPanel = id; statusField = id; }; + SUPERCLASS = NSObject; + }, + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/iPhoto2Ansel/Resources/English.lproj/ProgressSheet.nib/info.nib b/iPhoto2Ansel/Resources/English.lproj/ProgressSheet.nib/info.nib new file mode 100644 index 000000000..a92d71dea --- /dev/null +++ b/iPhoto2Ansel/Resources/English.lproj/ProgressSheet.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 750 59 356 240 0 0 1440 878 + IBFramework Version + 443.0 + IBOpenObjects + + 5 + + IBSystem Version + 8P2137 + + diff --git a/iPhoto2Ansel/Resources/English.lproj/ProgressSheet.nib/keyedobjects.nib b/iPhoto2Ansel/Resources/English.lproj/ProgressSheet.nib/keyedobjects.nib new file mode 100644 index 000000000..e70ba65fa Binary files /dev/null and b/iPhoto2Ansel/Resources/English.lproj/ProgressSheet.nib/keyedobjects.nib differ diff --git a/iPhoto2Ansel/Resources/iPhoto2Ansel.icns b/iPhoto2Ansel/Resources/iPhoto2Ansel.icns new file mode 100644 index 000000000..c52d91d29 Binary files /dev/null and b/iPhoto2Ansel/Resources/iPhoto2Ansel.icns differ diff --git a/iPhoto2Ansel/Resources/iPhotoPluginIcon.png b/iPhoto2Ansel/Resources/iPhotoPluginIcon.png new file mode 100644 index 000000000..53f7f6c68 Binary files /dev/null and b/iPhoto2Ansel/Resources/iPhotoPluginIcon.png differ diff --git a/iPhoto2Ansel/Resources/iPhotoPluginIcon.psd b/iPhoto2Ansel/Resources/iPhotoPluginIcon.psd new file mode 100644 index 000000000..30bc3d47d Binary files /dev/null and b/iPhoto2Ansel/Resources/iPhotoPluginIcon.psd differ diff --git a/iPhoto2Ansel/TURAnsel.h b/iPhoto2Ansel/TURAnsel.h deleted file mode 100644 index b18c86fb4..000000000 --- a/iPhoto2Ansel/TURAnsel.h +++ /dev/null @@ -1,59 +0,0 @@ -// -// TURAnsel.h -// myXMLTest -// -// Created by Michael Rubinsky on 10/31/08. -// Copyright 2008 __MyCompanyName__. All rights reserved. -// -#import -@class TURAnselGallery, XMLRPCResponse; - -typedef enum { - PERMS_SHOW = 2, - PERMS_READ = 4, - PERMS_EDIT = 8, - PERMS_DELETE = 16 -} HORDE_PERMS; - -typedef enum { - TURAnselStateDisconnected = 0, - TURAnselStateConnected, - TURAnselStateError, - TURAnselStateCancelled -} TURAnselState; - - -@interface NSObject (TURAnselDelegate) -- (void)TURAnselDidInitialize; -- (void)TURAnselHadError: (NSError *)error; -@end - -@interface TURAnsel : NSObject { - NSString *userAgent; - NSString *rpcEndPoint; - NSString *username; - NSString *password; - NSMutableArray *galleryList; - TURAnselState state; - id delegate; - NSLock *lock; -} - -@property (readwrite, retain) NSString *rpcEndPoint; -@property (readwrite, retain) NSString *username; -@property (readwrite, retain) NSString *password; - -- (id)initWithConnectionParameters: (NSDictionary *)params; -- (void)connect; -- (TURAnselGallery *)getGalleryById: (NSString *)galleryId; -- (TURAnselGallery *)getGalleryByIndex: (NSInteger)index; -- (XMLRPCResponse *)callRPCMethod: (NSString *)methodName withParams: (NSArray *)params; -- (NSDictionary *)createNewGallery: (NSDictionary *)params; -- (void)cancel; - -// Getters/setters -- (void) setState: (TURAnselState)state; -- (TURAnselState)state; -- (id)delegate; -- (void)setDelegate:(id)newDelegate; -@end diff --git a/iPhoto2Ansel/TURAnsel.m b/iPhoto2Ansel/TURAnsel.m deleted file mode 100644 index 6681495c4..000000000 --- a/iPhoto2Ansel/TURAnsel.m +++ /dev/null @@ -1,266 +0,0 @@ -// -// TURAnsel.m -// AnselCocoaToolkit -// -// Created by Michael Rubinsky on 10/31/08. -// Copyright 2008 Michael Rubinsky -// - -#import -#import -#import "TURXMLConnection.h" -#import "TURAnsel.h" -#import "TURAnselGallery.h" - -@interface TURAnsel (PrivateAPI) -- (void)doLogin; -@end - -@implementation TURAnsel - -@synthesize rpcEndPoint; -@synthesize username; -@synthesize password; - -#pragma mark init -- (id)initWithConnectionParameters: (NSDictionary *)params -{ - [super init]; - galleryList = [[NSMutableArray alloc] init]; - - // Initialize the connection properties, KVC style - [self setValue:[params objectForKey:@"endpoint"] - forKey: @"rpcEndPoint"]; - [self setValue: [params objectForKey:@"username"] - forKey: @"username"]; - [self setValue: [params objectForKey:@"password"] - forKey: @"password"]; - [self setValue: @"The Ansel Cocoa XML-RPC Client" - forKey: @"userAgent"]; - return self; -} - -#pragma mark Instance Methods -/** - * Initial connection to the Ansel server - * Authenticate and fill our cache with the available galleries for uploading to - */ -- (void)connect -{ - [self doLogin]; - if (state == TURAnselStateConnected) { - if ([delegate respondsToSelector:@selector(TURAnselDidInitialize)]) { - [delegate performSelectorOnMainThread:@selector(TURAnselDidInitialize) - withObject:self - waitUntilDone: NO]; - } - } -} - -- (void) cancel -{ - state = TURAnselStateCancelled; -} - -// Fetch a gallery by id -- (TURAnselGallery *)getGalleryById: (NSString *)galleryId -{ - for (TURAnselGallery *g in galleryList) { - if ([galleryId isEqualTo: [NSNumber numberWithInt: [g galleryId]]]) { - return g; - } - } - - return nil; -} - -// Return the gallery at the specified position in the internal storage array. -// Needed for when we are using this class as a datasource for a UI element. -- (TURAnselGallery *)getGalleryByIndex: (NSInteger)index -{ - TURAnselGallery *g = [galleryList objectAtIndex:index]; - return g; -} - -// Creates a new gallery -// For now, only takes a gallery name, but no reason it can't take descriiption -// and default perms etc... -- (NSDictionary *)createNewGallery: (NSDictionary *)params -{ - NSArray *apiparams = [NSArray arrayWithObjects: - @"ansel", params, nil]; - XMLRPCResponse *response = [self callRPCMethod: @"images.createGallery" - withParams: apiparams]; - if (state != TURAnselStateError) { - NSDictionary *results = [NSDictionary dictionaryWithObjectsAndKeys: - response, @"share_id", - [params valueForKey: @"name"], @"attribute_name", - @"", @"attribute_desc", - [NSNumber numberWithInt: 0], @"attribute_images", - [NSNumber numberWithInt: 0], @"attribute_default", nil]; - TURAnselGallery *newGallery = [[TURAnselGallery alloc] initWithObject: results - controller: self]; - [galleryList addObject: newGallery]; - //[attributes release]; - return results; - } - - // If we have an error, tell the world - // *really* need to give these errors real numbers..... - if ([delegate respondsToSelector:@selector(TURAnselHadError:)]) { - NSError *error = [NSError errorWithDomain:@"TURAnsel" - code:3 - userInfo:[NSDictionary dictionaryWithObjectsAndKeys: @"Could not create gallery.", @"message", nil]]; - [delegate TURAnselHadError:error]; - } - - return nil; -} - - -// Call an arbitrary RPC method on the Horde server. -- (XMLRPCResponse *)callRPCMethod: (NSString *)methodName - withParams: (NSArray *)params -{ - NSLog(@"Initiating connection for %@", methodName); - - // Get a URL object - NSURL *url = [NSURL URLWithString: [self valueForKey: @"rpcEndPoint"]]; - XMLRPCRequest *request = [[XMLRPCRequest alloc]initWithHost: url]; - [request setUserAgent: [self valueForKey:@"userAgent"]]; - [request setMethod: methodName withParameters: params]; - - NSDictionary *credentials = [[NSDictionary alloc] initWithObjectsAndKeys: - [self valueForKey:@"username"], @"username", - [self valueForKey:@"password"], @"password", nil]; - - TURXMLConnection *connection = [[TURXMLConnection alloc] - initWithXMLRPCRequest: request - withCredentials:credentials]; - - // Don't move on until we have a response - this blocks the thread until - // that happens. We should have some kind of timeout here... - while ([connection isRunning]) { - if (state == TURAnselStateCancelled) { - [connection cancel]; - } - NSDate *loopDate = [[NSDate alloc] initWithTimeIntervalSinceNow:0.1]; - [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode - beforeDate:loopDate]; - [loopDate release]; - } - - if ([connection hasError] == NO) { - XMLRPCResponse *response = [[connection response] autorelease]; - [credentials release]; - [connection release]; - [request release]; - return response; - } else { - state = TURAnselStateError; - NSError *error = [[connection error] retain]; - if ([delegate respondsToSelector:@selector(TURAnselHadError:)]) { - [delegate TURAnselHadError:error]; - } - [error autorelease]; - [connection release]; - [request release]; - return nil; - } - -} - -#pragma mark TableView datasource -- (int)numberOfRowsInTableView: (NSTableView *)tv -{ - return [galleryList count]; -} - -- (id)tableView: (NSTableView *)tv -objectValueForTableColumn:(NSTableColumn *)tc - row: (int)rowIndex -{ - NSString *identifier = [tc identifier]; - TURAnselGallery *g = [galleryList objectAtIndex:rowIndex]; - NSString *stringValue = [g valueForKey: identifier]; - return stringValue; -} - -#pragma mark ComboBox Datasource - -- (NSInteger)numberOfItemsInComboBox:(NSComboBox *)aComboBox -{ - return [galleryList count]; -} - -- (id)comboBox:(NSComboBox *)aComboBox - objectValueForItemAtIndex:(NSInteger)index -{ - TURAnselGallery *g = [galleryList objectAtIndex:index]; - NSString *stringValue = [g valueForKey:@"galleryName"]; - return stringValue; -} - -#pragma mark Getter/Setters -- (TURAnselState) state -{ - return state; -} --(void) setState: (TURAnselState)newstate -{ - state = newstate; -} - -- (id)delegate { - return delegate; -} - -- (void)setDelegate:(id)newDelegate { - delegate = newDelegate; -} - --(void) dealloc -{ - NSLog(@"TURAnsel dealloc"); - [galleryList removeAllObjects]; - [galleryList release]; - [rpcEndPoint release]; - [username release]; - [password release]; - [userAgent release]; - [super dealloc]; -} - -#pragma mark PrivateAPI -- (void)doLogin -{ - // Start out by building an array of parameters to pass to the api call. - // We start by asking for a list of available galleries with PERMS_EDIT. - // This has the side effect of authenticating for the session. - NSArray *params = [[NSArray alloc] initWithObjects: - @"ansel", // Scope - [NSNumber numberWithInt: PERMS_EDIT], // Perms - @"", // No parent - [NSNumber numberWithBool:YES], // allLevels - [NSNumber numberWithInt: 0], // Offset - [NSNumber numberWithInt: 0], // Count - [self valueForKey:@"username"], nil]; // Restrict to user (This should be an option eventually).do - - - id galleries = [self callRPCMethod:@"images.listGalleries" - withParams:params]; - if (state != TURAnselStateError) { - state = TURAnselStateConnected; - for (NSString *gal in galleries) { - TURAnselGallery *theGallery = [[TURAnselGallery alloc] initWithObject: gal - controller: self]; - [theGallery setAnselController: self]; - [galleryList addObject: theGallery]; - [theGallery release]; - theGallery = nil; - } - } - [params release]; -} - -@end diff --git a/iPhoto2Ansel/TURAnselGallery.h b/iPhoto2Ansel/TURAnselGallery.h deleted file mode 100644 index c8a4bf84d..000000000 --- a/iPhoto2Ansel/TURAnselGallery.h +++ /dev/null @@ -1,53 +0,0 @@ -// -// TURAnselGallery.h -// -// Class to wrap Ansel Gallery. -// -// Created by Michael Rubinsky on 10/21/08. -// Copyright 2008 __MyCompanyName__. All rights reserved. -// - -#import -@class TURAnsel, NSURL, XMLRPCResponse; - -typedef enum { - TURAnselGalleryStateReady = 0, - TURAnselGalleryStateBusy -} TURAnselGalleryState; - -@interface NSObject (TURAnselGalleryDelegate) -- (void)TURAnselGalleryDidReceiveRPCResponse: (XMLRPCResponse *)response; -- (void)TURAnselGalleryDidUploadImage: (id *)gallery; -@end - -@interface TURAnselGallery : NSObject { - int galleryId; - int galleryImageCount; - int galleryDefaultImage; - NSURL *galleryDefaultImageURL; - NSMutableArray *imageList; - NSString *galleryName; - NSString *galleryDescription; - TURAnsel *anselController; - TURAnselGalleryState state; - id delegate; -} -@property (readonly) NSString *galleryName; -@property (readonly) NSString *galleryDescription; -@property (readonly) int galleryImageCount; -@property (readwrite) int galleryDefaultImage; - -- (id)initWithObject:(id)galleryData controller:(TURAnsel * )controller; -- (void)uploadImageObject: (NSDictionary *)imageParameters; -- (bool)isBusy; - -// Getter / Setter -- (void)setDelegate: (id)newDelegate; -- (id)delegate; -- (NSURL *)galleryDefaultImageURL; -- (id)listImages; -- (int)galleryId; -- (TURAnselGalleryState) state; -- (void)setState: (TURAnselGalleryState)theState; -- (void)setAnselController:(TURAnsel *)newController; -@end \ No newline at end of file diff --git a/iPhoto2Ansel/TURAnselGallery.m b/iPhoto2Ansel/TURAnselGallery.m deleted file mode 100644 index 4522b2281..000000000 --- a/iPhoto2Ansel/TURAnselGallery.m +++ /dev/null @@ -1,206 +0,0 @@ -// -// TURAnselGallery.m -// Class wraps an Ansel Gallery -// -// Created by Michael Rubinsky on 10/21/08. -// Copyright 2008 __MyCompanyName__. All rights reserved. -// -#import -#import "XMLRPC/XMLRPC.h" -#import "TURXMLConnection.h" -#import "TURAnsel.h" -#import "TURAnselGallery.h" - -@interface TURAnselGallery (PrivateAPI) -- (void)doUpload: (NSDictionary *)imageParams; -@end - -@implementation TURAnselGallery - -@synthesize galleryDescription; -@synthesize galleryName; -@synthesize galleryImageCount; -@synthesize galleryDefaultImage; - -#pragma mark Instance Methods -------------------------------------------------- - -/** - * Init a gallery object - */ -- (id)initWithObject:(id)galleryData controller:(TURAnsel *)controller -{ - [super init]; - [self setValue: [galleryData valueForKey:@"share_id"] - forKey: @"galleryId"]; - [self setValue:[galleryData valueForKey:@"attribute_desc"] - forKey:@"galleryDescription"]; - [self setValue:[galleryData valueForKey:@"attribute_name"] - forKey:@"galleryName"]; - [self setValue: [galleryData valueForKey:@"attribute_images"] - forKey:@"galleryImageCount"]; - [self setValue: [galleryData valueForKey:@"attribute_default"] - forKey:@"galleryDefaultImage"]; - [self setAnselController: controller]; - return self; -} - -/** - * Requests the gallery's default image url to be fetched from the server - * (This information is not present in the gallery definition array returned - * from the images.listGalleries call). - */ -- (NSURL *)galleryDefaultImageURL -{ - if (!galleryDefaultImageURL) { - - NSArray *params = [[NSArray alloc] initWithObjects: - @"ansel", // Scope - [NSNumber numberWithInt: galleryDefaultImage], // Image Id - @"thumb", // Thumbnail type - [NSNumber numberWithBool:YES], // Full path - nil]; - - [self setState:TURAnselGalleryStateBusy]; - XMLRPCResponse *response = [anselController callRPCMethod: @"images.getImageUrl" - withParams: params]; - - if (response) { - galleryDefaultImageURL = [[NSURL URLWithString: [NSString stringWithFormat:@"%@", response]] retain]; - } - } - - return galleryDefaultImageURL; -} - -/** - * Get the complete list of image ids and URLs - */ -- (id)listImages -{ - if (!imageList) { - - NSArray *params = [[NSArray alloc] initWithObjects: - @"ansel", //Scope - [NSNumber numberWithInt: galleryId], //Gallery Id - [NSNumber numberWithInt: 2], //PERMS_SHOW - @"thumb", // Thumbnail - [NSNumber numberWithBool:YES], // Full path - nil]; - - [self setState:TURAnselGalleryStateBusy]; - XMLRPCResponse *response = [anselController callRPCMethod: @"images.listImages" - withParams: params]; - - if (response) { - imageList = [response retain]; - } - } - - return imageList; -} - -/** - * Upload the provided image to this gallery. - */ -- (void)uploadImageObject: (NSDictionary *)imageParameters -{ - [self doUpload: imageParameters]; -} - -- (bool) isBusy -{ - if (state == TURAnselGalleryStateReady) { - return NO; - } else { - return YES; - } -} - -#pragma mark Getter/Setter------------------------------------------------------ -- (int)galleryId -{ - return galleryId; -} -- (void)setGalleryId:(int)id -{ - galleryId = id; -} - -- (id)delegate -{ - return delegate; -} -- (void)setDelegate: (id)newDelegate -{ - delegate = newDelegate; -} - -- (TURAnselGalleryState)state -{ - return state; -} -- (void)setState: (TURAnselGalleryState)theState -{ - state = theState; -} - -- (void)setAnselController: (TURAnsel *)newController -{ - [anselController autorelease]; - anselController = [newController retain]; -} - -- (TURAnsel *)anselController -{ - return anselController; -} - -#pragma mark Overrides---------------------------------------------------------- -- (void)dealloc -{ - NSLog(@"TURAnselGallery dealloc called on Gallery %@", self); - [anselController release]; - [galleryDefaultImageURL release]; - [imageList release]; - [super dealloc]; -} - -- (id)init -{ - [super init]; - [self setState:TURAnselGalleryStateReady]; - return self; -} - -- (id)description -{ - NSString *text = [NSString stringWithFormat:@"Description: %@ Id: %d has: %d images", galleryName, galleryId, galleryImageCount]; - return text; -} - -#pragma mark PrivateAPI -- (void)doUpload:(NSDictionary *)imageParameters -{ - // Need to build the XMLRPC params array now. - NSArray *params = [[NSArray alloc] initWithObjects: - @"ansel", // app - [NSNumber numberWithInt: galleryId], // gallery_id - [imageParameters valueForKey: @"data"], // image data array - [imageParameters valueForKey: @"default"], // set as default? - @"", // Additional gallery data to set? - @"base64", // Image data encoding - nil]; - - // Send the request up to the controller - [anselController callRPCMethod: @"images.saveImage" - withParams: params]; - - if ([delegate respondsToSelector:@selector(TURAnselGalleryDidUploadImage:)]) { - [delegate performSelectorOnMainThread: @selector(TURAnselGalleryDidUploadImage:) - withObject: self - waitUntilDone: NO]; - } - - [params release]; -} -@end diff --git a/iPhoto2Ansel/TURAnselGalleryPanelController.h b/iPhoto2Ansel/TURAnselGalleryPanelController.h deleted file mode 100644 index 9e2f612b2..000000000 --- a/iPhoto2Ansel/TURAnselGalleryPanelController.h +++ /dev/null @@ -1,35 +0,0 @@ -// -// TURAnselGalleryPanelController.h -// iPhoto2Ansel -// -// Created by Michael Rubinsky on 12/7/08. -// Copyright 2008 __MyCompanyName__. All rights reserved. -// - -#import -#import "TURAnsel.h" - -@interface NSObject (TURAnselGalleryPaneControllerDelegate) --(void)TURAnselGalleryPanelDidAddGallery; -@end - -@interface TURAnselGalleryPanelController : NSObject { - // Outlets - IBOutlet NSTextField *galleryNameTextField; - IBOutlet NSTextField *gallerySlugTextField; - IBOutlet NSTextField *galleryDescTextField; - IBOutlet NSPanel *newGallerySheet; - - TURAnsel *anselController; - NSWindow *controllerWindow; - id delegate; -} - -// Actions -- (IBAction)doNewGallery: (id)sender; -- (IBAction)cancelNewGallery: (id)sender; -- (id)initWithController: (TURAnsel *)theController; -- (id)initWithController: (TURAnsel *)theController withGalleryName: (NSString *)galleryName; -- (void)showSheetForWindow: (NSWindow *)theWindow; -- (void)setDelegate: (id)theDelegate; -@end diff --git a/iPhoto2Ansel/TURAnselGalleryPanelController.m b/iPhoto2Ansel/TURAnselGalleryPanelController.m deleted file mode 100644 index baff799ba..000000000 --- a/iPhoto2Ansel/TURAnselGalleryPanelController.m +++ /dev/null @@ -1,118 +0,0 @@ -// -// TURAnselGalleryPanelController.m -// iPhoto2Ansel -// -// Created by Michael Rubinsky on 12/7/08. -// Copyright 2008 __MyCompanyName__. All rights reserved. -// - -#import "TURAnselGalleryPanelController.h" - -@implementation TURAnselGalleryPanelController - -#pragma mark IBActions -- (IBAction)cancelNewGallery: (id)sender -{ - [NSApp endSheet: newGallerySheet]; - [newGallerySheet orderOut: nil]; -} - -- (IBAction)doNewGallery: (id)sender -{ - // Get Gallery Properties from the panel. - NSString *galleryName = [galleryNameTextField stringValue]; - NSString *gallerySlug = [gallerySlugTextField stringValue]; - NSString *galleryDescription = [galleryDescTextField stringValue]; - - if (!galleryName) { - - [NSApp endSheet: newGallerySheet]; - [newGallerySheet orderOut: nil]; - - NSAlert *alert = [[NSAlert alloc] init]; - [alert setMessageText:@"Gallery names cannot be empty"]; - [alert setAlertStyle: NSCriticalAlertStyle]; - [alert beginSheetModalForWindow: controllerWindow - modalDelegate: nil - didEndSelector: nil - contextInfo: nil]; - [alert release]; - return; - } - NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys: - galleryName, @"name", - gallerySlug, @"slug", - galleryDescription, @"desc", nil]; - - NSDictionary *results = [[anselController createNewGallery: params] retain]; - - [NSApp endSheet: newGallerySheet]; - [newGallerySheet orderOut: nil]; - - if ([anselController state] != TURAnselStateError) { - NSAlert *alert = [[NSAlert alloc] init]; - [alert setMessageText: @"Gallery successfully created."]; - [alert beginSheetModalForWindow: controllerWindow - modalDelegate: nil - didEndSelector: nil - contextInfo: nil]; - [alert release]; - if ([delegate respondsToSelector:@selector(TURAnselGalleryPanelDidAddGallery)]) { - [delegate TURAnselGalleryPanelDidAddGallery]; - } - } - - [results release]; -} - --(id)initWithController: (TURAnsel *)theController -{ - [super init]; - anselController = [theController retain]; - [NSBundle loadNibNamed: @"AnselGalleryPanel" - owner: self]; - - return self; -} - -- (id)initWithController: (TURAnsel *)theController - withGalleryName: (NSString *)galleryName -{ - - [super init]; - anselController = [theController retain]; - [NSBundle loadNibNamed: @"AnselGalleryPanel" - owner: self]; - - [galleryNameTextField setStringValue: galleryName]; - - return self; - - -} - -- (void)setDelegate: (id)theDelegate -{ - delegate = theDelegate; // weak -} - - -- (void)showSheetForWindow: (NSWindow *)theWindow -{ - [controllerWindow release]; - controllerWindow = [theWindow retain]; - [NSApp beginSheet: newGallerySheet - modalForWindow: theWindow - modalDelegate: nil - didEndSelector: nil - contextInfo: nil]; -} - -- (void)dealloc -{ - [anselController release]; - [controllerWindow release]; - [super dealloc]; -} - -@end diff --git a/iPhoto2Ansel/TURAnselKit/AnselGalleryViewItem.h b/iPhoto2Ansel/TURAnselKit/AnselGalleryViewItem.h new file mode 100644 index 000000000..41ba61d68 --- /dev/null +++ b/iPhoto2Ansel/TURAnselKit/AnselGalleryViewItem.h @@ -0,0 +1,35 @@ +/** + * AnselGalleryViewItem + * + * Copyright 2009 The Horde Project (http://www.horde.org) + * + * @implements IKImageBrowserItem + * @license http://opensource.org/licenses/bsd-license.php + * @author Michael J. Rubinsky + */ +#import +#import + +@interface AnselGalleryViewItem: NSObject +{ + NSURL *image; + NSString *imageID; + NSString *imageTitle; + NSCalendarDate *imageDate; +} + +@property(readwrite,copy) NSURL * image; +@property(readwrite,copy) NSString * imageID; + +- (id)initWithURL: (NSURL *)theUrl withTitle: (NSString *)theTitle withDate: (NSDate *)theDate; + +#pragma mark - +#pragma mark Required Methods IKImageBrowserItem Informal Protocol +- (NSString *)imageUID; +- (NSString *)imageRepresentationType; +- (id)imageRepresentation; + +- (NSString *)imageTitle; +- (NSString *)imageSubtitle; + +@end diff --git a/iPhoto2Ansel/TURAnselKit/AnselGalleryViewItem.m b/iPhoto2Ansel/TURAnselKit/AnselGalleryViewItem.m new file mode 100644 index 000000000..a27b41b5c --- /dev/null +++ b/iPhoto2Ansel/TURAnselKit/AnselGalleryViewItem.m @@ -0,0 +1,69 @@ +/** + * AnselGalleryViewItem.m + * + * Implements the IKImageBrowserItem protocol for displaying images from a + * remote Ansel gallery in an IKImageBrowser. + * + * Copyright 2009 The Horde Project (http://www.horde.org) + * + * @implements IKImageBrowserItem + * @license http://opensource.org/licenses/bsd-license.php + * @author Michael J. Rubinsky + */ +#import "AnselGalleryViewItem.h" + +@implementation AnselGalleryViewItem +@synthesize image; +@synthesize imageID; + +- (id)initWithURL: (NSURL *)theURL + withTitle: (NSString *)theTitle + withDate: (NSDate *)theDate +{ + [super init]; + image = [theURL retain]; + imageID = [[theURL absoluteString] retain]; + imageTitle = [theTitle retain]; + imageDate = [theDate retain]; + return self; +} +- (void)dealloc +{ + [image release]; + [imageID release]; + [imageTitle release]; + [imageDate release]; + [super dealloc]; +} + +#pragma mark +#pragma mark Required methods +- (NSString *)imageUID +{ + return imageID; +} + +- (NSString *)imageRepresentationType +{ + return IKImageBrowserNSURLRepresentationType; +} + +- (id)imageRepresentation +{ + return image; +} + +#pragma mark +#pragma mark Optional methods. +- (NSString *)imageTitle +{ + NSLog(@"imageTitle: %@", imageTitle); + return imageTitle; +} +- (NSString *)imageSubtitle +{ + NSLog(@"imageSubtitle: %@", [imageDate description]); + return [imageDate description]; +} + +@end diff --git a/iPhoto2Ansel/TURAnselKit/English.lProj/AnselGalleryPanel.nib/designable.nib b/iPhoto2Ansel/TURAnselKit/English.lProj/AnselGalleryPanel.nib/designable.nib new file mode 100644 index 000000000..aab13b850 --- /dev/null +++ b/iPhoto2Ansel/TURAnselKit/English.lProj/AnselGalleryPanel.nib/designable.nib @@ -0,0 +1,744 @@ + + + + 1050 + 9F33 + 672 + 949.34 + 352.00 + + YES + + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + TURAnselGalleryPanelController + + + FirstResponder + + + NSApplication + + + 19 + 2 + {{797, 724}, {267, 276}} + -536866816 + New Gallery + NSPanel + + {3.40282e+38, 3.40282e+38} + + + 256 + + YES + + + 268 + {{20, 219}, {227, 22}} + + YES + + -1804468671 + 272630784 + + + LucidaGrande + 1.300000e+01 + 1044 + + + YES + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 6 + System + textColor + + 3 + MAA + + + + + + + 268 + {{17, 240}, {88, 16}} + + YES + + 68288064 + 272630784 + Gallery Name + + LucidaGrande + 1.200000e+01 + 16 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2OQA + + + + 6 + System + controlTextColor + + + + + + + 268 + {{17, 195}, {73, 16}} + + YES + + 68288064 + 272630784 + Gallery Slug + + + + + + + + + 268 + {{20, 174}, {227, 22}} + + YES + + -1804468671 + 272630784 + + + + YES + + + + + + + 268 + {{20, 103}, {227, 47}} + + YES + + -1805517311 + 272629760 + + + + YES + + + + + + + 268 + {{17, 150}, {124, 16}} + + YES + + 68288064 + 272630784 + Gallery Description + + + + + + + + + 268 + {{116, 12}, {68, 32}} + + YES + + 67239424 + 134217728 + Cancel + + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{184, 12}, {69, 32}} + + YES + + 67239424 + 134217728 + Save + + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{20, 56}, {230, 26}} + + YES + + 879885888 + 272630784 + + + + YES + + + 5 + YES + + + + 274 + {15, 0} + + + YES + + YES + + + 1.200000e+01 + 1.000000e+01 + 1.000000e+03 + + 75628032 + 0 + + + + 3 + MC4zMzMzMzI5OQA + + + + + 338820672 + 1024 + + + YES + + 6 + System + controlBackgroundColor + + + + + 3 + YES + + + + 3.000000e+00 + 2.000000e+00 + + + 6 + System + gridColor + + 3 + MC41AA + + + 1.900000e+01 + tableViewAction: + -767524864 + + + + 1 + 15 + 0 + YES + + + + + + 268 + {{17, 79}, {88, 16}} + + YES + + 68288064 + 272630784 + Gallery Parent + + + + + + + + {267, 276} + + + {{0, 0}, {1920, 1178}} + {3.40282e+38, 3.40282e+38} + + + + + YES + + + newGallerySheet + + + + 43 + + + + doNewGallery: + + + + 48 + + + + galleryDescTextField + + + + 49 + + + + galleryNameTextField + + + + 50 + + + + gallerySlugTextField + + + + 51 + + + + cancelNewGallery: + + + + 53 + + + + + YES + + 0 + + YES + + + + + + -2 + + + RmlsZSdzIE93bmVyA + + + -1 + + + First Responder + + + -3 + + + Application + + + 1 + + + YES + + + + + + 2 + + + YES + + + + + + + + + + + + + + + 3 + + + YES + + + + + + 4 + + + + + 5 + + + YES + + + + + + 6 + + + + + 7 + + + YES + + + + + + 8 + + + + + 9 + + + YES + + + + + + 10 + + + + + 11 + + + YES + + + + + + 12 + + + + + 13 + + + YES + + + + + + 14 + + + + + 15 + + + YES + + + + + + 16 + + + + + 17 + + + YES + + + + + + 18 + + + + + 19 + + + YES + + + + + + 20 + + + + + 21 + + + YES + + + + + + 22 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 1.IBEditorWindowLastContentRect + 1.IBPluginDependency + 1.IBWindowTemplateEditedContentRect + 1.NSWindowTemplate.visibleAtLaunch + 1.WindowOrigin + 1.editorWindowContentRectSynchronizationRect + 10.IBPluginDependency + 11.IBPluginDependency + 12.IBPluginDependency + 13.IBPluginDependency + 14.IBPluginDependency + 15.IBPluginDependency + 16.IBPluginDependency + 17.IBPluginDependency + 18.IBPluginDependency + 19.IBPluginDependency + 2.IBPluginDependency + 20.IBPluginDependency + 21.IBPluginDependency + 22.IBPluginDependency + 3.IBPluginDependency + 4.IBPluginDependency + 5.IBPluginDependency + 6.IBPluginDependency + 7.IBPluginDependency + 8.IBPluginDependency + 9.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{177, 722}, {267, 276}} + com.apple.InterfaceBuilder.CocoaPlugin + {{177, 722}, {267, 276}} + + {196, 240} + {{357, 418}, {480, 270}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + YES + + YES + + + YES + + + + + YES + + YES + + + YES + + + + 53 + + + + YES + + NSObject + + IBProjectSource + TURAnsel.h + + + + NSObject + + IBProjectSource + TURAnselGallery.h + + + + NSObject + + IBProjectSource + TURAnselGalleryPanelController.h + + + + NSObject + + IBProjectSource + xmlrpc-1.5.1/XMLRPCConnection.h + + + + TURAnselGalleryPanelController + NSObject + + YES + + YES + cancelNewGallery: + doNewGallery: + + + YES + id + id + + + + YES + + YES + delegate + galleryDescTextField + galleryNameTextField + gallerySlugTextField + newGallerySheet + + + YES + id + NSTextField + NSTextField + NSTextField + NSPanel + + + + + + + 0 + ../iPhoto2Ansel.xcodeproj + 3 + + diff --git a/iPhoto2Ansel/TURAnselKit/English.lProj/AnselGalleryPanel.nib/keyedobjects.nib b/iPhoto2Ansel/TURAnselKit/English.lProj/AnselGalleryPanel.nib/keyedobjects.nib new file mode 100644 index 000000000..b318b79b4 Binary files /dev/null and b/iPhoto2Ansel/TURAnselKit/English.lProj/AnselGalleryPanel.nib/keyedobjects.nib differ diff --git a/iPhoto2Ansel/TURAnselKit/TURAnsel.h b/iPhoto2Ansel/TURAnselKit/TURAnsel.h new file mode 100644 index 000000000..b1997fa43 --- /dev/null +++ b/iPhoto2Ansel/TURAnselKit/TURAnsel.h @@ -0,0 +1,60 @@ +/** + * TURAnsel + * + * Copyright 2009 The Horde Project (http://www.horde.org) + * + * @license http://opensource.org/licenses/bsd-license.php + * @author Michael J. Rubinsky + */ +#import +@class TURAnselGallery; + +typedef enum { + PERMS_SHOW = 2, + PERMS_READ = 4, + PERMS_EDIT = 8, + PERMS_DELETE = 16 +} HORDE_PERMS; + +typedef enum { + TURAnselStateDisconnected = 0, + TURAnselStateConnected, + TURAnselStateError, + TURAnselStateCancelled, + TURAnselStateWaiting +} TURAnselState; + +@interface NSObject (TURAnselDelegate) +- (void)TURAnselDidInitialize; +- (void)TURAnselHadError: (NSError *)error; +@end + +@interface TURAnsel : NSObject { + NSString *userAgent; + NSString *rpcEndPoint; + NSString *username; + NSString *password; + NSMutableArray *galleryList; + TURAnselState state; + id delegate; + NSLock *lock; +} + +@property (readwrite, retain) NSString *rpcEndPoint; +@property (readwrite, retain) NSString *username; +@property (readwrite, retain) NSString *password; + +- (id)initWithConnectionParameters: (NSDictionary *)params; +- (void)connect; +- (TURAnselGallery *)getGalleryById: (NSString *)galleryId; +- (TURAnselGallery *)getGalleryByIndex: (NSInteger)index; +- (NSDictionary *)callRPCMethod: (NSString *)methodName withParams: (NSArray *)params withOrder: (NSArray *)order; +- (NSDictionary *)createNewGallery: (NSDictionary *)params; +- (void)cancel; + +// Getters/setters +- (void) setState: (TURAnselState)state; +- (TURAnselState)state; +- (id)delegate; +- (void)setDelegate: (id)newDelegate; +@end diff --git a/iPhoto2Ansel/TURAnselKit/TURAnsel.m b/iPhoto2Ansel/TURAnselKit/TURAnsel.m new file mode 100644 index 000000000..56ad2f77d --- /dev/null +++ b/iPhoto2Ansel/TURAnselKit/TURAnsel.m @@ -0,0 +1,315 @@ +/** + * TURAnsel.m + * + * Main class for interacting with a remote Ansel server. + * + * Copyright 2009 The Horde Project (http://www.horde.org) + * + * @license http://opensource.org/licenses/bsd-license.php + * @author Michael J. Rubinsky + */ +#import +#import "TURAnselKit.h" + +@interface TURAnsel (PrivateAPI) +- (void)doLogin; +@end + +@implementation TURAnsel + +@synthesize rpcEndPoint; +@synthesize username; +@synthesize password; + +#pragma mark - +#pragma mark init/dealloc +- (id)initWithConnectionParameters: (NSDictionary *)params +{ + [super init]; + galleryList = [[NSMutableArray alloc] init]; + + // Initialize the connection properties, KVC style + [self setValue:[params objectForKey:@"endpoint"] + forKey: @"rpcEndPoint"]; + [self setValue: [params objectForKey:@"username"] + forKey: @"username"]; + [self setValue: [params objectForKey:@"password"] + forKey: @"password"]; + [self setValue: @"The Ansel Cocoa XML-RPC Client" + forKey: @"userAgent"]; + + return self; +} +-(void) dealloc +{ + NSLog(@"TURAnsel dealloc"); + [galleryList removeAllObjects]; + [galleryList release]; + [rpcEndPoint release]; + [username release]; + [password release]; + [userAgent release]; + [super dealloc]; +} + +#pragma mark - +#pragma mark Actions +- (void)connect +{ + [self doLogin]; +} +- (void) cancel +{ + state = TURAnselStateCancelled; +} + +/** + * Create a new gallery on the Ansel server. + * + * @param NSDictionary params A dictionary of parameters for the new gallery. + * + * @return NSDictionary A dictionary describing the new gallery + */ +- (NSDictionary *)createNewGallery: (NSDictionary *)params +{ + NSArray *apiparams = [NSArray arrayWithObjects: @"ansel", params, nil]; + NSArray *order = [NSArray arrayWithObjects: kTURAnselAPIParamScope, kTURAnselAPIParamGaleryParams, nil]; + + NSDictionary *response = [self callRPCMethod: @"images.createGallery" + withParams: apiparams + withOrder: order]; + + if (response) { + NSNumber *gallery_id = [response objectForKey: (NSString *)kWSMethodInvocationResult]; + NSDictionary *results = [NSDictionary dictionaryWithObjectsAndKeys: + gallery_id, kTURAnselGalleryKeyId, + [params valueForKey: @"name"], kTURAnselGalleryKeyName, + @"", kTURAnselGalleryKeyDescription, + [NSNumber numberWithInt: 0], kTURAnselGalleryKeyImages, + [NSNumber numberWithInt: 0], kTURAnselGalleryKeyDefaultImage, nil]; + + TURAnselGallery *newGallery = [[TURAnselGallery alloc] initWithObject: results + controller: self]; + [galleryList addObject: newGallery]; + [newGallery release]; + + return results; + } + + return nil; +} + + +/** + * Entry point for calling RPC methods on the Horde server. + * + * @param NSString methodName The method to call (e.g. images.listGalleries) + * @param NSArray params All the method's parameters + * @param NSArray order Keys for the params array, needed because of how + * WSMethodInvocationSetParameters is used. (The keys are + * disregarded by Horde, but needed to ensure they get + * sent in the correct order by WS. + * + * The invocationCallback function is called on completion, which in turn will + * call the methodCompletionCallback with the results + */ +- (NSDictionary *)callRPCMethod: (NSString *)methodName + withParams: (NSArray *) params + withOrder: (NSArray *) order +{ + NSLog(@"Initiating connection for %@", methodName); + + // Get a URL object + NSURL *url = [NSURL URLWithString: [self valueForKey: @"rpcEndPoint"]]; + NSDictionary *values = [NSDictionary dictionaryWithObjects: params forKeys:order]; + + // Credentials + NSString *user = [self valueForKey:@"username"]; + NSString *pass = [self valueForKey:@"password"]; + + if (user != nil && [user length] && pass != nil && [pass length]) { + // Create a custom http request with authorization + CFHTTPMessageRef request = CFHTTPMessageCreateRequest(kCFAllocatorDefault, + (CFStringRef)@"POST", + (CFURLRef)url, + kCFHTTPVersion1_1); + // Add auth creds to request. + Boolean success = CFHTTPMessageAddAuthentication(request, + NULL, + (CFStringRef)user, + (CFStringRef)pass, + kCFHTTPAuthenticationSchemeBasic, + false); + + NSLog(@"Results adding credentials to request: %d", success); + if (!success) { + NSLog(@"Unable to authenticate"); + + if ([[self delegate] respondsToSelector: @selector(TURAnselHadError:)]) { + NSError *error = [NSError errorWithDomain:@"TURAnsel" + code: 1 + userInfo:[NSDictionary dictionaryWithObjectsAndKeys: @"Authentication failure.", @"message", nil]]; + + [[self delegate] TURAnselHadError: error]; + } + + return nil; + + } else { + // Build a new invocation + [self setState:TURAnselStateWaiting]; + WSMethodInvocationRef rpcCall; + rpcCall = WSMethodInvocationCreate((CFURLRef)url, (CFStringRef)methodName, kWSXMLRPCProtocol); + WSMethodInvocationSetParameters(rpcCall, (CFDictionaryRef)values, (CFArrayRef)order); + WSMethodInvocationSetProperty(rpcCall, kWSHTTPMessage, request); + NSDictionary *result = (NSDictionary *)WSMethodInvocationInvoke(rpcCall); + CFRelease(request); + // Check out the results + if (WSMethodResultIsFault((CFDictionaryRef) result)) { + + NSError *error; + + CFHTTPMessageRef response = (CFHTTPMessageRef)[result objectForKey:(id)kWSHTTPResponseMessage]; + int resStatusCode = CFHTTPMessageGetResponseStatusCode(response); + NSString *resStatusLine = (NSString *)CFHTTPMessageCopyResponseStatusLine(response); + if (resStatusCode == 401) { + error = [NSError errorWithDomain: @"TURAnsel" + code: resStatusCode + userInfo: [NSDictionary dictionaryWithObjectsAndKeys: resStatusLine, @"NSLocalizedDescriptionKey", nil]]; + } else { + NSNumber *faultCode = [result objectForKey: (NSString *)kWSFaultCode]; + NSString *faultString = [result objectForKey: (NSString *)kWSFaultString]; + NSLog(@"faultCode: %@ faultString: %@", faultCode, faultString); + error = [NSError errorWithDomain: @"TURAnsel" + code: [faultCode intValue] + userInfo: [NSDictionary dictionaryWithObjectsAndKeys: [NSString stringWithFormat: @"%@, %@", resStatusLine, faultString], @"NSLocalizedDescriptionKey", nil]]; + + + } + if ([[self delegate] respondsToSelector: @selector(TURAnselHadError:)]) { + [[self delegate] TURAnselHadError: error]; + } + [resStatusLine release]; + [result autorelease]; + return nil; + } + + CFHTTPMessageRef response = (CFHTTPMessageRef)[result objectForKey:(id)kWSHTTPResponseMessage]; + int resStatusCode = CFHTTPMessageGetResponseStatusCode(response); + NSLog(@"ResponseCode: %d", resStatusCode); + [self setState:TURAnselStateConnected]; + return [result autorelease]; + } + } + + NSLog(@"No authentication information present."); + return nil; + +} + +#pragma mark - +#pragma mark Setters/Getters +// Fetch a gallery by id +- (TURAnselGallery *)getGalleryById: (NSString *)galleryId +{ + for (TURAnselGallery *g in galleryList) { + if ([galleryId isEqualTo: [NSNumber numberWithInt: [g galleryId]]]) { + return g; + } + } + + return nil; +} + +/** + * Return the gallery at the specified position in the internal storage array. + * Needed for when we are using this class as a datasource for a UI element. + */ +- (TURAnselGallery *)getGalleryByIndex: (NSInteger)index +{ + TURAnselGallery *g = [galleryList objectAtIndex:index]; + return g; +} + +#pragma mark -- +#pragma mark ComboBox Datasource +- (NSInteger)numberOfItemsInComboBox:(NSComboBox *)aComboBox +{ + return [galleryList count]; +} + +- (id)comboBox:(NSComboBox *)aComboBox + objectValueForItemAtIndex:(NSInteger)index +{ + TURAnselGallery *g = [galleryList objectAtIndex:index]; + NSString *stringValue = [g valueForKey:@"galleryName"]; + return stringValue; +} + +#pragma mark Getter/Setters +- (TURAnselState) state +{ + return state; +} +-(void) setState: (TURAnselState)newstate +{ + state = newstate; +} + +- (id)delegate { + return delegate; +} + +- (void)setDelegate:(id)newDelegate { + delegate = newDelegate; +} + +#pragma mark PrivateAPI +/** + * Perform initial contact with Ansel server. Retrieves the list of galleries + * available for the selected server. + * + * @return void + */ +- (void)doLogin +{ + NSArray *params = [[NSArray alloc] initWithObjects: + @"ansel", // Scope + [NSNumber numberWithInt: PERMS_EDIT], // Perms + @"", // No parent + [NSNumber numberWithBool:YES], // allLevels + [NSNumber numberWithInt: 0], // Offset + [NSNumber numberWithInt: 0], // Count + [self valueForKey:@"username"], nil]; // Restrict to user (This should be an option eventually). + + NSArray *order = [NSArray arrayWithObjects: kTURAnselAPIParamScope, kTURAnselAPIParamPerms, + kTURAnselAPIParamParent, kTURAnselAPIParamAllLevels, + kTURAnselAPIParamOffset, kTURAnselAPIParamCount, + kTURAnselAPIParamUserOnly, nil]; + + NSDictionary *results = [self callRPCMethod: @"images.listGalleries" + withParams: params + withOrder: order]; + + if (results) { + NSDictionary *galleries = [results objectForKey: (id)kWSMethodInvocationResult]; + for (NSString *gal in galleries) { + TURAnselGallery *theGallery = [[TURAnselGallery alloc] initWithObject: gal + controller: self]; + [theGallery setAnselController: self]; + [galleryList addObject: theGallery]; + [theGallery release]; + theGallery = nil; + } + + if ([delegate respondsToSelector:@selector(TURAnselDidInitialize)]) { + [delegate performSelectorOnMainThread:@selector(TURAnselDidInitialize) + withObject:self + waitUntilDone: NO]; + } + + } + + [params release]; +} +@end \ No newline at end of file diff --git a/iPhoto2Ansel/TURAnselKit/TURAnselConstants.h b/iPhoto2Ansel/TURAnselKit/TURAnselConstants.h new file mode 100644 index 000000000..ef64dc77a --- /dev/null +++ b/iPhoto2Ansel/TURAnselKit/TURAnselConstants.h @@ -0,0 +1,33 @@ +/** + * TURAnselConstants + * + * Copyright 2009 The Horde Project (http://www.horde.org) + * + * @license http://opensource.org/licenses/bsd-license.php + * @author Michael J. Rubinsky + */ + +// Constants for the API parameter names. +extern NSString * const kTURAnselAPIParamScope; +extern NSString * const kTURAnselAPIParamGaleryParams; +extern NSString * const kTURAnselAPIParamPerms; +extern NSString * const kTURAnselAPIParamParent; +extern NSString * const kTURAnselAPIParamAllLevels; +extern NSString * const kTURAnselAPIParamOffset; +extern NSString * const kTURAnselAPIParamCount; +extern NSString * const kTURAnselAPIParamUserOnly; +extern NSString * const kTURAnselAPIParamImageId; +extern NSString * const kTURAnselAPIParamGalleryId; +extern NSString * const kTURAnselAPIParamThumbnailStyle; +extern NSString * const kTURAnselAPIParamFullPath; +extern NSString * const kTURAnselAPIParamImageData; +extern NSString * const kTURAnselAPIParamSetAsDefault; +extern NSString * const kTURAnselAPIParamAdditionalData; +extern NSString * const kTURAnselAPIParamEncoding; + +// Constants for the dictionary keys used to describe/create TURAnselGallery +extern NSString * const kTURAnselGalleryKeyId; +extern NSString * const kTURAnselGalleryKeyName; +extern NSString * const kTURAnselGalleryKeyDescription; +extern NSString * const kTURAnselGalleryKeyImages; +extern NSString * const kTURAnselGalleryKeyDefaultImage; diff --git a/iPhoto2Ansel/TURAnselKit/TURAnselConstants.m b/iPhoto2Ansel/TURAnselKit/TURAnselConstants.m new file mode 100644 index 000000000..74472bb5f --- /dev/null +++ b/iPhoto2Ansel/TURAnselKit/TURAnselConstants.m @@ -0,0 +1,34 @@ +// +// TURAnselConstants.m +// ApertureToAnselExportPlugin +// +// Created by Michael Rubinsky on 9/22/09. +// Copyright 2009 __MyCompanyName__. All rights reserved. +// + +#import "TURAnselConstants.h" + +// Constants for the API parameter names. +NSString * const kTURAnselAPIParamScope = @"scope"; +NSString * const kTURAnselAPIParamGaleryParams = @"galleryParams"; +NSString * const kTURAnselAPIParamPerms = @"perms"; +NSString * const kTURAnselAPIParamParent = @"parent"; +NSString * const kTURAnselAPIParamAllLevels = @"allLevels"; +NSString * const kTURAnselAPIParamOffset = @"offset"; +NSString * const kTURAnselAPIParamCount = @"count"; +NSString * const kTURAnselAPIParamUserOnly = @"userOnly"; +NSString * const kTURAnselAPIParamImageId = @"imageId"; +NSString * const kTURAnselAPIParamGalleryId = @"galleryId"; +NSString * const kTURAnselAPIParamThumbnailStyle = @"thumbnailStyle"; +NSString * const kTURAnselAPIParamFullPath = @"fullPath"; +NSString * const kTURAnselAPIParamImageData = @"imageData"; +NSString * const kTURAnselAPIParamSetAsDefault = @"default"; +NSString * const kTURAnselAPIParamAdditionalData = @"additionalData"; +NSString * const kTURAnselAPIParamEncoding = @"encoding"; + +// Ansel gallery attribtues. +NSString * const kTURAnselGalleryKeyId = @"share_id"; +NSString * const kTURAnselGalleryKeyName = @"attribute_name"; +NSString * const kTURAnselGalleryKeyDescription = @"attribute_desc"; +NSString * const kTURAnselGalleryKeyImages = @"attribute_images"; +NSString * const kTURAnselGalleryKeyDefaultImage = @"attribute_default"; \ No newline at end of file diff --git a/iPhoto2Ansel/TURAnselKit/TURAnselGallery.h b/iPhoto2Ansel/TURAnselKit/TURAnselGallery.h new file mode 100644 index 000000000..5eff4e79b --- /dev/null +++ b/iPhoto2Ansel/TURAnselKit/TURAnselGallery.h @@ -0,0 +1,42 @@ +/** + * TURAnselGallery + * + * Copyright 2009 The Horde Project (http://www.horde.org) + * + * @license http://opensource.org/licenses/bsd-license.php + * @author Michael J. Rubinsky + */ +#import +@class TURAnsel, NSURL; + +@interface NSObject (TURAnselGalleryDelegate) +- (void)TURAnselGalleryDidUploadImage: (id *)gallery; +@end + +@interface TURAnselGallery : NSObject { + int _galleryId; + int galleryImageCount; + int galleryKeyImage; + NSURL *galleryKeyImageURL; + NSMutableArray *imageList; + NSString *galleryName; + NSString *galleryDescription; + TURAnsel *anselController; + id delegate; +} +@property (readonly) NSString *galleryName; +@property (readonly) NSString *galleryDescription; +@property (readonly) int galleryImageCount; +@property (readwrite) int galleryKeyImage; + +- (id)initWithObject:(id)galleryData controller:(TURAnsel * )controller; +- (void)uploadImageObject: (NSDictionary *)imageParameters; + +// Getter / Setter +- (void)setDelegate: (id)newDelegate; +- (id)delegate; +- (NSURL *)galleryKeyImageURL; +- (id)listImages; +- (int)galleryId; +- (void)setAnselController:(TURAnsel *)newController; +@end \ No newline at end of file diff --git a/iPhoto2Ansel/TURAnselKit/TURAnselGallery.m b/iPhoto2Ansel/TURAnselKit/TURAnselGallery.m new file mode 100644 index 000000000..9397b107d --- /dev/null +++ b/iPhoto2Ansel/TURAnselKit/TURAnselGallery.m @@ -0,0 +1,216 @@ +/** + * TURAnselGallery.m + * + * Copyright 2009 The Horde Project (http://www.horde.org) + * + * @license http://opensource.org/licenses/bsd-license.php + * @author Michael J. Rubinsky + */ +#import +#import "TURAnselKit.h" + +@interface TURAnselGallery (PrivateAPI) +- (void)doUpload: (NSDictionary *)imageParams; +@end + +@implementation TURAnselGallery + +@synthesize galleryDescription; +@synthesize galleryName; +@synthesize galleryImageCount; +@synthesize galleryKeyImage; + +#pragma mark - +#pragma mark init/dealloc +/** + * Init a gallery object + */ +- (id)initWithObject:(id)galleryData controller:(TURAnsel *)controller +{ + [super init]; + [self setValue: [galleryData valueForKey: kTURAnselGalleryKeyId] + forKey: @"galleryId"]; + [self setValue:[galleryData valueForKey: kTURAnselGalleryKeyDescription] + forKey:@"galleryDescription"]; + [self setValue:[galleryData valueForKey: kTURAnselGalleryKeyName] + forKey:@"galleryName"]; + [self setValue: [galleryData valueForKey: kTURAnselGalleryKeyImages] + forKey:@"galleryImageCount"]; + [self setValue: [galleryData valueForKey: kTURAnselGalleryKeyDefaultImage] + forKey:@"galleryKeyImage"]; + [self setAnselController: controller]; + return self; +} +- (void)dealloc +{ + NSLog(@"TURAnselGallery dealloc called on Gallery %@", self); + [anselController release]; + anselController = nil; + + [galleryKeyImageURL release]; + galleryKeyImageURL = nil; + + [imageList release]; + imageList = nil; + + [super dealloc]; +} +- (id)description +{ + NSString *text = [NSString stringWithFormat:@"Description: %@ Id: %d has: %d images", galleryName, _galleryId, galleryImageCount]; + return text; +} + +#pragma mark - +#pragma mark Actions +/** + * Requests the gallery's key image url to be fetched from the server + * (This information is not present in the gallery definition array returned + * from the images.listGalleries call). + */ +- (NSURL *)galleryKeyImageURL +{ + if (galleryKeyImageURL) { + return galleryKeyImageURL; + } else { + NSArray *params = [[NSArray alloc] initWithObjects: + @"ansel", // Scope + [NSNumber numberWithInt: galleryKeyImage], // Image Id + @"thumb", // Thumbnail type + [NSNumber numberWithBool:YES], // Full path + nil]; + + NSArray *order = [NSArray arrayWithObjects: kTURAnselAPIParamScope, + kTURAnselAPIParamImageId, + kTURAnselAPIParamThumbnailStyle, + kTURAnselAPIParamFullPath, nil]; + + NSDictionary *response = [anselController callRPCMethod: @"images.getImageUrl" + withParams: params + withOrder: order]; + + if (response) { + NSDictionary *url = [response objectForKey:(id)kWSMethodInvocationResult]; + [galleryKeyImageURL autorelease]; + galleryKeyImageURL = [[NSURL URLWithString: [NSString stringWithFormat: @"%@", url]] retain]; + NSLog(@"galleryKeyImageURL: %@", galleryKeyImageURL); + return galleryKeyImageURL; + } + + return nil; + } +} + +/** + * Get the complete list of image ids and URLs + */ +- (id)listImages +{ + if (!imageList) { + + NSArray *params = [[NSArray alloc] initWithObjects: + @"ansel", //Scope + [NSNumber numberWithInt: _galleryId], //Gallery Id + [NSNumber numberWithInt: 2], //PERMS_SHOW + @"thumb", // Thumbnail + [NSNumber numberWithBool:YES], // Full path + nil]; + NSArray *order = [NSArray arrayWithObjects: kTURAnselAPIParamScope, + kTURAnselAPIParamGalleryId, + kTURAnselAPIParamPerms, + kTURAnselAPIParamThumbnailStyle, + kTURAnselAPIParamFullPath, nil]; + + NSDictionary *response = [anselController callRPCMethod: @"images.listImages" + withParams: params + withOrder: order]; + if (response) { + [imageList autorelease]; + imageList = [[response objectForKey: (id)kWSMethodInvocationResult] retain]; + + NSLog(@"listImages: %@", imageList); + + return imageList; + } + } + + return nil; +} + +/** + * Upload the provided image to this gallery. + */ +- (void)uploadImageObject: (NSDictionary *)imageParameters +{ + [self doUpload: imageParameters]; +} + +#pragma mark - +#pragma mark Getter/Setter +- (int)galleryId +{ + return _galleryId; +} + +- (void)setGalleryId:(int)id +{ + _galleryId = id; +} + +- (id)delegate +{ + return delegate; +} + +- (void)setDelegate: (id)newDelegate +{ + delegate = newDelegate; +} + +- (void)setAnselController: (TURAnsel *)newController +{ + [anselController autorelease]; + anselController = [newController retain]; +} + +- (TURAnsel *)anselController +{ + return anselController; +} + +#pragma mark - +#pragma mark PrivateAPI +- (void)doUpload:(NSDictionary *)imageParameters +{ + // Need to build the params array now. + NSArray *params = [[NSArray alloc] initWithObjects: + @"ansel", // app + [NSNumber numberWithInt: _galleryId], // gallery_id + [imageParameters valueForKey: @"data"], // image data array + [imageParameters valueForKey: @"default"], // set as default? + @"", // Additional gallery data to set? + @"base64", // Image data encoding + nil]; + NSArray *order = [NSArray arrayWithObjects: kTURAnselAPIParamScope, + kTURAnselAPIParamGalleryId, + kTURAnselAPIParamImageData, + kTURAnselAPIParamSetAsDefault, + kTURAnselAPIParamAdditionalData, + kTURAnselAPIParamEncoding, nil]; + + // Send the request up to the controller + NSDictionary *result = [anselController callRPCMethod: @"images.saveImage" + withParams: params + withOrder: order]; + + if (result) { + if ([delegate respondsToSelector:@selector(TURAnselGalleryDidUploadImage:)]) { + [delegate performSelectorOnMainThread: @selector(TURAnselGalleryDidUploadImage:) + withObject: self + waitUntilDone: NO]; + } + } + + [params release]; +} +@end diff --git a/iPhoto2Ansel/TURAnselKit/TURAnselGalleryPanelController.h b/iPhoto2Ansel/TURAnselKit/TURAnselGalleryPanelController.h new file mode 100644 index 000000000..b0a8f2e66 --- /dev/null +++ b/iPhoto2Ansel/TURAnselKit/TURAnselGalleryPanelController.h @@ -0,0 +1,36 @@ +/** + * TURAnselGalleryPanelController + * + * Copyright 2009 The Horde Project (http://www.horde.org) + * + * @license http://opensource.org/licenses/bsd-license.php + * @author Michael J. Rubinsky + */ +#import +#import "TURAnselKit.h" + +@interface NSObject (TURAnselGalleryPaneControllerDelegate) +-(void)TURAnselGalleryPanelDidAddGallery; +@end + +@interface TURAnselGalleryPanelController : NSObject { + // Outlets + IBOutlet NSTextField *galleryNameTextField; + IBOutlet NSTextField *gallerySlugTextField; + IBOutlet NSTextField *galleryDescTextField; + IBOutlet NSPanel *newGallerySheet; + + // Instance members + TURAnsel *_anselController; + NSWindow *_controllerWindow; + id _delegate; +} + +// Actions +- (IBAction)doNewGallery: (id)sender; +- (IBAction)cancelNewGallery: (id)sender; +- (id)initWithController: (TURAnsel *)theController; +- (id)initWithController: (TURAnsel *)theController withGalleryName: (NSString *)galleryName; +- (void)showSheetForWindow: (NSWindow *)theWindow; +- (void)setDelegate: (id)theDelegate; +@end diff --git a/iPhoto2Ansel/TURAnselKit/TURAnselGalleryPanelController.m b/iPhoto2Ansel/TURAnselKit/TURAnselGalleryPanelController.m new file mode 100644 index 000000000..09aa6c5ae --- /dev/null +++ b/iPhoto2Ansel/TURAnselKit/TURAnselGalleryPanelController.m @@ -0,0 +1,120 @@ +/** + * TURAnselGalleryPanelController.m + * + * Controller for handling the form that creates new remote Ansel galleries. + * + * Copyright 2009 The Horde Project (http://www.horde.org) + * + * @license http://opensource.org/licenses/bsd-license.php + * @author Michael J. Rubinsky + */ +#import "TURAnselGalleryPanelController.h" + +@implementation TURAnselGalleryPanelController + +#pragma mark - +#pragma mark init/dealloc +-(id)initWithController: (TURAnsel *)theController +{ + [super init]; + _anselController = [theController retain]; + [NSBundle loadNibNamed: @"AnselGalleryPanel" + owner: self]; + + return self; +} +- (id)initWithController: (TURAnsel *)theController + withGalleryName: (NSString *)galleryName +{ + + [super init]; + _anselController = [theController retain]; + [NSBundle loadNibNamed: @"AnselGalleryPanel" + owner: self]; + + [galleryNameTextField setStringValue: galleryName]; + + return self; +} +- (void)dealloc +{ + [_anselController release]; + [_controllerWindow release]; + [super dealloc]; +} + +#pragma mark - +#pragma mark IBActions +- (IBAction)cancelNewGallery: (id)sender +{ + [NSApp endSheet: newGallerySheet]; + [newGallerySheet orderOut: nil]; +} + +- (IBAction)doNewGallery: (id)sender +{ + // Get Gallery Properties from the panel. + NSString *galleryName = [galleryNameTextField stringValue]; + NSString *gallerySlug = [gallerySlugTextField stringValue]; + NSString *galleryDescription = [galleryDescTextField stringValue]; + + if (!galleryName) { + + [NSApp endSheet: newGallerySheet]; + [newGallerySheet orderOut: nil]; + + NSAlert *alert = [[NSAlert alloc] init]; + [alert setMessageText:@"Gallery names cannot be empty"]; + [alert setAlertStyle: NSCriticalAlertStyle]; + [alert beginSheetModalForWindow: _controllerWindow + modalDelegate: nil + didEndSelector: nil + contextInfo: nil]; + [alert release]; + return; + } + NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys: + galleryName, @"name", + gallerySlug, @"slug", + galleryDescription, @"desc", nil]; + + NSDictionary *results = [[_anselController createNewGallery: params] retain]; + + [NSApp endSheet: newGallerySheet]; + [newGallerySheet orderOut: nil]; + + if ([_anselController state] != TURAnselStateError) { + NSAlert *alert = [[NSAlert alloc] init]; + [alert setMessageText: @"Gallery successfully created."]; + [alert beginSheetModalForWindow: _controllerWindow + modalDelegate: nil + didEndSelector: nil + contextInfo: nil]; + [alert release]; + if ([_delegate respondsToSelector:@selector(TURAnselGalleryPanelDidAddGallery)]) { + [_delegate TURAnselGalleryPanelDidAddGallery]; + } + } + + [results release]; +} + + +- (void)setDelegate: (id)theDelegate +{ + _delegate = theDelegate; // weak +} + + +- (void)showSheetForWindow: (NSWindow *)theWindow +{ + [_controllerWindow release]; + _controllerWindow = [theWindow retain]; + [NSApp beginSheet: newGallerySheet + modalForWindow: theWindow + modalDelegate: nil + didEndSelector: nil + contextInfo: nil]; +} + +@end diff --git a/iPhoto2Ansel/TURAnselKit/TURAnselKit.h b/iPhoto2Ansel/TURAnselKit/TURAnselKit.h new file mode 100644 index 000000000..b580fe6ed --- /dev/null +++ b/iPhoto2Ansel/TURAnselKit/TURAnselKit.h @@ -0,0 +1,6 @@ +#import "TURAnselConstants.h" +#import "TURAnsel.h" +#import "TURAnselGallery.h" +#import "TURAnselGalleryPanelController.h" +#import "AnselGalleryViewItem.h" + diff --git a/iPhoto2Ansel/TURAnselServersPanelController.h b/iPhoto2Ansel/TURAnselServersPanelController.h deleted file mode 100644 index 7e1d64eda..000000000 --- a/iPhoto2Ansel/TURAnselServersPanelController.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// TURAnselServersPanelController.h -// iPhoto2Ansel -// -// Created by Michael Rubinsky on 12/14/08. -// Copyright 2008 __MyCompanyName__. All rights reserved. -// - -#import - - -@interface TURAnselServersPanelController : NSObject { - -} - -@end diff --git a/iPhoto2Ansel/TURAnselServersPanelController.m b/iPhoto2Ansel/TURAnselServersPanelController.m deleted file mode 100644 index b00a797ac..000000000 --- a/iPhoto2Ansel/TURAnselServersPanelController.m +++ /dev/null @@ -1,14 +0,0 @@ -// -// TURAnselServersPanelController.m -// iPhoto2Ansel -// -// Created by Michael Rubinsky on 12/14/08. -// Copyright 2008 __MyCompanyName__. All rights reserved. -// - -#import "TURAnselServersPanelController.h" - - -@implementation TURAnselServersPanelController - -@end diff --git a/iPhoto2Ansel/TURXMLConnection.h b/iPhoto2Ansel/TURXMLConnection.h deleted file mode 100644 index bb8b354ab..000000000 --- a/iPhoto2Ansel/TURXMLConnection.h +++ /dev/null @@ -1,39 +0,0 @@ -// -// TURXMLConnection.h -// -// This is a thin wrapper around XMLRPCRequests to allow them to more easily -// be run in a seperate thread then the reciever that needs to know about it's -// progress. Done to deal with modal threads blocking the NSURLConnection -// responses in iPhoto plugins. -// -// Created by Michael Rubinsky on 11/5/08. -// Copyright 2008 __MyCompanyName__. All rights reserved. -// - -#import -#import "XMLRPC/XMLRPCConnection.h" -@class XMLRPCRequest; - -// Local error codes -#define TURXML_ERR_BADAUTH 1 // Login failed -#define TURXML_ERR_PARSE 2 // Could not parse XML -#define TURXML_ERR_CANCEL 3 // Action cancelled - -@interface TURXMLConnection : XMLRPCConnection { - NSString *username; - NSString *password; - XMLRPCResponse *response; - XMLRPCConnection *connection; - BOOL hasError; - NSError *error; - BOOL running; -} - -- (TURXMLConnection *)initWithXMLRPCRequest: (XMLRPCRequest *)request - withCredentials:(NSDictionary *)credentials; - -- (id)response; -- (BOOL)hasError; -- (BOOL)isRunning; -- (NSError *)error; -@end diff --git a/iPhoto2Ansel/TURXMLConnection.m b/iPhoto2Ansel/TURXMLConnection.m deleted file mode 100644 index 58a73db6d..000000000 --- a/iPhoto2Ansel/TURXMLConnection.m +++ /dev/null @@ -1,142 +0,0 @@ -// -// TURXMLConnection.m -// iPhoto2Ansel -// -// Created by Michael Rubinsky on 11/5/08. -// Copyright 2008 __MyCompanyName__. All rights reserved. -// -#import -#import -#import "TURXMLConnection.h" - -@implementation TURXMLConnection - -static NSString *ERR_DOMAIN = @"com.theupstairsroom.XMLConnection"; - -- (TURXMLConnection *)initWithXMLRPCRequest: (XMLRPCRequest *)request - withCredentials: (NSDictionary *)credentials -{ - username = [[credentials objectForKey:@"username"] retain]; - password = [[credentials objectForKey:@"password"] retain]; - running = YES; - connection = [[XMLRPCConnection alloc] initWithXMLRPCRequest: request - delegate: self]; - return self; -} - -- (BOOL)isRunning -{ - return running; -} - -- (id)response -{ - return response; -} - -- (void)dealloc -{ - NSLog(@"TURXMLConnection dealloc called"); - [username release]; - [password release]; - [super dealloc]; -} - -- (BOOL)hasError -{ - return hasError; -} - -// Return the error object, but get rid of it. -- (NSError *)error -{ - return [error autorelease]; -} - -#pragma mark XMLRPCConnection Delegate -- (void)connection: (XMLRPCConnection *)xconnection -didReceiveResponse: (XMLRPCResponse *)theResponse - forMethod: (NSString *)method -{ - NSLog(@"Received response for %@", method); - if (theResponse != nil) { - if ([theResponse isFault]) { - NSLog(@"Fault code: %@", [theResponse faultCode]); - NSDictionary *userInfo = [NSDictionary dictionaryWithObjectsAndKeys: - [theResponse faultString], @"NSLocalizedDescriptionKey", nil]; - error = [[NSError alloc] initWithDomain: ERR_DOMAIN - code: [[theResponse faultCode] intValue] - userInfo: userInfo]; - hasError = YES; - [theResponse release]; - [xconnection cancel]; - } - } else { - NSDictionary *userInfo = [NSDictionary dictionaryWithObjectsAndKeys: - @"Unable to parse XML in XMLRPCDelegate method", @"NSLocalizedDescriptionKey", nil]; - error = [[NSError alloc] initWithDomain: ERR_DOMAIN - code: TURXML_ERR_PARSE - userInfo: userInfo]; - hasError = YES; - [theResponse release]; - } - - response = [[theResponse responseObject] retain]; - [theResponse release]; - if (!hasError) { - // Looks like the NSURLConnection object is released somewhere upstream - // when there is an error. - [xconnection release]; - } - running = NO; -} - -- (void)connection: (XMLRPCConnection *)xconnection -didReceiveAuthenticationChallenge: (NSURLAuthenticationChallenge *)challenge - forMethod: (NSString *)method -{ - NSLog(@"Credentials requested in method: %@", method); - if ([challenge previousFailureCount] == 0) { - NSURLCredential *newCredential; - newCredential = [NSURLCredential credentialWithUser: [self valueForKey: @"username"] - password: [self valueForKey: @"password"] - persistence: NSURLCredentialPersistenceForSession]; - - [[challenge sender] useCredential: newCredential - forAuthenticationChallenge: challenge]; - NSLog(@"Credentials sent"); - } else { - [[challenge sender] cancelAuthenticationChallenge: challenge]; - NSDictionary *userInfo = [NSDictionary dictionaryWithObjectsAndKeys: - @"Authentication Failed", @"NSLocalizedDescriptionKey", - @"Check your username and password and try again.", @"NSLocalizedRecoverySuggestionErrorKey", nil]; - - error = [[NSError alloc] initWithDomain: ERR_DOMAIN - code: TURXML_ERR_BADAUTH - userInfo: userInfo]; - running = NO; - hasError = YES; - } -} - -- (void)connection: (XMLRPCConnection *)xconnection - didFailWithError: (NSError *)xerror - forMethod: (NSString *)method -{ - error = [xerror retain]; - hasError = YES; - running = NO; -} - -// Set the status and tell the underlaying connection we cancelled. -- (void) cancel -{ - running = NO; - hasError = YES; - error = [[NSError alloc] initWithDomain: ERR_DOMAIN - code: TURXML_ERR_CANCEL - userInfo: nil]; - [super cancel]; -} - -@end diff --git a/iPhoto2Ansel/XMLRPC-Info.plist b/iPhoto2Ansel/XMLRPC-Info.plist deleted file mode 100644 index 3e59a1acf..000000000 --- a/iPhoto2Ansel/XMLRPC-Info.plist +++ /dev/null @@ -1,20 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - com.yourcompany.XMLRPC - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - FMWK - CFBundleSignature - ???? - CFBundleVersion - 1.0 - - diff --git a/iPhoto2Ansel/iPhoto2Ansel.xcodeproj/project.pbxproj b/iPhoto2Ansel/iPhoto2Ansel.xcodeproj/project.pbxproj index dba546165..c93cd3df4 100644 --- a/iPhoto2Ansel/iPhoto2Ansel.xcodeproj/project.pbxproj +++ b/iPhoto2Ansel/iPhoto2Ansel.xcodeproj/project.pbxproj @@ -7,56 +7,28 @@ objects = { /* Begin PBXBuildFile section */ - 8D5B49B0048680CD000E48DA /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; }; 8D5B49B4048680CD000E48DA /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */; }; - B00EF55A0EF5DD5900A9D71C /* AnselServers.nib in Resources */ = {isa = PBXBuildFile; fileRef = B00EF5580EF5DD5900A9D71C /* AnselServers.nib */; }; - B00EF5670EF5E22900A9D71C /* TURAnselServersPanelController.m in Sources */ = {isa = PBXBuildFile; fileRef = B00EF5660EF5E22900A9D71C /* TURAnselServersPanelController.m */; }; - B04FC1A90EEB4A2B008EEB0E /* AnselGalleryPanel.nib in Resources */ = {isa = PBXBuildFile; fileRef = B04FC1A70EEB4A2B008EEB0E /* AnselGalleryPanel.nib */; }; B06C1E030EB1644600BFAFCB /* AnselExportPluginBox.m in Sources */ = {isa = PBXBuildFile; fileRef = B06C1E020EB1644600BFAFCB /* AnselExportPluginBox.m */; }; B06C1E060EB164D900BFAFCB /* AnselExportController.m in Sources */ = {isa = PBXBuildFile; fileRef = B06C1E050EB164D900BFAFCB /* AnselExportController.m */; }; - B06C1E3D0EB17E3700BFAFCB /* Panel.nib in Resources */ = {isa = PBXBuildFile; fileRef = B06C1E3C0EB17E3700BFAFCB /* Panel.nib */; }; - B07D42700EC230B100B59765 /* TURAnsel.m in Sources */ = {isa = PBXBuildFile; fileRef = B07D426D0EC230B100B59765 /* TURAnsel.m */; }; - B07D42710EC230B100B59765 /* TURAnselGallery.m in Sources */ = {isa = PBXBuildFile; fileRef = B07D426F0EC230B100B59765 /* TURAnselGallery.m */; }; - B07D44F70EC2AEC700B59765 /* TURXMLConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = B07D44F60EC2AEC700B59765 /* TURXMLConnection.m */; }; + B08394CD106D1078001B5E29 /* AnselGalleryPanel.nib in Resources */ = {isa = PBXBuildFile; fileRef = B08394C0106D1077001B5E29 /* AnselGalleryPanel.nib */; }; + B08394CE106D1078001B5E29 /* AnselServers.nib in Resources */ = {isa = PBXBuildFile; fileRef = B08394C2106D1077001B5E29 /* AnselServers.nib */; }; + B08394CF106D1078001B5E29 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = B08394C4106D1077001B5E29 /* InfoPlist.strings */; }; + B08394D0106D1078001B5E29 /* Panel.nib in Resources */ = {isa = PBXBuildFile; fileRef = B08394C6106D1077001B5E29 /* Panel.nib */; }; + B08394D1106D1078001B5E29 /* ProgressSheet.nib in Resources */ = {isa = PBXBuildFile; fileRef = B08394C8106D1077001B5E29 /* ProgressSheet.nib */; }; + B08394D2106D1078001B5E29 /* iPhoto2Ansel.icns in Resources */ = {isa = PBXBuildFile; fileRef = B08394CA106D1077001B5E29 /* iPhoto2Ansel.icns */; }; B0B666750FB34604009459D5 /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B0B666730FB34604009459D5 /* Quartz.framework */; }; B0B666760FB34604009459D5 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B0B666740FB34604009459D5 /* QuartzCore.framework */; }; - B0B6669B0FB357B3009459D5 /* AnselGalleryViewItem.m in Sources */ = {isa = PBXBuildFile; fileRef = B0B6669A0FB357B3009459D5 /* AnselGalleryViewItem.m */; }; - B0BFBC780ED5B2AB006581A5 /* XMLRPC.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B0BFBC700ED5B221006581A5 /* XMLRPC.framework */; }; - B0BFBC7B0ED5B2B2006581A5 /* XMLRPC.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = B0BFBC700ED5B221006581A5 /* XMLRPC.framework */; }; - B0BFBC970ED5B32B006581A5 /* NSDataAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = B0BFBC810ED5B32B006581A5 /* NSDataAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B0BFBC980ED5B32B006581A5 /* NSDataAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = B0BFBC820ED5B32B006581A5 /* NSDataAdditions.m */; }; - B0BFBC990ED5B32B006581A5 /* NSStringAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = B0BFBC830ED5B32B006581A5 /* NSStringAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B0BFBC9A0ED5B32B006581A5 /* NSStringAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = B0BFBC840ED5B32B006581A5 /* NSStringAdditions.m */; }; - B0BFBC9C0ED5B32B006581A5 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = B0BFBC870ED5B32B006581A5 /* Localizable.strings */; }; - B0BFBC9D0ED5B32B006581A5 /* LICENSE in Resources */ = {isa = PBXBuildFile; fileRef = B0BFBC890ED5B32B006581A5 /* LICENSE */; }; - B0BFBC9E0ED5B32B006581A5 /* README in Resources */ = {isa = PBXBuildFile; fileRef = B0BFBC8A0ED5B32B006581A5 /* README */; }; - B0BFBC9F0ED5B32B006581A5 /* XMLRPC.h in Headers */ = {isa = PBXBuildFile; fileRef = B0BFBC8B0ED5B32B006581A5 /* XMLRPC.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B0BFBCA00ED5B32B006581A5 /* XMLRPC.pch in Headers */ = {isa = PBXBuildFile; fileRef = B0BFBC8C0ED5B32B006581A5 /* XMLRPC.pch */; settings = {ATTRIBUTES = (Public, ); }; }; - B0BFBCA10ED5B32B006581A5 /* XMLRPCConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = B0BFBC8D0ED5B32B006581A5 /* XMLRPCConnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B0BFBCA20ED5B32B006581A5 /* XMLRPCConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = B0BFBC8E0ED5B32B006581A5 /* XMLRPCConnection.m */; }; - B0BFBCA30ED5B32B006581A5 /* XMLRPCDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = B0BFBC8F0ED5B32B006581A5 /* XMLRPCDecoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B0BFBCA40ED5B32B006581A5 /* XMLRPCDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = B0BFBC900ED5B32B006581A5 /* XMLRPCDecoder.m */; }; - B0BFBCA50ED5B32B006581A5 /* XMLRPCEncoder.h in Headers */ = {isa = PBXBuildFile; fileRef = B0BFBC910ED5B32B006581A5 /* XMLRPCEncoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B0BFBCA60ED5B32B006581A5 /* XMLRPCEncoder.m in Sources */ = {isa = PBXBuildFile; fileRef = B0BFBC920ED5B32B006581A5 /* XMLRPCEncoder.m */; }; - B0BFBCA70ED5B32B006581A5 /* XMLRPCRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = B0BFBC930ED5B32B006581A5 /* XMLRPCRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B0BFBCA80ED5B32B006581A5 /* XMLRPCRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = B0BFBC940ED5B32B006581A5 /* XMLRPCRequest.m */; }; - B0BFBCA90ED5B32B006581A5 /* XMLRPCResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = B0BFBC950ED5B32B006581A5 /* XMLRPCResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B0BFBCAA0ED5B32B006581A5 /* XMLRPCResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = B0BFBC960ED5B32B006581A5 /* XMLRPCResponse.m */; }; - B0C888490ED85DEA000E19FB /* ProgressSheet.nib in Resources */ = {isa = PBXBuildFile; fileRef = B0C888480ED85DEA000E19FB /* ProgressSheet.nib */; }; B0C8884E0ED85E02000E19FB /* FBProgressController.m in Sources */ = {isa = PBXBuildFile; fileRef = B0C8884D0ED85E02000E19FB /* FBProgressController.m */; }; - B0CCED420EEC6E810012D3D3 /* TURAnselGalleryPanelController.m in Sources */ = {isa = PBXBuildFile; fileRef = B0CCED410EEC6E810012D3D3 /* TURAnselGalleryPanelController.m */; }; + B0FF4D4A106B283D00A8C14B /* AnselGalleryViewItem.m in Sources */ = {isa = PBXBuildFile; fileRef = B0FF4D3E106B283D00A8C14B /* AnselGalleryViewItem.m */; }; + B0FF4D4B106B283D00A8C14B /* AnselGalleryPanel.nib in Resources */ = {isa = PBXBuildFile; fileRef = B0FF4D40106B283D00A8C14B /* AnselGalleryPanel.nib */; }; + B0FF4D4C106B283D00A8C14B /* TURAnsel.m in Sources */ = {isa = PBXBuildFile; fileRef = B0FF4D42106B283D00A8C14B /* TURAnsel.m */; }; + B0FF4D4D106B283D00A8C14B /* TURAnselConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = B0FF4D44106B283D00A8C14B /* TURAnselConstants.m */; }; + B0FF4D4E106B283D00A8C14B /* TURAnselGallery.m in Sources */ = {isa = PBXBuildFile; fileRef = B0FF4D46106B283D00A8C14B /* TURAnselGallery.m */; }; + B0FF4D4F106B283D00A8C14B /* TURAnselGalleryPanelController.m in Sources */ = {isa = PBXBuildFile; fileRef = B0FF4D48106B283D00A8C14B /* TURAnselGalleryPanelController.m */; }; + B0FF4D54106B284C00A8C14B /* NSDataAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = B0FF4D51106B284C00A8C14B /* NSDataAdditions.m */; }; + B0FF4D55106B284C00A8C14B /* NSStringAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = B0FF4D53106B284C00A8C14B /* NSStringAdditions.m */; }; /* End PBXBuildFile section */ -/* Begin PBXContainerItemProxy section */ - B0BFBCBF0ED5B440006581A5 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 089C1669FE841209C02AAC07 /* Project object */; - proxyType = 1; - remoteGlobalIDString = B0BFBC6F0ED5B221006581A5; - remoteInfo = XMLRPC; - }; -/* End PBXContainerItemProxy section */ - /* Begin PBXCopyFilesBuildPhase section */ B0BFBC7E0ED5B2D3006581A5 /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; @@ -64,7 +36,6 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( - B0BFBC7B0ED5B2B2006581A5 /* XMLRPC.framework in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -72,16 +43,9 @@ /* Begin PBXFileReference section */ 089C1672FE841209C02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 089C167EFE841241C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; 32DBCF630370AF2F00C91783 /* iPhoto2Ansel_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iPhoto2Ansel_Prefix.pch; sourceTree = ""; }; 8D5B49B6048680CD000E48DA /* iPhoto2Ansel.iPhotoExporter */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = iPhoto2Ansel.iPhotoExporter; sourceTree = BUILT_PRODUCTS_DIR; }; - 8D5B49B7048680CD000E48DA /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - B00EF5590EF5DD5900A9D71C /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/AnselServers.nib; sourceTree = ""; }; - B00EF5650EF5E22900A9D71C /* TURAnselServersPanelController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TURAnselServersPanelController.h; sourceTree = ""; }; - B00EF5660EF5E22900A9D71C /* TURAnselServersPanelController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TURAnselServersPanelController.m; sourceTree = ""; }; - B03D3B590ED5BB3800CF5B92 /* XMLRPC-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "XMLRPC-Info.plist"; sourceTree = SOURCE_ROOT; }; - B04FC1A80EEB4A2B008EEB0E /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/AnselGalleryPanel.nib; sourceTree = ""; }; B06C1E010EB1644600BFAFCB /* AnselExportPluginBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AnselExportPluginBox.h; sourceTree = ""; }; B06C1E020EB1644600BFAFCB /* AnselExportPluginBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AnselExportPluginBox.m; sourceTree = ""; }; B06C1E040EB164D900BFAFCB /* AnselExportController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AnselExportController.h; sourceTree = ""; }; @@ -89,42 +53,33 @@ B06C1E070EB1652100BFAFCB /* ExportPluginProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExportPluginProtocol.h; sourceTree = ""; }; B06C1E080EB1652100BFAFCB /* ExportPluginBoxProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExportPluginBoxProtocol.h; sourceTree = ""; }; B06C1E090EB1652100BFAFCB /* ExportImageProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExportImageProtocol.h; sourceTree = ""; }; - B06C1E3C0EB17E3700BFAFCB /* Panel.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Panel.nib; path = English.lproj/Panel.nib; sourceTree = ""; }; - B07D426C0EC230B100B59765 /* TURAnsel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TURAnsel.h; sourceTree = ""; }; - B07D426D0EC230B100B59765 /* TURAnsel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TURAnsel.m; sourceTree = ""; }; - B07D426E0EC230B100B59765 /* TURAnselGallery.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TURAnselGallery.h; sourceTree = ""; }; - B07D426F0EC230B100B59765 /* TURAnselGallery.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TURAnselGallery.m; sourceTree = ""; }; - B07D44F50EC2AEC700B59765 /* TURXMLConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TURXMLConnection.h; sourceTree = ""; }; - B07D44F60EC2AEC700B59765 /* TURXMLConnection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TURXMLConnection.m; sourceTree = ""; }; + B08394C1106D1077001B5E29 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/AnselGalleryPanel.nib; sourceTree = ""; }; + B08394C3106D1077001B5E29 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/AnselServers.nib; sourceTree = ""; }; + B08394C5106D1077001B5E29 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; + B08394C7106D1077001B5E29 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/Panel.nib; sourceTree = ""; }; + B08394C9106D1077001B5E29 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/ProgressSheet.nib; sourceTree = ""; }; + B08394CA106D1077001B5E29 /* iPhoto2Ansel.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = iPhoto2Ansel.icns; sourceTree = ""; }; + B08394E4106D1196001B5E29 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; B0B666730FB34604009459D5 /* Quartz.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quartz.framework; path = /System/Library/Frameworks/Quartz.framework; sourceTree = ""; }; B0B666740FB34604009459D5 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = /System/Library/Frameworks/QuartzCore.framework; sourceTree = ""; }; - B0B666990FB357B3009459D5 /* AnselGalleryViewItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AnselGalleryViewItem.h; sourceTree = ""; }; - B0B6669A0FB357B3009459D5 /* AnselGalleryViewItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AnselGalleryViewItem.m; sourceTree = ""; }; - B0BFBC700ED5B221006581A5 /* XMLRPC.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = XMLRPC.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - B0BFBC810ED5B32B006581A5 /* NSDataAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSDataAdditions.h; sourceTree = ""; }; - B0BFBC820ED5B32B006581A5 /* NSDataAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSDataAdditions.m; sourceTree = ""; }; - B0BFBC830ED5B32B006581A5 /* NSStringAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSStringAdditions.h; sourceTree = ""; }; - B0BFBC840ED5B32B006581A5 /* NSStringAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSStringAdditions.m; sourceTree = ""; }; - B0BFBC880ED5B32B006581A5 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/Localizable.strings; sourceTree = ""; }; - B0BFBC890ED5B32B006581A5 /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; - B0BFBC8A0ED5B32B006581A5 /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = ""; }; - B0BFBC8B0ED5B32B006581A5 /* XMLRPC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XMLRPC.h; sourceTree = ""; }; - B0BFBC8C0ED5B32B006581A5 /* XMLRPC.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XMLRPC.pch; sourceTree = ""; }; - B0BFBC8D0ED5B32B006581A5 /* XMLRPCConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XMLRPCConnection.h; sourceTree = ""; }; - B0BFBC8E0ED5B32B006581A5 /* XMLRPCConnection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XMLRPCConnection.m; sourceTree = ""; }; - B0BFBC8F0ED5B32B006581A5 /* XMLRPCDecoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XMLRPCDecoder.h; sourceTree = ""; }; - B0BFBC900ED5B32B006581A5 /* XMLRPCDecoder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XMLRPCDecoder.m; sourceTree = ""; }; - B0BFBC910ED5B32B006581A5 /* XMLRPCEncoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XMLRPCEncoder.h; sourceTree = ""; }; - B0BFBC920ED5B32B006581A5 /* XMLRPCEncoder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XMLRPCEncoder.m; sourceTree = ""; }; - B0BFBC930ED5B32B006581A5 /* XMLRPCRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XMLRPCRequest.h; sourceTree = ""; }; - B0BFBC940ED5B32B006581A5 /* XMLRPCRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XMLRPCRequest.m; sourceTree = ""; }; - B0BFBC950ED5B32B006581A5 /* XMLRPCResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XMLRPCResponse.h; sourceTree = ""; }; - B0BFBC960ED5B32B006581A5 /* XMLRPCResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XMLRPCResponse.m; sourceTree = ""; }; - B0C888480ED85DEA000E19FB /* ProgressSheet.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; path = ProgressSheet.nib; sourceTree = ""; }; B0C8884C0ED85E02000E19FB /* FBProgressController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FBProgressController.h; sourceTree = ""; }; B0C8884D0ED85E02000E19FB /* FBProgressController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FBProgressController.m; sourceTree = ""; }; - B0CCED400EEC6E810012D3D3 /* TURAnselGalleryPanelController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TURAnselGalleryPanelController.h; sourceTree = ""; }; - B0CCED410EEC6E810012D3D3 /* TURAnselGalleryPanelController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TURAnselGalleryPanelController.m; sourceTree = ""; }; + B0FF4D3D106B283D00A8C14B /* AnselGalleryViewItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AnselGalleryViewItem.h; sourceTree = ""; }; + B0FF4D3E106B283D00A8C14B /* AnselGalleryViewItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AnselGalleryViewItem.m; sourceTree = ""; }; + B0FF4D40106B283D00A8C14B /* AnselGalleryPanel.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; path = AnselGalleryPanel.nib; sourceTree = ""; }; + B0FF4D41106B283D00A8C14B /* TURAnsel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TURAnsel.h; sourceTree = ""; }; + B0FF4D42106B283D00A8C14B /* TURAnsel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TURAnsel.m; sourceTree = ""; }; + B0FF4D43106B283D00A8C14B /* TURAnselConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TURAnselConstants.h; sourceTree = ""; }; + B0FF4D44106B283D00A8C14B /* TURAnselConstants.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TURAnselConstants.m; sourceTree = ""; }; + B0FF4D45106B283D00A8C14B /* TURAnselGallery.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TURAnselGallery.h; sourceTree = ""; }; + B0FF4D46106B283D00A8C14B /* TURAnselGallery.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TURAnselGallery.m; sourceTree = ""; }; + B0FF4D47106B283D00A8C14B /* TURAnselGalleryPanelController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TURAnselGalleryPanelController.h; sourceTree = ""; }; + B0FF4D48106B283D00A8C14B /* TURAnselGalleryPanelController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TURAnselGalleryPanelController.m; sourceTree = ""; }; + B0FF4D49106B283D00A8C14B /* TURAnselKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TURAnselKit.h; sourceTree = ""; }; + B0FF4D50106B284C00A8C14B /* NSDataAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSDataAdditions.h; sourceTree = ""; }; + B0FF4D51106B284C00A8C14B /* NSDataAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSDataAdditions.m; sourceTree = ""; }; + B0FF4D52106B284C00A8C14B /* NSStringAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSStringAdditions.h; sourceTree = ""; }; + B0FF4D53106B284C00A8C14B /* NSStringAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSStringAdditions.m; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -132,31 +87,25 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - B0BFBC780ED5B2AB006581A5 /* XMLRPC.framework in Frameworks */, 8D5B49B4048680CD000E48DA /* Cocoa.framework in Frameworks */, B0B666750FB34604009459D5 /* Quartz.framework in Frameworks */, B0B666760FB34604009459D5 /* QuartzCore.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - B0BFBC6E0ED5B221006581A5 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ 089C166AFE841209C02AAC07 /* iPhoto2Ansel */ = { isa = PBXGroup; children = ( - B00076DE0EBA573900A95FC0 /* AnselToolkit */, + B08394E4106D1196001B5E29 /* Info.plist */, + B08394BF106D1077001B5E29 /* Resources */, + B0FF4D5A106B288300A8C14B /* Additions */, + B0FF4D3C106B283D00A8C14B /* TURAnselKit */, B00076D20EBA568800A95FC0 /* SDK Headers */, 08FB77AFFE84173DC02AAC07 /* ExportPlugin */, 32C88E010371C26100C91783 /* Other Sources */, - 089C167CFE841241C02AAC07 /* Resources */, 089C1671FE841209C02AAC07 /* Frameworks and Libraries */, 19C28FB8FE9D52D311CA2CBB /* Products */, ); @@ -166,31 +115,15 @@ 089C1671FE841209C02AAC07 /* Frameworks and Libraries */ = { isa = PBXGroup; children = ( - B0BFBC7F0ED5B32B006581A5 /* xmlrpc-1.5.1 */, 1058C7ACFEA557BF11CA2CBB /* Linked Frameworks */, 1058C7AEFEA557BF11CA2CBB /* Other Frameworks */, ); name = "Frameworks and Libraries"; sourceTree = ""; }; - 089C167CFE841241C02AAC07 /* Resources */ = { - isa = PBXGroup; - children = ( - B00EF5580EF5DD5900A9D71C /* AnselServers.nib */, - B04FC1A70EEB4A2B008EEB0E /* AnselGalleryPanel.nib */, - B0C888480ED85DEA000E19FB /* ProgressSheet.nib */, - B06C1E3C0EB17E3700BFAFCB /* Panel.nib */, - 8D5B49B7048680CD000E48DA /* Info.plist */, - 089C167DFE841241C02AAC07 /* InfoPlist.strings */, - ); - name = Resources; - sourceTree = ""; - }; 08FB77AFFE84173DC02AAC07 /* ExportPlugin */ = { isa = PBXGroup; children = ( - B0B666990FB357B3009459D5 /* AnselGalleryViewItem.h */, - B0B6669A0FB357B3009459D5 /* AnselGalleryViewItem.m */, B06C1E020EB1644600BFAFCB /* AnselExportPluginBox.m */, B06C1E010EB1644600BFAFCB /* AnselExportPluginBox.h */, B06C1E040EB164D900BFAFCB /* AnselExportController.h */, @@ -221,7 +154,6 @@ isa = PBXGroup; children = ( 8D5B49B6048680CD000E48DA /* iPhoto2Ansel.iPhotoExporter */, - B0BFBC700ED5B221006581A5 /* XMLRPC.framework */, ); name = Products; sourceTree = ""; @@ -231,8 +163,6 @@ children = ( B0C8884D0ED85E02000E19FB /* FBProgressController.m */, B0C8884C0ED85E02000E19FB /* FBProgressController.h */, - B07D44F50EC2AEC700B59765 /* TURXMLConnection.h */, - B07D44F60EC2AEC700B59765 /* TURXMLConnection.m */, 32DBCF630370AF2F00C91783 /* iPhoto2Ansel_Prefix.pch */, ); name = "Other Sources"; @@ -248,85 +178,59 @@ name = "SDK Headers"; sourceTree = ""; }; - B00076DE0EBA573900A95FC0 /* AnselToolkit */ = { + B08394BF106D1077001B5E29 /* Resources */ = { isa = PBXGroup; children = ( - B0CCED400EEC6E810012D3D3 /* TURAnselGalleryPanelController.h */, - B0CCED410EEC6E810012D3D3 /* TURAnselGalleryPanelController.m */, - B07D426C0EC230B100B59765 /* TURAnsel.h */, - B07D426D0EC230B100B59765 /* TURAnsel.m */, - B07D426E0EC230B100B59765 /* TURAnselGallery.h */, - B07D426F0EC230B100B59765 /* TURAnselGallery.m */, - B00EF5650EF5E22900A9D71C /* TURAnselServersPanelController.h */, - B00EF5660EF5E22900A9D71C /* TURAnselServersPanelController.m */, - ); - name = AnselToolkit; + B08394C0106D1077001B5E29 /* AnselGalleryPanel.nib */, + B08394C2106D1077001B5E29 /* AnselServers.nib */, + B08394C4106D1077001B5E29 /* InfoPlist.strings */, + B08394C6106D1077001B5E29 /* Panel.nib */, + B08394C8106D1077001B5E29 /* ProgressSheet.nib */, + B08394CA106D1077001B5E29 /* iPhoto2Ansel.icns */, + ); + path = Resources; sourceTree = ""; }; - B0BFBC7F0ED5B32B006581A5 /* xmlrpc-1.5.1 */ = { + B0FF4D3C106B283D00A8C14B /* TURAnselKit */ = { isa = PBXGroup; children = ( - B03D3B590ED5BB3800CF5B92 /* XMLRPC-Info.plist */, - B0BFBC800ED5B32B006581A5 /* Additions */, - B0BFBC860ED5B32B006581A5 /* Languages */, - B0BFBC890ED5B32B006581A5 /* LICENSE */, - B0BFBC8A0ED5B32B006581A5 /* README */, - B0BFBC8B0ED5B32B006581A5 /* XMLRPC.h */, - B0BFBC8C0ED5B32B006581A5 /* XMLRPC.pch */, - B0BFBC8D0ED5B32B006581A5 /* XMLRPCConnection.h */, - B0BFBC8E0ED5B32B006581A5 /* XMLRPCConnection.m */, - B0BFBC8F0ED5B32B006581A5 /* XMLRPCDecoder.h */, - B0BFBC900ED5B32B006581A5 /* XMLRPCDecoder.m */, - B0BFBC910ED5B32B006581A5 /* XMLRPCEncoder.h */, - B0BFBC920ED5B32B006581A5 /* XMLRPCEncoder.m */, - B0BFBC930ED5B32B006581A5 /* XMLRPCRequest.h */, - B0BFBC940ED5B32B006581A5 /* XMLRPCRequest.m */, - B0BFBC950ED5B32B006581A5 /* XMLRPCResponse.h */, - B0BFBC960ED5B32B006581A5 /* XMLRPCResponse.m */, - ); - path = "xmlrpc-1.5.1"; + B0FF4D3D106B283D00A8C14B /* AnselGalleryViewItem.h */, + B0FF4D3E106B283D00A8C14B /* AnselGalleryViewItem.m */, + B0FF4D3F106B283D00A8C14B /* English.lProj */, + B0FF4D41106B283D00A8C14B /* TURAnsel.h */, + B0FF4D42106B283D00A8C14B /* TURAnsel.m */, + B0FF4D43106B283D00A8C14B /* TURAnselConstants.h */, + B0FF4D44106B283D00A8C14B /* TURAnselConstants.m */, + B0FF4D45106B283D00A8C14B /* TURAnselGallery.h */, + B0FF4D46106B283D00A8C14B /* TURAnselGallery.m */, + B0FF4D47106B283D00A8C14B /* TURAnselGalleryPanelController.h */, + B0FF4D48106B283D00A8C14B /* TURAnselGalleryPanelController.m */, + B0FF4D49106B283D00A8C14B /* TURAnselKit.h */, + ); + path = TURAnselKit; sourceTree = ""; }; - B0BFBC800ED5B32B006581A5 /* Additions */ = { + B0FF4D3F106B283D00A8C14B /* English.lProj */ = { isa = PBXGroup; children = ( - B0BFBC810ED5B32B006581A5 /* NSDataAdditions.h */, - B0BFBC820ED5B32B006581A5 /* NSDataAdditions.m */, - B0BFBC830ED5B32B006581A5 /* NSStringAdditions.h */, - B0BFBC840ED5B32B006581A5 /* NSStringAdditions.m */, + B0FF4D40106B283D00A8C14B /* AnselGalleryPanel.nib */, ); - path = Additions; + path = English.lProj; sourceTree = ""; }; - B0BFBC860ED5B32B006581A5 /* Languages */ = { + B0FF4D5A106B288300A8C14B /* Additions */ = { isa = PBXGroup; children = ( - B0BFBC870ED5B32B006581A5 /* Localizable.strings */, + B0FF4D52106B284C00A8C14B /* NSStringAdditions.h */, + B0FF4D51106B284C00A8C14B /* NSDataAdditions.m */, + B0FF4D50106B284C00A8C14B /* NSDataAdditions.h */, + B0FF4D53106B284C00A8C14B /* NSStringAdditions.m */, ); - path = Languages; + name = Additions; sourceTree = ""; }; /* End PBXGroup section */ -/* Begin PBXHeadersBuildPhase section */ - B0BFBC6B0ED5B221006581A5 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - B0BFBC970ED5B32B006581A5 /* NSDataAdditions.h in Headers */, - B0BFBC990ED5B32B006581A5 /* NSStringAdditions.h in Headers */, - B0BFBC9F0ED5B32B006581A5 /* XMLRPC.h in Headers */, - B0BFBCA00ED5B32B006581A5 /* XMLRPC.pch in Headers */, - B0BFBCA10ED5B32B006581A5 /* XMLRPCConnection.h in Headers */, - B0BFBCA30ED5B32B006581A5 /* XMLRPCDecoder.h in Headers */, - B0BFBCA50ED5B32B006581A5 /* XMLRPCEncoder.h in Headers */, - B0BFBCA70ED5B32B006581A5 /* XMLRPCRequest.h in Headers */, - B0BFBCA90ED5B32B006581A5 /* XMLRPCResponse.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - /* Begin PBXNativeTarget section */ 8D5B49AC048680CD000E48DA /* iPhoto2Ansel */ = { isa = PBXNativeTarget; @@ -340,7 +244,6 @@ buildRules = ( ); dependencies = ( - B0BFBCC00ED5B440006581A5 /* PBXTargetDependency */, ); name = iPhoto2Ansel; productInstallPath = "$(HOME)/Library/Bundles"; @@ -348,29 +251,14 @@ productReference = 8D5B49B6048680CD000E48DA /* iPhoto2Ansel.iPhotoExporter */; productType = "com.apple.product-type.bundle"; }; - B0BFBC6F0ED5B221006581A5 /* XMLRPC */ = { - isa = PBXNativeTarget; - buildConfigurationList = B0BFBC750ED5B221006581A5 /* Build configuration list for PBXNativeTarget "XMLRPC" */; - buildPhases = ( - B0BFBC6B0ED5B221006581A5 /* Headers */, - B0BFBC6C0ED5B221006581A5 /* Resources */, - B0BFBC6D0ED5B221006581A5 /* Sources */, - B0BFBC6E0ED5B221006581A5 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = XMLRPC; - productName = XMLRPC; - productReference = B0BFBC700ED5B221006581A5 /* XMLRPC.framework */; - productType = "com.apple.product-type.framework"; - }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ 089C1669FE841209C02AAC07 /* Project object */ = { isa = PBXProject; + attributes = { + ORGANIZATIONNAME = "The Horde Project (http://www.horde.org)"; + }; buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "iPhoto2Ansel" */; compatibilityVersion = "Xcode 3.0"; hasScannedForEncodings = 1; @@ -379,7 +267,6 @@ projectRoot = ""; targets = ( 8D5B49AC048680CD000E48DA /* iPhoto2Ansel */, - B0BFBC6F0ED5B221006581A5 /* XMLRPC */, ); }; /* End PBXProject section */ @@ -389,21 +276,13 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 8D5B49B0048680CD000E48DA /* InfoPlist.strings in Resources */, - B06C1E3D0EB17E3700BFAFCB /* Panel.nib in Resources */, - B0C888490ED85DEA000E19FB /* ProgressSheet.nib in Resources */, - B04FC1A90EEB4A2B008EEB0E /* AnselGalleryPanel.nib in Resources */, - B00EF55A0EF5DD5900A9D71C /* AnselServers.nib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - B0BFBC6C0ED5B221006581A5 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - B0BFBC9C0ED5B32B006581A5 /* Localizable.strings in Resources */, - B0BFBC9D0ED5B32B006581A5 /* LICENSE in Resources */, - B0BFBC9E0ED5B32B006581A5 /* README in Resources */, + B0FF4D4B106B283D00A8C14B /* AnselGalleryPanel.nib in Resources */, + B08394CD106D1078001B5E29 /* AnselGalleryPanel.nib in Resources */, + B08394CE106D1078001B5E29 /* AnselServers.nib in Resources */, + B08394CF106D1078001B5E29 /* InfoPlist.strings in Resources */, + B08394D0106D1078001B5E29 /* Panel.nib in Resources */, + B08394D1106D1078001B5E29 /* ProgressSheet.nib in Resources */, + B08394D2106D1078001B5E29 /* iPhoto2Ansel.icns in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -416,71 +295,58 @@ files = ( B06C1E030EB1644600BFAFCB /* AnselExportPluginBox.m in Sources */, B06C1E060EB164D900BFAFCB /* AnselExportController.m in Sources */, - B07D42700EC230B100B59765 /* TURAnsel.m in Sources */, - B07D42710EC230B100B59765 /* TURAnselGallery.m in Sources */, - B07D44F70EC2AEC700B59765 /* TURXMLConnection.m in Sources */, B0C8884E0ED85E02000E19FB /* FBProgressController.m in Sources */, - B0CCED420EEC6E810012D3D3 /* TURAnselGalleryPanelController.m in Sources */, - B00EF5670EF5E22900A9D71C /* TURAnselServersPanelController.m in Sources */, - B0B6669B0FB357B3009459D5 /* AnselGalleryViewItem.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - B0BFBC6D0ED5B221006581A5 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - B0BFBC980ED5B32B006581A5 /* NSDataAdditions.m in Sources */, - B0BFBC9A0ED5B32B006581A5 /* NSStringAdditions.m in Sources */, - B0BFBCA20ED5B32B006581A5 /* XMLRPCConnection.m in Sources */, - B0BFBCA40ED5B32B006581A5 /* XMLRPCDecoder.m in Sources */, - B0BFBCA60ED5B32B006581A5 /* XMLRPCEncoder.m in Sources */, - B0BFBCA80ED5B32B006581A5 /* XMLRPCRequest.m in Sources */, - B0BFBCAA0ED5B32B006581A5 /* XMLRPCResponse.m in Sources */, + B0FF4D4A106B283D00A8C14B /* AnselGalleryViewItem.m in Sources */, + B0FF4D4C106B283D00A8C14B /* TURAnsel.m in Sources */, + B0FF4D4D106B283D00A8C14B /* TURAnselConstants.m in Sources */, + B0FF4D4E106B283D00A8C14B /* TURAnselGallery.m in Sources */, + B0FF4D4F106B283D00A8C14B /* TURAnselGalleryPanelController.m in Sources */, + B0FF4D54106B284C00A8C14B /* NSDataAdditions.m in Sources */, + B0FF4D55106B284C00A8C14B /* NSStringAdditions.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ -/* Begin PBXTargetDependency section */ - B0BFBCC00ED5B440006581A5 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = B0BFBC6F0ED5B221006581A5 /* XMLRPC */; - targetProxy = B0BFBCBF0ED5B440006581A5 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - /* Begin PBXVariantGroup section */ - 089C167DFE841241C02AAC07 /* InfoPlist.strings */ = { + B08394C0106D1077001B5E29 /* AnselGalleryPanel.nib */ = { isa = PBXVariantGroup; children = ( - 089C167EFE841241C02AAC07 /* English */, + B08394C1106D1077001B5E29 /* English */, ); - name = InfoPlist.strings; + name = AnselGalleryPanel.nib; sourceTree = ""; }; - B00EF5580EF5DD5900A9D71C /* AnselServers.nib */ = { + B08394C2106D1077001B5E29 /* AnselServers.nib */ = { isa = PBXVariantGroup; children = ( - B00EF5590EF5DD5900A9D71C /* English */, + B08394C3106D1077001B5E29 /* English */, ); name = AnselServers.nib; sourceTree = ""; }; - B04FC1A70EEB4A2B008EEB0E /* AnselGalleryPanel.nib */ = { + B08394C4106D1077001B5E29 /* InfoPlist.strings */ = { isa = PBXVariantGroup; children = ( - B04FC1A80EEB4A2B008EEB0E /* English */, + B08394C5106D1077001B5E29 /* English */, ); - name = AnselGalleryPanel.nib; + name = InfoPlist.strings; + sourceTree = ""; + }; + B08394C6106D1077001B5E29 /* Panel.nib */ = { + isa = PBXVariantGroup; + children = ( + B08394C7106D1077001B5E29 /* English */, + ); + name = Panel.nib; sourceTree = ""; }; - B0BFBC870ED5B32B006581A5 /* Localizable.strings */ = { + B08394C8106D1077001B5E29 /* ProgressSheet.nib */ = { isa = PBXVariantGroup; children = ( - B0BFBC880ED5B32B006581A5 /* English */, + B08394C9106D1077001B5E29 /* English */, ); - name = Localizable.strings; + name = ProgressSheet.nib; sourceTree = ""; }; /* End PBXVariantGroup section */ @@ -516,7 +382,7 @@ isa = XCBuildConfiguration; buildSettings = { DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEPLOYMENT_LOCATION = YES; + DEPLOYMENT_LOCATION = NO; FRAMEWORK_SEARCH_PATHS = ( "\"$(SRCROOT)/XMLRPC\"", "$(inherited)", @@ -529,6 +395,7 @@ INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(HOME)/Library/Application Support/iPhoto/Plugins"; PRODUCT_NAME = iPhoto2Ansel; + VALID_ARCHS = "i386 x86_64 ppc64 ppc"; WRAPPER_EXTENSION = iPhotoExporter; }; name = Release; @@ -543,18 +410,18 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; INSTALL_PATH = ""; + ONLY_ACTIVE_ARCH = YES; PREBINDING = NO; SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk"; + VALID_ARCHS = "i386 x86_64"; }; name = Debug; }; 1DEB914008733D840010E9CD /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = ( - ppc, - i386, - ); + ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)"; + ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc"; DEPLOYMENT_LOCATION = NO; DSTROOT = /; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; @@ -563,64 +430,7 @@ INSTALL_PATH = ""; PREBINDING = NO; SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk"; - }; - name = Release; - }; - B0BFBC730ED5B221006581A5 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - DEPLOYMENT_LOCATION = NO; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - FRAMEWORK_VERSION = A; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_ENABLE_OBJC_GC = supported; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; - INFOPLIST_FILE = "XMLRPC-Info.plist"; - INSTALL_PATH = "@loader_path/../Frameworks"; - OTHER_LDFLAGS = ( - "-framework", - Foundation, - "-framework", - AppKit, - ); - PREBINDING = NO; - PRODUCT_NAME = XMLRPC; - ZERO_LINK = YES; - }; - name = Debug; - }; - B0BFBC740ED5B221006581A5 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEPLOYMENT_LOCATION = NO; - DSTROOT = "/tmp/$(PROJECT_NAME).dst"; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - FRAMEWORK_VERSION = A; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_ENABLE_OBJC_GC = supported; - GCC_MODEL_TUNING = G5; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; - INFOPLIST_FILE = "XMLRPC-Info.plist"; - INSTALL_PATH = "@loader_path/../Frameworks"; - OTHER_LDFLAGS = ( - "-framework", - Foundation, - "-framework", - AppKit, - ); - PREBINDING = NO; - PRODUCT_NAME = XMLRPC; - ZERO_LINK = NO; + VALID_ARCHS = "i386 x86_64"; }; name = Release; }; @@ -645,15 +455,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - B0BFBC750ED5B221006581A5 /* Build configuration list for PBXNativeTarget "XMLRPC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - B0BFBC730ED5B221006581A5 /* Debug */, - B0BFBC740ED5B221006581A5 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; /* End XCConfigurationList section */ }; rootObject = 089C1669FE841209C02AAC07 /* Project object */; diff --git a/iPhoto2Ansel/master_Source_ImageResizer.h b/iPhoto2Ansel/master_Source_ImageResizer.h deleted file mode 100644 index 6fa21fd2f..000000000 --- a/iPhoto2Ansel/master_Source_ImageResizer.h +++ /dev/null @@ -1,39 +0,0 @@ -// -// Copyright Zach Wily -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// - Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// - Redistributions in binary form must reproduce the above copyright notice, this -// list of conditions and the following disclaimer in the documentation and/or -// other materials provided with the distribution. -// -// - Neither the name of Zach Wily nor the names of its contributors may be used to -// endorse or promote products derived from this software without specific prior -// written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// - -#import - -@interface ImageResizer : NSObject { - -} - -+ (NSData*) getScaledImageFromData:(NSData*)data toSize:(NSSize)size; - -@end diff --git a/iPhoto2Ansel/xmlrpc-1.5.1/Additions/NSDataAdditions.h b/iPhoto2Ansel/xmlrpc-1.5.1/Additions/NSDataAdditions.h deleted file mode 100644 index a0f6acb1b..000000000 --- a/iPhoto2Ansel/xmlrpc-1.5.1/Additions/NSDataAdditions.h +++ /dev/null @@ -1,39 +0,0 @@ -// -// Copyright 2008 Eric Czarny -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -// IN THE SOFTWARE. -// - -// -// Cocoa XML-RPC Framework -// NSDataAdditions.h -// -// Created by Eric Czarny on Wednesday, January 14, 2004. -// Copyright 2008 Divisible by Zero. -// - -#import - -@class NSString; - -@interface NSData (NSDataAdditions) - -+ (NSData *)base64DataFromString: (NSString *)string; - -@end diff --git a/iPhoto2Ansel/xmlrpc-1.5.1/Additions/NSDataAdditions.m b/iPhoto2Ansel/xmlrpc-1.5.1/Additions/NSDataAdditions.m deleted file mode 100644 index 4b3c076f4..000000000 --- a/iPhoto2Ansel/xmlrpc-1.5.1/Additions/NSDataAdditions.m +++ /dev/null @@ -1,125 +0,0 @@ -// -// Copyright 2008 Eric Czarny -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -// IN THE SOFTWARE. -// - -// -// Cocoa XML-RPC Framework -// NSDataAdditions.m -// -// Created by Eric Czarny on Wednesday, January 14, 2004. -// Copyright 2008 Divisible by Zero. -// - -#import "NSDataAdditions.h" - -@implementation NSData (NSDataAdditions) - -+ (NSData *)base64DataFromString: (NSString *)string { - unsigned long ixtext, lentext; - unsigned char ch, input[4], output[3]; - short i, ixinput; - Boolean flignore, flendtext = false; - const char *temporary; - NSMutableData *result; - - if (string == nil) { - return [NSData data]; - } - - ixtext = 0; - - temporary = [string UTF8String]; - - lentext = [string length]; - - result = [NSMutableData dataWithCapacity: lentext]; - - ixinput = 0; - - while (true) { - if (ixtext >= lentext) { - break; - } - - ch = temporary[ixtext++]; - - flignore = false; - - if ((ch >= 'A') && (ch <= 'Z')) { - ch = ch - 'A'; - } else if ((ch >= 'a') && (ch <= 'z')) { - ch = ch - 'a' + 26; - } else if ((ch >= '0') && (ch <= '9')) { - ch = ch - '0' + 52; - } else if (ch == '+') { - ch = 62; - } else if (ch == '=') { - flendtext = true; - } else if (ch == '/') { - ch = 63; - } else { - flignore = true; - } - - if (!flignore) { - short ctcharsinput = 3; - Boolean flbreak = false; - - if (flendtext) { - if (ixinput == 0) { - break; - } - - if ((ixinput == 1) || (ixinput == 2)) { - ctcharsinput = 1; - } else { - ctcharsinput = 2; - } - - ixinput = 3; - - flbreak = true; - } - - input[ixinput++] = ch; - - if (ixinput == 4) { - ixinput = 0; - - output[0] = (input[0] << 2) | ((input[1] & 0x30) >> 4); - output[1] = ((input[1] & 0x0F) << 4) | ((input[2] & 0x3C) >> 2); - output[2] = ((input[2] & 0x03) << 6) | (input[3] & 0x3F); - - for (i = 0; i < ctcharsinput; i++) { - [result appendBytes: &output[i] length: 1]; - } - } - - if (flbreak) { - break; - } - } - } - - return result; -} - -@end diff --git a/iPhoto2Ansel/xmlrpc-1.5.1/Additions/NSStringAdditions.h b/iPhoto2Ansel/xmlrpc-1.5.1/Additions/NSStringAdditions.h deleted file mode 100644 index b4776f961..000000000 --- a/iPhoto2Ansel/xmlrpc-1.5.1/Additions/NSStringAdditions.h +++ /dev/null @@ -1,39 +0,0 @@ -// -// Copyright 2008 Eric Czarny -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -// IN THE SOFTWARE. -// - -// -// Cocoa XML-RPC Framework -// NSStringAdditions.h -// -// Created by Eric Czarny on Wednesday, January 14, 2004. -// Copyright 2008 Divisible by Zero. -// - -#import - -@class NSData; - -@interface NSString (NSStringAdditions) - -+ (NSString *)base64StringFromData: (NSData *)data length: (NSInteger)length; - -@end diff --git a/iPhoto2Ansel/xmlrpc-1.5.1/Additions/NSStringAdditions.m b/iPhoto2Ansel/xmlrpc-1.5.1/Additions/NSStringAdditions.m deleted file mode 100644 index 22387b952..000000000 --- a/iPhoto2Ansel/xmlrpc-1.5.1/Additions/NSStringAdditions.m +++ /dev/null @@ -1,119 +0,0 @@ -// -// Copyright 2008 Eric Czarny -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -// IN THE SOFTWARE. -// - -// -// Cocoa XML-RPC Framework -// NSStringAdditions.m -// -// Created by Eric Czarny on Wednesday, January 14, 2004. -// Copyright 2008 Divisible by Zero. -// - -#import "NSDataAdditions.h" - -/* Base64 Encoding Table */ -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', '+', '/' -}; - -@implementation NSString (NSStringExtensions) - -+ (NSString *)base64StringFromData: (NSData *)data length: (NSInteger)length { - unsigned long ixtext, lentext; - long ctremaining; - unsigned char input[3], output[4]; - short i, charsonline = 0, ctcopy; - const unsigned char *raw; - NSMutableString *result; - - lentext = [data length]; - - if (lentext < 1) { - return @""; - } - - result = [NSMutableString stringWithCapacity: lentext]; - - raw = [data bytes]; - - ixtext = 0; - - while (true) { - ctremaining = lentext - ixtext; - - if (ctremaining <= 0) { - break; - } - - for (i = 0; i < 3; i++) { - unsigned long ix = ixtext + i; - - if (ix < lentext) { - input[i] = raw[ix]; - } else { - input[i] = 0; - } - } - - output[0] = (input[0] & 0xFC) >> 2; - output[1] = ((input[0] & 0x03) << 4) | ((input[1] & 0xF0) >> 4); - output[2] = ((input[1] & 0x0F) << 2) | ((input[2] & 0xC0) >> 6); - output[3] = input[2] & 0x3F; - - ctcopy = 4; - - switch (ctremaining) { - case 1: - ctcopy = 2; - break; - case 2: - ctcopy = 3; - break; - } - - for (i = 0; i < ctcopy; i++) { - [result appendString: [NSString stringWithFormat: @"%c", base64EncodingTable[output[i]]]]; - } - - for (i = ctcopy; i < 4; i++) { - [result appendString: @"="]; - } - - ixtext += 3; - charsonline += 4; - - if (length > 0) { - if (charsonline >= length) { - charsonline = 0; - - [result appendString: @"\n"]; - } - } - } - - return result; -} - -@end diff --git a/iPhoto2Ansel/xmlrpc-1.5.1/Info.plist b/iPhoto2Ansel/xmlrpc-1.5.1/Info.plist deleted file mode 100644 index 84c452abb..000000000 --- a/iPhoto2Ansel/xmlrpc-1.5.1/Info.plist +++ /dev/null @@ -1,27 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIconFile - - CFBundleIdentifier - com.divisiblebyzero.XMLRPC - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleSignature - ZERO - CFBundleVersion - 1.5.1 - NSPrincipalClass - - - diff --git a/iPhoto2Ansel/xmlrpc-1.5.1/LICENSE b/iPhoto2Ansel/xmlrpc-1.5.1/LICENSE deleted file mode 100644 index f121be78b..000000000 --- a/iPhoto2Ansel/xmlrpc-1.5.1/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -== License - -= The Cocoa XML-RPC Framework is distributed under the MIT License: - -Copyright 2008 Eric Czarny - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/iPhoto2Ansel/xmlrpc-1.5.1/Languages/English.lproj/Localizable.strings b/iPhoto2Ansel/xmlrpc-1.5.1/Languages/English.lproj/Localizable.strings deleted file mode 100644 index afec4bd93..000000000 --- a/iPhoto2Ansel/xmlrpc-1.5.1/Languages/English.lproj/Localizable.strings +++ /dev/null @@ -1,3 +0,0 @@ -/* ENGLISH */ - -NSHumanReadableCopyright = "Cocoa XML-RPC Framework © 2008 Divisible by Zero"; diff --git a/iPhoto2Ansel/xmlrpc-1.5.1/README b/iPhoto2Ansel/xmlrpc-1.5.1/README deleted file mode 100644 index c10d26d19..000000000 --- a/iPhoto2Ansel/xmlrpc-1.5.1/README +++ /dev/null @@ -1,208 +0,0 @@ -== The Cocoa XML-RPC Framework - -The Cocoa XML-RPC Framework is a simple, and lightweight, XML-RPC client -framework written in Objective-C. - -== Requirements - -The Cocoa XML-RPC Framework has been built, and designed, for OS X 10.4 or -later. The framework relies on NSURLConnection and NSURLRequest for HTTP -transport, and NSXMLDocument for parsing XML-RPC responses. - -This version of the framework will not work with the iPhone SDK. - -== Usage - -The following examples of the Cocoa XML-RPC Framework assume that the included -XML-RPC test server are running. The test server can be found under: - - XMLRPC\Tools\xmlrpc-server - -The XML-RPC test server is written in Java and utilizes the Apache XML-RPC -server library. To start the server simply call Ant from the same directory -where the build.xml file is located: - - ant - -The target is optional, omitting this argument will execute the default -target (the default target is "run"). The following targets are available: - - - compile - - jar - - run - - clean - -More information on the XML-RPC test server can be found below. - -= Asynchronous - -Making an asynchronous XML-RPC request is probably the best way to communicate -with an XML-RPC server. After creating an XMLRPCConnection the XML-RPC request -is sent to the XML-RPC server in the background. This allows the requesting -application to continue performing other functions. - -Sending an asynchronous XML-RPC request is simple: - -- (void)sendRequest { - NSURL *URL = [NSURL URLWithString: @"http://127.0.0.1/"]; - XMLRPCRequest *request = [[XMLRPCRequest alloc] initWithHost: URL]; - - [request setMethod: @"Echo.echo" withParameter: @"Hello World!"]; - [request setUserAgent: @"XML-RPC Example"]; - - XMLRPCConnection *connection = [[XMLRPCConnection alloc] - initWithXMLRPCRequest: request delegate: self]; - - if (connection == nil) { - NSLog(@"Connection failed."); - } -} - -It is important to understand that the caller is responsible for releasing the -connection and response objects at the end of the connection response and -connection failure delegate methods. Do not attempt to release the connection -object anywhere but within these two delegate methods. - -- (void)connection: (XMLRPCConnection *)connection didReceiveResponse: - (XMLRPCResponse *)response forMethod: (NSString *)method { - if (response != nil) { - if ([response isFault]) { - NSLog(@"Fault code: %@", [response faultCode]); - } else { - NSLog(@"Response object: %@", [response responseObject]); - } - - NSLog(@"Response source: %@", [response responseSourceXML]); - } else { - NSLog(@"Unable to parse response."); - } - - [response release]; - [connection release]; -} - -= Synchronous - -Synchronous XML-RPC requests may be suitable in some situations. Unlike sending -an asynchronous request, a synchronous request is made in the foreground causing -the calling application to await an XML-RPC response. - -- (void)sendRequest { - NSURL *URL = [NSURL URLWithString: @"http://127.0.0.1/"]; - XMLRPCRequest *request = [[[XMLRPCRequest alloc] initWithHost: URL]]; - - [request setMethod: @"Echo.echo" setParameter: @"Hello World!"]; - [request setUserAgent: @"XML-RPC Example"]; - - XMLRPCResponse *response = [XMLRPCConnection - sendSynchronousXMLRPCRequest: request]; - - if (response != nil) { - if ([response isFault]) { - NSLog(@"Fault: %@", [response fault]); - } else { - NSLog(@"Response object: %@", [response responseObject]); - } - - NSLog(@"Response source: %@", [response responseSourceXML]); - } else { - NSLog(@"Unable to parse response."); - } - - [request release]; - [response release]; -} - -A response will always return nil upon creation if it is unable to parse the XML -data. However, in the case of a synchronous request, a nil response can either -mean the response could not be parsed, or the connection failed to send the -request. - -An asynchronous connection will return nil if it fails to send the request. The -response passed to the connection:didReceiveResponse:forMethod: delegate -method will be nil if the response object is unable to parse the XML response -data. - -Also note that you may have access to the raw XML source to either the request -and/or response. Though you may be able to extract the source from the request -at any moment in the object's life, it is always best to get the source after -invoking the setMethod:withParameters: or setMethod:withParameter: methods. If -you ask for the source too early, you won't receive the fully created XML -request source. - -== Using the XML-RPC test server - -The XML-RPC test server is a simple Java application that allows developers to -easily develop software with Cocoa XML-RPC Framework. The test server is built -on top of the Apache XML-RPC library. - -Using the test server is easy, simply call Ant from the same location as the -build.xml file: - - ant - -The default target is the "run" target, which will compile the Java source code, -build the executable JAR file, and run the application. Included with the test -server is a server.sh script, this Bash script will launch the test server (if -it has already been built with Ant). - -= Creating XML-RPC server handlers - -The XML-RPC test server exposes the methods defined in server handlers. Each -server handler is simply a Java class that is registered with the Apache XML-RPC -library. Here is an example of the Echo handler provided in the distribution: - - public class Echo { - public String echo(String message) { - return message; - } - } - -This handler simply takes a message provided in the XML-RPC request and returns -it in the XML-RPC response. To register this handler with the XML-RPC server -simply add it to the propertyHandlerMapping in Server.java: - - import com.divisiblebyzero.xmlrpc.model.handlers.*; - - ... - - try { - propertyHandlerMapping.addHandler("Echo", Echo.class); - - this.embeddedXmlRpcServer.setHandlerMapping(propertyHandlerMapping); - } catch (Exception e) { - this.controlPanel.addLogMessage(e.getMessage()); - } - -The handler is now available to any incoming XML-RPC requests. - -== What if I find a bug, or what if I want to help? - -Please, contact me with any questions, comments, suggestions, or problems. I try -to make the time to answer every request. If you find a bug, it would be -helpful to also provide steps to reproduce the problem. - -Those wishing to contribute to the project should begin by obtaining a working -copy of the trunk: - - svn co http://svn.divisiblebyzero.com/xmlrpc/trunk/ - -The trunk contains the most recent changes to the project. The modifications you -make should then be used to create a patch. Patches should be sent to me with a -detailed description of every change. - -== Acknowledgments - -The Base64 encoder/decoder found in NSStringAdditions and NSDataAdditions have -been adapted from code provided by Dave Winer. - -The idea for this framework came from examples provided by Brent Simmons, the -creator of NetNewsWire. - -== License - -Copyright 2008 Eric Czarny. - -The Cocoa XML-RPC Framework should be accompanied by a LICENSE file, this -file contains the license relevant to this distribution. If no LICENSE exists -please contact Eric Czarny . diff --git a/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPC.h b/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPC.h deleted file mode 100644 index e1abb7267..000000000 --- a/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPC.h +++ /dev/null @@ -1,33 +0,0 @@ -// -// Copyright 2008 Eric Czarny -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -// IN THE SOFTWARE. -// - -// -// Cocoa XML-RPC Framework -// XMLRPC.h -// -// Created by Eric Czarny on Wednesday, February 10, 2004. -// Copyright 2008 Divisible by Zero. -// - -#import -#import -#import diff --git a/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPC.pch b/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPC.pch deleted file mode 100644 index e426375ca..000000000 --- a/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPC.pch +++ /dev/null @@ -1,33 +0,0 @@ -// -// Copyright 2008 Eric Czarny -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -// IN THE SOFTWARE. -// - -// -// Cocoa XML-RPC Framework -// XMLRPC.pch -// -// Created by Eric Czarny on Wednesday, January 14, 2004. -// Copyright 2008 Divisible by Zero. -// - -#ifdef __OBJC__ - #import -#endif diff --git a/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPCConnection.h b/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPCConnection.h deleted file mode 100644 index ddd50259b..000000000 --- a/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPCConnection.h +++ /dev/null @@ -1,73 +0,0 @@ -// -// Copyright 2008 Eric Czarny -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -// IN THE SOFTWARE. -// - -// -// Cocoa XML-RPC Framework -// XMLRPCConnection.h -// -// Created by Eric Czarny on Thursday, January 15, 2004. -// Copyright 2008 Divisible by Zero. -// - -#import - -@class XMLRPCRequest, XMLRPCResponse; - -/* XML-RPC Connection Notifications */ -extern NSString *XMLRPCSentRequestNotification; -extern NSString *XMLRPCRequestFailedNotification; -extern NSString *XMLRPCReceivedAuthenticationChallengeNotification; -extern NSString *XMLRPCCancelledAuthenticationChallengeNotification; -extern NSString *XMLRPCReceivedResponseNotification; - -@interface XMLRPCConnection : NSObject { - NSURLConnection *currentConnection; - NSString *currentXMLRPCMethod; - NSMutableData *incomingXMLData; - id applicationDelegate; -} - -- (id)initWithXMLRPCRequest: (XMLRPCRequest *)request delegate: (id)delegate; - -#pragma mark - - -+ (XMLRPCResponse *)sendSynchronousXMLRPCRequest: (XMLRPCRequest *)request; - -#pragma mark - - -- (void)cancel; - -@end - -#pragma mark - - -@interface NSObject (XMLRPCConnectionDelegate) - -- (void)connection: (XMLRPCConnection *)connection didReceiveResponse: (XMLRPCResponse *)response forMethod: (NSString *)method; - -- (void)connection: (XMLRPCConnection *)connection didFailWithError: (NSError *)error forMethod: (NSString *)method; - -- (void)connection: (XMLRPCConnection *)connection didReceiveAuthenticationChallenge: (NSURLAuthenticationChallenge *)challenge forMethod: (NSString *)method; - -- (void)connection: (XMLRPCConnection *)connection didCancelAuthenticationChallenge: (NSURLAuthenticationChallenge *)challenge forMethod: (NSString *)method; - -@end diff --git a/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPCConnection.m b/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPCConnection.m deleted file mode 100644 index cb0b9afa5..000000000 --- a/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPCConnection.m +++ /dev/null @@ -1,189 +0,0 @@ -// -// Copyright 2008 Eric Czarny -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -// IN THE SOFTWARE. -// - -// -// Cocoa XML-RPC Framework -// XMLRPCConnection.m -// -// Created by Eric Czarny on Thursday, January 15, 2004. -// Copyright 2008 Divisible by Zero. -// - -#import "XMLRPCConnection.h" -#import "XMLRPCRequest.h" -#import "XMLRPCResponse.h" - -NSString *XMLRPCSentRequestNotification = @"XML-RPC Sent Request"; -NSString *XMLRPCRequestFailedNotification = @"XML-RPC Failed Receiving Response"; -NSString *XMLRPCReceivedAuthenticationChallengeNotification = @"XML-RPC Received Authentication Challenge"; -NSString *XMLRPCCancelledAuthenticationChallengeNotification = @"XML-RPC Cancelled Authentication Challenge"; -NSString *XMLRPCReceivedResponseNotification = @"XML-RPC Successfully Received Response"; - -@interface XMLRPCConnection (XMLRPCConnectionPrivate) - -- (void)connection: (NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response; - -- (void)connection: (NSURLConnection *)connection didReceiveData: (NSData *)data; - -- (void)connection: (NSURLConnection *)connection didFailWithError: (NSError *)error; - -- (void)connection: (NSURLConnection *)connection didReceiveAuthenticationChallenge: (NSURLAuthenticationChallenge *)challenge; - -- (void)connection: (NSURLConnection *)connection didCancelAuthenticationChallenge: (NSURLAuthenticationChallenge *)challenge; - -- (void)connectionDidFinishLoading: (NSURLConnection *)connection; - -@end - -#pragma mark - - -@implementation XMLRPCConnection - -- (id)initWithXMLRPCRequest: (XMLRPCRequest *)request delegate: (id)delegate { - if (self = [super init]) { - [request retain]; - incomingXMLData = [[NSMutableData alloc] init]; - currentConnection = [[NSURLConnection alloc] initWithRequest: [request request] delegate: self]; - - applicationDelegate = delegate; - - if (currentConnection != nil) { - currentXMLRPCMethod = [[NSString alloc] initWithString: [request method]]; - - [request release]; - - [[NSNotificationCenter defaultCenter] postNotificationName: XMLRPCSentRequestNotification object: nil]; - } else { - if ([applicationDelegate respondsToSelector: @selector(connection:didFailWithError:forMethod:)]) { - [applicationDelegate connection: self didFailWithError: nil forMethod: [request method]]; - } - - [request release]; - - return nil; - } - } - - return self; -} - -#pragma mark - - -+ (XMLRPCResponse *)sendSynchronousXMLRPCRequest: (XMLRPCRequest *)request { - NSData *data = [[[NSURLConnection sendSynchronousRequest: [request request] - returningResponse: nil error: nil] retain] autorelease]; - - [request release]; - - if (data != nil) { - return [[[XMLRPCResponse alloc] initWithData: data] autorelease]; - } - - return nil; -} - -#pragma mark - - -- (void)cancel { - [currentConnection cancel]; - - [currentConnection release]; -} - -#pragma mark - - -- (void)dealloc { - [currentXMLRPCMethod release]; - [incomingXMLData release]; - NSLog(@"XMLRPCConnection being released"); - [super dealloc]; -} - -@end - -#pragma mark - - -@implementation XMLRPCConnection (XMLRPCConnectionPrivate) - -- (void)connection: (NSURLConnection *)connection didReceiveResponse: (NSURLResponse *)response { - if([response respondsToSelector: @selector(statusCode)]) { - NSInteger statusCode = [(NSHTTPURLResponse *)response statusCode]; - - if(statusCode >= 400) { - [connection cancel]; - - if ([applicationDelegate respondsToSelector: @selector(connection:didFailWithError:forMethod:)]) { - NSError *error = [NSError errorWithDomain: NSCocoaErrorDomain code: statusCode userInfo: nil]; - - [applicationDelegate connection: self didFailWithError: error forMethod: currentXMLRPCMethod]; - } - - [connection release]; - } - } - - [incomingXMLData setLength: 0]; -} - -- (void)connection: (NSURLConnection *)connection didReceiveData: (NSData *)data { - [incomingXMLData appendData: data]; -} - -- (void)connection: (NSURLConnection *)connection didFailWithError: (NSError *)error { - if ([applicationDelegate respondsToSelector: @selector(connection:didFailWithError:forMethod:)]) { - [applicationDelegate connection: self didFailWithError: error forMethod: currentXMLRPCMethod]; - } - - [[NSNotificationCenter defaultCenter] postNotificationName: XMLRPCRequestFailedNotification object: nil]; - - [connection release]; -} - -- (void)connection: (NSURLConnection *)connection didReceiveAuthenticationChallenge: (NSURLAuthenticationChallenge *)challenge { - if ([applicationDelegate respondsToSelector: @selector(connection:didReceiveAuthenticationChallenge:forMethod:)]) { - [applicationDelegate connection: self didReceiveAuthenticationChallenge: challenge forMethod: currentXMLRPCMethod]; - } - - [[NSNotificationCenter defaultCenter] postNotificationName: XMLRPCReceivedAuthenticationChallengeNotification object: nil]; -} - -- (void)connection: (NSURLConnection *)connection didCancelAuthenticationChallenge: (NSURLAuthenticationChallenge *)challenge { - if ([applicationDelegate respondsToSelector: @selector(connection:didCancelAuthenticationChallenge:forMethod:)]) { - [applicationDelegate connection: self didCancelAuthenticationChallenge: challenge forMethod: currentXMLRPCMethod]; - } - - [[NSNotificationCenter defaultCenter] postNotificationName: XMLRPCCancelledAuthenticationChallengeNotification object: nil]; -} - -- (void)connectionDidFinishLoading: (NSURLConnection *)connection { - XMLRPCResponse *response = [[XMLRPCResponse alloc] initWithData: incomingXMLData]; - - if ([applicationDelegate respondsToSelector: @selector(connection:didReceiveResponse:forMethod:)]) { - [applicationDelegate connection: self didReceiveResponse: response forMethod: currentXMLRPCMethod]; - } - - [[NSNotificationCenter defaultCenter] postNotificationName: XMLRPCReceivedResponseNotification object: nil]; - - [connection release]; -} - -@end diff --git a/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPCDecoder.h b/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPCDecoder.h deleted file mode 100644 index 4b42e9b23..000000000 --- a/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPCDecoder.h +++ /dev/null @@ -1,48 +0,0 @@ -// -// Copyright 2008 Eric Czarny -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -// IN THE SOFTWARE. -// - -// -// Cocoa XML-RPC Framework -// XMLRPCDecoder.h -// -// Created by Eric Czarny on Wednesday, January 14, 2004. -// Copyright 2008 Divisible by Zero. -// - -#import - -@interface XMLRPCDecoder : NSObject { - NSXMLDocument *responseXMLDocument; - BOOL isFault; -} - -- (id)initWithData: (NSData *)data; - -#pragma mark - - -- (id)decode; - -#pragma mark - - -- (BOOL)isFault; - -@end diff --git a/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPCDecoder.m b/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPCDecoder.m deleted file mode 100644 index a4d68a9e0..000000000 --- a/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPCDecoder.m +++ /dev/null @@ -1,305 +0,0 @@ -// -// Copyright 2008 Eric Czarny -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -// IN THE SOFTWARE. -// - -// -// Cocoa XML-RPC Framework -// XMLRPCDecoder.m -// -// Created by Eric Czarny on Wednesday, January 14, 2004. -// Copyright 2008 Divisible by Zero. -// - -#import "XMLRPCDecoder.h" -#import "NSDataAdditions.h" - -@interface XMLRPCDecoder (XMLRPCDecoderPrivate) - -- (NSXMLElement *)getChildFromElement: (NSXMLElement *)element withName: (NSString *)name; - -#pragma mark - - -- (id)decodeObject: (NSXMLElement *)element; - -- (id)trueDecodeObject: (NSXMLElement *)element; - -#pragma mark - - -- (NSArray *)decodeArray: (NSXMLElement *)element; - -#pragma mark - - -- (NSDictionary *)decodeDictionary: (NSXMLElement *)element; - -#pragma mark - - -- (NSNumber *)decodeNumber: (NSXMLElement *)element isDouble: (BOOL)flag; - -- (CFBooleanRef)decodeBool: (NSXMLElement *)element; - -- (NSString *)decodeString: (NSXMLElement *)element; - -- (NSDate *)decodeDate: (NSXMLElement *)element; - -- (NSData *)decodeData: (NSXMLElement *)element; - -@end - -#pragma mark - - -@implementation XMLRPCDecoder - -- (id)initWithData: (NSData *)data { - if (data == nil) { - return nil; - } - - if (self = [super init]) { - NSError *error = nil; - responseXMLDocument = [[NSXMLDocument alloc] initWithData: data options: NSXMLDocumentTidyXML error: &error]; - - if (responseXMLDocument == nil) { - if (error) { - NSLog(@"Encountered an XML error: %@", error); - } - - return nil; - } - - if (error) { - NSLog(@"Encountered an XML error: %@", error); - - return nil; - } - } - - return self; -} - -#pragma mark - - -- (id)decode { - NSXMLElement *child, *root = [responseXMLDocument rootElement]; - - if (root == nil) { - return nil; - } - - child = [self getChildFromElement: root withName: @"params"]; - - if (child != nil) { - child = [self getChildFromElement: child withName: @"param"]; - - if (child == nil) { - return nil; - } - - child = [self getChildFromElement: child withName: @"value"]; - - if (child == nil) { - return nil; - } - } else { - child = [self getChildFromElement: root withName: @"fault"]; - - if (child == nil) { - return nil; - } - - child = [self getChildFromElement: child withName: @"value"]; - - if (child == nil) { - return nil; - } - - isFault = YES; - } - - return [self decodeObject: child]; -} - -#pragma mark - - -- (BOOL)isFault { - return isFault; -} - -#pragma mark - - -- (void)dealloc { - [responseXMLDocument release]; - - [super dealloc]; -} - -@end - -#pragma mark - - -@implementation XMLRPCDecoder (XMLRPCDecoderPrivate) - -- (NSXMLElement *)getChildFromElement: (NSXMLElement *)element withName: (NSString *)name { - NSArray *children = [element elementsForName: name]; - - if ([children count] > 0) { - return [children objectAtIndex: 0]; - } - - return nil; -} - -#pragma mark - - -- (id)decodeObject: (NSXMLElement *)element { - NSXMLElement *child = (NSXMLElement *)[element childAtIndex: 0]; - - if (child != nil) { - return [self trueDecodeObject: child]; - } - - return nil; -} - -- (id)trueDecodeObject: (NSXMLElement *)element { - NSString *name = [element name]; - - if ([name isEqualToString: @"array"]) { - return [self decodeArray: element]; - } else if ([name isEqualToString: @"struct"]) { - return [self decodeDictionary: element]; - } else if ([name isEqualToString: @"int"] || [name isEqualToString: @"i4"]) { - return [self decodeNumber: element isDouble: NO]; - } else if ([name isEqualToString: @"double"]) { - return [self decodeNumber: element isDouble: YES]; - } else if ([name isEqualToString: @"boolean"]) { - return (id)[self decodeBool: element]; - } else if ([name isEqualToString: @"string"]) { - return [self decodeString: element]; - } else if ([name isEqualToString: @"dateTime.iso8601"]) { - return [self decodeDate: element]; - } else if ([name isEqualToString: @"base64"]) { - return [self decodeData: element]; - } else { - return [self decodeString: element]; - } - - return nil; -} - -#pragma mark - - -- (NSArray *)decodeArray: (NSXMLElement *)element { - NSXMLElement *parent = [self getChildFromElement: element withName: @"data"]; - NSMutableArray *array = [NSMutableArray array]; - NSInteger index; - - if (parent == nil) { - return nil; - } - - for (index = 0; index < [parent childCount]; index++) { - NSXMLElement *child = (NSXMLElement *)[parent childAtIndex: index]; - - if (![[child name] isEqualToString: @"value"]) { - continue; - } - - id value = [self decodeObject: child]; - - if (value != nil) { - [array addObject: value]; - } - } - - return (NSArray *)array; -} - -#pragma mark - - -- (NSDictionary *)decodeDictionary: (NSXMLElement *)element { - NSMutableDictionary *dictionary = [NSMutableDictionary dictionary]; - NSInteger index; - - for (index = 0; index < [element childCount]; index++) { - NSXMLElement *child, *parent = (NSXMLElement *)[element childAtIndex: index]; - - if (![[parent name] isEqualToString: @"member"]) { - continue; - } - - child = [self getChildFromElement: parent withName: @"name"]; - - if (child == nil) { - continue; - } - - NSString *key = [child stringValue]; - - child = [self getChildFromElement: parent withName: @"value"]; - - if (child == nil) { - continue; - } - - id object = [self decodeObject: child]; - - if ((object != nil) && (key != nil) && ![key isEqualToString: @""]) { - [dictionary setObject: object forKey: key]; - } - } - - return (NSDictionary *)dictionary; -} - -#pragma mark - - -- (NSNumber *)decodeNumber: (NSXMLElement *)element isDouble: (BOOL)flag { - if (flag) { - return [NSNumber numberWithDouble: [[element stringValue] intValue]]; - } - - return [NSNumber numberWithInt: [[element stringValue] intValue]]; -} - -- (CFBooleanRef)decodeBool: (NSXMLElement *)element { - if ([[element stringValue] isEqualToString: @"1"]) { - return kCFBooleanTrue; - } - - return kCFBooleanFalse; -} - -- (NSString *)decodeString: (NSXMLElement *)element { - return [element stringValue]; -} - -- (NSDate *)decodeDate: (NSXMLElement *)element { - NSCalendarDate *date = [NSCalendarDate dateWithString: [element stringValue] - calendarFormat: @"%Y%m%dT%H:%M:%S" locale: nil]; - - return date; -} - -- (NSData *)decodeData: (NSXMLElement *)element { - return [NSData base64DataFromString: [element stringValue]]; -} - -@end diff --git a/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPCEncoder.h b/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPCEncoder.h deleted file mode 100644 index d57af24cd..000000000 --- a/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPCEncoder.h +++ /dev/null @@ -1,53 +0,0 @@ -// -// Copyright 2008 Eric Czarny -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -// IN THE SOFTWARE. -// - -// -// Cocoa XML-RPC Framework -// XMLRPCEncoder.h -// -// Created by Eric Czarny on Wednesday, January 14, 2004. -// Copyright 2008 Divisible by Zero. -// - -#import - -@interface XMLRPCEncoder : NSObject { - NSString *currentXMLRPCMethod, *encoderSourceXML; - NSArray *currentXMLRPCParameters; -} - -- (NSString *)encode; - -#pragma mark - - -- (void)setMethod: (NSString *)method withParameters: (NSArray *)parameters; - -#pragma mark - - -- (NSString *)method; -- (NSArray *)parameters; - -#pragma mark - - -- (NSString *)encoderSourceXML; - -@end diff --git a/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPCEncoder.m b/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPCEncoder.m deleted file mode 100644 index d3b072792..000000000 --- a/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPCEncoder.m +++ /dev/null @@ -1,285 +0,0 @@ -// -// Copyright 2008 Eric Czarny -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -// IN THE SOFTWARE. -// - -// -// Cocoa XML-RPC Framework -// XMLRPCEncoder.m -// -// Created by Eric Czarny on Wednesday, January 14, 2004. -// Copyright 2008 Divisible by Zero. -// - -#import "XMLRPCEncoder.h" -#import "NSStringAdditions.h" - -@interface XMLRPCEncoder (XMLRPCEncoderPrivate) - -- (NSString *)valueTag: (NSString *)tag value: (NSString *)value; - -#pragma mark - - -- (NSString *)replaceTarget: (NSString *)target withValue: (NSString *)value inString: (NSString *)string; - -- (NSString *)escapeValue: (NSString *)value; - -#pragma mark - - -- (NSString *)encodeObject: (id)object; - -#pragma mark - - -- (NSString *)encodeArray: (NSArray *)array; - -- (NSString *)encodeDictionary: (NSDictionary *)dictionary; - -#pragma mark - - -- (NSString *)encodeBoolean: (CFBooleanRef)boolean; - -- (NSString *)encodeNumber: (NSNumber *)number; - -- (NSString *)encodeString: (NSString *)string; - -- (NSString *)encodeDate: (NSDate *)date; - -- (NSString *)encodeData: (NSData *)data; - -@end - -#pragma mark - - -@implementation XMLRPCEncoder - -- (id)init { - if (self = [super init]) { - currentXMLRPCMethod = [[NSString alloc] init]; - encoderSourceXML = [[NSString alloc] init]; - currentXMLRPCParameters = [[NSArray alloc] init]; - } - - return self; -} - -#pragma mark - - -- (NSString *)encode { - NSMutableString *buffer = [NSMutableString stringWithString: @""]; - - [buffer appendFormat: @"%@", currentXMLRPCMethod]; - - [buffer appendString: @""]; - - if (currentXMLRPCParameters != nil) { - NSEnumerator *enumerator = [currentXMLRPCParameters objectEnumerator]; - id parameter = nil; - - while (parameter = [enumerator nextObject]) { - [buffer appendString: @""]; - [buffer appendString: [self encodeObject: parameter]]; - [buffer appendString: @""]; - } - } - - [buffer appendString: @""]; - - [buffer appendString: @""]; - - return buffer; -} - -#pragma mark - - -- (void)setMethod: (NSString *)method withParameters: (NSArray *)parameters { - if (currentXMLRPCMethod != nil) { - [currentXMLRPCMethod release]; - } - - if (method == nil) { - currentXMLRPCMethod = nil; - } else { - currentXMLRPCMethod = [method retain]; - } - - if (currentXMLRPCParameters != nil) { - [currentXMLRPCParameters release]; - } - - if (parameters == nil) { - currentXMLRPCParameters = nil; - } else { - currentXMLRPCParameters = [parameters retain]; - } -} - -#pragma mark - - -- (NSString *)method { - return currentXMLRPCMethod; -} - -- (NSArray *)parameters { - return currentXMLRPCParameters; -} - -#pragma mark - - -- (NSString *)encoderSourceXML { - if (encoderSourceXML != nil) { - [encoderSourceXML release]; - } - - encoderSourceXML = [[self encode] retain]; - - return encoderSourceXML; -} - -#pragma mark - - -- (void)dealloc { - [currentXMLRPCMethod release]; - [encoderSourceXML release]; - [currentXMLRPCParameters release]; - - [super dealloc]; -} - -@end - -#pragma mark - - -@implementation XMLRPCEncoder (XMLRPCEncoderPrivate) - -- (NSString *)valueTag: (NSString *)tag value: (NSString *)value { - return [NSString stringWithFormat: @"<%@>%@", tag, [self escapeValue: value], tag]; -} - -#pragma mark - - -- (NSString *)replaceTarget: (NSString *)target withValue: (NSString *)value inString: (NSString *)string { - return [[string componentsSeparatedByString: target] componentsJoinedByString: value]; -} - -- (NSString *)escapeValue: (NSString *)value { - value = [self replaceTarget: @"&" withValue: @"&" inString: value]; - value = [self replaceTarget: @"<" withValue: @"<" inString: value]; - - return value; -} - -#pragma mark - - -- (NSString *)encodeObject: (id)object { - if (object == nil) { - return nil; - } - - if ([object isKindOfClass: [NSArray class]]) { - return [self encodeArray: object]; - } else if ([object isKindOfClass: [NSDictionary class]]) { - return [self encodeDictionary: object]; - } else if (((CFBooleanRef)object == kCFBooleanTrue) || ((CFBooleanRef)object == kCFBooleanFalse)) { - return [self encodeBoolean: (CFBooleanRef)object]; - } else if ([object isKindOfClass: [NSNumber class]]) { - return [self encodeNumber: object]; - } else if ([object isKindOfClass: [NSString class]]) { - return [self encodeString: object]; - } else if ([object isKindOfClass: [NSDate class]]) { - return [self encodeDate: object]; - } else if ([object isKindOfClass: [NSData class]]) { - return [self encodeData: object]; - } else { - return [self encodeString: object]; - } -} - -#pragma mark - - -- (NSString *)encodeArray: (NSArray *)array { - NSMutableString *buffer = [NSMutableString string]; - NSEnumerator *enumerator = [array objectEnumerator]; - - [buffer appendString: @""]; - - id object = nil; - - while (object = [enumerator nextObject]) { - [buffer appendString: [self encodeObject: object]]; - } - - [buffer appendString: @""]; - - return (NSString *)buffer; -} - -- (NSString *)encodeDictionary: (NSDictionary *)dictionary { - NSMutableString * buffer = [NSMutableString string]; - NSEnumerator *enumerator = [dictionary keyEnumerator]; - - [buffer appendString: @""]; - - NSString *key = nil; - - while (key = [enumerator nextObject]) { - [buffer appendString: @""]; - [buffer appendFormat: @"%@", key]; - [buffer appendString: [self encodeObject: [dictionary objectForKey: key]]]; - [buffer appendString: @""]; - } - - [buffer appendString: @""]; - - return (NSString *)buffer; -} - -#pragma mark - - -- (NSString *)encodeBoolean: (CFBooleanRef)boolean { - if (boolean == kCFBooleanTrue) { - return [self valueTag: @"boolean" value: @"1"]; - } else { - return [self valueTag: @"boolean" value: @"0"]; - } -} - -- (NSString *)encodeNumber: (NSNumber *)number { - return [self valueTag: @"i4" value: [number stringValue]]; -} - -- (NSString *)encodeString: (NSString *)string { - return [self valueTag: @"string" value: string]; -} - -- (NSString *)encodeDate: (NSDate *)date { - NSString *buffer = [date descriptionWithCalendarFormat: @"%Y%m%dT%H:%M:%S" - timeZone: nil locale: nil]; - - return [self valueTag: @"dateTime.iso8601" value: buffer]; -} - -- (NSString *)encodeData: (NSData *)data { - NSString *buffer = [NSString base64StringFromData: data - length: [data length]]; - - return [self valueTag: @"base64" value: buffer]; -} - -@end diff --git a/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPCRequest.h b/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPCRequest.h deleted file mode 100644 index 3b0af918d..000000000 --- a/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPCRequest.h +++ /dev/null @@ -1,73 +0,0 @@ -// -// Copyright 2008 Eric Czarny -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -// IN THE SOFTWARE. -// - -// -// Cocoa XML-RPC Framework -// XMLRPCRequest.h -// -// Created by Eric Czarny on Wednesday, January 14, 2004. -// Copyright 2008 Divisible by Zero. -// - -#import - -@class XMLRPCEncoder; - -@interface XMLRPCRequest : NSObject { - NSMutableURLRequest *mutableRequest; - XMLRPCEncoder *requestXMLEncoder; -} - -- (id)initWithHost: (NSURL *)host; - -#pragma mark - - -- (void)setHost: (NSURL *)host; -- (NSURL *)host; - -#pragma mark - - -- (void)setUserAgent: (NSString *)userAgent; -- (NSString *)userAgent; - -#pragma mark - - -- (void)setMethod: (NSString *)method; - -- (void)setMethod: (NSString *)method withParameter: (id)parameter; - -- (void)setMethod: (NSString *)method withParameters: (NSArray *)parameters; - -#pragma mark - - -- (NSString *)method; -- (NSArray *)parameters; - -#pragma mark - - -- (NSString *)requestSourceXML; - -#pragma mark - - -- (NSURLRequest *)request; - -@end diff --git a/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPCRequest.m b/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPCRequest.m deleted file mode 100644 index b0208c80a..000000000 --- a/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPCRequest.m +++ /dev/null @@ -1,142 +0,0 @@ -// -// Copyright 2008 Eric Czarny -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -// IN THE SOFTWARE. -// - -// -// Cocoa XML-RPC Framework -// XMLRPCRequest.m -// -// Created by Eric Czarny on Wednesday, January 14, 2004. -// Copyright 2008 Divisible by Zero. -// - -#import "XMLRPCRequest.h" -#import "XMLRPCEncoder.h" - -@implementation XMLRPCRequest - -- (id)initWithHost: (NSURL *)host { - if (self = [super init]) { - if (host != nil) { - mutableRequest = [[NSMutableURLRequest alloc] initWithURL: host]; - } else { - mutableRequest = [[NSMutableURLRequest alloc] init]; - } - - requestXMLEncoder = [[XMLRPCEncoder alloc] init]; - } - - return self; -} - -#pragma mark - - -- (void)setHost: (NSURL *)host { - [mutableRequest setURL: host]; -} - -- (NSURL *)host { - return [mutableRequest URL]; -} - -#pragma mark - - -- (void)setUserAgent: (NSString *)userAgent { - if ([self userAgent] == nil) { - [mutableRequest addValue: userAgent forHTTPHeaderField: @"User-Agent"]; - } else { - [mutableRequest setValue: userAgent forHTTPHeaderField: @"User-Agent"]; - } -} - -- (NSString *)userAgent { - return [mutableRequest valueForHTTPHeaderField: @"User-Agent"]; -} - -#pragma mark - - -- (void)setMethod: (NSString *)method { - [requestXMLEncoder setMethod: method withParameters: nil]; -} - -- (void)setMethod: (NSString *)method withParameter: (id)parameter { - [requestXMLEncoder setMethod: method withParameters: [NSArray arrayWithObject: parameter]]; -} - -- (void)setMethod: (NSString *)method withParameters: (NSArray *)parameters { - [requestXMLEncoder setMethod: method withParameters: parameters]; -} - -#pragma mark - - -- (NSString *)method { - return [requestXMLEncoder method]; -} - -- (NSArray *)parameters { - return [requestXMLEncoder parameters]; -} - -#pragma mark - - -- (NSString *)requestSourceXML { - return [requestXMLEncoder encoderSourceXML]; -} - -#pragma mark - - -- (NSURLRequest *)request { - NSData *request = [[requestXMLEncoder encode] dataUsingEncoding: NSUTF8StringEncoding]; - NSNumber *contentLength = [NSNumber numberWithInt: [request length]]; - - if (request == nil) { - return nil; - } - - [mutableRequest setHTTPMethod: @"POST"]; - - if ([mutableRequest valueForHTTPHeaderField: @"Content-Length"] == nil) { - [mutableRequest addValue: @"text/xml" forHTTPHeaderField: @"Content-Type"]; - } else { - [mutableRequest setValue: @"text/xml" forHTTPHeaderField: @"Content-Type"]; - } - - if ([mutableRequest valueForHTTPHeaderField: @"Content-Length"] == nil) { - [mutableRequest addValue: [contentLength stringValue] forHTTPHeaderField: @"Content-Length"]; - } else { - [mutableRequest setValue: [contentLength stringValue] forHTTPHeaderField: @"Content-Length"]; - } - - [mutableRequest setHTTPBody: request]; - - return (NSURLRequest *)mutableRequest; -} - -#pragma mark - - -- (void)dealloc { - [mutableRequest release]; - [requestXMLEncoder release]; - - [super dealloc]; -} - -@end diff --git a/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPCResponse.h b/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPCResponse.h deleted file mode 100644 index 71577c280..000000000 --- a/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPCResponse.h +++ /dev/null @@ -1,60 +0,0 @@ -// -// Copyright 2008 Eric Czarny -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -// IN THE SOFTWARE. -// - -// -// Cocoa XML-RPC Framework -// XMLRPCResponse.h -// -// Created by Eric Czarny on Wednesday, January 14, 2004. -// Copyright 2008 Divisible by Zero. -// - -#import - -@class XMLRPCDecoder; - -@interface XMLRPCResponse : NSObject { - NSData *responseXMLData; - NSString *responseSourceXML; - id responseObject; - BOOL isFault; -} - -- (id)initWithData: (NSData *)data; - -#pragma mark - - -- (BOOL)isFault; - -- (NSNumber *)faultCode; - -- (NSString *)faultString; - -#pragma mark - - -- (id)responseObject; - -#pragma mark - - -- (NSString *)responseSourceXML; - -@end diff --git a/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPCResponse.m b/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPCResponse.m deleted file mode 100644 index 8ef331e12..000000000 --- a/iPhoto2Ansel/xmlrpc-1.5.1/XMLRPCResponse.m +++ /dev/null @@ -1,105 +0,0 @@ -// -// Copyright 2008 Eric Czarny -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to -// deal in the Software without restriction, including without limitation the -// rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -// IN THE SOFTWARE. -// - -// -// Cocoa XML-RPC Framework -// XMLRPCResponse.m -// -// Created by Eric Czarny on Wednesday, January 14, 2004. -// Copyright 2008 Divisible by Zero. -// - -#import "XMLRPCResponse.h" -#import "XMLRPCDecoder.h" - -@implementation XMLRPCResponse - -- (id)initWithData: (NSData *)data -{ - if (data == nil) { - return nil; - } - - if (self = [super init]) { - XMLRPCDecoder *responseXMLDecoder =[[XMLRPCDecoder alloc] initWithData: data]; - - if (responseXMLDecoder == nil) { - return nil; - } - - responseXMLData = [[NSData alloc] initWithData: data]; - responseSourceXML = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding]; - responseObject = [[responseXMLDecoder decode] retain]; - - isFault = [responseXMLDecoder isFault]; - - [responseXMLDecoder release]; - } - - return self; -} - -#pragma mark - - -- (BOOL)isFault { - return isFault; -} - -- (NSNumber *)faultCode { - if (isFault) { - return [responseObject objectForKey: @"faultCode"]; - } - - return nil; -} - -- (NSString *)faultString { - if (isFault) { - return [responseObject objectForKey: @"faultString"]; - } - - return nil; -} - -#pragma mark - - -- (id)responseObject { - return responseObject; -} - -#pragma mark - - -- (NSString *)responseSourceXML { - return responseSourceXML; -} - -#pragma mark - - -- (void)dealloc { - [responseXMLData release]; - [responseSourceXML release]; - [responseObject release]; - - [super dealloc]; -} - -@end