Add image cations (or titles) and original date to the image browser
authorMichael J. Rubinsky <mrubinsk@horde.org>
Sat, 9 May 2009 15:09:27 +0000 (11:09 -0400)
committerMichael J. Rubinsky <mrubinsk@horde.org>
Sat, 9 May 2009 15:09:27 +0000 (11:09 -0400)
when browsing Ansel galleries from iPhoto

iPhoto2Ansel/AnselExportController.m
iPhoto2Ansel/AnselGalleryViewItem.h
iPhoto2Ansel/AnselGalleryViewItem.m
iPhoto2Ansel/English.lproj/Panel.nib/designable.nib
iPhoto2Ansel/English.lproj/Panel.nib/keyedobjects.nib

index 7dbbf39..b1a56f0 100644 (file)
@@ -107,7 +107,15 @@ NSString * const TURAnselServerPasswordKey = @"password";
     [browserData removeAllObjects];
     NSMutableArray *images = [currentGallery listImages];
     for (NSDictionary *image in images) {
-        AnselGalleryViewItem *item = [[AnselGalleryViewItem alloc] initWithURL: [NSURL URLWithString: [image objectForKey:@"url"]]];
+        NSString *caption = [image objectForKey:@"caption"];
+        if (caption == nil) {
+            caption = [image objectForKey:@"filename"];
+        }
+
+        NSDate *theDate = [NSDate dateWithTimeIntervalSince1970: [[image objectForKey:@"original_date"] doubleValue]];
+        AnselGalleryViewItem *item = [[AnselGalleryViewItem alloc] initWithURL: [NSURL URLWithString: [image objectForKey:@"url"]]
+                                                                     withTitle: caption
+                                                                      withDate: theDate];
         [browserData addObject: item];
     }
 
index 29729a9..e0eece1 100644 (file)
 
 @interface AnselGalleryViewItem: NSObject 
 {
-       NSURL * image;
-       NSString * imageID;     
+       NSURL *image;
+       NSString *imageID;
+    NSString *imageTitle;
+    NSCalendarDate *imageDate;
 }
 
 @property(readwrite,copy) NSURL * image;
 @property(readwrite,copy) NSString * imageID;
 
-- (id)initWithURL: (NSURL *)theUrl;
+- (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 *)imageUID;
+- (NSString *)imageRepresentationType;
+- (id)imageRepresentation;
+
+- (NSString *)imageTitle;
+- (NSString *)imageSubtitle;
 
 @end
index b5bde8a..b920f8c 100644 (file)
@@ -2,6 +2,8 @@
 //  AnselGalleryViewItem.m
 //  iPhoto2Ansel
 //
+//  Implementation of the IKImageBrowserItem protocol
+
 //  Created by Michael Rubinsky on 5/7/09.
 //  Copyright 2009 __MyCompanyName__. All rights reserved.
 //
 @synthesize image;
 @synthesize imageID;
 
-- (id)initWithURL:(NSURL *)theURL
+- (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; 
 }
 
 {
     [image release];
     [imageID release];
+    [imageTitle release];
+    [imageDate release];
     [super dealloc];
 }
 
+#pragma mark
+#pragma mark Required methods
 - (NSString *)imageUID
 {
     return imageID;
 {
     return image;
 }
+
+#pragma mark
+#pragma mark Optional methods.
+- (NSString *)imageTitle
+{
+    return imageTitle;
+}
+
+- (NSString *)imageSubtitle
+{
+    return [imageDate description];
+}
+
 @end
index 939e60f..10fc594 100644 (file)
@@ -9,6 +9,7 @@
                <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
                        <bool key="EncodedWithXMLCoder">YES</bool>
                        <integer value="137"/>
+                       <integer value="577"/>
                </object>
                <object class="NSArray" key="IBDocument.PluginDependencies">
                        <bool key="EncodedWithXMLCoder">YES</bool>
                                <nil key="NSViewClass"/>
                                <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string>
                                <object class="NSView" key="NSWindowView" id="573233790">
-                                       <nil key="NSNextResponder"/>
+                                       <reference key="NSNextResponder"/>
                                        <int key="NSvFlags">256</int>
                                        <object class="NSMutableArray" key="NSSubviews">
                                                <bool key="EncodedWithXMLCoder">YES</bool>
                                                                                        <string key="NSFrameSize">{423, 251}</string>
                                                                                        <reference key="NSSuperview" ref="896759949"/>
                                                                                        <bool key="constrainsToOriginalSize">NO</bool>
-                                                                                       <bool key="cellsHaveSubtitle">NO</bool>
-                                                                                       <bool key="cellsHaveTitle">NO</bool>
-                                                                                       <bool key="outlinesCells">NO</bool>
+                                                                                       <bool key="cellsHaveSubtitle">YES</bool>
+                                                                                       <bool key="cellsHaveTitle">YES</bool>
+                                                                                       <bool key="outlinesCells">YES</bool>
                                                                                        <bool key="shadowsCells">YES</bool>
                                                                                        <bool key="animates">NO</bool>
                                                                                        <bool key="allowsReordering">NO</bool>
                                                                        </object>
                                                                        <string key="NSFrame">{{1, 1}, {423, 251}}</string>
                                                                        <reference key="NSSuperview" ref="445821140"/>
+                                                                       <reference key="NSNextKeyView" ref="798730592"/>
                                                                        <reference key="NSDocView" ref="798730592"/>
                                                                        <reference key="NSBGColor" ref="258809705"/>
                                                                        <int key="NScvFlags">6</int>
                                                        </object>
                                                        <string key="NSFrame">{{20, 60}, {440, 268}}</string>
                                                        <reference key="NSSuperview" ref="573233790"/>
+                                                       <reference key="NSNextKeyView" ref="896759949"/>
                                                        <int key="NSsFlags">50</int>
                                                        <reference key="NSVScroller" ref="34214668"/>
                                                        <reference key="NSHScroller" ref="355872151"/>
                                                </object>
                                        </object>
                                        <string key="NSFrameSize">{480, 327}</string>
+                                       <reference key="NSSuperview"/>
                                </object>
                                <string key="NSScreenRect">{{0, 0}, {1920, 1178}}</string>
                                <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string>
index 5be88d5..b3a9b24 100644 (file)
Binary files a/iPhoto2Ansel/English.lproj/Panel.nib/keyedobjects.nib and b/iPhoto2Ansel/English.lproj/Panel.nib/keyedobjects.nib differ