* The start of implementing the ability to store multiple ansel server
authorMichael J. Rubinsky <mrubinsk@horde.org>
Mon, 15 Dec 2008 20:48:21 +0000 (15:48 -0500)
committerMichael J. Rubinsky <mrubinsk@horde.org>
Mon, 15 Dec 2008 22:53:29 +0000 (17:53 -0500)
  configurations instead of having to type all the connection info on
  each load.
* Some more playing around with the UI as well

iPhoto2Ansel/AnselExportController.h
iPhoto2Ansel/AnselExportController.m
iPhoto2Ansel/English.lproj/AnselServers.nib/designable.nib [new file with mode: 0644]
iPhoto2Ansel/English.lproj/AnselServers.nib/keyedobjects.nib [new file with mode: 0644]
iPhoto2Ansel/English.lproj/Panel.nib/classes.nib
iPhoto2Ansel/English.lproj/Panel.nib/info.nib
iPhoto2Ansel/English.lproj/Panel.nib/keyedobjects.nib
iPhoto2Ansel/TURAnselServersPanelController.h [new file with mode: 0644]
iPhoto2Ansel/TURAnselServersPanelController.m [new file with mode: 0644]
iPhoto2Ansel/iPhoto2Ansel.xcodeproj/project.pbxproj

index 1cfb926..30105d3 100644 (file)
 @class FBProgressController;
 @class TURNewGalleryController;
 
+// User defaults keys
+extern NSString * const TURAnselServersKey;
+extern NSString * const TURAnselExportSize;
+
+// Server property keys
+extern NSString * const TURAnselServerNickKey;
+extern NSString * const TURAnselServerEndpointKey;
+extern NSString * const TURAnselServerUsernameKey;
+extern NSString * const TURAnselServerPasswordKey;
+
 @interface AnselExportController : NSObject <ExportPluginProtocol> {
 
     // Export manager passed in from iPhoto
     
     //Outlets   
     IBOutlet NSPopUpButton *mSizePopUp;
-    IBOutlet NSPopUpButton *mQualityPopUp;
-    IBOutlet NSTextField *anselHostURL;
-    IBOutlet NSTextField *username;
-    IBOutlet NSSecureTextField *password;
     IBOutlet NSComboBox *galleryCombo;
+    IBOutlet NSComboBox *mServers; 
     IBOutlet NSTextField *connectedLabel;
+    IBOutlet NSProgressIndicator *spinner;
+    IBOutlet NSImageView *defaultImageView;
     IBOutlet NSButton *beginButton;
     IBOutlet NSButton *newGalleryButton;
-    IBOutlet NSProgressIndicator *spinner;
+    IBOutlet NSButton *newServerButton;
+    
+    // New Gallery Sheet (uses it's own controller)
     IBOutlet NSWindow *newGallerySheet;
-    IBOutlet NSImageView *defaultImageView;
-        
+    
+    // New Server sheet
+    IBOutlet NSWindow *newServerSheet;
+    IBOutlet NSTextField *anselHostURL;
+    IBOutlet NSTextField *username;    
+    IBOutlet NSSecureTextField *password;
+    IBOutlet NSTextField *serverNickName;
+    
     // Progress struct (This one is part of the protocol, but we don't use it)
     ExportPluginProgress progress;
     
+    // Currently selected server data
+    NSMutableArray *anselServers;
+    NSDictionary *currentServer;
+    
     // This is our real progress controller (stolen from Facebook exporter).
     FBProgressController *progressController;
     
@@ -60,6 +81,8 @@
 // Actions
 - (IBAction) doConnect: (id)sender;
 - (IBAction) showNewGallery: (id)sender;
+- (IBAction) doAddServer: (id)sender;
+- (IBAction) doCancelAddServer: (id)sender;
 
 // overrides
 - (void)awakeFromNib;
index 09fb9af..9c82bc1 100644 (file)
 - (void)canExport;
 @end
 
+// User default keys
+NSString * const TURAnselServersKey = @"AnselServers";
+NSString * const TURAnselExportSize = @"AnselExportSize";
+
+// Server property keys
+NSString * const TURAnselServerNickKey = @"nickname";
+NSString * const TURAnselServerEndpointKey = @"endpoint";
+NSString * const TURAnselServerUsernameKey = @"username";
+NSString * const TURAnselServerPasswordKey = @"password";
+
 @implementation AnselExportController
 
 @synthesize currentGallery;
  */
 - (void)awakeFromNib
 {
+    // Register Application Defaults
+    NSMutableDictionary *defaultValues = [NSMutableDictionary dictionary];
+    [defaultValues setObject: [NSNumber numberWithInt: 2]
+                      forKey: TURAnselExportSize];    
+    [defaultValues setObject: [[NSMutableArray alloc] init] forKey: TURAnselServersKey];
+    NSUserDefaults *userPrefs = [NSUserDefaults standardUserDefaults];
+    [userPrefs registerDefaults: defaultValues];
+    
+    // Get any saved server data
+    anselServers = [userPrefs objectForKey: TURAnselServersKey];
+    
     // UI Defaults
-    [mSizePopUp selectItemWithTag:2];
+    [mSizePopUp selectItemWithTag: [userPrefs integerForKey:TURAnselExportSize]];
     [connectedLabel setStringValue:@"Not Connected"];
     [connectedLabel setTextColor: [NSColor redColor]];
     [spinner stopAnimation:self];
+    
+    // For now, update the user pref for size every time it changes - will
+    // eventually put this in a pref sheet.
+    [[NSNotificationCenter defaultCenter] addObserver: self
+                                             selector: @selector(sizeChoiceWillChange:)
+                                               name: @"NSPopUpButtonWillPopUpNotification"
+                                             object: nil];
+    
+    // See if we have any configured servers
+    anselServers = [[NSMutableArray alloc] initWithArray: [userPrefs objectForKey:TURAnselServersKey]];
+    
+    // Need to wait until iPhoto's export window is fully loaded before attempting
+    // to show a sheet?
+    [[NSNotificationCenter defaultCenter] addObserver: self
+                                             selector: @selector(exportWindowDidBecomeKey:)
+                                                 name: NSWindowDidBecomeKeyNotification 
+                                               object :nil];
 }
 -(void)dealloc
 {
     //anselController is released from the AnselController delegate method.
     [progressController release];
+    [anselServers release];
+    [currentServer release];
     [super dealloc];
 }
 
 -(void)doConnect: (id)sender
 {
     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-    NSDictionary *p = [[NSDictionary alloc] initWithObjects: [NSArray arrayWithObjects:[anselHostURL stringValue],
-                                                             [username stringValue],
-                                                             [password stringValue], nil]
+    NSDictionary *p = [[NSDictionary alloc] initWithObjects: [NSArray arrayWithObjects:
+                                                              [currentServer objectForKey:TURAnselServerEndpointKey],
+                                                              [currentServer objectForKey:TURAnselServerUsernameKey],
+                                                              [currentServer objectForKey:TURAnselServerPasswordKey]]
                                                     forKeys: [NSArray arrayWithObjects:@"endpoint", @"username", @"password", nil]];
     // Create our controller
     anselController = [[TURAnsel alloc] initWithConnectionParameters:p];
     }
 }
 
-//- (IBAction)cancelNewGallery: (id)sender
-//{
-//    [NSApp endSheet: newGallerySheet];
-//    [newGallerySheet orderOut: nil];
-//}
+
+// Server setup sheet
+-(IBAction)doAddServer: (id)sender
+{
+    // Sanity Checking
+    // TODO - make sure we don't have more than one gallery with the same
+    // nick??
+    if (![[serverNickName stringValue] length]) {
+        // TODO: Errors - for now, just silently fail, yea, I know....
+        return;
+    }
+
+    NSDictionary *newServer = [[NSDictionary alloc] initWithObjectsAndKeys:
+                               [serverNickName stringValue], TURAnselServerNickKey,
+                               [anselHostURL stringValue], TURAnselServerEndpointKey,
+                               [username stringValue], TURAnselServerUsernameKey,
+                               [password stringValue], TURAnselServerPasswordKey,
+                                nil];
+    [anselServers addObject: newServer];
+    NSLog(@"After adding it: %@", [anselServers objectAtIndex:0]);
+    [NSApp endSheet: newServerSheet];
+    [newServerSheet orderOut: nil];
+    [mServers reloadData];
+    
+    // Save it to the userdefaults
+    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
+    [prefs setObject:anselServers  forKey:TURAnselServersKey];
+}
+
+- (IBAction)doCancelAddServer: (id)sender
+{
+    [NSApp endSheet: newServerSheet];
+    [newServerSheet orderOut: nil];
+}
 
 #pragma mark ExportPluginProtocol
 // Initialize
 }
 
 #pragma mark comboBoxDelegate
+// Probably should have a seperate controller for each combobox, but this is
+// pretty small stuff...
 - (void)comboBoxSelectionDidChange:(NSNotification *)notification
-{
-    int row = [galleryCombo indexOfSelectedItem];
-    [currentGallery setDelegate:nil];
-    [currentGallery autorelease];
-    currentGallery = [[anselController getGalleryByIndex:row] retain];
-    [currentGallery setDelegate: self];
-    NSImage *theImage = [[NSImage alloc] initWithContentsOfURL: [currentGallery galleryDefaultImageURL]];
-    [defaultImageView setImage: theImage];
-    [theImage release];
-    [self canExport];
+{    
+    // Yes, I'm comparing the pointers here on purpose
+    if ([notification object] == galleryCombo) {
+        int row = [galleryCombo indexOfSelectedItem];
+        [currentGallery setDelegate:nil];
+        [currentGallery autorelease];
+        currentGallery = [[anselController getGalleryByIndex:row] retain];
+        [currentGallery setDelegate: self];
+        NSImage *theImage = [[NSImage alloc] initWithContentsOfURL: [currentGallery galleryDefaultImageURL]];
+        [defaultImageView setImage: theImage];
+        [theImage release];
+        [self canExport];
+    } else if ([notification object] == mServers) {
+        NSLog(@"Changed server selection");
+        [currentServer release];
+        currentServer = [anselServers objectAtIndex: [mServers indexOfSelectedItem]];        
+    }
 }
 
+#pragma mark TURAnselGalleryPanel Notifications
 - (void)TURAnselGalleryPanelDidAddGallery
 {
-    NSLog(@"Before reload");
     // Reload the NSComboBox and autoselect the last item.
     [galleryCombo reloadData];
     [galleryCombo selectItemAtIndex: [galleryCombo numberOfItems] - 1];
 }
+
+#pragma mark export notifications
+- (void)exportWindowDidBecomeKey: (NSNotification *)notification
+{
+    // Make sure we have a server configured, or throw up the dialog.
+    if (![anselServers count]) {
+        NSLog(@"No servers!!");
+        [NSApp beginSheet: newServerSheet
+           modalForWindow: [self window]
+            modalDelegate: nil
+           didEndSelector: nil
+              contextInfo: nil];
+    } else {
+        // We have servers, fill in the drop down
+
+    }
+}
+- (void)sizeChoiceWillChange: (NSNotification *)notification
+{
+    NSInteger newSize = [mSizePopUp selectedTag];
+    NSUserDefaults *userPrefs = [NSUserDefaults standardUserDefaults]; 
+    [userPrefs setInteger: newSize forKey:TURAnselExportSize];
+    [userPrefs synchronize];
+}
+
+#pragma mark NSComboBoxDatasource delegates (used for server list)
+- (id)comboBox: (NSComboBox *)aComboBox objectValueForItemAtIndex: (NSInteger)index
+{
+    NSDictionary *server = [anselServers objectAtIndex: index];
+    return [server objectForKey:TURAnselServerNickKey];
+}
+- (NSInteger)numberOfItemsInComboBox: (NSComboBox *)aComboBox
+{
+    return [anselServers count];
+}
 @end
\ No newline at end of file
diff --git a/iPhoto2Ansel/English.lproj/AnselServers.nib/designable.nib b/iPhoto2Ansel/English.lproj/AnselServers.nib/designable.nib
new file mode 100644 (file)
index 0000000..a4cabc8
--- /dev/null
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.02">
+       <data>
+               <int key="IBDocument.SystemTarget">1050</int>
+               <string key="IBDocument.SystemVersion">9F33</string>
+               <string key="IBDocument.InterfaceBuilderVersion">672</string>
+               <string key="IBDocument.AppKitVersion">949.34</string>
+               <string key="IBDocument.HIToolboxVersion">352.00</string>
+               <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+                       <bool key="EncodedWithXMLCoder">YES</bool>
+                       <integer value="1" id="9"/>
+               </object>
+               <object class="NSArray" key="IBDocument.PluginDependencies">
+                       <bool key="EncodedWithXMLCoder">YES</bool>
+                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+               </object>
+               <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+                       <bool key="EncodedWithXMLCoder">YES</bool>
+                       <object class="NSCustomObject" id="1001">
+                               <string key="NSClassName">TURAnselServersPanelController</string>
+                       </object>
+                       <object class="NSCustomObject" id="1003">
+                               <string key="NSClassName">FirstResponder</string>
+                       </object>
+                       <object class="NSCustomObject" id="1004">
+                               <string key="NSClassName">NSApplication</string>
+                       </object>
+                       <object class="NSWindowTemplate" id="1005">
+                               <int key="NSWindowStyleMask">15</int>
+                               <int key="NSWindowBacking">2</int>
+                               <string key="NSWindowRect">{{196, 240}, {480, 270}}</string>
+                               <int key="NSWTFlags">536870912</int>
+                               <string key="NSWindowTitle">Ansel Servers</string>
+                               <string key="NSWindowClass">NSWindow</string>
+                               <nil key="NSViewClass"/>
+                               <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string>
+                               <object class="NSView" key="NSWindowView" id="1006">
+                                       <reference key="NSNextResponder"/>
+                                       <int key="NSvFlags">256</int>
+                                       <string key="NSFrameSize">{480, 270}</string>
+                                       <reference key="NSSuperview"/>
+                               </object>
+                               <string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string>
+                               <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string>
+                       </object>
+               </object>
+               <object class="IBObjectContainer" key="IBDocument.Objects">
+                       <object class="NSMutableArray" key="connectionRecords">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                       </object>
+                       <object class="IBMutableOrderedSet" key="objectRecords">
+                               <object class="NSArray" key="orderedObjects">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">0</int>
+                                               <object class="NSArray" key="object" id="1002">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                               </object>
+                                               <reference key="children" ref="1000"/>
+                                               <nil key="parent"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">-2</int>
+                                               <reference key="object" ref="1001"/>
+                                               <reference key="parent" ref="1002"/>
+                                               <string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">-1</int>
+                                               <reference key="object" ref="1003"/>
+                                               <reference key="parent" ref="1002"/>
+                                               <string key="objectName">First Responder</string>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">-3</int>
+                                               <reference key="object" ref="1004"/>
+                                               <reference key="parent" ref="1002"/>
+                                               <string key="objectName">Application</string>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1</int>
+                                               <reference key="object" ref="1005"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="1006"/>
+                                               </object>
+                                               <reference key="parent" ref="1002"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2</int>
+                                               <reference key="object" ref="1006"/>
+                                               <reference key="parent" ref="1005"/>
+                                       </object>
+                               </object>
+                       </object>
+                       <object class="NSMutableDictionary" key="flattenedProperties">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <object class="NSMutableArray" key="dict.sortedKeys">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                       <string>-1.IBPluginDependency</string>
+                                       <string>-2.IBPluginDependency</string>
+                                       <string>-3.IBPluginDependency</string>
+                                       <string>1.IBEditorWindowLastContentRect</string>
+                                       <string>1.IBPluginDependency</string>
+                                       <string>1.IBWindowTemplateEditedContentRect</string>
+                                       <string>1.NSWindowTemplate.visibleAtLaunch</string>
+                                       <string>1.WindowOrigin</string>
+                                       <string>1.editorWindowContentRectSynchronizationRect</string>
+                                       <string>2.IBPluginDependency</string>
+                               </object>
+                               <object class="NSMutableArray" key="dict.values">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>{{21, 852}, {480, 270}}</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>{{21, 852}, {480, 270}}</string>
+                                       <reference ref="9"/>
+                                       <string>{196, 240}</string>
+                                       <string>{{357, 418}, {480, 270}}</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               </object>
+                       </object>
+                       <object class="NSMutableDictionary" key="unlocalizedProperties">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <object class="NSArray" key="dict.sortedKeys">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                               </object>
+                               <object class="NSMutableArray" key="dict.values">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                               </object>
+                       </object>
+                       <nil key="activeLocalization"/>
+                       <object class="NSMutableDictionary" key="localizations">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <object class="NSArray" key="dict.sortedKeys">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                               </object>
+                               <object class="NSMutableArray" key="dict.values">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                               </object>
+                       </object>
+                       <nil key="sourceID"/>
+                       <int key="maxID">2</int>
+               </object>
+               <object class="IBClassDescriber" key="IBDocument.Classes">
+                       <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBProjectSource</string>
+                                               <string key="minorKey">TURAnsel.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBProjectSource</string>
+                                               <string key="minorKey">TURAnselGallery.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBProjectSource</string>
+                                               <string key="minorKey">TURAnselGalleryPanelController.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBProjectSource</string>
+                                               <string key="minorKey">xmlrpc-1.5.1/XMLRPCConnection.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">TURAnselServersPanelController</string>
+                                       <string key="superclassName">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBProjectSource</string>
+                                               <string key="minorKey">TURAnselServersPanelController.h</string>
+                                       </object>
+                               </object>
+                       </object>
+               </object>
+               <int key="IBDocument.localizationMode">0</int>
+               <string key="IBDocument.LastKnownRelativeProjectPath">../iPhoto2Ansel.xcodeproj</string>
+               <int key="IBDocument.defaultPropertyAccessControl">3</int>
+       </data>
+</archive>
diff --git a/iPhoto2Ansel/English.lproj/AnselServers.nib/keyedobjects.nib b/iPhoto2Ansel/English.lproj/AnselServers.nib/keyedobjects.nib
new file mode 100644 (file)
index 0000000..059faac
Binary files /dev/null and b/iPhoto2Ansel/English.lproj/AnselServers.nib/keyedobjects.nib differ
index 38b98a8..e68e9eb 100644 (file)
                        <dict>
                                <key>cancelNewGallery</key>
                                <string>id</string>
+                               <key>doAddServer</key>
+                               <string>id</string>
+                               <key>doCancelAddServer</key>
+                               <string>id</string>
                                <key>doConnect</key>
                                <string>id</string>
                                <key>doNewGallery</key>
@@ -59,6 +63,8 @@
                                <string>id</string>
                                <key>mQualityPopUp</key>
                                <string>NSPopUpButton</string>
+                               <key>mServers</key>
+                               <string>NSComboBox</string>
                                <key>mSettingsBox</key>
                                <string>NSBox</string>
                                <key>mSizePopUp</key>
                                <string>NSButton</string>
                                <key>newGallerySheet</key>
                                <string>NSWindow</string>
+                               <key>newServerSheet</key>
+                               <string>NSWindow</string>
                                <key>password</key>
                                <string>NSSecureTextField</string>
+                               <key>serverNickName</key>
+                               <string>NSTextField</string>
                                <key>spinner</key>
                                <string>NSProgressIndicator</string>
                                <key>username</key>
index 63f50de..9003e36 100644 (file)
@@ -10,7 +10,8 @@
        <integer>5</integer>
        <key>IBOpenObjects</key>
        <array>
-               <integer>137</integer>
+               <integer>388</integer>
+               <integer>7</integer>
        </array>
        <key>IBSystem Version</key>
        <string>9F33</string>
index b3b6d4d..72e41a5 100644 (file)
Binary files a/iPhoto2Ansel/English.lproj/Panel.nib/keyedobjects.nib and b/iPhoto2Ansel/English.lproj/Panel.nib/keyedobjects.nib differ
diff --git a/iPhoto2Ansel/TURAnselServersPanelController.h b/iPhoto2Ansel/TURAnselServersPanelController.h
new file mode 100644 (file)
index 0000000..7e1d64e
--- /dev/null
@@ -0,0 +1,16 @@
+//
+//  TURAnselServersPanelController.h
+//  iPhoto2Ansel
+//
+//  Created by Michael Rubinsky on 12/14/08.
+//  Copyright 2008 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+
+@interface TURAnselServersPanelController : NSObject {
+
+}
+
+@end
diff --git a/iPhoto2Ansel/TURAnselServersPanelController.m b/iPhoto2Ansel/TURAnselServersPanelController.m
new file mode 100644 (file)
index 0000000..b00a797
--- /dev/null
@@ -0,0 +1,14 @@
+//
+//  TURAnselServersPanelController.m
+//  iPhoto2Ansel
+//
+//  Created by Michael Rubinsky on 12/14/08.
+//  Copyright 2008 __MyCompanyName__. All rights reserved.
+//
+
+#import "TURAnselServersPanelController.h"
+
+
+@implementation TURAnselServersPanelController
+
+@end
index 18aedf3..d39ba36 100644 (file)
@@ -9,6 +9,8 @@
 /* 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 */; };
                B05C4A060EE9E001005B4B28 /* ImageResizer.m in Sources */ = {isa = PBXBuildFile; fileRef = B05C4A050EE9E001005B4B28 /* ImageResizer.m */; };
                B06C1E030EB1644600BFAFCB /* AnselExportPluginBox.m in Sources */ = {isa = PBXBuildFile; fileRef = B06C1E020EB1644600BFAFCB /* AnselExportPluginBox.m */; };
@@ -74,6 +76,9 @@
                32DBCF630370AF2F00C91783 /* iPhoto2Ansel_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iPhoto2Ansel_Prefix.pch; sourceTree = "<group>"; };
                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 = "<group>"; };
+               B00EF5590EF5DD5900A9D71C /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/AnselServers.nib; sourceTree = "<group>"; };
+               B00EF5650EF5E22900A9D71C /* TURAnselServersPanelController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TURAnselServersPanelController.h; sourceTree = "<group>"; };
+               B00EF5660EF5E22900A9D71C /* TURAnselServersPanelController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TURAnselServersPanelController.m; sourceTree = "<group>"; };
                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 = "<group>"; };
                B05C4A040EE9E001005B4B28 /* ImageResizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImageResizer.h; sourceTree = "<group>"; };
                                089C167CFE841241C02AAC07 /* Resources */,
                                089C1671FE841209C02AAC07 /* Frameworks and Libraries */,
                                19C28FB8FE9D52D311CA2CBB /* Products */,
-                               B04FC1A70EEB4A2B008EEB0E /* AnselGalleryPanel.nib */,
                        );
                        name = iPhoto2Ansel;
                        sourceTree = "<group>";
                089C167CFE841241C02AAC07 /* Resources */ = {
                        isa = PBXGroup;
                        children = (
+                               B00EF5580EF5DD5900A9D71C /* AnselServers.nib */,
+                               B04FC1A70EEB4A2B008EEB0E /* AnselGalleryPanel.nib */,
                                B0C888480ED85DEA000E19FB /* ProgressSheet.nib */,
                                B06C1E3C0EB17E3700BFAFCB /* Panel.nib */,
                                8D5B49B7048680CD000E48DA /* Info.plist */,
                                B07D426D0EC230B100B59765 /* TURAnsel.m */,
                                B07D426E0EC230B100B59765 /* TURAnselGallery.h */,
                                B07D426F0EC230B100B59765 /* TURAnselGallery.m */,
+                               B00EF5650EF5E22900A9D71C /* TURAnselServersPanelController.h */,
+                               B00EF5660EF5E22900A9D71C /* TURAnselServersPanelController.m */,
                        );
                        name = AnselToolkit;
                        sourceTree = "<group>";
                                B06C1E3D0EB17E3700BFAFCB /* Panel.nib in Resources */,
                                B0C888490ED85DEA000E19FB /* ProgressSheet.nib in Resources */,
                                B04FC1A90EEB4A2B008EEB0E /* AnselGalleryPanel.nib in Resources */,
+                               B00EF55A0EF5DD5900A9D71C /* AnselServers.nib in Resources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
                                B0C8884E0ED85E02000E19FB /* FBProgressController.m in Sources */,
                                B05C4A060EE9E001005B4B28 /* ImageResizer.m in Sources */,
                                B0CCED420EEC6E810012D3D3 /* TURAnselGalleryPanelController.m in Sources */,
+                               B00EF5670EF5E22900A9D71C /* TURAnselServersPanelController.m in Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
                        name = InfoPlist.strings;
                        sourceTree = "<group>";
                };
+               B00EF5580EF5DD5900A9D71C /* AnselServers.nib */ = {
+                       isa = PBXVariantGroup;
+                       children = (
+                               B00EF5590EF5DD5900A9D71C /* English */,
+                       );
+                       name = AnselServers.nib;
+                       sourceTree = "<group>";
+               };
                B04FC1A70EEB4A2B008EEB0E /* AnselGalleryPanel.nib */ = {
                        isa = PBXVariantGroup;
                        children = (