Show
Ignore:
Timestamp:
11/16/2009 08:07:37 PM (2 years ago)
Author:
gbooker
Message:

Made the virtual directory importer more global and at completed the custom virtual directory setup for tv directories.
Refs #313

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/SapphireFrappliance/FRAppliance/SapphireApplianceController.m

    r903 r966  
    2727#import "SapphireBrowser.h" 
    2828#import "SapphireDirectoryMetaData.h" 
    29 #import "SapphireFileMetaData.h" 
    3029#import "SapphireSettings.h" 
    3130#import "SapphireTheme.h" 
    3231#import "SapphireCollectionDirectory.h" 
    33 #import "CoreDataSupportFunctions.h" 
    34 #import "SapphireEpisode.h" 
    3532 
    3633#import "SapphireImporterDataMenu.h" 
     
    4340#import "SapphireMetaDataSupport.h" 
    4441#import "SapphireEntityDirectory.h" 
    45 #import "SapphireTVShow.h" 
    4642#import "SapphireMovieDirectory.h" 
    4743#import "SapphireMarkMenu.h" 
    4844#import "SapphireDisplayMenu.h" 
    4945#import "SapphireAudioNowPlayingController.h" 
     46#import "SapphireTVDirectory.h" 
     47#import "SapphireCustomVirtualDirectoryImporter.h" 
    5048 
    5149#import "NSFileManager-Extensions.h" 
     
    248246} 
    249247 
     248+ (SapphireCustomVirtualDirectoryImporter *)customVirtualDirectoryImporter 
     249{ 
     250        static SapphireCustomVirtualDirectoryImporter *customVirtualDirectoryImporter = nil; 
     251        if(customVirtualDirectoryImporter == nil) 
     252                customVirtualDirectoryImporter = [[SapphireCustomVirtualDirectoryImporter alloc] initWithPath:[applicationSupportDir() stringByAppendingPathComponent:@"virtualDirs.xml"]]; 
     253        return customVirtualDirectoryImporter; 
     254} 
     255 
    250256+ (void)logException:(NSException *)e 
    251257{ 
     
    368374        SapphireSetLogLevel(SAPPHIRE_LOG_ALL, SAPPHIRE_LOG_LEVEL_ERROR); 
    369375        SapphireSetLogLevel(SAPPHIRE_LOG_METADATA_STORE, SAPPHIRE_LOG_LEVEL_DEBUG); 
     376        SapphireSetLogLevel(SAPPHIRE_LOG_IMPORT, SAPPHIRE_LOG_LEVEL_INFO); 
    370377         
    371378        distributed = [[SapphireDistributedMessagesReceiver alloc] initWithController:self]; 
     
    431438} 
    432439 
    433 NSArray *showEntityFetch(NSManagedObjectContext *moc, NSPredicate *filterPredicate) 
    434 { 
    435         NSPredicate *showPred = nil; 
    436         if(filterPredicate != nil) 
    437         { 
    438                 NSPredicate *fetchPredicate = [NSPredicate predicateWithFormat:@"tvEpisode != nil"]; 
    439                 NSPredicate *finalPred; 
    440                 if(filterPredicate == nil) 
    441                         finalPred = fetchPredicate; 
    442                 else 
    443                         finalPred = [NSCompoundPredicate andPredicateWithSubpredicates:[NSArray arrayWithObjects:filterPredicate, fetchPredicate, nil]]; 
    444                 NSArray *files = doFetchRequest(SapphireFileMetaDataName, moc, finalPred); 
    445                  
    446                 NSSet *epIds = [NSSet setWithArray:[files valueForKeyPath:@"tvEpisode.objectID"]]; 
    447                 NSPredicate *epPred = [NSPredicate predicateWithFormat:@"SELF IN %@", epIds]; 
    448                 NSArray *episodes = doFetchRequest(SapphireEpisodeName, moc, epPred); 
    449                  
    450                 NSSet *showIds = [NSSet setWithArray:[episodes valueForKeyPath:@"tvShow.objectID"]]; 
    451                 showPred = [NSPredicate predicateWithFormat:@"SELF IN %@", showIds]; 
    452         } 
    453         return doFetchRequest(SapphireTVShowName, moc, showPred); 
    454 } 
    455  
    456440- (SapphireBrowser *)tvBrowser 
    457441{ 
    458442        BRTexture *predicateGem = [SapphireApplianceController gemForPredicate:[SapphireApplianceController predicate]]; 
    459         SapphireEntityDirectory *tvDir = [[SapphireEntityDirectory alloc] initWithEntityFetch:showEntityFetch inContext:moc]; 
    460         [tvDir setMetaFileFetchPredicate:[NSPredicate predicateWithFormat:@"tvEpisode != nil"]]; 
     443        SapphireTVDirectory *tvDir = [[SapphireTVDirectory alloc] initWithContext:moc]; 
    461444        SapphireBrowser *tvBrowser = [[SapphireBrowser alloc] initWithScene:[self scene] metaData:tvDir]; 
    462445        [tvDir release];