Bug Fixes.
[super viewDidDisappear:animated];
}
-- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
-{
- // Return YES for supported orientations
- return (interfaceOrientation == UIInterfaceOrientationPortrait);
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
+ return (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) || (toInterfaceOrientation == UIInterfaceOrientationPortrait);
}
#pragma mark - Table view data source
id getContainersFailedObserver;
BOOL containersLoaded;
+ NSString *accountUsageInfo;
}
@property (nonatomic, retain) IBOutlet UITableView *tableView;
- (void)refreshButtonPressed:(id)sender;
+// Helper methods
+- (NSString *)humanReadableSize:(unsigned long long)bytes;
+
@end
containersLoaded = YES;
refreshButton.enabled = YES;
[self hideToolbarActivityMessage];
+ [self showToolbarInfoMessage:accountUsageInfo];
}
- (void)refreshButtonPressed:(id)sender {
//BOOL hadZeroContainers = [self.account.containers count] == 0;
- refreshButton.enabled = NO;
+ [self hideToolbarInfoMessage];
[self showToolbarActivityMessage:@"Refreshing containers..."];
[[self.account.manager getContainersWithCallback] success:^(OpenStackRequest *request) {
self.account.containers = [request containers];
self.account.containerCount = [self.account.containers count];
+ self.account.totalBytesUsed = [[request.responseHeaders objectForKey:@"X-Account-Bytes-Used"] longLongValue];
+ self.account.quota = [[request.responseHeaders objectForKey:@"X-Account-Policy-Quota"] longLongValue];
+ accountUsageInfo = [NSString stringWithFormat:@"%@ used, %@ available",
+ [self humanReadableSize:self.account.totalBytesUsed], [self humanReadableSize:self.account.quota]];
+
[self.account persist];
[self enableRefreshButton];
[self.tableView reloadData];
}
#pragma mark -
+#pragma mark Helper methods
+
+- (NSString *)humanReadableSize:(unsigned long long)bytes {
+ NSString *sizeUnit = @"bytes";
+
+ double sizeInBytes = bytes;
+ if (bytes > 1023 && bytes < 1048576) {
+ sizeInBytes = bytes / 1024.0;
+ sizeUnit = @"Kb";
+ }
+ else if (bytes > 1048575 && bytes < 1073741824) {
+ sizeInBytes = bytes / 1048576.0;
+ sizeUnit = @"Mb";
+ }
+ else if (bytes > 1073741823) {
+ sizeInBytes = bytes / 1073741824.0;
+ sizeUnit = @"Gb";
+ }
+
+ NSString *humanReadableString = [NSString stringWithFormat:@"%.1f %@", sizeInBytes, sizeUnit];
+ humanReadableString = [humanReadableString stringByReplacingOccurrencesOfString:@".0" withString:@""];
+
+ return humanReadableString;
+}
+
+
+#pragma mark -
#pragma mark Memory management
- (void)dealloc {
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
<data>
<int key="IBDocument.SystemTarget">1056</int>
- <string key="IBDocument.SystemVersion">10J869</string>
- <string key="IBDocument.InterfaceBuilderVersion">844</string>
- <string key="IBDocument.AppKitVersion">1038.35</string>
+ <string key="IBDocument.SystemVersion">10K549</string>
+ <string key="IBDocument.InterfaceBuilderVersion">1306</string>
+ <string key="IBDocument.AppKitVersion">1038.36</string>
<string key="IBDocument.HIToolboxVersion">461.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string key="NS.object.0">141</string>
+ <string key="NS.object.0">301</string>
</object>
- <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <object class="NSArray" key="IBDocument.IntegratedClassDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
+ <string>IBUIBarButtonItem</string>
+ <string>IBUIToolbar</string>
+ <string>IBUITableView</string>
+ <string>IBUIView</string>
+ <string>IBProxyObject</string>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys" id="0">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
+ <reference key="dict.values" ref="0"/>
</object>
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
<bool key="EncodedWithXMLCoder">YES</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIView" id="463627279">
- <nil key="NSNextResponder"/>
+ <reference key="NSNextResponder"/>
<int key="NSvFlags">292</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<int key="NSvFlags">266</int>
<string key="NSFrame">{{0, 416}, {320, 44}}</string>
<reference key="NSSuperview" ref="463627279"/>
+ <reference key="NSNextKeyView"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<int key="NSvFlags">274</int>
<string key="NSFrameSize">{320, 416}</string>
<reference key="NSSuperview" ref="463627279"/>
+ <reference key="NSNextKeyView" ref="1006532466"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
</object>
</object>
<string key="NSFrameSize">{320, 460}</string>
+ <reference key="NSSuperview"/>
+ <reference key="NSNextKeyView" ref="338862288"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
- <string key="label">toolbar</string>
- <reference key="source" ref="372490531"/>
- <reference key="destination" ref="1006532466"/>
- </object>
- <int key="connectionID">14</int>
- </object>
- <object class="IBConnectionRecord">
- <object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">view</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="463627279"/>
</object>
<int key="connectionID">21</int>
</object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">toolbar</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="1006532466"/>
+ </object>
+ <int key="connectionID">24</int>
+ </object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
<object class="IBObjectRecord">
<int key="objectID">10</int>
<reference key="object" ref="338862288"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
<reference key="parent" ref="463627279"/>
</object>
<object class="IBObjectRecord">
<object class="NSMutableDictionary" key="unlocalizedProperties">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
+ <reference key="dict.values" ref="0"/>
</object>
<nil key="activeLocalization"/>
<object class="NSMutableDictionary" key="localizations">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
+ <reference key="dict.values" ref="0"/>
</object>
<nil key="sourceID"/>
- <int key="maxID">21</int>
- </object>
- <object class="IBClassDescriber" key="IBDocument.Classes">
- <object class="NSMutableArray" key="referencedPartialClassDescriptions">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBPartialClassDescription">
- <string key="className">ContainersViewController</string>
- <string key="superclassName">OpenStackViewController</string>
- <object class="NSMutableDictionary" key="actions">
- <string key="NS.key.0">refreshButtonPressed:</string>
- <string key="NS.object.0">id</string>
- </object>
- <object class="NSMutableDictionary" key="actionInfosByName">
- <string key="NS.key.0">refreshButtonPressed:</string>
- <object class="IBActionInfo" key="NS.object.0">
- <string key="name">refreshButtonPressed:</string>
- <string key="candidateClassName">id</string>
- </object>
- </object>
- <object class="NSMutableDictionary" key="outlets">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSArray" key="dict.sortedKeys">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>failureObserver</string>
- <string>getContainersFailedObserver</string>
- <string>getContainersSucceededObserver</string>
- <string>refreshButton</string>
- <string>successObserver</string>
- <string>tableView</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <string>id</string>
- <string>id</string>
- <string>id</string>
- <string>UIBarButtonItem</string>
- <string>id</string>
- <string>UITableView</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>failureObserver</string>
- <string>getContainersFailedObserver</string>
- <string>getContainersSucceededObserver</string>
- <string>refreshButton</string>
- <string>successObserver</string>
- <string>tableView</string>
- </object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBToOneOutletInfo">
- <string key="name">failureObserver</string>
- <string key="candidateClassName">id</string>
- </object>
- <object class="IBToOneOutletInfo">
- <string key="name">getContainersFailedObserver</string>
- <string key="candidateClassName">id</string>
- </object>
- <object class="IBToOneOutletInfo">
- <string key="name">getContainersSucceededObserver</string>
- <string key="candidateClassName">id</string>
- </object>
- <object class="IBToOneOutletInfo">
- <string key="name">refreshButton</string>
- <string key="candidateClassName">UIBarButtonItem</string>
- </object>
- <object class="IBToOneOutletInfo">
- <string key="name">successObserver</string>
- <string key="candidateClassName">id</string>
- </object>
- <object class="IBToOneOutletInfo">
- <string key="name">tableView</string>
- <string key="candidateClassName">UITableView</string>
- </object>
- </object>
- </object>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBProjectSource</string>
- <string key="minorKey">Classes/ContainersViewController.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">Classes/NSObject+Conveniences.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">Classes/NSObject+SBJSON.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">Classes/SBJsonWriter.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">OpenStackViewController</string>
- <string key="superclassName">UIViewController</string>
- <object class="NSMutableDictionary" key="outlets">
- <string key="NS.key.0">toolbar</string>
- <string key="NS.object.0">UIToolbar</string>
- </object>
- <object class="NSMutableDictionary" key="toOneOutletInfosByName">
- <string key="NS.key.0">toolbar</string>
- <object class="IBToOneOutletInfo" key="NS.object.0">
- <string key="name">toolbar</string>
- <string key="candidateClassName">UIToolbar</string>
- </object>
- </object>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBProjectSource</string>
- <string key="minorKey">Classes/OpenStackViewController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBProjectSource</string>
- <string key="minorKey">Classes/UIViewController+Conveniences.h</string>
- </object>
- </object>
- </object>
- <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier" id="139443162">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIBarButtonItem</string>
- <string key="superclassName">UIBarItem</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIBarButtonItem.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIBarItem</string>
- <string key="superclassName">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIBarItem.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIResponder</string>
- <string key="superclassName">NSObject</string>
- <reference key="sourceIdentifier" ref="139443162"/>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIScrollView</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIScrollView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISearchBar</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UISearchDisplayController</string>
- <string key="superclassName">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UITableView</string>
- <string key="superclassName">UIScrollView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITableView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIToolbar</string>
- <string key="superclassName">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIToolbar.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIView</string>
- <string key="superclassName">UIResponder</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">MediaPlayer.framework/Headers/MPMoviePlayerViewController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">UIViewController</string>
- <string key="superclassName">UIResponder</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBFrameworkSource</string>
- <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
- </object>
- </object>
- </object>
+ <int key="maxID">25</int>
</object>
+ <object class="IBClassDescriber" key="IBDocument.Classes"/>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
<integer value="3000" key="NS.object.0"/>
</object>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
- <string key="IBDocument.LastKnownRelativeProjectPath">../OpenStack.xcodeproj</string>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
- <string key="IBCocoaTouchPluginVersion">141</string>
+ <string key="IBCocoaTouchPluginVersion">301</string>
</data>
</archive>
[super viewDidDisappear:animated];
}
-- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
-{
- // Return YES for supported orientations
- return (interfaceOrientation == UIInterfaceOrientationPortrait);
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
+ return (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) || (toInterfaceOrientation == UIInterfaceOrientationPortrait);
}
#pragma mark - Table view data source
UITextField *textField = [[UITextField alloc] initWithFrame:rect];
[textField setFrame:rect];
[textField setClearButtonMode:UITextFieldViewModeWhileEditing];
- [textField setBackgroundColor:[UIColor whiteColor]];
+ [textField setBackgroundColor:[UIColor clearColor]];
[textField setOpaque:YES];
[textField setAutocorrectionType:UITextAutocorrectionTypeNo];
[textField setAutocapitalizationType:UITextAutocapitalizationTypeNone];
UITextField *textField = [[UITextField alloc] initWithFrame:rect];
[textField setFrame:rect];
[textField setClearButtonMode:UITextFieldViewModeWhileEditing];
- [textField setBackgroundColor:[UIColor whiteColor]];
+ [textField setBackgroundColor:[UIColor clearColor]];
[textField setOpaque:YES];
[textField setAutocorrectionType:UITextAutocorrectionTypeNo];
[textField setAutocapitalizationType:UITextAutocapitalizationTypeNone];
@property (nonatomic, retain) NSMutableDictionary *permissions;
@property (nonatomic, retain) NSString *oldPermissionsString;
+// Helper methods
- (NSString *)buildPermissionsString;
+- (BOOL)userInputIsValid:(NSString *)input;
@end
UITextField *textField = [[UITextField alloc] initWithFrame:rect];
[textField setFrame:rect];
[textField setClearButtonMode:UITextFieldViewModeWhileEditing];
- [textField setBackgroundColor:[UIColor whiteColor]];
+ [textField setBackgroundColor:[UIColor clearColor]];
[textField setOpaque:YES];
[textField setAutocorrectionType:UITextAutocorrectionTypeNo];
[textField setAutocapitalizationType:UITextAutocapitalizationTypeNone];
UITextField *textField = [[cell.contentView subviews] objectAtIndex:0];
newUserName = textField.text;
- if ([newUserName length] == 0
- || [[newUserName stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length] == 0) {
- [self.tableView deselectRowAtIndexPath:indexPath animated:YES];
- [self alert:@"Invalid input" message:@"User name field cannot be empty"];
- return;
- }
+ if (![self userInputIsValid:newUserName])
+ return;
}
if (indexPath.section == kPermissions) {
- (void)textFieldDidEndEditing:(UITextField *)textField
{
- if ([textField.text length] == 0
- || [[textField.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length] == 0) {
- [self alert:@"Invalid input" message:@"User name field cannot be empty"];
- }
+ [self userInputIsValid:textField.text];
}
else return [NSString stringWithFormat:@"%@;%@", readPermissionsString, writePermissionsString];
}
+- (BOOL)userInputIsValid:(NSString *)input {
+ if ([input length] == 0
+ || [[input stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length] == 0
+ ) {
+ [self alert:@"Invalid input" message:@"User name field cannot be empty"];
+ return NO;
+ }
+ else {
+ NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:@"=,;"];
+ if ([input rangeOfCharacterFromSet:set].location != NSNotFound) {
+ [self alert:@"Invalid input" message:@"User name cannot contain '=', ',' or ';'"];
+ return NO;
+ }
+ else {
+ return YES;
+ }
+ }
+
+ return YES;
+}
@end
UITextField *textField = [[UITextField alloc] initWithFrame:rect];
[textField setFrame:rect];
[textField setClearButtonMode:UITextFieldViewModeWhileEditing];
- [textField setBackgroundColor:[UIColor whiteColor]];
+ [textField setBackgroundColor:[UIColor clearColor]];
[textField setOpaque:YES];
[textField setAutocorrectionType:UITextAutocorrectionTypeNo];
[textField setAutocapitalizationType:UITextAutocapitalizationTypeNone];
//
#import <UIKit/UIKit.h>
+#import "OpenStackViewController.h"
@class OpenStackAccount, Container, Folder, ActivityIndicatorView, ContainersViewController;
-@interface FolderViewController : UITableViewController <UIActionSheetDelegate> {
+@interface FolderViewController : OpenStackViewController <UITableViewDelegate, UITableViewDataSource, UIActionSheetDelegate> {
OpenStackAccount *account;
Container *container;
Folder *folder;
NSIndexPath *selectedFolderIndexPath;
BOOL contentsLoaded;
UIActionSheet *deleteActionSheet;
+
+ IBOutlet UITableView *tableView;
+ IBOutlet UIBarButtonItem *homeButton;
}
@property (nonatomic, retain) OpenStackAccount *account;
@property (nonatomic, retain) NSIndexPath *selectedFolderIndexPath;
@property (nonatomic, assign) BOOL contentsLoaded;
+@property (nonatomic, retain) IBOutlet UITableView *tableView;
+
+- (IBAction)homeButtonPressed:(id)sender;
@end
@implementation FolderViewController
-@synthesize account, container, folder, containersViewController, selectedContainerIndexPath, contentsLoaded, parentFolderViewController, selectedFolderIndexPath;
+@synthesize account, container, folder, containersViewController, selectedContainerIndexPath, contentsLoaded, parentFolderViewController, selectedFolderIndexPath, tableView;
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
return (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) || (toInterfaceOrientation == UIInterfaceOrientationPortrait);
}
}
+- (IBAction)homeButtonPressed:(id)sender {
+ [self.navigationController popToRootViewControllerAnimated:YES];
+}
+
#pragma mark -
#pragma mark Table view data source
}
// Customize the appearance of table view cells.
-- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
+- (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if ([folder.objects count] + [folder.folders count] == 0) {
if ([self.container.rootFolder isEqual:self.folder]) {
- return [self tableView:tableView emptyCellWithImage:[UIImage imageNamed:@"empty-files.png"] title:@"No Files or Folders" subtitle:@"Tap the + button to add a new file or folder."];
+ return [self tableView:aTableView emptyCellWithImage:[UIImage imageNamed:@"empty-files.png"] title:@"No Files or Folders" subtitle:@"Tap the + button to add a new file or folder."];
} else {
- return [self tableView:tableView emptyCellWithImage:[UIImage imageNamed:@"empty-files.png"] title:@"No Files or Folders" subtitle:@"Tap the + button to add a new file or folder." deleteButtonTitle:@"Delete Folder" deleteButtonSelector:@selector(deleteButtonPressed:)];
+ return [self tableView:aTableView emptyCellWithImage:[UIImage imageNamed:@"empty-files.png"] title:@"No Files or Folders" subtitle:@"Tap the + button to add a new file or folder." deleteButtonTitle:@"Delete Folder" deleteButtonSelector:@selector(deleteButtonPressed:)];
}
} else {
static NSString *CellIdentifier = @"Cell";
- UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
+ UITableViewCell *cell = [aTableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
}
vc.parentFolderViewController = self;
[self.navigationController pushViewController:vc animated:YES];
[vc release];
+ [self.tableView deselectRowAtIndexPath:indexPath animated:YES];
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
Folder *folderForDetailView;
if ([folder.sortedContents count] > 0) {
}
} else {
[self.navigationController pushViewController:vc animated:YES];
+ [self.tableView deselectRowAtIndexPath:indexPath animated:YES];
}
[vc release];
}
<?xml version="1.0" encoding="UTF-8"?>
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
<data>
- <int key="IBDocument.SystemTarget">784</int>
- <string key="IBDocument.SystemVersion">10B500</string>
- <string key="IBDocument.InterfaceBuilderVersion">732</string>
- <string key="IBDocument.AppKitVersion">1038.2</string>
- <string key="IBDocument.HIToolboxVersion">437.00</string>
+ <int key="IBDocument.SystemTarget">1056</int>
+ <string key="IBDocument.SystemVersion">10K549</string>
+ <string key="IBDocument.InterfaceBuilderVersion">1306</string>
+ <string key="IBDocument.AppKitVersion">1038.36</string>
+ <string key="IBDocument.HIToolboxVersion">461.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string key="NS.object.0">62</string>
+ <string key="NS.object.0">301</string>
</object>
- <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <object class="NSArray" key="IBDocument.IntegratedClassDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
- <integer value="4"/>
+ <string>IBUIBarButtonItem</string>
+ <string>IBUITableView</string>
+ <string>IBUIToolbar</string>
+ <string>IBUIView</string>
+ <string>IBProxyObject</string>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys" id="0">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
+ <reference key="dict.values" ref="0"/>
</object>
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBProxyObject" id="372490531">
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBProxyObject" id="975951072">
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
- <object class="IBUITableView" id="873029372">
+ <object class="IBUIView" id="228054471">
<reference key="NSNextResponder"/>
- <int key="NSvFlags">274</int>
+ <int key="NSvFlags">292</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUIToolbar" id="599029925">
+ <reference key="NSNextResponder" ref="228054471"/>
+ <int key="NSvFlags">266</int>
+ <string key="NSFrame">{{0, 416}, {320, 44}}</string>
+ <reference key="NSSuperview" ref="228054471"/>
+ <reference key="NSNextKeyView"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <object class="NSMutableArray" key="IBUIItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUIBarButtonItem" id="1009870905">
+ <string key="IBUITitle">Home</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIStyle">1</int>
+ <reference key="IBUIToolbar" ref="599029925"/>
+ </object>
+ </object>
+ <object class="NSColor" key="IBUITintColor">
+ <int key="NSColorSpace">2</int>
+ <bytes key="NSRGB">MC44MDc4NDMyMDgzIDAuMjAwMDAwMDE3OSAwLjE0OTAxOTYxMzkAA</bytes>
+ </object>
+ </object>
+ <object class="IBUITableView" id="173989330">
+ <reference key="NSNextResponder" ref="228054471"/>
+ <int key="NSvFlags">274</int>
+ <string key="NSFrameSize">{320, 416}</string>
+ <reference key="NSSuperview" ref="228054471"/>
+ <reference key="NSNextKeyView" ref="599029925"/>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ </object>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <bool key="IBUIAlwaysBounceVertical">YES</bool>
+ <int key="IBUISeparatorStyle">1</int>
+ <int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
+ <bool key="IBUIShowsSelectionImmediatelyOnTouchBegin">YES</bool>
+ <float key="IBUIRowHeight">44</float>
+ <float key="IBUISectionHeaderHeight">22</float>
+ <float key="IBUISectionFooterHeight">22</float>
+ </object>
+ </object>
<string key="NSFrameSize">{320, 460}</string>
<reference key="NSSuperview"/>
+ <reference key="NSNextKeyView" ref="173989330"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
+ <object class="NSColorSpace" key="NSCustomColorSpace">
+ <int key="NSID">2</int>
+ </object>
</object>
- <bool key="IBUIOpaque">NO</bool>
- <bool key="IBUIClipsSubviews">YES</bool>
- <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
- <object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
- <bool key="IBUIBouncesZoom">NO</bool>
- <int key="IBUISeparatorStyle">1</int>
- <int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
- <bool key="IBUIShowsSelectionImmediatelyOnTouchBegin">YES</bool>
- <float key="IBUIRowHeight">44</float>
- <float key="IBUISectionHeaderHeight">22</float>
- <float key="IBUISectionFooterHeight">22</float>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
</object>
<object class="IBObjectContainer" key="IBDocument.Objects">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">view</string>
<reference key="source" ref="372490531"/>
- <reference key="destination" ref="873029372"/>
+ <reference key="destination" ref="228054471"/>
+ </object>
+ <int key="connectionID">11</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">tableView</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="173989330"/>
</object>
- <int key="connectionID">5</int>
+ <int key="connectionID">12</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">toolbar</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="599029925"/>
+ </object>
+ <int key="connectionID">15</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">dataSource</string>
- <reference key="source" ref="873029372"/>
+ <reference key="source" ref="173989330"/>
<reference key="destination" ref="372490531"/>
</object>
- <int key="connectionID">6</int>
+ <int key="connectionID">16</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">delegate</string>
- <reference key="source" ref="873029372"/>
+ <reference key="source" ref="173989330"/>
<reference key="destination" ref="372490531"/>
</object>
- <int key="connectionID">7</int>
+ <int key="connectionID">17</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">homeButtonPressed:</string>
+ <reference key="source" ref="1009870905"/>
+ <reference key="destination" ref="372490531"/>
+ </object>
+ <int key="connectionID">19</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">homeButton</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="1009870905"/>
+ </object>
+ <int key="connectionID">20</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">4</int>
- <reference key="object" ref="873029372"/>
+ <int key="objectID">9</int>
+ <reference key="object" ref="228054471"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="599029925"/>
+ <reference ref="173989330"/>
+ </object>
<reference key="parent" ref="0"/>
</object>
+ <object class="IBObjectRecord">
+ <int key="objectID">10</int>
+ <reference key="object" ref="173989330"/>
+ <reference key="parent" ref="228054471"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">13</int>
+ <reference key="object" ref="599029925"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="1009870905"/>
+ </object>
+ <reference key="parent" ref="228054471"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">14</int>
+ <reference key="object" ref="1009870905"/>
+ <reference key="parent" ref="599029925"/>
+ </object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>-1.CustomClassName</string>
<string>-2.CustomClassName</string>
- <string>4.IBEditorWindowLastContentRect</string>
- <string>4.IBPluginDependency</string>
+ <string>10.IBPluginDependency</string>
+ <string>13.IBPluginDependency</string>
+ <string>14.IBPluginDependency</string>
+ <string>9.IBPluginDependency</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>FolderViewController</string>
<string>UIResponder</string>
- <string>{{329, 504}, {320, 480}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</object>
</object>
<object class="NSMutableDictionary" key="unlocalizedProperties">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
+ <reference key="dict.values" ref="0"/>
</object>
<nil key="activeLocalization"/>
<object class="NSMutableDictionary" key="localizations">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
+ <reference key="dict.values" ref="0"/>
</object>
<nil key="sourceID"/>
- <int key="maxID">7</int>
- </object>
- <object class="IBClassDescriber" key="IBDocument.Classes">
- <object class="NSMutableArray" key="referencedPartialClassDescriptions">
- <bool key="EncodedWithXMLCoder">YES</bool>
- <object class="IBPartialClassDescription">
- <string key="className">FolderViewController</string>
- <string key="superclassName">UIViewController</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBProjectSource</string>
- <string key="minorKey">FolderViewController.h</string>
- </object>
- </object>
- </object>
+ <int key="maxID">20</int>
</object>
+ <object class="IBClassDescriber" key="IBDocument.Classes"/>
<int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
<integer value="3000" key="NS.object.0"/>
</object>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
- <nil key="IBDocument.LastKnownRelativeProjectPath"/>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
- <string key="IBCocoaTouchPluginVersion">3.1</string>
+ <string key="IBCocoaTouchPluginVersion">301</string>
</data>
</archive>
@property (nonatomic, retain) NSString *lastUsedImageId;
@property (nonatomic, assign) NSInteger containerCount;
@property (nonatomic, assign) unsigned long long totalBytesUsed;
+@property (nonatomic, assign) unsigned long long quota;
@property (nonatomic, retain) NSMutableDictionary *containers;
@property (nonatomic, assign) BOOL flaggedForDelete;
@property (nonatomic, retain) NSString *apiVersion;
@synthesize uuid, provider, username, projectId, images, flavors, servers, serversURL, filesURL, cdnURL, manager, rateLimits,
lastUsedFlavorId, lastUsedImageId,
- containerCount, totalBytesUsed, containers, hasBeenRefreshed, flaggedForDelete,
+ containerCount, totalBytesUsed, quota, containers, hasBeenRefreshed, flaggedForDelete,
loadBalancers, lbProtocols, serversByPublicIP, apiVersion;
+ (void)initialize {
#import "OpenStackAccount.h"
#import "RSSFeedViewController.h"
+#import "PithosImageViewController.h"
#import "RootViewController.h"
#import "PasscodeViewController.h"
// Add the navigation controller's view to the window and display.
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
- RSSFeedViewController *vc = [[RSSFeedViewController alloc] initWithNibName:@"RSSFeedViewController" bundle:nil];
- vc.feed = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"Cloud Servers Status", @"feed://status.rackspacecloud.com/cloudservers/rss.xml", kCloudServersIcon, nil] forKeys:[NSArray arrayWithObjects:@"name", @"url", @"logo", nil]];
+ //RSSFeedViewController *vc = [[RSSFeedViewController alloc] initWithNibName:@"RSSFeedViewController" bundle:nil];
+ //vc.feed = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"Cloud Servers Status", @"feed://status.rackspacecloud.com/cloudservers/rss.xml", kCloudServersIcon, nil] forKeys:[NSArray arrayWithObjects:@"name", @"url", @"logo", nil]];
+ PithosImageViewController *vc = [[PithosImageViewController alloc] initWithNibName:@"PithosImageViewController" bundle:nil];
self.masterNavigationController = [[[UINavigationController alloc] initWithRootViewController:vc] autorelease];
self.masterNavigationController.navigationBar.tintColor = self.navigationController.navigationBar.tintColor;
UIActivityIndicatorView *toolbarActivityIndicatorView;
UIBarButtonItem *toolbarActivityIndicatorItem;
UIBarButtonItem *toolbarLabelItem;
- BOOL toolbarMessageVisible;
+ BOOL toolbarActivityMessageVisible;
+ BOOL toolbarInfoMessageVisible;
AnimatedProgressView *toolbarProgressView;
OpenStackRequest *failedRequest;
// assumes the first two items in the toolbar are flexible width spaces
- (void)showToolbarActivityMessage:(NSString *)text progress:(BOOL)hasProgress;
- (void)showToolbarActivityMessage:(NSString *)text;
+- (void)showToolbarInfoMessage:(NSString *)text;
- (void)hideToolbarActivityMessage;
+- (void)hideToolbarInfoMessage;
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
toolbarProgressView.frame = CGRectMake(0.0, 24.0, 185.0, 10.0);
}
-- (void)showToolbarActivityMessage:(NSString *)text progress:(BOOL)hasProgress {
+- (void)showToolbarInfoMessage:(NSString *)text {
+ if (toolbarInfoMessageVisible) {
+ toolbarLabel.text = text;
+
+ }
+ else {
+ UIFont *font = [UIFont boldSystemFontOfSize:12.0];
+ CGSize stringSize = [text sizeWithFont:font constrainedToSize:CGSizeMake(226.0, 20.0f) lineBreakMode:UILineBreakModeTailTruncation];
+
+ toolbarLabel = [[UILabel alloc] initWithFrame:CGRectMake(10.0, 12.0, stringSize.width, 20.0)];
+ toolbarLabel.textColor = [UIColor whiteColor];
+ toolbarLabel.textAlignment = UITextAlignmentLeft;
+ toolbarLabel.font = font;
+ toolbarLabel.backgroundColor = [UIColor clearColor];
+ toolbarLabel.shadowOffset = CGSizeMake(0, -1.0);
+ toolbarLabel.shadowColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.4];
+ toolbarLabel.text = text;
+
+ NSMutableArray *items;
- if (toolbarMessageVisible) {
+ toolbarLabelItem = [[UIBarButtonItem alloc] initWithCustomView:toolbarLabel];
+ items = [NSMutableArray arrayWithArray:toolbar.items];
+ [items insertObject:toolbarLabelItem atIndex:2];
+
+ toolbar.items = [NSArray arrayWithArray:items];
+ }
+
+ toolbarInfoMessageVisible = YES;
+}
+
+- (void)showToolbarActivityMessage:(NSString *)text progress:(BOOL)hasProgress {
+ UIFont *font = [UIFont boldSystemFontOfSize:12.0];
+ CGSize stringSize = [text sizeWithFont:font constrainedToSize:CGSizeMake(226.0, 20.0f) lineBreakMode:UILineBreakModeTailTruncation];
+ if (toolbarActivityMessageVisible) {
//[self hideToolbarActivityMessage];
- toolbarLabel.text = text;
+ [toolbarLabel setFrame:CGRectMake(10.0, 12.0, stringSize.width, 20.0)];
+ toolbarLabel.text = text;
} else {
- UIFont *font = [UIFont boldSystemFontOfSize:12.0];
- CGSize stringSize = [text sizeWithFont:font constrainedToSize:CGSizeMake(226.0, 20.0f) lineBreakMode:UILineBreakModeTailTruncation];
toolbarLabel = [[UILabel alloc] initWithFrame:CGRectMake(10.0, 12.0, stringSize.width, 20.0)];
toolbarLabel.textColor = [UIColor whiteColor];
toolbarLabel.textAlignment = UITextAlignmentLeft;
toolbar.items = [NSArray arrayWithArray:items];
- toolbarMessageVisible = YES;
+ toolbarActivityMessageVisible = YES;
}
}
[self showToolbarActivityMessage:text progress:NO];
}
+- (void)hideToolbarInfoMessage {
+
+ if (toolbarInfoMessageVisible) {
+ NSMutableArray *items = [NSMutableArray arrayWithArray:toolbar.items];
+ [items removeObject:toolbarLabelItem];
+ toolbar.items = [NSArray arrayWithArray:items];
+
+ [toolbarLabelItem release];
+
+ [toolbarLabel removeFromSuperview];
+ [toolbarLabel release];
+
+ toolbarInfoMessageVisible = NO;
+ }
+
+}
+
+
- (void)hideToolbarActivityMessage {
- if (toolbarMessageVisible) {
+ if (toolbarActivityMessageVisible) {
NSMutableArray *items = [NSMutableArray arrayWithArray:toolbar.items];
[items removeObject:toolbarActivityIndicatorItem];
[items removeObject:toolbarLabelItem];
[toolbarActivityIndicatorView removeFromSuperview];
[toolbarActivityIndicatorView release];
-
- toolbarMessageVisible = NO;
+ toolbarActivityMessageVisible = NO;
}
}
}
- (void)dealloc {
- if (toolbarMessageVisible) {
+ if (toolbarActivityMessageVisible) {
[self hideToolbarActivityMessage];
}
+ if (toolbarInfoMessageVisible) {
+ [self hideToolbarInfoMessage];
+ }
[toolbarProgressView release];
[selectedIndexPath release];
[super dealloc];
--- /dev/null
+//
+// PithosImageViewController.h
+// pithos-ios
+//
+// 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 <UIKit/UIKit.h>
+
+
+@interface PithosImageViewController : UIViewController {
+
+}
+
+@end
--- /dev/null
+//
+// PithosImageViewController.m
+// pithos-ios
+//
+// 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 "PithosImageViewController.h"
+#import "UIColor+MoreColors.h"
+
+
+
+@implementation PithosImageViewController
+
+
+
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
+ return (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) || (toInterfaceOrientation == UIInterfaceOrientationPortrait);
+}
+
+- (void)dealloc
+{
+ [super dealloc];
+}
+
+
+#pragma mark - View lifecycle
+
+- (void)viewDidLoad
+{
+ [super viewDidLoad];
+ [super viewDidLoad];
+ self.navigationItem.title = @"Pithos Online Storage";
+ if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
+ self.view.backgroundColor = [UIColor iPadTableBackgroundColor];
+ }
+}
+
+- (void)viewDidUnload
+{
+ [super viewDidUnload];
+}
+
+
+@end
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
+ <data>
+ <int key="IBDocument.SystemTarget">1056</int>
+ <string key="IBDocument.SystemVersion">10K549</string>
+ <string key="IBDocument.InterfaceBuilderVersion">1306</string>
+ <string key="IBDocument.AppKitVersion">1038.36</string>
+ <string key="IBDocument.HIToolboxVersion">461.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="NS.object.0">301</string>
+ </object>
+ <object class="NSArray" key="IBDocument.IntegratedClassDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>IBProxyObject</string>
+ <string>IBUIView</string>
+ <string>IBUIImageView</string>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys" id="0">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <reference key="dict.values" ref="0"/>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBProxyObject" id="372490531">
+ <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBProxyObject" id="975951072">
+ <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBUIView" id="191373211">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">274</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUIImageView" id="1042148300">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">274</int>
+ <string key="NSFrameSize">{320, 460}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView"/>
+ <int key="IBUIContentMode">1</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <object class="NSCustomResource" key="IBUIImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">pithos-logo-large.png</string>
+ </object>
+ </object>
+ </object>
+ <string key="NSFrame">{{0, 20}, {320, 460}}</string>
+ <reference key="NSSuperview"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="1042148300"/>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ <object class="NSColorSpace" key="NSCustomColorSpace">
+ <int key="NSID">2</int>
+ </object>
+ </object>
+ <object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">view</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="191373211"/>
+ </object>
+ <int key="connectionID">3</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <reference key="object" ref="0"/>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">1</int>
+ <reference key="object" ref="191373211"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="1042148300"/>
+ </object>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="372490531"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="975951072"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">4</int>
+ <reference key="object" ref="1042148300"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.CustomClassName</string>
+ <string>-2.CustomClassName</string>
+ <string>1.IBEditorWindowLastContentRect</string>
+ <string>1.IBPluginDependency</string>
+ <string>4.IBPluginDependency</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>PithosImageViewController</string>
+ <string>UIResponder</string>
+ <string>{{556, 412}, {320, 480}}</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <reference key="dict.values" ref="0"/>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="0"/>
+ <reference key="dict.values" ref="0"/>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">4</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">PithosImageViewController</string>
+ <string key="superclassName">UIViewController</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">./Classes/PithosImageViewController.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
+ <integer value="3000" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ <object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
+ <string key="NS.key.0">pithos-logo-large.png</string>
+ <string key="NS.object.0">{801, 201}</string>
+ </object>
+ <string key="IBCocoaTouchPluginVersion">301</string>
+ </data>
+</archive>
UIActionSheet *deleteActionSheet;
UIActionSheet *cdnURLActionSheet;
IBOutlet UITableView *tableView;
+ IBOutlet UIBarButtonItem *homeButton;
+
id deleteSuccessObserver;
id deleteFailureObserver;
FolderViewController *folderViewController;
@property (nonatomic, retain) NSString *oldPubicURI;
- (void)setProgress:(float)newProgress;
+- (IBAction)homeButtonPressed:(id)sender;
@end
[logo release];
}
+- (IBAction)homeButtonPressed:(id)sender {
+ [self.navigationController popToRootViewControllerAnimated:YES];
+}
#pragma mark -
#pragma mark View lifecycle
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
<data>
<int key="IBDocument.SystemTarget">1056</int>
- <string key="IBDocument.SystemVersion">10J869</string>
- <string key="IBDocument.InterfaceBuilderVersion">844</string>
- <string key="IBDocument.AppKitVersion">1038.35</string>
+ <string key="IBDocument.SystemVersion">10K549</string>
+ <string key="IBDocument.InterfaceBuilderVersion">1306</string>
+ <string key="IBDocument.AppKitVersion">1038.36</string>
<string key="IBDocument.HIToolboxVersion">461.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
- <string key="NS.object.0">141</string>
+ <string key="NS.object.0">301</string>
</object>
- <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <object class="NSArray" key="IBDocument.IntegratedClassDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
+ <string>IBUIBarButtonItem</string>
+ <string>IBUITableView</string>
+ <string>IBUIToolbar</string>
+ <string>IBUIView</string>
+ <string>IBProxyObject</string>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys" id="0">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
+ <reference key="dict.values" ref="0"/>
</object>
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
<bool key="EncodedWithXMLCoder">YES</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIView" id="177554816">
- <nil key="NSNextResponder"/>
+ <reference key="NSNextResponder"/>
<int key="NSvFlags">292</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<int key="NSvFlags">266</int>
<string key="NSFrame">{{0, 416}, {320, 44}}</string>
<reference key="NSSuperview" ref="177554816"/>
+ <reference key="NSWindow"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<object class="NSMutableArray" key="IBUIItems">
<bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBUIBarButtonItem" id="633811851">
+ <string key="IBUITitle">Home</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIStyle">1</int>
+ <reference key="IBUIToolbar" ref="1005676445"/>
+ </object>
<object class="IBUIBarButtonItem" id="745680141">
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<reference key="IBUIToolbar" ref="1005676445"/>
<int key="NSvFlags">274</int>
<string key="NSFrameSize">{320, 416}</string>
<reference key="NSSuperview" ref="177554816"/>
+ <reference key="NSWindow"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">10</int>
<object class="NSImage" key="NSImage">
</object>
</object>
<string key="NSFrameSize">{320, 460}</string>
+ <reference key="NSSuperview"/>
+ <reference key="NSWindow"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
</object>
<int key="connectionID">17</int>
</object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">homeButtonPressed:</string>
+ <reference key="source" ref="633811851"/>
+ <reference key="destination" ref="372490531"/>
+ </object>
+ <int key="connectionID">28</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">homeButton</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="633811851"/>
+ </object>
+ <int key="connectionID">29</int>
+ </object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="742760193"/>
<reference ref="745680141"/>
+ <reference ref="633811851"/>
</object>
<reference key="parent" ref="177554816"/>
</object>
<reference key="object" ref="745680141"/>
<reference key="parent" ref="1005676445"/>
</object>
+ <object class="IBObjectRecord">
+ <int key="objectID">27</int>
+ <reference key="object" ref="633811851"/>
+ <reference key="parent" ref="1005676445"/>
+ </object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
<string>10.IBViewBoundsToFrameTransform</string>
<string>11.IBPluginDependency</string>
<string>12.IBPluginDependency</string>
+ <string>27.IBPluginDependency</string>
<string>8.IBEditorWindowLastContentRect</string>
<string>8.IBPluginDependency</string>
<string>9.IBEditorWindowLastContentRect</string>
</object>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>{{823, 674}, {320, 460}}</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>{{329, 504}, {320, 480}}</string>
<object class="NSMutableDictionary" key="unlocalizedProperties">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
+ <reference key="dict.values" ref="0"/>
</object>
<nil key="activeLocalization"/>
<object class="NSMutableDictionary" key="localizations">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference key="dict.sortedKeys" ref="0"/>
- <object class="NSMutableArray" key="dict.values">
- <bool key="EncodedWithXMLCoder">YES</bool>
- </object>
+ <reference key="dict.values" ref="0"/>
</object>
<nil key="sourceID"/>
- <int key="maxID">17</int>
+ <int key="maxID">29</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
<string key="className">StorageObjectViewController</string>
<string key="superclassName">OpenStackViewController</string>
+ <object class="NSMutableDictionary" key="actions">
+ <string key="NS.key.0">homeButtonPressed:</string>
+ <string key="NS.object.0">id</string>
+ </object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <string key="NS.key.0">homeButtonPressed:</string>
+ <object class="IBActionInfo" key="NS.object.0">
+ <string key="name">homeButtonPressed:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
<object class="NSMutableDictionary" key="outlets">
- <string key="NS.key.0">tableView</string>
- <string key="NS.object.0">UITableView</string>
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>homeButton</string>
+ <string>tableView</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>UIBarButtonItem</string>
+ <string>UITableView</string>
+ </object>
</object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
- <string key="NS.key.0">tableView</string>
- <object class="IBToOneOutletInfo" key="NS.object.0">
- <string key="name">tableView</string>
- <string key="candidateClassName">UITableView</string>
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>homeButton</string>
+ <string>tableView</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBToOneOutletInfo">
+ <string key="name">homeButton</string>
+ <string key="candidateClassName">UIBarButtonItem</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">tableView</string>
+ <string key="candidateClassName">UITableView</string>
+ </object>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<integer value="3000" key="NS.object.0"/>
</object>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
- <nil key="IBDocument.LastKnownRelativeProjectPath"/>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
- <string key="IBCocoaTouchPluginVersion">141</string>
+ <string key="IBCocoaTouchPluginVersion">301</string>
</data>
</archive>
24A18E23143DB870003232F1 /* EditMetadataViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 24A18E21143DB870003232F1 /* EditMetadataViewController.xib */; };
24A18E56143F0429003232F1 /* FolderDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 24A18E54143F0428003232F1 /* FolderDetailViewController.m */; };
24A18E57143F0429003232F1 /* FolderDetailViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 24A18E55143F0428003232F1 /* FolderDetailViewController.xib */; };
+ 24AD830A144ED91E000BF73A /* pithos-logo-large.png in Resources */ = {isa = PBXBuildFile; fileRef = 24AD8309144ED91E000BF73A /* pithos-logo-large.png */; };
+ 24AD830E144EDD20000BF73A /* PithosImageViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 24AD830C144EDD20000BF73A /* PithosImageViewController.m */; };
+ 24AD830F144EDD20000BF73A /* PithosImageViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 24AD830D144EDD20000BF73A /* PithosImageViewController.xib */; };
24E040051442FB3C0065E8DB /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 24E040041442FB3C0065E8DB /* libz.dylib */; };
2705F3EB12E7FA5900949131 /* RSTextFieldCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 2705F3E912E7FA5900949131 /* RSTextFieldCell.m */; };
2705F3ED12E7FA5900949131 /* RSTextFieldCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 2705F3E912E7FA5900949131 /* RSTextFieldCell.m */; };
24A18E53143F0427003232F1 /* FolderDetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FolderDetailViewController.h; sourceTree = "<group>"; };
24A18E54143F0428003232F1 /* FolderDetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FolderDetailViewController.m; sourceTree = "<group>"; };
24A18E55143F0428003232F1 /* FolderDetailViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FolderDetailViewController.xib; sourceTree = "<group>"; };
+ 24AD8309144ED91E000BF73A /* pithos-logo-large.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "pithos-logo-large.png"; path = "Images/pithos-logo-large.png"; sourceTree = "<group>"; };
+ 24AD830B144EDD20000BF73A /* PithosImageViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PithosImageViewController.h; sourceTree = "<group>"; };
+ 24AD830C144EDD20000BF73A /* PithosImageViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PithosImageViewController.m; sourceTree = "<group>"; };
+ 24AD830D144EDD20000BF73A /* PithosImageViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PithosImageViewController.xib; sourceTree = "<group>"; };
24E040041442FB3C0065E8DB /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
2705F3E812E7FA5900949131 /* RSTextFieldCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RSTextFieldCell.h; sourceTree = "<group>"; };
2705F3E912E7FA5900949131 /* RSTextFieldCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RSTextFieldCell.m; sourceTree = "<group>"; };
name = Products;
sourceTree = "<group>";
};
+ 24AD82FF144ED6C9000BF73A /* Pithos */ = {
+ isa = PBXGroup;
+ children = (
+ 24AD830B144EDD20000BF73A /* PithosImageViewController.h */,
+ 24AD830C144EDD20000BF73A /* PithosImageViewController.m */,
+ 24AD830D144EDD20000BF73A /* PithosImageViewController.xib */,
+ );
+ name = Pithos;
+ sourceTree = "<group>";
+ };
2713172012F0AAD100C2D4D1 /* Icons */ = {
isa = PBXGroup;
children = (
276867871368D38B00B04AF3 /* contact-rackspace-icon@2x.png */,
2768678C1368D39700B04AF3 /* rss-feeds-icon.png */,
2768678D1368D39700B04AF3 /* rss-feeds-icon@2x.png */,
+ 24AD8309144ED91E000BF73A /* pithos-logo-large.png */,
);
name = "Account Home";
sourceTree = "<group>";
277B821E12B8398E006483B0 /* Account Home */ = {
isa = PBXGroup;
children = (
+ 24AD82FF144ED6C9000BF73A /* Pithos */,
2798AA43125E74F800E02475 /* AccountHomeViewController.h */,
2798AA44125E74F800E02475 /* AccountHomeViewController.m */,
2798AA45125E74F800E02475 /* AccountHomeViewController.xib */,
2788965412C52E5F006448E2 /* GetContainersRequest.m */,
278896B012C53956006448E2 /* GetObjectsRequest.h */,
278896B112C53956006448E2 /* GetObjectsRequest.m */,
- 2788981012C91283006448E2 /* GetCDNContainersRequest.h */,
2788981112C91283006448E2 /* GetCDNContainersRequest.m */,
+ 2788981012C91283006448E2 /* GetCDNContainersRequest.h */,
278898FC12C92688006448E2 /* UpdateCDNContainerRequest.h */,
278898FD12C92688006448E2 /* UpdateCDNContainerRequest.m */,
);
2485478A14473CBB00E48921 /* EditPolicyViewController.xib in Resources */,
248547AC144C4B8200E48921 /* AccountGroupsViewController.xib in Resources */,
248547BC144C614D00E48921 /* EditAccountGroupsViewController.xib in Resources */,
+ 24AD830A144ED91E000BF73A /* pithos-logo-large.png in Resources */,
+ 24AD830F144EDD20000BF73A /* PithosImageViewController.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
2485478914473CBB00E48921 /* EditPolicyViewController.m in Sources */,
248547AB144C4B8200E48921 /* AccountGroupsViewController.m in Sources */,
248547BB144C614D00E48921 /* EditAccountGroupsViewController.m in Sources */,
+ 24AD830E144EDD20000BF73A /* PithosImageViewController.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};