Revision cfc17d33 pithos-macos/PithosSubdirNode.m
b/pithos-macos/PithosSubdirNode.m | ||
---|---|---|
49 | 49 |
static NSImage *sharedIcon = nil; |
50 | 50 |
|
51 | 51 |
@implementation PithosSubdirNode |
52 |
@synthesize pithosObject; |
|
52 |
@synthesize pithosObject, versions;
|
|
53 | 53 |
@synthesize isPublic; |
54 | 54 |
|
55 | 55 |
+ (void)initialize { |
... | ... | |
67 | 67 |
self.pithos = aPithos; |
68 | 68 |
self.pithosContainer = aPithosContainer; |
69 | 69 |
self.pithosObject = aPithosObject; |
70 |
childrenUpdatedNotificationName = @"PithosSubdirNodeChildrenUpdated"; |
|
70 | 71 |
refreshParent = NO; |
71 | 72 |
} |
72 | 73 |
return self; |
73 | 74 |
} |
74 | 75 |
|
75 | 76 |
- (void)dealloc { |
77 |
[refreshVersionsObjectRequest clearDelegatesAndCancel]; |
|
78 |
[refreshVersionsObjectRequest release]; |
|
76 | 79 |
[refreshMetadataObjectRequest clearDelegatesAndCancel]; |
77 | 80 |
[refreshMetadataObjectRequest release]; |
78 | 81 |
[applyMetadataObjectRequest clearDelegatesAndCancel]; |
79 | 82 |
[applyMetadataObjectRequest release]; |
83 |
[versions release]; |
|
80 | 84 |
[pithosObject release]; |
81 | 85 |
[super dealloc]; |
82 | 86 |
} |
... | ... | |
193 | 197 |
[refreshMetadataObjectRequest release]; |
194 | 198 |
refreshMetadataObjectRequest = nil; |
195 | 199 |
} |
200 |
} else if ([request isEqualTo:refreshVersionsObjectRequest]) { |
|
201 |
[[pithosNodeInfoController window] makeFirstResponder:nil]; |
|
202 |
self.versions = [refreshVersionsObjectRequest versions]; |
|
203 |
@synchronized(self) { |
|
204 |
[refreshVersionsObjectRequest release]; |
|
205 |
refreshVersionsObjectRequest = nil; |
|
206 |
} |
|
196 | 207 |
} |
197 | 208 |
[pool drain]; |
198 | 209 |
} |
... | ... | |
213 | 224 |
[refreshMetadataObjectRequest release]; |
214 | 225 |
refreshMetadataObjectRequest = newRequest; |
215 | 226 |
} |
227 |
} else if ([request isEqualTo:refreshVersionsObjectRequest]) { |
|
228 |
@synchronized(self) { |
|
229 |
[refreshVersionsObjectRequest release]; |
|
230 |
refreshVersionsObjectRequest = newRequest; |
|
231 |
} |
|
216 | 232 |
} |
217 | 233 |
[[PithosUtilities prepareRequest:newRequest priority:[[newRequest.userInfo objectForKey:@"priority"] integerValue]] startAsynchronous]; |
218 | 234 |
} else { |
... | ... | |
232 | 248 |
[refreshMetadataObjectRequest release]; |
233 | 249 |
refreshMetadataObjectRequest = nil; |
234 | 250 |
} |
251 |
} else if ([request isEqualTo:refreshVersionsObjectRequest]) { |
|
252 |
dispatch_async(dispatch_get_main_queue(), ^{ |
|
253 |
[PithosUtilities httpRequestErrorAlertWithRequest:refreshVersionsObjectRequest]; |
|
254 |
}); |
|
255 |
@synchronized(self) { |
|
256 |
[refreshVersionsObjectRequest release]; |
|
257 |
refreshVersionsObjectRequest = nil; |
|
258 |
} |
|
235 | 259 |
} |
236 | 260 |
} |
237 | 261 |
[pool drain]; |
... | ... | |
366 | 390 |
@synchronized(self) { |
367 | 391 |
if (pithosObject.subdir) { |
368 | 392 |
self.pithosObject = [ASIPithosObject subdirWithName:pithosObject.name]; |
393 |
return; |
|
369 | 394 |
} else if (refreshMetadataObjectRequest == nil) { |
370 | 395 |
refreshMetadataObjectRequest = [[ASIPithosObjectRequest objectMetadataRequestWithPithos:pithos |
371 | 396 |
containerName:pithosContainer.name |
... | ... | |
385 | 410 |
[[PithosUtilities prepareRequest:refreshMetadataObjectRequest priority:NSOperationQueuePriorityHigh] startAsynchronous]; |
386 | 411 |
} |
387 | 412 |
} |
413 |
[self refreshVersions]; |
|
414 |
} |
|
415 |
|
|
416 |
#pragma mark - |
|
417 |
#pragma mark Versions |
|
418 |
|
|
419 |
- (void)refreshVersions { |
|
420 |
@synchronized(self) { |
|
421 |
if (pithosObject.subdir) { |
|
422 |
return; |
|
423 |
} else if (refreshVersionsObjectRequest == nil) { |
|
424 |
refreshVersionsObjectRequest = [[ASIPithosObjectRequest objectVersionsRequestWithPithos:pithos |
|
425 |
containerName:pithosContainer.name |
|
426 |
objectName:pithosObject.name] retain]; |
|
427 |
if (sharingAccount) |
|
428 |
[refreshVersionsObjectRequest setRequestUserFromDefaultTo:sharingAccount withPithos:pithos]; |
|
429 |
refreshVersionsObjectRequest.delegate = self; |
|
430 |
refreshVersionsObjectRequest.didFinishSelector = @selector(performRequestFinishedDelegateInBackground:); |
|
431 |
refreshVersionsObjectRequest.didFailSelector = @selector(performRequestFailedDelegateInBackground:); |
|
432 |
refreshVersionsObjectRequest.userInfo = [NSMutableDictionary dictionaryWithObjectsAndKeys: |
|
433 |
[NSNumber numberWithInteger:NSOperationQueuePriorityHigh], @"priority", |
|
434 |
[NSNumber numberWithUnsignedInteger:10], @"retries", |
|
435 |
NSStringFromSelector(@selector(objectRequestFinished:)), @"didFinishSelector", |
|
436 |
NSStringFromSelector(@selector(objectRequestFailed:)), @"didFailSelector", |
|
437 |
nil]; |
|
438 |
refreshVersionsObjectRequest.downloadCache = [ASIDownloadCache sharedCache]; |
|
439 |
[[PithosUtilities prepareRequest:refreshVersionsObjectRequest priority:NSOperationQueuePriorityHigh] startAsynchronous]; |
|
440 |
} |
|
441 |
} |
|
388 | 442 |
} |
389 | 443 |
|
390 | 444 |
#pragma mark - |
Also available in: Unified diff