Changeset 202
- Timestamp:
- 09/05/07 17:40:06 (1 year ago)
- Files:
-
- trunk/SapphireBrowser.h (modified) (1 diff)
- trunk/SapphireBrowser.m (modified) (2 diffs)
- trunk/SapphireMarkMenu.m (modified) (2 diffs)
- trunk/SapphireMetaData.h (modified) (4 diffs)
- trunk/SapphireMetaData.m (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/SapphireBrowser.h
r201 r202 7 7 // 8 8 9 @class Sapphire DirectoryMetaData, SapphireFileMetaData, SapphireMetaDataCollection, BRTVShowsSortControl, SapphireSettings, BRSegmentedSortControl, SapphirePredicate;10 @protocol SapphireMetaDataDelegate, SapphireMetaDataScannerDelegate ;9 @class SapphireFileMetaData, SapphireMetaDataCollection, BRTVShowsSortControl, SapphireSettings, BRSegmentedSortControl, SapphirePredicate; 10 @protocol SapphireMetaDataDelegate, SapphireMetaDataScannerDelegate, SapphireDirectoryMetaData; 11 11 12 12 @interface SapphireBrowser : BRMediaMenuController <SapphireMetaDataDelegate, SapphireMetaDataScannerDelegate> 13 13 { 14 NSMutableArray * _names ; 15 NSMutableArray *items ; 16 SapphireDirectoryMetaData *metaData; 17 SapphirePredicate *predicate; 18 // BRSegmentedSortControl *modeControl; 19 SapphireFileMetaData *currentPlayFile; 20 int dirCount; 21 int fileCount; 22 BOOL cancelScan; 14 NSMutableArray *_names ; 15 NSMutableArray *items ; 16 id <SapphireDirectoryMetaData> metaData; 17 SapphirePredicate *predicate; 18 SapphireFileMetaData *currentPlayFile; 19 int dirCount; 20 int fileCount; 21 BOOL cancelScan; 23 22 } 24 23 25 - (id) initWithScene: (BRRenderScene *) scene metaData: ( SapphireDirectoryMetaData *)meta;24 - (id) initWithScene: (BRRenderScene *) scene metaData: (id <SapphireDirectoryMetaData>)meta; 26 25 - (void) dealloc; 27 26 trunk/SapphireBrowser.m
r201 r202 159 159 * @return The Browser 160 160 */ 161 - (id) initWithScene: (BRRenderScene *) scene metaData: ( SapphireDirectoryMetaData *)meta161 - (id) initWithScene: (BRRenderScene *) scene metaData: (id <SapphireDirectoryMetaData>)meta 162 162 { 163 163 if ( [super initWithScene: scene] == nil ) return ( nil ); … … 449 449 { 450 450 result = [BRAdornedMenuItemLayer adornedFolderMenuItemWithScene: scene] ; 451 SapphireDirectoryMetaData *meta = [metaData metaDataForDirectory:name];451 id <SapphireDirectoryMetaData> meta = [metaData metaDataForDirectory:name]; 452 452 watched = [meta watchedForPredicate:predicate]; 453 453 favorite = [meta favoriteForPredicate:predicate]; trunk/SapphireMarkMenu.m
r201 r202 33 33 34 34 /*Check to see if it is directory or file*/ 35 isDir = [meta isKindOfClass:[SapphireDirectoryMetaData class]];35 isDir = [meta conformsToProtocol:@protocol(SapphireDirectoryMetaData)]; 36 36 metaData = [meta retain]; 37 37 commands = nil; … … 221 221 if(isDir) 222 222 { 223 SapphireDirectoryMetaData *dirMeta = (SapphireDirectoryMetaData *)metaData;223 id <SapphireDirectoryMetaData> dirMeta = (SapphireDirectoryMetaData *)metaData; 224 224 switch(row) 225 225 { trunk/SapphireMetaData.h
r201 r202 38 38 #define META_EPISODE_AND_SEASON_KEY @"S/E" 39 39 40 #define META_DATA_FILE_ADDED_NOTIFICATION @"MetaDataFileAdded" 41 #define META_DATA_FILE_REMOVED_NOTIFICATION @"MetaDataFileRemoved" 42 #define META_DATA_FILE_INFO_WILL_CHANGE_NOTIFICATION @"MetaDataFileInfoWillChange" 43 #define META_DATA_FILE_INFO_HAS_CHANGED_NOTIFICATION @"MetaDataFileInfoHasChanged" 44 #define META_DATA_FILE_INFO_KIND @"MetaDataFileInfoKind" 45 40 46 typedef enum { 41 47 FILE_CLASS_UNKNOWN = 0, … … 54 60 - (void)scanningDir:(NSString *)dir; 55 61 - (BOOL)getSubFilesCanceled; 62 @end 63 64 @protocol SapphireMetaData <NSObject> 65 @end 66 67 @protocol SapphireDirectoryMetaData <NSObject> 68 - (NSString *)path; 69 - (void)setDelegate:(id <SapphireMetaDataDelegate>)newDelegate; 70 71 - (void)reloadDirectoryContents; 72 - (NSArray *)files; 73 - (NSArray *)directories; 74 - (NSArray *)predicatedFiles:(SapphirePredicate *)predicate; 75 - (NSArray *)predicatedDirectories:(SapphirePredicate *)predicate; 76 77 - (SapphireFileMetaData *)metaDataForFile:(NSString *)file; 78 - (SapphireDirectoryMetaData *)metaDataForDirectory:(NSString *)dir; 79 80 - (void)cancelImport; 81 - (void)resumeDelayedImport; 82 83 - (void)scanForNewFilesWithDelegate:(id <SapphireMetaDataScannerDelegate>)subDelegate skipDirectories:(NSMutableSet *)skip; 84 85 - (BOOL)watchedForPredicate:(SapphirePredicate *)predicate; 86 - (void)setWatched:(BOOL)watched forPredicate:(SapphirePredicate *)predicate; 87 - (BOOL)favoriteForPredicate:(SapphirePredicate *)predicate; 88 - (void)setFavorite:(BOOL)favorite forPredicate:(SapphirePredicate *)predicate; 89 - (void)setToImportFromSource:(NSString *)source forPredicate:(SapphirePredicate *)predicate; 90 - (void)setFileClass:(FileClass)fileClass forPredicate:(SapphirePredicate *)predicate; 56 91 @end 57 92 … … 93 128 @end 94 129 95 @interface SapphireDirectoryMetaData : SapphireMetaData {130 @interface SapphireDirectoryMetaData : SapphireMetaData <SapphireDirectoryMetaData>{ 96 131 /*These two are not retained*/ 97 132 NSMutableDictionary *metaFiles; … … 112 147 } 113 148 114 - (void)reloadDirectoryContents;115 - (NSArray *)files;116 - (NSArray *)directories;117 - (NSArray *)predicatedFiles:(SapphirePredicate *)predicate;118 - (NSArray *)predicatedDirectories:(SapphirePredicate *)predicate;119 120 - (SapphireFileMetaData *)metaDataForFile:(NSString *)file;121 - (SapphireDirectoryMetaData *)metaDataForDirectory:(NSString *)dir;122 123 149 - (BOOL)pruneMetaData; 124 150 - (BOOL)updateMetaData; 125 151 126 - (void)cancelImport;127 152 - (void)resumeImport; 128 - (void)resumeDelayedImport;129 153 130 154 - (SapphireMetaData *)metaDataForSubPath:(NSString *)path; 131 155 - (void)getSubFileMetasWithDelegate:(id <SapphireMetaDataScannerDelegate>)subDelegate skipDirectories:(NSMutableSet *)skip; 132 - (void)scanForNewFilesWithDelegate:(id <SapphireMetaDataScannerDelegate>)subDelegate skipDirectories:(NSMutableSet *)skip;133 134 - (BOOL)watchedForPredicate:(SapphirePredicate *)predicate;135 - (void)setWatched:(BOOL)watched forPredicate:(SapphirePredicate *)predicate;136 - (BOOL)favoriteForPredicate:(SapphirePredicate *)predicate;137 - (void)setFavorite:(BOOL)favorite forPredicate:(SapphirePredicate *)predicate;138 - (void)setToImportFromSource:(NSString *)source forPredicate:(SapphirePredicate *)predicate;139 - (void)setFileClass:(FileClass)fileClass forPredicate:(SapphirePredicate *)predicate;140 141 156 @end 142 157 trunk/SapphireMetaData.m
r201 r202 482 482 @implementation SapphireDirectoryMetaData 483 483 484 //Just to shut up the compiler since it doesn't think to look at the super class to see if a method is implemented or not 485 - (NSString *)path 486 { 487 return [super path]; 488 } 489 - (void)setDelegate:(id <SapphireMetaDataDelegate>)newDelegate 490 { 491 [super setDelegate:newDelegate]; 492 } 493 484 494 /*! 485 495 * @brief Creates a new meta data object … … 523 533 - (void)dealloc 524 534 { 535 NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; 536 NSEnumerator *filesEnum = [cachedMetaFiles objectEnumerator]; 537 SapphireFileMetaData *meta = nil; 538 while((meta = [filesEnum nextObject]) != nil) 539 [nc postNotificationName:META_DATA_FILE_REMOVED_NOTIFICATION object:meta]; 540 525 541 [importTimer invalidate]; 526 542 [importArray release]; … … 808 824 { 809 825 /*Remove and mark as we did an update*/ 826 SapphireMetaData *meta = [cachedMetaFiles objectForKey:pruneKey]; 827 if(meta != nil) 828 [[NSNotificationCenter defaultCenter] postNotificationName:META_DATA_FILE_REMOVED_NOTIFICATION object:meta]; 810 829 [metaFiles removeObjectForKey:pruneKey]; 811 830 [cachedMetaFiles removeObjectForKey:pruneKey]; … … 1260 1279 displayedMetaDataOrder = [[NSArray alloc] initWithArray:modified]; 1261 1280 [modified release]; 1281 } 1282 1283 - (id)initWithDictionary:(NSDictionary *)dict parent:(SapphireMetaData *)myParent path:(NSString *)myPath 1284 { 1285 self = [super initWithDictionary:dict parent:myParent path:myPath]; 1286 if(self == nil) 1287 return nil; 1288 1289 [[NSNotificationCenter defaultCenter] postNotificationName:META_DATA_FILE_ADDED_NOTIFICATION object:self]; 1290 1291 return self; 1262 1292 } 1263 1293 … … 1455 1485 - (void)importInfo:(NSMutableDictionary *)newMeta fromSource:(NSString *)source withTime:(long)modTime 1456 1486 { 1487 NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; 1488 NSDictionary *info = [NSDictionary dictionaryWithObject:source forKey:META_DATA_FILE_INFO_KIND]; 1489 [nc postNotificationName:META_DATA_FILE_INFO_WILL_CHANGE_NOTIFICATION object:self userInfo:info]; 1457 1490 [newMeta setObject:[NSNumber numberWithInt:modTime] forKey:MODIFIED_KEY]; 1458 1491 [metaData setObject:newMeta forKey:source]; 1459 1492 [self combinedDataChanged]; 1493 [nc postNotificationName:META_DATA_FILE_INFO_HAS_CHANGED_NOTIFICATION object:self userInfo:info]; 1460 1494 } 1461 1495
