When there are not username and token provided during startup, preferences are shown.
authorMiltiadis Vasilakis <mvasilak@gmail.com>
Wed, 2 Nov 2011 11:48:26 +0000 (13:48 +0200)
committerMiltiadis Vasilakis <mvasilak@gmail.com>
Wed, 2 Nov 2011 11:48:26 +0000 (13:48 +0200)
Username and token are not allowed to be set to empty strings in the preferences.
Manual authentication is separated by shibboleth authentication in the preferences.

pithos-macos.xcodeproj/project.pbxproj
pithos-macos/NonEmptyStringFormatter.h [new file with mode: 0644]
pithos-macos/NonEmptyStringFormatter.m [new file with mode: 0644]
pithos-macos/PithosPreferencesController.h
pithos-macos/PithosPreferencesController.m
pithos-macos/PithosPreferencesController.xib
pithos-macos/PithosUtilities.m
pithos-macos/pithos_macosAppDelegate.m

index c59a1b1..63d35d2 100644 (file)
@@ -44,6 +44,7 @@
                613629B5143E0F8B00363787 /* GroupMembersDictionaryTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 613629B4143E0F8B00363787 /* GroupMembersDictionaryTransformer.m */; };
                613629B9143E51E000363787 /* GroupAndGroupMemberFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 613629B8143E51E000363787 /* GroupAndGroupMemberFormatter.m */; };
                6139837113EFEECC004CE444 /* FileSystemBrowserCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 6139837013EFEECC004CE444 /* FileSystemBrowserCell.m */; };
+               613BA8631461520E00FACAA5 /* NonEmptyStringFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 613BA8621461520E00FACAA5 /* NonEmptyStringFormatter.m */; };
                61433BC9141BA1CE00CD978D /* HashMapHash.m in Sources */ = {isa = PBXBuildFile; fileRef = 61433BC8141BA1CE00CD978D /* HashMapHash.m */; };
                614592BC1417CE70002E7A8C /* ASIPithosAccount.m in Sources */ = {isa = PBXBuildFile; fileRef = 614592BB1417CE70002E7A8C /* ASIPithosAccount.m */; };
                6152D08C143200CC00803874 /* PithosSharingAccountsNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 6152D08B143200CC00803874 /* PithosSharingAccountsNode.m */; };
                613629B8143E51E000363787 /* GroupAndGroupMemberFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GroupAndGroupMemberFormatter.m; path = "pithos-macos/GroupAndGroupMemberFormatter.m"; sourceTree = "<group>"; };
                6139836F13EFEECC004CE444 /* FileSystemBrowserCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FileSystemBrowserCell.h; path = "pithos-macos/FileSystemBrowserCell.h"; sourceTree = "<group>"; };
                6139837013EFEECC004CE444 /* FileSystemBrowserCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FileSystemBrowserCell.m; path = "pithos-macos/FileSystemBrowserCell.m"; sourceTree = "<group>"; };
+               613BA8611461520E00FACAA5 /* NonEmptyStringFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NonEmptyStringFormatter.h; path = "pithos-macos/NonEmptyStringFormatter.h"; sourceTree = "<group>"; };
+               613BA8621461520E00FACAA5 /* NonEmptyStringFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NonEmptyStringFormatter.m; path = "pithos-macos/NonEmptyStringFormatter.m"; sourceTree = "<group>"; };
                61433BC7141BA1CE00CD978D /* HashMapHash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HashMapHash.h; path = "pithos-macos/HashMapHash.h"; sourceTree = "<group>"; };
                61433BC8141BA1CE00CD978D /* HashMapHash.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HashMapHash.m; path = "pithos-macos/HashMapHash.m"; sourceTree = "<group>"; };
                614592BA1417CE70002E7A8C /* ASIPithosAccount.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASIPithosAccount.h; sourceTree = "<group>"; };
                                61C24BC014110BDB007004DC /* SharingNameFormatter.m */,
                                613629B7143E51E000363787 /* GroupAndGroupMemberFormatter.h */,
                                613629B8143E51E000363787 /* GroupAndGroupMemberFormatter.m */,
+                               613BA8611461520E00FACAA5 /* NonEmptyStringFormatter.h */,
+                               613BA8621461520E00FACAA5 /* NonEmptyStringFormatter.m */,
                        );
                        name = Formatters;
                        sourceTree = "<group>";
                                6164B2DD1450E55C00D4C1AB /* LastCompletedSyncTransformer.m in Sources */,
                                6154BF501456A83200EE353A /* UsingSizeTransformer.m in Sources */,
                                6154BF531456EE4900EE353A /* DirPathFileURLTransformer.m in Sources */,
+                               613BA8631461520E00FACAA5 /* NonEmptyStringFormatter.m in Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
diff --git a/pithos-macos/NonEmptyStringFormatter.h b/pithos-macos/NonEmptyStringFormatter.h
new file mode 100644 (file)
index 0000000..6533381
--- /dev/null
@@ -0,0 +1,39 @@
+//
+//  NonEmptyStringFormatter.h
+//  pithos-macos
+//
+// Copyright 2011 GRNET S.A. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or
+// without modification, are permitted provided that the following
+// conditions are met:
+// 
+//   1. Redistributions of source code must retain the above
+//      copyright notice, this list of conditions and the following
+//      disclaimer.
+// 
+//   2. 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.
+// 
+// THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``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 GRNET S.A 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.
+// 
+// The views and conclusions contained in the software and
+// documentation are those of the authors and should not be
+// interpreted as representing official policies, either expressed
+// or implied, of GRNET S.A.
+
+@interface NonEmptyStringFormatter : NSFormatter
+@end
diff --git a/pithos-macos/NonEmptyStringFormatter.m b/pithos-macos/NonEmptyStringFormatter.m
new file mode 100644 (file)
index 0000000..20f6185
--- /dev/null
@@ -0,0 +1,62 @@
+//
+//  NonEmptyStringFormatter.m
+//  pithos-macos
+//
+// Copyright 2011 GRNET S.A. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or
+// without modification, are permitted provided that the following
+// conditions are met:
+// 
+//   1. Redistributions of source code must retain the above
+//      copyright notice, this list of conditions and the following
+//      disclaimer.
+// 
+//   2. 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.
+// 
+// THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``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 GRNET S.A 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.
+// 
+// The views and conclusions contained in the software and
+// documentation are those of the authors and should not be
+// interpreted as representing official policies, either expressed
+// or implied, of GRNET S.A.
+
+#import "NonEmptyStringFormatter.h"
+
+@implementation NonEmptyStringFormatter
+
+- (NSString *)stringForObjectValue:(id)anObject {
+       if (anObject != nil)
+               return [NSString stringWithString:anObject];
+       return nil;
+}
+
+- (BOOL)getObjectValue:(id *)anObject forString:(NSString *)string errorDescription:(NSString **)error {
+       *anObject = [NSString stringWithString:string];
+       return YES;
+}
+
+- (BOOL)isPartialStringValid:(NSString *)partialString newEditingString:(NSString **)newString errorDescription:(NSString **)error {
+       if ([partialString length] == 0) {
+        *newString = nil;
+        return NO;
+    }
+
+       return YES;
+}
+
+@end
index 4017bbc..db740af 100644 (file)
@@ -61,6 +61,7 @@
 
 - (IBAction)toolbarItemSelected:(id)sender;
 
+- (IBAction)authenticationApply:(id)sender;
 - (IBAction)authenticationLogin:(id)sender;
 
 @end
index 3dc3635..fcf2122 100644 (file)
@@ -71,8 +71,7 @@
 }
 
 - (void)windowWillClose:(NSNotification *)notification {
-    [[self window] makeFirstResponder:nil];
-    [(pithos_macosAppDelegate *)[[NSApplication sharedApplication] delegate] authenticate];
+    [self authenticationApply:self];
 }
 
 - (IBAction)toolbarItemSelected:(id)sender {
 #pragma mark -
 #pragma Authentication
 
+- (IBAction)authenticationApply:(id)sender {
+    [[self window] makeFirstResponder:nil];
+    [(pithos_macosAppDelegate *)[[NSApplication sharedApplication] delegate] authenticate];
+}
+
 - (IBAction)authenticationLogin:(id)sender {
     NSProcessInfo *processInfo = [NSProcessInfo processInfo];
     NSString *loginURL = [NSString stringWithFormat:@"%@?next=pithos://%@_%d",
index d0e200f..1365e07 100644 (file)
@@ -59,7 +59,7 @@
                        <object class="NSWindowTemplate" id="183740387">
                                <int key="NSWindowStyleMask">3</int>
                                <int key="NSWindowBacking">2</int>
-                               <string key="NSWindowRect">{{403, 468}, {265, 159}}</string>
+                               <string key="NSWindowRect">{{403, 468}, {265, 211}}</string>
                                <int key="NSWTFlags">1954022400</int>
                                <string key="NSWindowTitle">Pithos Preferences</string>
                                <string key="NSWindowClass">NSWindow</string>
                                                <object class="NSTabView" id="564742342">
                                                        <reference key="NSNextResponder" ref="369507901"/>
                                                        <int key="NSvFlags">12</int>
-                                                       <string key="NSFrameSize">{265, 159}</string>
+                                                       <string key="NSFrame">{{0, -24}, {265, 235}}</string>
                                                        <reference key="NSSuperview" ref="369507901"/>
+                                                       <reference key="NSWindow"/>
                                                        <reference key="NSNextKeyView" ref="865103585"/>
                                                        <object class="NSMutableArray" key="NSTabViewItems">
                                                                <bool key="EncodedWithXMLCoder">YES</bool>
                                                                                        <object class="NSTextField" id="883219248">
                                                                                                <reference key="NSNextResponder" ref="865103585"/>
                                                                                                <int key="NSvFlags">268</int>
-                                                                                               <string key="NSFrame">{{12, 116}, {83, 14}}</string>
+                                                                                               <string key="NSFrame">{{12, 192}, {83, 14}}</string>
                                                                                                <reference key="NSSuperview" ref="865103585"/>
+                                                                                               <reference key="NSWindow"/>
                                                                                                <reference key="NSNextKeyView" ref="193312849"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSTextFieldCell" key="NSCell" id="899323867">
                                                                                        <object class="NSTextField" id="507142965">
                                                                                                <reference key="NSNextResponder" ref="865103585"/>
                                                                                                <int key="NSvFlags">268</int>
-                                                                                               <string key="NSFrame">{{12, 62}, {64, 14}}</string>
+                                                                                               <string key="NSFrame">{{12, 138}, {64, 14}}</string>
                                                                                                <reference key="NSSuperview" ref="865103585"/>
+                                                                                               <reference key="NSWindow"/>
                                                                                                <reference key="NSNextKeyView" ref="379730869"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSTextFieldCell" key="NSCell" id="993321662">
                                                                                        <object class="NSTextField" id="1017221490">
                                                                                                <reference key="NSNextResponder" ref="865103585"/>
                                                                                                <int key="NSvFlags">268</int>
-                                                                                               <string key="NSFrame">{{12, 41}, {64, 14}}</string>
+                                                                                               <string key="NSFrame">{{12, 117}, {64, 14}}</string>
                                                                                                <reference key="NSSuperview" ref="865103585"/>
+                                                                                               <reference key="NSWindow"/>
                                                                                                <reference key="NSNextKeyView" ref="682758465"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSTextFieldCell" key="NSCell" id="1037784646">
                                                                                        <object class="NSTextField" id="992895966">
                                                                                                <reference key="NSNextResponder" ref="865103585"/>
                                                                                                <int key="NSvFlags">268</int>
-                                                                                               <string key="NSFrame">{{7, 84}, {86, 14}}</string>
+                                                                                               <string key="NSFrame">{{7, 160}, {86, 14}}</string>
                                                                                                <reference key="NSSuperview" ref="865103585"/>
+                                                                                               <reference key="NSWindow"/>
                                                                                                <reference key="NSNextKeyView" ref="507142965"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSTextFieldCell" key="NSCell" id="784421446">
                                                                                                        <reference key="NSTextColor" ref="44104873"/>
                                                                                                </object>
                                                                                        </object>
+                                                                                       <object class="NSTextField" id="443178290">
+                                                                                               <reference key="NSNextResponder" ref="865103585"/>
+                                                                                               <int key="NSvFlags">268</int>
+                                                                                               <string key="NSFrame">{{7, 59}, {174, 14}}</string>
+                                                                                               <reference key="NSSuperview" ref="865103585"/>
+                                                                                               <reference key="NSWindow"/>
+                                                                                               <reference key="NSNextKeyView" ref="892129196"/>
+                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                               <object class="NSTextFieldCell" key="NSCell" id="943450840">
+                                                                                                       <int key="NSCellFlags">68288064</int>
+                                                                                                       <int key="NSCellFlags2">4195328</int>
+                                                                                                       <string key="NSContents">Get credentials with Shibboleth:</string>
+                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                       <reference key="NSControlView" ref="443178290"/>
+                                                                                                       <bool key="NSDrawsBackground">YES</bool>
+                                                                                                       <reference key="NSBackgroundColor" ref="820783553"/>
+                                                                                                       <reference key="NSTextColor" ref="44104873"/>
+                                                                                               </object>
+                                                                                       </object>
                                                                                        <object class="NSTextField" id="1054241470">
                                                                                                <reference key="NSNextResponder" ref="865103585"/>
                                                                                                <int key="NSvFlags">268</int>
-                                                                                               <string key="NSFrame">{{7, 138}, {49, 14}}</string>
+                                                                                               <string key="NSFrame">{{7, 214}, {49, 14}}</string>
                                                                                                <reference key="NSSuperview" ref="865103585"/>
+                                                                                               <reference key="NSWindow"/>
                                                                                                <reference key="NSNextKeyView" ref="883219248"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSTextFieldCell" key="NSCell" id="482751693">
                                                                                        <object class="NSBox" id="701502029">
                                                                                                <reference key="NSNextResponder" ref="865103585"/>
                                                                                                <int key="NSvFlags">-2147483634</int>
-                                                                                               <string key="NSFrame">{{0, 99}, {265, 5}}</string>
+                                                                                               <string key="NSFrame">{{0, 175}, {265, 5}}</string>
                                                                                                <reference key="NSSuperview" ref="865103585"/>
+                                                                                               <reference key="NSWindow"/>
                                                                                                <reference key="NSNextKeyView" ref="992895966"/>
                                                                                                <string key="NSOffsets">{0, 0}</string>
                                                                                                <object class="NSTextFieldCell" key="NSTitleCell">
                                                                                        <object class="NSBox" id="338834025">
                                                                                                <reference key="NSNextResponder" ref="865103585"/>
                                                                                                <int key="NSvFlags">-2147483634</int>
-                                                                                               <string key="NSFrame">{{0, 23}, {265, 5}}</string>
+                                                                                               <string key="NSFrame">{{0, 79}, {265, 5}}</string>
                                                                                                <reference key="NSSuperview" ref="865103585"/>
-                                                                                               <reference key="NSNextKeyView" ref="892129196"/>
+                                                                                               <reference key="NSWindow"/>
+                                                                                               <reference key="NSNextKeyView" ref="823976873"/>
                                                                                                <string key="NSOffsets">{0, 0}</string>
                                                                                                <object class="NSTextFieldCell" key="NSTitleCell">
                                                                                                        <int key="NSCellFlags">67239424</int>
                                                                                        <object class="NSButton" id="852692720">
                                                                                                <reference key="NSNextResponder" ref="865103585"/>
                                                                                                <int key="NSvFlags">289</int>
-                                                                                               <string key="NSFrame">{{188, 2}, {72, 28}}</string>
+                                                                                               <string key="NSFrame">{{188, 27}, {72, 28}}</string>
                                                                                                <reference key="NSSuperview" ref="865103585"/>
+                                                                                               <reference key="NSWindow"/>
                                                                                                <reference key="NSNextKeyView"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSButtonCell" key="NSCell" id="1023707124">
                                                                                                        <int key="NSPeriodicInterval">75</int>
                                                                                                </object>
                                                                                        </object>
+                                                                                       <object class="NSButton" id="823976873">
+                                                                                               <reference key="NSNextResponder" ref="865103585"/>
+                                                                                               <int key="NSvFlags">289</int>
+                                                                                               <string key="NSFrame">{{188, 83}, {72, 28}}</string>
+                                                                                               <reference key="NSSuperview" ref="865103585"/>
+                                                                                               <reference key="NSWindow"/>
+                                                                                               <reference key="NSNextKeyView" ref="443178290"/>
+                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                               <object class="NSButtonCell" key="NSCell" id="542365240">
+                                                                                                       <int key="NSCellFlags">-2080244224</int>
+                                                                                                       <int key="NSCellFlags2">134348800</int>
+                                                                                                       <string key="NSContents">Apply</string>
+                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                       <reference key="NSControlView" ref="823976873"/>
+                                                                                                       <int key="NSButtonFlags">-2034876161</int>
+                                                                                                       <int key="NSButtonFlags2">129</int>
+                                                                                                       <reference key="NSAlternateImage" ref="43181375"/>
+                                                                                                       <string key="NSAlternateContents"/>
+                                                                                                       <string key="NSKeyEquivalent"/>
+                                                                                                       <int key="NSPeriodicDelay">400</int>
+                                                                                                       <int key="NSPeriodicInterval">75</int>
+                                                                                               </object>
+                                                                                       </object>
                                                                                        <object class="NSTextField" id="379730869">
                                                                                                <reference key="NSNextResponder" ref="865103585"/>
                                                                                                <int key="NSvFlags">270</int>
-                                                                                               <string key="NSFrame">{{81, 60}, {174, 19}}</string>
+                                                                                               <string key="NSFrame">{{81, 136}, {174, 19}}</string>
                                                                                                <reference key="NSSuperview" ref="865103585"/>
+                                                                                               <reference key="NSWindow"/>
                                                                                                <reference key="NSNextKeyView" ref="1017221490"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSTextFieldCell" key="NSCell" id="1043934785">
                                                                                        <object class="NSTextField" id="682758465">
                                                                                                <reference key="NSNextResponder" ref="865103585"/>
                                                                                                <int key="NSvFlags">270</int>
-                                                                                               <string key="NSFrame">{{81, 39}, {174, 19}}</string>
+                                                                                               <string key="NSFrame">{{81, 115}, {174, 19}}</string>
                                                                                                <reference key="NSSuperview" ref="865103585"/>
+                                                                                               <reference key="NSWindow"/>
                                                                                                <reference key="NSNextKeyView" ref="338834025"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSTextFieldCell" key="NSCell" id="1042008644">
                                                                                        <object class="NSButton" id="892129196">
                                                                                                <reference key="NSNextResponder" ref="865103585"/>
                                                                                                <int key="NSvFlags">268</int>
-                                                                                               <string key="NSFrame">{{78, 19}, {63, 18}}</string>
+                                                                                               <string key="NSFrame">{{78, 35}, {63, 18}}</string>
                                                                                                <reference key="NSSuperview" ref="865103585"/>
+                                                                                               <reference key="NSWindow"/>
                                                                                                <reference key="NSNextKeyView" ref="852692720"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSButtonCell" key="NSCell" id="429867337">
                                                                                                                <string>NSFilenamesPboardType</string>
                                                                                                        </object>
                                                                                                </object>
-                                                                                               <string key="NSFrame">{{97, 110}, {161, 22}}</string>
+                                                                                               <string key="NSFrame">{{97, 186}, {161, 22}}</string>
                                                                                                <reference key="NSSuperview" ref="865103585"/>
+                                                                                               <reference key="NSWindow"/>
                                                                                                <reference key="NSNextKeyView" ref="701502029"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                <object class="NSPathCell" key="NSCell" id="238772973">
                                                                                                        <int key="NSCellFlags2">131072</int>
                                                                                                        <object class="NSURL" key="NSContents">
                                                                                                                <nil key="NS.base"/>
-                                                                                                               <object class="NSMutableString" key="NS.relative">
-                                                                                                                       <characters key="NS.bytes">file://localhost/</characters>
-                                                                                                               </object>
+                                                                                                               <string key="NS.relative">file://localhost/</string>
                                                                                                        </object>
                                                                                                        <reference key="NSSupport" ref="26"/>
                                                                                                        <reference key="NSControlView" ref="193312849"/>
                                                                                                </object>
                                                                                        </object>
                                                                                </object>
-                                                                               <string key="NSFrameSize">{265, 159}</string>
+                                                                               <string key="NSFrameSize">{265, 235}</string>
                                                                                <reference key="NSSuperview" ref="564742342"/>
+                                                                               <reference key="NSWindow"/>
                                                                                <reference key="NSNextKeyView" ref="1054241470"/>
                                                                        </object>
                                                                        <string key="NSLabel">General</string>
                                                                                        <object class="NSButton" id="724709226">
                                                                                                <reference key="NSNextResponder" ref="646652655"/>
                                                                                                <int key="NSvFlags">292</int>
-                                                                                               <string key="NSFrame">{{5, 2}, {72, 28}}</string>
+                                                                                               <string key="NSFrame">{{5, 78}, {72, 28}}</string>
                                                                                                <reference key="NSSuperview" ref="646652655"/>
                                                                                                <reference key="NSNextKeyView" ref="131074952"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                        <object class="NSButton" id="131074952">
                                                                                                <reference key="NSNextResponder" ref="646652655"/>
                                                                                                <int key="NSvFlags">289</int>
-                                                                                               <string key="NSFrame">{{188, 2}, {72, 28}}</string>
+                                                                                               <string key="NSFrame">{{188, 78}, {72, 28}}</string>
                                                                                                <reference key="NSSuperview" ref="646652655"/>
                                                                                                <reference key="NSNextKeyView"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                        </object>
                                                                                                        <reference ref="958839404"/>
                                                                                                </object>
-                                                                                               <string key="NSFrame">{{10, 53}, {122, 96}}</string>
+                                                                                               <string key="NSFrame">{{10, 129}, {122, 96}}</string>
                                                                                                <reference key="NSSuperview" ref="646652655"/>
                                                                                                <reference key="NSNextKeyView" ref="27951958"/>
                                                                                                <int key="NSsFlags">562</int>
                                                                                                        </object>
                                                                                                        <reference ref="913709756"/>
                                                                                                </object>
-                                                                                               <string key="NSFrame">{{133, 53}, {122, 96}}</string>
+                                                                                               <string key="NSFrame">{{133, 129}, {122, 96}}</string>
                                                                                                <reference key="NSSuperview" ref="646652655"/>
                                                                                                <reference key="NSNextKeyView" ref="817353191"/>
                                                                                                <int key="NSsFlags">562</int>
                                                                                        <object class="NSButton" id="988713632">
                                                                                                <reference key="NSNextResponder" ref="646652655"/>
                                                                                                <int key="NSvFlags">292</int>
-                                                                                               <string key="NSFrame">{{10, 33}, {18, 18}}</string>
+                                                                                               <string key="NSFrame">{{10, 109}, {18, 18}}</string>
                                                                                                <reference key="NSSuperview" ref="646652655"/>
                                                                                                <reference key="NSNextKeyView" ref="616473836"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                        <object class="NSButton" id="616473836">
                                                                                                <reference key="NSNextResponder" ref="646652655"/>
                                                                                                <int key="NSvFlags">292</int>
-                                                                                               <string key="NSFrame">{{27, 33}, {18, 18}}</string>
+                                                                                               <string key="NSFrame">{{27, 109}, {18, 18}}</string>
                                                                                                <reference key="NSSuperview" ref="646652655"/>
                                                                                                <reference key="NSNextKeyView" ref="566469435"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                        <object class="NSBox" id="1073611401">
                                                                                                <reference key="NSNextResponder" ref="646652655"/>
                                                                                                <int key="NSvFlags">-2147483634</int>
-                                                                                               <string key="NSFrame">{{0, 23}, {265, 5}}</string>
+                                                                                               <string key="NSFrame">{{0, 99}, {265, 5}}</string>
                                                                                                <reference key="NSSuperview" ref="646652655"/>
                                                                                                <reference key="NSNextKeyView" ref="724709226"/>
                                                                                                <string key="NSOffsets">{0, 0}</string>
                                                                                        <object class="NSButton" id="566469435">
                                                                                                <reference key="NSNextResponder" ref="646652655"/>
                                                                                                <int key="NSvFlags">292</int>
-                                                                                               <string key="NSFrame">{{220, 33}, {18, 18}}</string>
+                                                                                               <string key="NSFrame">{{220, 109}, {18, 18}}</string>
                                                                                                <reference key="NSSuperview" ref="646652655"/>
                                                                                                <reference key="NSNextKeyView" ref="911168208"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                        <object class="NSButton" id="911168208">
                                                                                                <reference key="NSNextResponder" ref="646652655"/>
                                                                                                <int key="NSvFlags">292</int>
-                                                                                               <string key="NSFrame">{{237, 33}, {18, 18}}</string>
+                                                                                               <string key="NSFrame">{{237, 109}, {18, 18}}</string>
                                                                                                <reference key="NSSuperview" ref="646652655"/>
                                                                                                <reference key="NSNextKeyView" ref="1073611401"/>
                                                                                                <bool key="NSEnabled">YES</bool>
                                                                                                </object>
                                                                                        </object>
                                                                                </object>
-                                                                               <string key="NSFrameSize">{265, 159}</string>
+                                                                               <string key="NSFrameSize">{265, 235}</string>
                                                                                <reference key="NSNextKeyView" ref="729122555"/>
                                                                        </object>
                                                                        <string key="NSLabel">Groups</string>
                                                        </object>
                                                </object>
                                        </object>
-                                       <string key="NSFrame">{{7, 11}, {265, 159}}</string>
+                                       <string key="NSFrame">{{7, 11}, {265, 211}}</string>
                                        <reference key="NSSuperview"/>
+                                       <reference key="NSWindow"/>
                                        <reference key="NSNextKeyView" ref="564742342"/>
                                </object>
                                <string key="NSScreenRect">{{0, 0}, {1280, 778}}</string>
                        <object class="NSCustomObject" id="894212860">
                                <string key="NSClassName">GroupAndGroupMemberFormatter</string>
                        </object>
+                       <object class="NSCustomObject" id="193121877">
+                               <string key="NSClassName">NonEmptyStringFormatter</string>
+                       </object>
                </object>
                <object class="IBObjectContainer" key="IBDocument.Objects">
                        <object class="NSMutableArray" key="connectionRecords">
                                </object>
                                <object class="IBConnectionRecord">
                                        <object class="IBBindingConnection" key="connection">
-                                               <string key="label">value: values.authUser</string>
-                                               <reference key="source" ref="379730869"/>
-                                               <reference key="destination" ref="700105088"/>
-                                               <object class="NSNibBindingConnector" key="connector">
-                                                       <reference key="NSSource" ref="379730869"/>
-                                                       <reference key="NSDestination" ref="700105088"/>
-                                                       <string key="NSLabel">value: values.authUser</string>
-                                                       <string key="NSBinding">value</string>
-                                                       <string key="NSKeyPath">values.authUser</string>
-                                                       <object class="NSDictionary" key="NSOptions">
-                                                               <string key="NS.key.0">NSValidatesImmediately</string>
-                                                               <boolean value="YES" key="NS.object.0"/>
-                                                       </object>
-                                                       <int key="NSNibBindingConnectorVersion">2</int>
-                                               </object>
-                                       </object>
-                                       <int key="connectionID">373</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBBindingConnection" key="connection">
-                                               <string key="label">value: values.authToken</string>
-                                               <reference key="source" ref="682758465"/>
-                                               <reference key="destination" ref="700105088"/>
-                                               <object class="NSNibBindingConnector" key="connector">
-                                                       <reference key="NSSource" ref="682758465"/>
-                                                       <reference key="NSDestination" ref="700105088"/>
-                                                       <string key="NSLabel">value: values.authToken</string>
-                                                       <string key="NSBinding">value</string>
-                                                       <string key="NSKeyPath">values.authToken</string>
-                                                       <object class="NSDictionary" key="NSOptions">
-                                                               <string key="NS.key.0">NSValidatesImmediately</string>
-                                                               <boolean value="YES" key="NS.object.0"/>
-                                                       </object>
-                                                       <int key="NSNibBindingConnectorVersion">2</int>
-                                               </object>
-                                       </object>
-                                       <int key="connectionID">374</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBBindingConnection" key="connection">
                                                <string key="label">target: pithosBrowserController.accountNode</string>
                                                <reference key="source" ref="724709226"/>
                                                <reference key="destination" ref="1001"/>
                                        </object>
                                        <int key="connectionID">477</int>
                                </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">formatter</string>
+                                               <reference key="source" ref="379730869"/>
+                                               <reference key="destination" ref="193121877"/>
+                                       </object>
+                                       <int key="connectionID">482</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">formatter</string>
+                                               <reference key="source" ref="682758465"/>
+                                               <reference key="destination" ref="193121877"/>
+                                       </object>
+                                       <int key="connectionID">483</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">authenticationApply:</string>
+                                               <reference key="source" ref="1001"/>
+                                               <reference key="destination" ref="823976873"/>
+                                       </object>
+                                       <int key="connectionID">489</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBBindingConnection" key="connection">
+                                               <string key="label">value: values.authUser</string>
+                                               <reference key="source" ref="379730869"/>
+                                               <reference key="destination" ref="700105088"/>
+                                               <object class="NSNibBindingConnector" key="connector">
+                                                       <reference key="NSSource" ref="379730869"/>
+                                                       <reference key="NSDestination" ref="700105088"/>
+                                                       <string key="NSLabel">value: values.authUser</string>
+                                                       <string key="NSBinding">value</string>
+                                                       <string key="NSKeyPath">values.authUser</string>
+                                                       <object class="NSDictionary" key="NSOptions">
+                                                               <string key="NS.key.0">NSValidatesImmediately</string>
+                                                               <boolean value="YES" key="NS.object.0"/>
+                                                       </object>
+                                                       <int key="NSNibBindingConnectorVersion">2</int>
+                                               </object>
+                                       </object>
+                                       <int key="connectionID">492</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBBindingConnection" key="connection">
+                                               <string key="label">value: values.authToken</string>
+                                               <reference key="source" ref="682758465"/>
+                                               <reference key="destination" ref="700105088"/>
+                                               <object class="NSNibBindingConnector" key="connector">
+                                                       <reference key="NSSource" ref="682758465"/>
+                                                       <reference key="NSDestination" ref="700105088"/>
+                                                       <string key="NSLabel">value: values.authToken</string>
+                                                       <string key="NSBinding">value</string>
+                                                       <string key="NSKeyPath">values.authToken</string>
+                                                       <object class="NSDictionary" key="NSOptions">
+                                                               <string key="NS.key.0">NSValidatesImmediately</string>
+                                                               <boolean value="YES" key="NS.object.0"/>
+                                                       </object>
+                                                       <int key="NSNibBindingConnectorVersion">2</int>
+                                               </object>
+                                       </object>
+                                       <int key="connectionID">496</int>
+                               </object>
                        </object>
                        <object class="IBMutableOrderedSet" key="objectRecords">
                                <object class="NSArray" key="orderedObjects">
                                                        <reference ref="1017221490"/>
                                                        <reference ref="992895966"/>
                                                        <reference ref="701502029"/>
-                                                       <reference ref="338834025"/>
                                                        <reference ref="379730869"/>
                                                        <reference ref="682758465"/>
                                                        <reference ref="1054241470"/>
+                                                       <reference ref="193312849"/>
+                                                       <reference ref="823976873"/>
+                                                       <reference ref="338834025"/>
+                                                       <reference ref="443178290"/>
                                                        <reference ref="892129196"/>
                                                        <reference ref="852692720"/>
-                                                       <reference ref="193312849"/>
                                                </object>
                                                <reference key="parent" ref="874188166"/>
                                        </object>
                                                <reference key="object" ref="238772973"/>
                                                <reference key="parent" ref="193312849"/>
                                        </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">481</int>
+                                               <reference key="object" ref="193121877"/>
+                                               <reference key="parent" ref="0"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">484</int>
+                                               <reference key="object" ref="823976873"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="542365240"/>
+                                               </object>
+                                               <reference key="parent" ref="865103585"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">485</int>
+                                               <reference key="object" ref="542365240"/>
+                                               <reference key="parent" ref="823976873"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">487</int>
+                                               <reference key="object" ref="443178290"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="943450840"/>
+                                               </object>
+                                               <reference key="parent" ref="865103585"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">488</int>
+                                               <reference key="object" ref="943450840"/>
+                                               <reference key="parent" ref="443178290"/>
+                                       </object>
                                </object>
                        </object>
                        <object class="NSMutableDictionary" key="flattenedProperties">
                                        <string>449.IBPluginDependency</string>
                                        <string>470.IBPluginDependency</string>
                                        <string>471.IBPluginDependency</string>
+                                       <string>481.IBPluginDependency</string>
+                                       <string>484.IBPluginDependency</string>
+                                       <string>485.IBPluginDependency</string>
+                                       <string>487.IBPluginDependency</string>
+                                       <string>488.IBPluginDependency</string>
                                        <string>5.IBPluginDependency</string>
                                        <string>6.IBPluginDependency</string>
                                </object>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                </object>
                        </object>
                        <object class="NSMutableDictionary" key="unlocalizedProperties">
                                <reference key="dict.values" ref="0"/>
                        </object>
                        <nil key="sourceID"/>
-                       <int key="maxID">477</int>
+                       <int key="maxID">496</int>
+               </object>
+               <object class="IBClassDescriber" key="IBDocument.Classes">
+                       <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">GroupAndGroupMemberFormatter</string>
+                                       <string key="superclassName">NSFormatter</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBProjectSource</string>
+                                               <string key="minorKey">./Classes/GroupAndGroupMemberFormatter.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NonEmptyStringFormatter</string>
+                                       <string key="superclassName">NSFormatter</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBProjectSource</string>
+                                               <string key="minorKey">./Classes/NonEmptyStringFormatter.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">PithosBrowserController</string>
+                                       <string key="superclassName">NSWindowController</string>
+                                       <object class="NSMutableDictionary" key="actions">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSArray" key="dict.sortedKeys">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>forceRefresh:</string>
+                                                       <string>refresh:</string>
+                                               </object>
+                                               <object class="NSMutableArray" key="dict.values">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                               </object>
+                                       </object>
+                                       <object class="NSMutableDictionary" key="actionInfosByName">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSArray" key="dict.sortedKeys">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>forceRefresh:</string>
+                                                       <string>refresh:</string>
+                                               </object>
+                                               <object class="NSMutableArray" key="dict.values">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <object class="IBActionInfo">
+                                                               <string key="name">forceRefresh:</string>
+                                                               <string key="candidateClassName">id</string>
+                                                       </object>
+                                                       <object class="IBActionInfo">
+                                                               <string key="name">refresh:</string>
+                                                               <string key="candidateClassName">id</string>
+                                                       </object>
+                                               </object>
+                                       </object>
+                                       <object class="NSMutableDictionary" key="outlets">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSArray" key="dict.sortedKeys">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>activityProgressIndicator</string>
+                                                       <string>activityTextField</string>
+                                                       <string>browser</string>
+                                                       <string>browserMenu</string>
+                                                       <string>horizontalSplitView</string>
+                                                       <string>leftBottomView</string>
+                                                       <string>leftTopView</string>
+                                                       <string>outlineView</string>
+                                                       <string>outlineViewMenu</string>
+                                                       <string>verticalSplitView</string>
+                                               </object>
+                                               <object class="NSMutableArray" key="dict.values">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>NSProgressIndicator</string>
+                                                       <string>NSTextField</string>
+                                                       <string>NSBrowser</string>
+                                                       <string>NSMenu</string>
+                                                       <string>NSSplitView</string>
+                                                       <string>NSView</string>
+                                                       <string>NSView</string>
+                                                       <string>NSOutlineView</string>
+                                                       <string>NSMenu</string>
+                                                       <string>NSSplitView</string>
+                                               </object>
+                                       </object>
+                                       <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSArray" key="dict.sortedKeys">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>activityProgressIndicator</string>
+                                                       <string>activityTextField</string>
+                                                       <string>browser</string>
+                                                       <string>browserMenu</string>
+                                                       <string>horizontalSplitView</string>
+                                                       <string>leftBottomView</string>
+                                                       <string>leftTopView</string>
+                                                       <string>outlineView</string>
+                                                       <string>outlineViewMenu</string>
+                                                       <string>verticalSplitView</string>
+                                               </object>
+                                               <object class="NSMutableArray" key="dict.values">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <object class="IBToOneOutletInfo">
+                                                               <string key="name">activityProgressIndicator</string>
+                                                               <string key="candidateClassName">NSProgressIndicator</string>
+                                                       </object>
+                                                       <object class="IBToOneOutletInfo">
+                                                               <string key="name">activityTextField</string>
+                                                               <string key="candidateClassName">NSTextField</string>
+                                                       </object>
+                                                       <object class="IBToOneOutletInfo">
+                                                               <string key="name">browser</string>
+                                                               <string key="candidateClassName">NSBrowser</string>
+                                                       </object>
+                                                       <object class="IBToOneOutletInfo">
+                                                               <string key="name">browserMenu</string>
+                                                               <string key="candidateClassName">NSMenu</string>
+                                                       </object>
+                                                       <object class="IBToOneOutletInfo">
+                                                               <string key="name">horizontalSplitView</string>
+                                                               <string key="candidateClassName">NSSplitView</string>
+                                                       </object>
+                                                       <object class="IBToOneOutletInfo">
+                                                               <string key="name">leftBottomView</string>
+                                                               <string key="candidateClassName">NSView</string>
+                                                       </object>
+                                                       <object class="IBToOneOutletInfo">
+                                                               <string key="name">leftTopView</string>
+                                                               <string key="candidateClassName">NSView</string>
+                                                       </object>
+                                                       <object class="IBToOneOutletInfo">
+                                                               <string key="name">outlineView</string>
+                                                               <string key="candidateClassName">NSOutlineView</string>
+                                                       </object>
+                                                       <object class="IBToOneOutletInfo">
+                                                               <string key="name">outlineViewMenu</string>
+                                                               <string key="candidateClassName">NSMenu</string>
+                                                       </object>
+                                                       <object class="IBToOneOutletInfo">
+                                                               <string key="name">verticalSplitView</string>
+                                                               <string key="candidateClassName">NSSplitView</string>
+                                                       </object>
+                                               </object>
+                                       </object>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBProjectSource</string>
+                                               <string key="minorKey">./Classes/PithosBrowserController.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">PithosPreferencesController</string>
+                                       <string key="superclassName">NSWindowController</string>
+                                       <object class="NSMutableDictionary" key="actions">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSArray" key="dict.sortedKeys">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>authenticationApply:</string>
+                                                       <string>authenticationLogin:</string>
+                                                       <string>toolbarItemSelected:</string>
+                                               </object>
+                                               <object class="NSMutableArray" key="dict.values">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                               </object>
+                                       </object>
+                                       <object class="NSMutableDictionary" key="actionInfosByName">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSArray" key="dict.sortedKeys">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>authenticationApply:</string>
+                                                       <string>authenticationLogin:</string>
+                                                       <string>toolbarItemSelected:</string>
+                                               </object>
+                                               <object class="NSMutableArray" key="dict.values">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <object class="IBActionInfo">
+                                                               <string key="name">authenticationApply:</string>
+                                                               <string key="candidateClassName">id</string>
+                                                       </object>
+                                                       <object class="IBActionInfo">
+                                                               <string key="name">authenticationLogin:</string>
+                                                               <string key="candidateClassName">id</string>
+                                                       </object>
+                                                       <object class="IBActionInfo">
+                                                               <string key="name">toolbarItemSelected:</string>
+                                                               <string key="candidateClassName">id</string>
+                                                       </object>
+                                               </object>
+                                       </object>
+                                       <object class="NSMutableDictionary" key="outlets">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSArray" key="dict.sortedKeys">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>authenticationRenewCheckBox</string>
+                                                       <string>authenticationTokenTextField</string>
+                                                       <string>authenticationUserTextField</string>
+                                                       <string>groupsDictionaryController</string>
+                                                       <string>pithosBrowserController</string>
+                                                       <string>selectedGroupMembersDictionaryController</string>
+                                               </object>
+                                               <object class="NSMutableArray" key="dict.values">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>NSButton</string>
+                                                       <string>NSTextField</string>
+                                                       <string>NSTextField</string>
+                                                       <string>NSDictionaryController</string>
+                                                       <string>PithosBrowserController</string>
+                                                       <string>NSDictionaryController</string>
+                                               </object>
+                                       </object>
+                                       <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSArray" key="dict.sortedKeys">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>authenticationRenewCheckBox</string>
+                                                       <string>authenticationTokenTextField</string>
+                                                       <string>authenticationUserTextField</string>
+                                                       <string>groupsDictionaryController</string>
+                                                       <string>pithosBrowserController</string>
+                                                       <string>selectedGroupMembersDictionaryController</string>
+                                               </object>
+                                               <object class="NSMutableArray" key="dict.values">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <object class="IBToOneOutletInfo">
+                                                               <string key="name">authenticationRenewCheckBox</string>
+                                                               <string key="candidateClassName">NSButton</string>
+                                                       </object>
+                                                       <object class="IBToOneOutletInfo">
+                                                               <string key="name">authenticationTokenTextField</string>
+                                                               <string key="candidateClassName">NSTextField</string>
+                                                       </object>
+                                                       <object class="IBToOneOutletInfo">
+                                                               <string key="name">authenticationUserTextField</string>
+                                                               <string key="candidateClassName">NSTextField</string>
+                                                       </object>
+                                                       <object class="IBToOneOutletInfo">
+                                                               <string key="name">groupsDictionaryController</string>
+                                                               <string key="candidateClassName">NSDictionaryController</string>
+                                                       </object>
+                                                       <object class="IBToOneOutletInfo">
+                                                               <string key="name">pithosBrowserController</string>
+                                                               <string key="candidateClassName">PithosBrowserController</string>
+                                                       </object>
+                                                       <object class="IBToOneOutletInfo">
+                                                               <string key="name">selectedGroupMembersDictionaryController</string>
+                                                               <string key="candidateClassName">NSDictionaryController</string>
+                                                       </object>
+                                               </object>
+                                       </object>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBProjectSource</string>
+                                               <string key="minorKey">./Classes/PithosPreferencesController.h</string>
+                                       </object>
+                               </object>
+                       </object>
                </object>
-               <object class="IBClassDescriber" key="IBDocument.Classes"/>
                <int key="IBDocument.localizationMode">0</int>
                <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
                <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
index 151ddb7..173c1d1 100644 (file)
     return YES;
 }
 
-
 // List of objects at the given container/object path, with prefix and or delimiter
 + (NSArray *)objectsWithContainerName:(NSString *)containerName objectNamePrefix:(NSString *)objectNamePrefix 
                             delimiter:(NSString *)delimiter sharingAccount:(NSString *)sharingAccount {
index 61889fb..d6d06c4 100644 (file)
     NSString *authToken = [userDefaults stringForKey:@"authToken"];
     NSString *syncDirectoryPath = [userDefaults stringForKey:@"pithosSyncDirectoryPath"];
     NSLog(@"Authentication - storageURLPrefix:%@, authUser:%@, authToken:%@", storageURLPrefix, authUser, authToken);
-    if ([authUser length] && [authToken length] && 
-        (![[ASIPithosRequest authUser] isEqualToString:authUser] || ![[ASIPithosRequest authToken] isEqualToString:authToken])) {
+    if (([authUser length] == 0) || ([authToken length] == 0)) {
+        [self showPithosPreferences:self];
+    } else if ([authUser length] && [authToken length] && 
+               (![[ASIPithosRequest authUser] isEqualToString:authUser] || ![[ASIPithosRequest authToken] isEqualToString:authToken])) {
         [[ASIDownloadCache sharedCache] clearCachedResponsesForStoragePolicy:ASICacheForSessionDurationCacheStoragePolicy];
         [[ASIPithosRequest sharedQueue] cancelAllOperations];
         
                                                                  resetLocalState:NO] autorelease];
         
         [[NSNotificationCenter defaultCenter] postNotificationName:@"PithosAuthenticationCredentialsUpdated" object:self];
-        return;
-    }
-    if (![pithosSyncDaemon.directoryPath isEqualToString:syncDirectoryPath])
+    } else if (![pithosSyncDaemon.directoryPath isEqualToString:syncDirectoryPath]) {
         self.pithosSyncDaemon = [[[PithosSyncDaemon alloc] initWithDirectoryPath:syncDirectoryPath 
                                                                    containerName:syncContainerName 
                                                                     timeInterval:syncTimeInterval 
                                                                  resetLocalState:YES] autorelease];
+    }
 }
 
 @end