Changeset 5496

Show
Ignore:
Timestamp:
05/04/08 15:30:10 (2 weeks ago)
Author:
morris
Message:

Keep track of number of loaders going on and don't stop spinning until all are done

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • Spiral/trunk/SPPlaylistController.h

    r5481 r5496  
    6969        BOOL                                                            _shuffle; 
    7070        BOOL                                                            _simplifyFilenames; 
     71        NSUInteger                                                      _spinners; 
    7172} 
    7273 
  • Spiral/trunk/SPPlaylistController.m

    r5481 r5496  
    112112- (void)_reloadItem:(id)item { 
    113113        if([item isKindOfClass:[SPPlaylistFolder class]]) { 
    114                 [_loader loadContentsOfFolder:item synchronously:NO]; 
    115                 [_progressIndicator startAnimation:self]; 
     114                if(![item isLoading]) { 
     115                        [_loader loadContentsOfFolder:item synchronously:NO]; 
     116                        [_progressIndicator startAnimation:self]; 
     117                        _spinners++; 
     118                } 
    116119        } 
    117120        else if([item isKindOfClass:[SPPlaylistSmartGroup class]]) { 
    118                 [_loader loadSmartGroup:item synchronously:YES]; 
    119                 [_progressIndicator startAnimation:self]; 
     121                if(![item isLoading]) { 
     122                        [_loader loadSmartGroup:item synchronously:YES]; 
     123                        [_progressIndicator startAnimation:self]; 
     124                        _spinners++; 
     125                } 
    120126        } 
    121127} 
     
    386392 
    387393- (void)playlistLoader:(SPPlaylistLoader *)loader didLoadMetadataOfItemsInContainer:(SPPlaylistContainer *)container { 
    388         [_progressIndicator stopAnimation:self]; 
     394        if(--_spinners == 0) 
     395                [_progressIndicator stopAnimation:self]; 
    389396} 
    390397