Revision 4e6acad7 pithos-macos/PithosBrowserController.m

b/pithos-macos/PithosBrowserController.m
56 56
#import "PithosUtilities.h"
57 57
#import "UsingSizeTransformer.h"
58 58

  
59
#define REFRESH_TIMER_INTERVAL 5
60

  
59 61
@interface PithosBrowserCell : FileSystemBrowserCell {}
60 62
@end
61 63

  
......
343 345
//    [activityFacility reset];
344 346
    activityFacility.delegate = self;
345 347
            
346
    refreshTimer = [[NSTimer scheduledTimerWithTimeInterval:30 
348
    refreshTimer = [[NSTimer scheduledTimerWithTimeInterval:REFRESH_TIMER_INTERVAL 
347 349
                                                     target:self 
348 350
                                                   selector:@selector(forceRefresh:) 
349 351
                                                   userInfo:self 
......
516 518
#pragma mark Actions
517 519

  
518 520
- (IBAction)forceRefresh:(id)sender {
521
    if (editingItem)
522
        return;
519 523
    if (sender)
520 524
        [accountNode forceRefresh];
521 525
    for (NSInteger column = [browser lastColumn]; column >= 0; column--) {
......
527 531
}
528 532

  
529 533
- (IBAction)refresh:(id)sender {
534
    if (editingItem)
535
        return;
530 536
    if ([[NSApp currentEvent] modifierFlags] & NSShiftKeyMask) {
531 537
        [self forceRefresh:sender];
532 538
    } else {
......
593 599
    if (node.shared || node.sharingAccount || 
594 600
        ([node class] == [PithosContainerNode class]) || ([node class] == [PithosAccountNode class]))
595 601
        return NO;
602
    editingItem = YES;
596 603
    return YES;
597 604
}
598 605

  
599 606
- (void)browser:(NSBrowser *)browser setObjectValue:(id)object forItem:(id)item {
607
    editingItem = NO;
600 608
    PithosNode *node = (PithosNode *)item;
601 609
    NSString *newName = (NSString *)object;
602 610
    NSUInteger newNameLength = [newName length];
......
1738 1746
        dispatch_async(dispatch_get_main_queue(), ^{
1739 1747
            [activityFacility endActivity:[objectRequest.userInfo objectForKey:@"activity"] 
1740 1748
                              withMessage:[objectRequest.userInfo objectForKey:@"finishedActivityMessage"]];
1749
            for (PithosNode *node in [objectRequest.userInfo objectForKey:@"forceRefreshNodes"]) {
1750
                [node forceRefresh];
1751
            }
1752
            for (PithosNode *node in [objectRequest.userInfo objectForKey:@"refreshNodes"]) {
1753
                [node refresh];
1754
            }
1755
            if ([[objectRequest.userInfo objectForKey:@"forceRefresh"] boolValue])
1756
                [self forceRefresh:self];
1757
            else if ([[objectRequest.userInfo objectForKey:@"refresh"] boolValue])
1758
                [self refresh:self];
1741 1759
        });
1742
        for (PithosNode *node in [objectRequest.userInfo objectForKey:@"forceRefreshNodes"]) {
1743
            [node forceRefresh];
1744
        }
1745
        for (PithosNode *node in [objectRequest.userInfo objectForKey:@"refreshNodes"]) {
1746
            [node refresh];
1747
        }
1748
        if ([[objectRequest.userInfo objectForKey:@"forceRefresh"] boolValue])
1749
            [self forceRefresh:self];
1750
        else if ([[objectRequest.userInfo objectForKey:@"refresh"] boolValue])
1751
            [self refresh:self];
1752 1760
    } else {
1753 1761
        [(NSMutableDictionary *)(objectRequest.userInfo)setObject:[NSNumber numberWithBool:YES] forKey:@"unexpectedResponseStatus"];
1754 1762
        [self requestFailed:objectRequest];
......
1773 1781
                              withMessage:[objectRequest.userInfo objectForKey:@"finishedActivityMessage"] 
1774 1782
                               totalBytes:totalBytes 
1775 1783
                             currentBytes:totalBytes];
1784
            for (PithosNode *node in [objectRequest.userInfo objectForKey:@"forceRefreshNodes"]) {
1785
                [node forceRefresh];
1786
            }
1787
            for (PithosNode *node in [objectRequest.userInfo objectForKey:@"refreshNodes"]) {
1788
                [node refresh];
1789
            }
1790
            if ([[objectRequest.userInfo objectForKey:@"forceRefresh"] boolValue])
1791
                [self forceRefresh:self];
1792
            else if ([[objectRequest.userInfo objectForKey:@"refresh"] boolValue])
1793
                [self refresh:self];        
1776 1794
        });
1777
        for (PithosNode *node in [objectRequest.userInfo objectForKey:@"forceRefreshNodes"]) {
1778
            [node forceRefresh];
1779
        }
1780
        for (PithosNode *node in [objectRequest.userInfo objectForKey:@"refreshNodes"]) {
1781
            [node refresh];
1782
        }
1783
        if ([[objectRequest.userInfo objectForKey:@"forceRefresh"] boolValue])
1784
            [self forceRefresh:self];
1785
        else if ([[objectRequest.userInfo objectForKey:@"refresh"] boolValue])
1786
            [self refresh:self];        
1787 1795
    } else if (objectRequest.responseStatusCode == 409) {
1788 1796
        NSUInteger iteration = [[objectRequest.userInfo objectForKey:@"iteration"] unsignedIntegerValue];
1789 1797
        if (iteration == 0) {
......
1915 1923
        dispatch_async(dispatch_get_main_queue(), ^{
1916 1924
            [activityFacility endActivity:[objectRequest.userInfo objectForKey:@"activity"] 
1917 1925
                              withMessage:[objectRequest.userInfo objectForKey:@"finishedActivityMessage"]];
1926
            for (PithosNode *node in [objectRequest.userInfo objectForKey:@"forceRefreshNodes"]) {
1927
                [node forceRefresh];
1928
            }
1929
            for (PithosNode *node in [objectRequest.userInfo objectForKey:@"refreshNodes"]) {
1930
                [node refresh];
1931
            }
1932
            if ([[objectRequest.userInfo objectForKey:@"forceRefresh"] boolValue])
1933
                [self forceRefresh:self];
1934
            else if ([[objectRequest.userInfo objectForKey:@"refresh"] boolValue])
1935
                [self refresh:self];
1918 1936
        });
1919
        for (PithosNode *node in [objectRequest.userInfo objectForKey:@"forceRefreshNodes"]) {
1920
            [node forceRefresh];
1921
        }
1922
        for (PithosNode *node in [objectRequest.userInfo objectForKey:@"refreshNodes"]) {
1923
            [node refresh];
1924
        }
1925
        if ([[objectRequest.userInfo objectForKey:@"forceRefresh"] boolValue])
1926
            [self forceRefresh:self];
1927
        else if ([[objectRequest.userInfo objectForKey:@"refresh"] boolValue])
1928
            [self refresh:self];
1929 1937
    } else {
1930 1938
        [(NSMutableDictionary *)(objectRequest.userInfo)setObject:[NSNumber numberWithBool:YES] forKey:@"unexpectedResponseStatus"];
1931 1939
        [self requestFailed:objectRequest];
......
1943 1951
        dispatch_async(dispatch_get_main_queue(), ^{
1944 1952
            [activityFacility endActivity:[objectRequest.userInfo objectForKey:@"activity"] 
1945 1953
                              withMessage:[objectRequest.userInfo objectForKey:@"finishedActivityMessage"]];
1954
            for (PithosNode *node in [objectRequest.userInfo objectForKey:@"forceRefreshNodes"]) {
1955
                [node forceRefresh];
1956
            }
1957
            for (PithosNode *node in [objectRequest.userInfo objectForKey:@"refreshNodes"]) {
1958
                [node refresh];
1959
            }
1960
            if ([[objectRequest.userInfo objectForKey:@"forceRefresh"] boolValue])
1961
                [self forceRefresh:self];
1962
            else if ([[objectRequest.userInfo objectForKey:@"refresh"] boolValue])
1963
                [self refresh:self];
1946 1964
        });
1947
        for (PithosNode *node in [objectRequest.userInfo objectForKey:@"forceRefreshNodes"]) {
1948
            [node forceRefresh];
1949
        }
1950
        for (PithosNode *node in [objectRequest.userInfo objectForKey:@"refreshNodes"]) {
1951
            [node refresh];
1952
        }
1953
        if ([[objectRequest.userInfo objectForKey:@"forceRefresh"] boolValue])
1954
            [self forceRefresh:self];
1955
        else if ([[objectRequest.userInfo objectForKey:@"refresh"] boolValue])
1956
            [self refresh:self];
1957 1965
    } else {
1958 1966
        [(NSMutableDictionary *)(objectRequest.userInfo)setObject:[NSNumber numberWithBool:YES] forKey:@"unexpectedResponseStatus"];
1959 1967
        [self requestFailed:objectRequest];
......
1971 1979
        dispatch_async(dispatch_get_main_queue(), ^{
1972 1980
            [activityFacility endActivity:[objectRequest.userInfo objectForKey:@"activity"] 
1973 1981
                              withMessage:[objectRequest.userInfo objectForKey:@"finishedActivityMessage"]];
1982
            for (PithosNode *node in [objectRequest.userInfo objectForKey:@"forceRefreshNodes"]) {
1983
                [node forceRefresh];
1984
            }
1985
            for (PithosNode *node in [objectRequest.userInfo objectForKey:@"refreshNodes"]) {
1986
                [node refresh];
1987
            }
1988
            if ([[objectRequest.userInfo objectForKey:@"forceRefresh"] boolValue])
1989
                [self forceRefresh:self];
1990
            else if ([[objectRequest.userInfo objectForKey:@"refresh"] boolValue])
1991
                [self refresh:self];
1974 1992
        });
1975
        for (PithosNode *node in [objectRequest.userInfo objectForKey:@"forceRefreshNodes"]) {
1976
            [node forceRefresh];
1977
        }
1978
        for (PithosNode *node in [objectRequest.userInfo objectForKey:@"refreshNodes"]) {
1979
            [node refresh];
1980
        }
1981
        if ([[objectRequest.userInfo objectForKey:@"forceRefresh"] boolValue])
1982
            [self forceRefresh:self];
1983
        else if ([[objectRequest.userInfo objectForKey:@"refresh"] boolValue])
1984
            [self refresh:self];
1985 1993
    } else {
1986 1994
        [(NSMutableDictionary *)(objectRequest.userInfo)setObject:[NSNumber numberWithBool:YES] forKey:@"unexpectedResponseStatus"];
1987 1995
        [self requestFailed:objectRequest];

Also available in: Unified diff