From 4c6d0a72c2d269b2dd78f31712cb91922248edcb Mon Sep 17 00:00:00 2001 From: "Michael J. Rubinsky" Date: Fri, 8 May 2009 16:55:32 -0400 Subject: [PATCH] Start adding support for browsing each remote gallery's thumbnails from within the export interface. Basically works, but needs tweaking. --- iPhoto2Ansel/AnselExportController.h | 14 + iPhoto2Ansel/AnselExportController.m | 41 + iPhoto2Ansel/AnselGalleryViewItem.h | 28 + iPhoto2Ansel/AnselGalleryViewItem.m | 44 + .../English.lproj/Panel.nib/designable.nib | 2813 +++++++++++--------- .../English.lproj/Panel.nib/keyedobjects.nib | Bin 25580 -> 32094 bytes iPhoto2Ansel/TURAnsel.m | 3 - iPhoto2Ansel/TURAnselGallery.h | 4 +- iPhoto2Ansel/TURAnselGallery.m | 28 + .../iPhoto2Ansel.xcodeproj/project.pbxproj | 14 + 10 files changed, 1730 insertions(+), 1259 deletions(-) create mode 100644 iPhoto2Ansel/AnselGalleryViewItem.h create mode 100644 iPhoto2Ansel/AnselGalleryViewItem.m diff --git a/iPhoto2Ansel/AnselExportController.h b/iPhoto2Ansel/AnselExportController.h index 14c885225..9b3321efe 100644 --- a/iPhoto2Ansel/AnselExportController.h +++ b/iPhoto2Ansel/AnselExportController.h @@ -7,6 +7,7 @@ // #import +#import #import "ExportPluginProtocol.h" @class TURAnsel, TURAnselGallery; @@ -43,6 +44,14 @@ extern NSString * const TURAnselServerPasswordKey; IBOutlet NSPopUpButton *mServersPopUp; IBOutlet NSButton *mCancelConnect; + // Gallery View + IBOutlet NSButton *viewGallery; + IBOutlet NSWindow *mviewGallerySheet; + IBOutlet NSButton *closeGalleryView; + IBOutlet IKImageBrowserView *browserView; + NSMutableArray *browserData; + + // New Server sheet IBOutlet NSWindow *newServerSheet; IBOutlet NSTextField *mServerSheetHostURL; @@ -50,6 +59,7 @@ extern NSString * const TURAnselServerPasswordKey; IBOutlet NSSecureTextField *mServerSheetPassword; IBOutlet NSTextField *mServerSheetServerNickName; IBOutlet NSButton *mMakeNewServerDefault; + // Server list IBOutlet NSPanel *serverListPanel; @@ -77,6 +87,7 @@ extern NSString * const TURAnselServerPasswordKey; // 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; @@ -91,6 +102,9 @@ extern NSString * const TURAnselServerPasswordKey; - (IBAction) clickServer: (id)sender; - (IBAction) clickCancelConnect: (id)sender; +- (IBAction) clickViewGallery: (id)sender; +- (IBAction) closeGalleryView: (id)sender; + // Server List - (IBAction) closeServerList: (id)sender; - (IBAction) removeServer: (id)sender; diff --git a/iPhoto2Ansel/AnselExportController.m b/iPhoto2Ansel/AnselExportController.m index 3dc633c1a..bb0125d7a 100644 --- a/iPhoto2Ansel/AnselExportController.m +++ b/iPhoto2Ansel/AnselExportController.m @@ -11,6 +11,7 @@ #import "TURAnselGalleryPanelController.h"; #import "FBProgressController.h"; #import "ImageResizer.h"; +#import "AnselGalleryViewItem.h"; @interface AnselExportController (PrivateAPI) - (void)showNewServerSheet; @@ -88,6 +89,7 @@ NSString * const TURAnselServerPasswordKey = @"password"; [progressController release]; [anselServers release]; [currentServer release]; + [browserData release]; [super dealloc]; } @@ -97,6 +99,31 @@ NSString * const TURAnselServerPasswordKey = @"password"; } #pragma mark Actions +- (IBAction)clickViewGallery: (id)sender +{ + [NSApp beginSheet: mviewGallerySheet + modalForWindow: [self window] + modalDelegate: nil + didEndSelector: nil + contextInfo: nil]; + + NSMutableArray *images = [currentGallery listImages]; + NSLog(@"%@", images); + browserData = [[NSMutableArray alloc] init]; + for (NSDictionary *image in images) { + AnselGalleryViewItem *item = [[AnselGalleryViewItem alloc] initWithURL: [NSURL URLWithString: [image objectForKey:@"url"]]]; + [browserData addObject: item]; + } + + [browserView reloadData]; +} + +- (IBAction) closeGalleryView: (id)sender +{ + [NSApp endSheet: mviewGallerySheet]; + [mviewGallerySheet orderOut: nil]; +} + // Put up the newGallerySheet NSPanel - (IBAction)showNewGallery: (id)sender { @@ -737,4 +764,18 @@ objectValueForTableColumn:(NSTableColumn *)aTableColumn { return [[anselServers objectAtIndex: rowIndex] objectForKey: [aTableColumn identifier]]; } + +#pragma mark +#pragma mark IKImageBrowserView Datasource methods +- (NSUInteger)numberOfItemsInImageBrowser:(IKImageBrowserView *) aBrowser +{ + //NSLog(@"%@", [browserData count]); + return [browserData count]; +} + +- (id)imageBrowser:(IKImageBrowserView *) aBrowser itemAtIndex:(NSUInteger)index +{ + // NSLog(@"%@", [[browserData objectAtIndex:index] path]); + return [browserData objectAtIndex:index]; +} @end \ No newline at end of file diff --git a/iPhoto2Ansel/AnselGalleryViewItem.h b/iPhoto2Ansel/AnselGalleryViewItem.h new file mode 100644 index 000000000..29729a9ff --- /dev/null +++ b/iPhoto2Ansel/AnselGalleryViewItem.h @@ -0,0 +1,28 @@ +// +// 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; +} + +@property(readwrite,copy) NSURL * image; +@property(readwrite,copy) NSString * imageID; + +- (id)initWithURL: (NSURL *)theUrl; + +#pragma mark - +#pragma mark Required Methods IKImageBrowserItem Informal Protocol +- (NSString *) imageUID; +- (NSString *) imageRepresentationType; +- (id) imageRepresentation; + +@end diff --git a/iPhoto2Ansel/AnselGalleryViewItem.m b/iPhoto2Ansel/AnselGalleryViewItem.m new file mode 100644 index 000000000..b5bde8a97 --- /dev/null +++ b/iPhoto2Ansel/AnselGalleryViewItem.m @@ -0,0 +1,44 @@ +// +// AnselGalleryViewItem.m +// iPhoto2Ansel +// +// 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 +{ + [super init]; + image = [theURL retain]; + imageID = [[theURL absoluteString] retain]; + return self; +} + +- (void)dealloc +{ + [image release]; + [imageID release]; + [super dealloc]; +} + +- (NSString *)imageUID +{ + return imageID; +} + +- (NSString *)imageRepresentationType +{ + return IKImageBrowserNSURLRepresentationType; +} + +- (id)imageRepresentation +{ + return image; +} +@end diff --git a/iPhoto2Ansel/English.lproj/Panel.nib/designable.nib b/iPhoto2Ansel/English.lproj/Panel.nib/designable.nib index 95db7426d..971e1811d 100644 --- a/iPhoto2Ansel/English.lproj/Panel.nib/designable.nib +++ b/iPhoto2Ansel/English.lproj/Panel.nib/designable.nib @@ -8,11 +8,12 @@ 353.00 YES - - + + YES + com.apple.imagekit.ibplugin com.apple.InterfaceBuilder.CocoaPlugin @@ -26,657 +27,17 @@ NSApplication - - 15 + + 23 2 - {{220, 358}, {548, 406}} - 1886912512 - - Window - - - NSWindow - - - View - + {{196, 315}, {455, 195}} + -1543503872 + Add Server + NSPanel + {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 - - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2OQA - - - - 6 - System - controlTextColor - - 3 - MAA - - - - - - - 268 - {{76, 66}, {382, 26}} - - YES - - -2076049856 - 2048 - - LucidaGrande - 1.300000e+01 - 1044 - - - 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 - - LucidaGrande - 1.100000e+01 - 3100 - - - - - - - - - 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 - - - 6 - System - textBackgroundColor - - 3 - MQA - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 1 - 0 - 2 - NO - - - - 268 - - YES - - - 256 - - YES - - - 268 - {{135, 144}, {92, 32}} - - YES - - 67239424 - 134479872 - Create New - - - -2038284033 - 129 - - LucidaGrande - 9.000000e+00 - 16 - - - - 200 - 25 - - - - - 268 - {{18, 122}, {211, 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 - {{15, 152}, {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, 38}, {214, 118}} - - YES - - 130560 - 33554432 - 0 - 0 - 1 - NO - - YES - - - - 268 - {{258, 154}, {158, 16}} - - YES - - 68288064 - 272630784 - Gallery Default Image - - - - - - - - - 256 - {{15, 100}, {114, 17}} - - YES - - 67239424 - 272629760 - Image Size: - - - - - - - - - 256 - {{15, 72}, {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 - {{363, 10}, {112, 28}} - - YES - - 604110336 - 134348800 - Choose Default - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{256, 10}, {96, 28}} - - YES - - 604110336 - 134348800 - View Gallery - - - -2038284033 - 129 - - - 200 - 25 - - - - - 12 - {{237, 9}, {5, 161}} - - {0, 0} - - 67239424 - 0 - Box - - - - 3 - MCAwLjgwMDAwMDAxAA - - - 3 - 2 - 0 - NO - - - {{1, 1}, {480, 176}} - - - - {{14, 57}, {482, 192}} - - {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} - - - 23 - 2 - {{196, 315}, {455, 195}} - -1543503872 - Add Server - NSPanel - - {3.40282e+38, 3.40282e+38} - - + + 256 YES @@ -690,15 +51,30 @@ -1804468671 272630784 - + + LucidaGrande + 1.300000e+01 + 1044 + YES - + + 6 + System + textBackgroundColor + + 3 + MQA + + 6 System textColor - + + 3 + MAA + @@ -714,8 +90,21 @@ Path to rpc.php - - + + 6 + System + controlColor + + 3 + MC42NjY2NjY2OQA + + + + 6 + System + controlTextColor + + @@ -824,15 +213,106 @@ 268 - {{345, 12}, {96, 32}} - + {{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 - 134217728 - Save - - + 134348800 + Done + + LucidaGrande + 1.100000e+01 + 3100 + + -2038284033 129 @@ -841,18 +321,220 @@ 25 - - + + 268 - {{244, 12}, {96, 32}} - + + 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 - 134217728 - Cancel - - + 134348800 + Remove + + -2038284033 129 @@ -861,27 +543,20 @@ 25 - - + + 268 - {{18, 18}, {145, 18}} - + {{109, 28}, {123, 28}} + YES - - 67239424 - 0 - Make Default - - - 1211912703 - 130 - - NSImage - NSSwitch - - - NSSwitch - + + 67239424 + 134348800 + Make Default + + + -2038284033 + 129 200 @@ -889,38 +564,37 @@ - {455, 195} - + {679, 358} {{0, 0}, {1920, 1178}} {3.40282e+38, 3.40282e+38} - + 23 2 - {{196, 152}, {679, 358}} + {{196, 240}, {480, 270}} -1543503872 - Servers + Window NSPanel {3.40282e+38, 3.40282e+38} - - + + 256 YES - - + + 268 - {{568, 28}, {96, 28}} - + {{370, 12}, {96, 32}} + YES - + 67239424 - 134348800 - Done - - + 134217728 + Close + + -2038284033 129 @@ -929,242 +603,740 @@ 25 - - - 268 + + + 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 + + + {{15, 52}, {445, 239}} + + NO + NO + NO + NO + YES + NO + NO + 1.000000e+02 + 1.000000e+02 + + + + + {480, 270} + + + {{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 - - - 2304 + + + 256 YES - - - 256 - {626, 247} - - YES - - - 256 - {626, 17} - - + + + 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}} + + - - - 256 - {{627, 0}, {16, 17}} - + {{7, 253}, {482, 110}} + + {0, 0} + + 67239424 + 0 + Connection + + + + 3 + MCAwLjgwMDAwMDAxAA + - + + 1 + 0 + 2 + NO + + + + 268 + YES - - nickname - 1.010000e+02 - 4.000000e+01 - 1.000000e+03 - - 75628032 - 0 - Server Name - - - 3 - MC4zMzMzMzI5OQA + + + 256 + + YES + + + 268 + {{135, 144}, {92, 32}} + + YES + + 67239424 + 134479872 + Create New + + + -2038284033 + 129 + + LucidaGrande + 9.000000e+00 + 16 + + + + 200 + 25 + + + + + 268 + {{18, 122}, {211, 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 + + + + 3 + YES + + + + 3.000000e+00 + 2.000000e+00 + + + 1.900000e+01 + tableViewAction: + -767524864 + + + + 1 + 15 + 0 + YES + + + + + + 268 + {{15, 152}, {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, 38}, {214, 118}} + + YES + + 130560 + 33554432 + 0 + 0 + 1 + NO + + YES + + + + 268 + {{258, 154}, {158, 16}} + + YES + + 68288064 + 272630784 + Gallery Default Image + + + + + + + + + 256 + {{15, 100}, {114, 17}} + + YES + + 67239424 + 272629760 + Image Size: + + + + + + + + + 256 + {{15, 72}, {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 + - - 6 - System - headerTextColor - + + + 268 + {{363, 10}, {112, 28}} + + YES + + 604110336 + 134348800 + Choose Default + + + -2038284033 + 129 + + + 200 + 25 + - - - 337772096 - 2048 - Text Cell - - - - - - 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 - + + + 268 + {{256, 10}, {96, 28}} + + YES + + 67239424 + 134348800 + View Gallery + + + -2038284033 + 129 + + + 200 + 25 + + + + + 12 + {{237, 9}, {5, 161}} + + {0, 0} + + 67239424 + 0 + Box + + + + 3 + MCAwLjgwMDAwMDAxAA + + + 3 + 2 + 0 + NO - - - - 337772096 - 2048 - Text Cell - - - - - 3 - YES - YES - + {{1, 1}, {480, 176}} + - 3.000000e+00 - 2.000000e+00 - - - 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 + {{14, 57}, {482, 192}} + + {0, 0} + + 67239424 + 0 + Export Options + + + + 3 + MCAwLjgwMDAwMDAxAA + + + + 1 + 0 + 2 + NO + + + {{2, 2}, {510, 373}} + + - - - - 268 - {{109, 28}, {123, 28}} - - YES - + {{17, 16}, {514, 390}} + + {0, 0} + 67239424 - 134348800 - Make Default + 0 + Ansel - - -2038284033 - 129 - - - 200 - 25 + + + 3 + MCAwLjgwMDAwMDAxAA + + + 3 + 0 + 2 + NO - {679, 358} + {548, 406} + {{0, 0}, {1920, 1178}} + {213, 129} {3.40282e+38, 3.40282e+38} @@ -1379,6 +1551,70 @@ 534 + + + clickViewGallery: + + + + 543 + + + + viewGallery + + + + 544 + + + + mviewGallerySheet + + + + 545 + + + + closeGalleryView + + + + 548 + + + + closeGalleryView: + + + + 549 + + + + dataSource + + + + 551 + + + + delegate + + + + 552 + + + + browserView + + + + 553 + @@ -1410,35 +1646,6 @@ Application - 5 - - - YES - - - - Window - - - 6 - - - YES - - - - - - 7 - - - YES - - - - - - 387 @@ -1531,211 +1738,352 @@ - 403 - - - 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 + + - 405 - + 510 + YES - + + + - + - 407 - + 511 + + + + + 512 + YES - + - + - 409 - + 513 + YES - + - - - - 472 - - - - - 473 - - - - - 474 - - + - 475 - - + 514 + + - 476 - - + 515 + + - 477 - - + 516 + + + YES + + + - 478 - - + 517 + + - 479 - - + 521 + + + YES + + + - 480 - - + 522 + + - 481 - - + 527 + + + YES + + + - 482 - - + 528 + + - 136 - + 536 + YES - - - - - - + - + + GalleryView - 137 - + 537 + YES - - - - - - - - - - + + - + - 138 - + 5 + YES - + - - - - 462 - - + + Window - 140 - + 6 + YES - + - + - 463 - - + 7 + + + YES + + + + - 169 - + 137 + YES - + + + + + + + + + + - + - 464 - - + 500 + + - 357 - + 498 + YES - + - 465 - - + 499 + + - 360 - + 138 + YES - + - 466 - - + 462 + + - 9 - + 364 + YES - + - 460 - - + 467 + + 18 @@ -1760,125 +2108,116 @@ YES - - - + + + - 23 - + 20 + - 22 - + 21 + - 21 - + 22 + - 20 - + 23 + - 364 - + 9 + YES - + - 467 - - + 460 + + - 413 - + 360 + YES - + - + - 470 - - + 466 + + - 484 - + 357 + YES - + - + - 485 - - - YES - - - + 465 + + - 486 - + 169 + YES - + - + - 489 - - + 464 + + - 167 - + 140 + YES - + - - - - 468 - - + - 216 - - + 463 + + - 493 - + 136 + YES - + + + + + + - - - - 494 - - + 495 @@ -1895,166 +2234,102 @@ - 498 - - - YES - - - - - - 499 - - - - - 500 - - - - - 501 - - - YES - - - - - - 502 - - - YES - - - - - - + 216 + + - 503 - + 167 + YES - + - + - 504 - - + 468 + + - 507 - + 493 + YES - - - - + - - - - 508 - - + - 509 - - + 494 + + - 510 - + 413 + YES - - - + - + - 511 - - + 470 + + - 512 - + 484 + YES - + - + - 513 - + 485 + YES - + - - - - 514 - - - - - 515 - - + - 516 - + 486 + YES - + - + - 517 - - + 489 + + - 521 - + 546 + YES - + - + - 522 - - - - - 527 - - - YES - - - + 547 + + - 528 - - + 550 + + @@ -2166,6 +2441,14 @@ 522.IBPluginDependency 527.IBPluginDependency 528.IBPluginDependency + 536.IBEditorWindowLastContentRect + 536.IBPluginDependency + 536.IBWindowTemplateEditedContentRect + 536.NSWindowTemplate.visibleAtLaunch + 537.IBPluginDependency + 546.IBPluginDependency + 547.IBPluginDependency + 550.IBPluginDependency 6.IBPluginDependency 6.ImportedFromIB2 7.CustomClassName @@ -2212,9 +2495,9 @@ com.apple.InterfaceBuilder.CocoaPlugin - {{677, 386}, {455, 195}} + {{351, 386}, {455, 195}} com.apple.InterfaceBuilder.CocoaPlugin - {{677, 386}, {455, 195}} + {{351, 386}, {455, 195}} com.apple.InterfaceBuilder.CocoaPlugin @@ -2253,16 +2536,16 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{580, 642}, {548, 406}} + {{258, 642}, {548, 406}} com.apple.InterfaceBuilder.CocoaPlugin - {{580, 642}, {548, 406}} + {{258, 642}, {548, 406}} {213, 107} com.apple.InterfaceBuilder.CocoaPlugin - {{288, 600}, {679, 358}} + {{127, 600}, {679, 358}} com.apple.InterfaceBuilder.CocoaPlugin - {{288, 600}, {679, 358}} + {{127, 600}, {679, 358}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -2280,6 +2563,14 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{91, 819}, {480, 270}} + com.apple.InterfaceBuilder.CocoaPlugin + {{91, 819}, {480, 270}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.imagekit.ibplugin com.apple.InterfaceBuilder.CocoaPlugin AnselExportPluginBox @@ -2309,7 +2600,7 @@ - 534 + 553 @@ -2323,6 +2614,8 @@ YES clickCancelConnect: clickServer: + clickViewGallery: + closeGalleryView: closeServerList: doAddServer: doCancelAddServer: @@ -2338,12 +2631,16 @@ id id id + id + id YES YES + browserView + closeGalleryView defaultImageView firstView galleryCombo @@ -2358,14 +2655,18 @@ mServersPopUp mSettingsBox mSizePopUp + mviewGallerySheet newServerSheet serverListPanel serverTable spinner statusLabel + viewGallery YES + IKImageBrowserView + NSButton NSImageView NSControl NSComboBox @@ -2381,10 +2682,12 @@ NSBox NSPopUpButton NSWindow + NSWindow NSPanel NSTableView NSProgressIndicator NSTextField + NSButton diff --git a/iPhoto2Ansel/English.lproj/Panel.nib/keyedobjects.nib b/iPhoto2Ansel/English.lproj/Panel.nib/keyedobjects.nib index f471deeb9ff8a30f220708d221c762b9faa82bf9..dcd784b313426064fa0e72fd4c24fc33ea0ae5a0 100644 GIT binary patch literal 32094 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