Changeset 559
- Timestamp:
- 05/31/08 22:15:51 (7 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/CoreData/SapphireCompatibilityClasses/SapphireMediaMenuController.m
r503 r559 182 182 { 183 183 [self setSelection:itemCount-1]; 184 [self updatePreviewController]; 184 185 return YES; 185 186 } … … 190 191 { 191 192 [self setSelection:0]; 193 [self updatePreviewController]; 192 194 return YES; 193 195 } branches/CoreData/SapphireFrappliance/Browser/SapphireBrowser.h
r541 r559 31 31 { 32 32 NSMutableArray *_names; /*!< @brief Names in the menu display*/ 33 NSMutable Array*items; /*!< @brief Chached BRAdornedMenuItemLayer for menu items*/33 NSMutableDictionary *items; /*!< @brief Chached BRAdornedMenuItemLayer for menu items*/ 34 34 id <SapphireDirectory> metaData; /*!< @brief The directory for the browser*/ 35 35 NSPredicate *predicate; /*!< @brief Predicate to determine which files are matched*/ … … 37 37 int fileCount; /*!< @brief The number of files in this directory*/ 38 38 BOOL cancelScan; /*!< @brief Cancel the background importer for this directory*/ 39 BOOL justReloaded; /*!< @brief indicates that we just reloaded the display, so preview shouldn't delay its display*/ 39 40 } 40 41 branches/CoreData/SapphireFrappliance/Browser/SapphireBrowser.m
r553 r559 88 88 89 89 _names = [NSMutableArray new]; 90 items = [NSMutable Array new];90 items = [NSMutableDictionary new]; 91 91 metaData = [meta retain]; 92 92 predicate = [[SapphireApplianceController predicate] retain]; … … 135 135 [_names addObject:BRLocalizedString(@" < Scan for new files >", @"Conduct a scan of the directory for new files")]; 136 136 } 137 /*Init the cache*/138 int i=0, count=[_names count];139 for(i=0; i<count; i++)140 {141 [items addObject:[NSNull null]];142 }143 144 137 /*Remove the dividers*/ 145 138 BRListControl *list = [self list]; … … 162 155 [SapphireFrontRowCompat addDividerAtIndex:dirCount + fileCount + indexOffset toList:list]; 163 156 /*Draw*/ 157 justReloaded = YES; 158 [self updatePreviewController]; 164 159 [SapphireFrontRowCompat renderScene:[self scene]]; 165 160 } … … 277 272 278 273 /*Check our cache*/ 279 id cached = [items objectAtIndex:row]; 280 if(cached != [NSNull null]) 274 NSString *name = [_names objectAtIndex:row]; 275 id cached = [items objectForKey:name]; 276 if(cached != nil) 281 277 return cached; 282 NSString *name = [_names objectAtIndex:row];283 278 // Pad filename to correcrtly display gem icons 284 279 BRAdornedMenuItemLayer * result = nil; … … 383 378 name=[@" " stringByAppendingString: name] ; 384 379 [SapphireFrontRowCompat setTitle:name forMenu:result]; 385 [items replaceObjectAtIndex:row withObject:result];380 [items setObject:result forKey:name]; 386 381 387 382 return ( result ) ; … … 654 649 else 655 650 [preview setMetaData:[metaData metaDataForFile:name] inMetaData:metaData]; 656 [preview setShowsMetadataImmediately:NO]; 651 [preview setShowsMetadataImmediately:justReloaded]; 652 justReloaded = NO; 657 653 /*And go*/ 658 654 return [preview autorelease]; … … 720 716 { 721 717 /*Get the file*/ 722 int index = [_names indexOfObject:file]; 723 if(index != NSNotFound) 724 [items replaceObjectAtIndex:index withObject:[NSNull null]]; 718 [items removeObjectForKey:file]; 725 719 /*Relead the list and render*/ 726 720 BRListControl *list = [self list];
