Shift-refresh forces no use of cache.
[pithos-macos] / pithos-macos / PithosBrowserController.m
index 2672e8b..4ec654a 100644 (file)
     [browser loadColumnZero];
     [containersNodeChildren removeAllObjects];
     [outlineView reloadData];
-    
        // Expand the folder outline view
     [outlineView expandItem:nil expandChildren:YES];
        [outlineView selectRowIndexes:[NSIndexSet indexSetWithIndex:1] byExtendingSelection:NO];
     
     // Refresh account
     [accountNode refresh];
+    [mySharedNode refresh];
+    [othersSharedNode refresh];
 }
 
 - (void)windowDidLoad {
     // Expand the folder outline view
     [outlineView expandItem:nil expandChildren:YES];
     
-    if ((rootNode == containersNode) || (rootNode == sharedNode)) {
+    if ((rootNode == nil) || (rootNode == containersNode) || (rootNode == sharedNode)) {
         rootNode = [containersNodeChildren objectAtIndex:0];
         [browser loadColumnZero];
     }
 #pragma mark Actions
 
 - (IBAction)refresh:(id)sender {
-    if (sender)
-        [accountNode refresh];
-    for (NSInteger column = [browser lastColumn]; column >= 0; column--) {
-        [(PithosNode *)[browser parentForItemsInColumn:column] invalidateChildren];
+    if ([[NSApp currentEvent] modifierFlags] & NSShiftKeyMask) {
+        if (sender)
+            [accountNode forceRefresh];
+        for (NSInteger column = [browser lastColumn]; column >= 0; column--) {
+            PithosNode *node = (PithosNode *)[browser parentForItemsInColumn:column];
+            node.forcedRefresh = YES;
+            [(PithosNode *)[browser parentForItemsInColumn:column] invalidateChildren];                      
+            //[(PithosNode *)[browser parentForItemsInColumn:column] forceRefresh];
+        }        
+    } else {
+        if (sender)
+            [accountNode refresh];
+        for (NSInteger column = [browser lastColumn]; column >= 0; column--) {
+            [(PithosNode *)[browser parentForItemsInColumn:column] invalidateChildren];
+        }
     }
     [browser validateVisibleColumns];
 }