Changeset 670

Show
Ignore:
Timestamp:
09/21/08 21:28:10 (4 months ago)
Author:
gbooker
Message:

Added ability to reset decisions made on a file (means importer will have to ask again). Useful if you selected the wrong thing

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/CoreData/SapphireFrappliance/Browser/SapphireMarkMenu.m

    r636 r670  
    3737        COMMAND_MARK_TO_REFETCH_MOVIE, 
    3838        COMMAND_MARK_TO_DELETE_METADATA, 
     39        COMMAND_MARK_TO_RESET_IMPORT, 
     40        //File Only Commands 
    3941        COMMAND_MARK_TO_JOIN, 
    4042        COMMAND_MARK_AND_JOIN, 
    4143        COMMAND_CLEAR_JOIN_MARK, 
    4244        COMMAND_JOIN, 
    43         //Directory commands 
     45        //Directory Only Commands 
    4446        COMMAND_MARK_WATCHED, 
    4547        COMMAND_MARK_UNWATCHED, 
     
    7880                        BRLocalizedString(@"Mark All to Refetch Movie Data", @"Mark whole directory to re-fetch its movie data"), 
    7981                        BRLocalizedString(@"Mark All to Clear Metadata", @"Mark whole directory to delete the metadata"), 
     82                        BRLocalizedString(@"Mark All to Reset Import Decisions", @"Mark whole directory to reset import decisions"), 
    8083                        nil]; 
    8184                markDescriptions = [[NSMutableArray alloc] initWithObjects: 
     
    8790                        BRLocalizedString(@"Tells Sapphire to refetch Movie metadata for this directory the next time an import is run.", @"Mark whole directory to re-fetch its movie data"), 
    8891                        BRLocalizedString(@"Tells Sapphire to remove all metadata for this directory.", @"Mark directory to delete metadata description"), 
     92                        BRLocalizedString(@"Tells Sapphire to forget import decisions made on files in this directory.", @"Mark directory to reset import decisions description"), 
    8993                        nil]; 
    9094                commands = [[NSMutableArray alloc] initWithObjects: 
     
    96100                                        [NSNumber numberWithInt:COMMAND_MARK_TO_REFETCH_MOVIE], 
    97101                                        [NSNumber numberWithInt:COMMAND_MARK_TO_DELETE_METADATA], 
     102                                        [NSNumber numberWithInt:COMMAND_MARK_TO_RESET_IMPORT], 
    98103                                        nil]; 
    99104                id <SapphireDirectory> dirMeta = (id <SapphireDirectory>)meta; 
     
    182187 
    183188                        [commands addObject:[NSNumber numberWithInt:COMMAND_MARK_TO_DELETE_METADATA]]; 
     189                         
     190                        [names addObject:BRLocalizedString(@"Mark to Reset Import Decisions", @"Mark a file to reset import decisions")]; 
     191                        [markDescriptions addObject:BRLocalizedString(@"Tells Sapphire to forget import decisions made on this file.", @"Mark a file to reset import decisions description")]; 
     192                         
     193                        [commands addObject:[NSNumber numberWithInt:COMMAND_MARK_TO_RESET_IMPORT]]; 
    184194                } 
    185195                if(![joinList containsObject:fileMeta]) 
     
    426436                                setSubtreeToClearMetaData(dirMeta); 
    427437                                break; 
     438                        case COMMAND_MARK_TO_RESET_IMPORT: 
     439                                setSubtreeToResetImportDecisions(dirMeta); 
     440                                break; 
    428441                        case COMMAND_TOGGLE_SKIP: 
    429442                                if(collection == nil) 
     
    459472                        case COMMAND_MARK_TO_DELETE_METADATA: 
    460473                                [fileMeta clearMetaData]; 
     474                                break; 
     475                        case COMMAND_MARK_TO_RESET_IMPORT: 
     476                                [fileMeta setToResetImportDecisions]; 
    461477                                break; 
    462478                        case COMMAND_MARK_TO_JOIN: 
  • branches/CoreData/SapphireFrappliance/MetaData/SapphireMObjects/SapphireCategoryDirectory.m

    r623 r670  
    121121        { 
    122122                NSString *fileNameKey = [self fileNameValue]; 
    123                 if([SapphireFileSorter sortFiles:files withSorter:sortValue inAllowedSorts:[self fileSorters]]) 
     123                if(![SapphireFileSorter sortFiles:files withSorter:sortValue inAllowedSorts:[self fileSorters]]) 
    124124                { 
    125125                        self.sortMethodValue = 0; 
  • branches/CoreData/SapphireFrappliance/MetaData/SapphireMObjects/SapphireFileMetaData.h

    r592 r670  
    4848        IMPORT_TYPE_TVSHOW_MASK = 4, 
    4949        IMPORT_TYPE_MOVIE_MASK = 8, 
     50        IMPORT_TYPE_ALL_MASK = 0xf, 
    5051} ImportTypeMask; 
    5152 
     
    131132 
    132133/*! 
     134 * @brief Reset import decisions for this file (also mark to re-import) 
     135 */ 
     136- (void)setToResetImportDecisions; 
     137 
     138/*! 
    133139 * @brief Get the overridden season number 
    134140 * 
  • branches/CoreData/SapphireFrappliance/MetaData/SapphireMObjects/SapphireFileMetaData.m

    r655 r670  
    99#import "SapphireMediaPreview.h" 
    1010#import "SapphireFileSymLink.h" 
     11 
     12#import "SapphireTVShow.h" 
     13#import "SapphireTVTranslation.h" 
     14#import "SapphireMovieTranslation.h" 
    1115 
    1216#import <QTKit/QTKit.h> 
     
    457461} 
    458462 
     463- (void)setToResetImportDecisions 
     464{ 
     465        NSManagedObjectContext *moc = [self managedObjectContext]; 
     466        NSString *lowerFileName = [[self.path lastPathComponent] lowercaseString]; 
     467 
     468        SapphireEpisode *ep = self.tvEpisode; 
     469        if(ep != nil) 
     470        { 
     471                NSSet *translations = ep.tvShow.translationsSet; 
     472                SapphireTVTranslation *tran; 
     473                NSEnumerator *tranEnum = [translations objectEnumerator]; 
     474                while((tran = [tranEnum nextObject]) != nil) 
     475                { 
     476                        if([lowerFileName hasPrefix:tran.name]) 
     477                                [moc deleteObject:tran]; 
     478                } 
     479        } 
     480        SapphireMovieTranslation *movieTran = [SapphireMovieTranslation movieTranslationWithName:lowerFileName inContext:moc]; 
     481        if(movieTran != nil) 
     482                [moc deleteObject:movieTran]; 
     483         
     484        [self setToReimportFromMask:IMPORT_TYPE_ALL_MASK]; 
     485} 
     486 
    459487- (void)clearMetaData 
    460488{ 
  • branches/CoreData/SapphireFrappliance/MetaData/Support/SapphireDirectory.h

    r620 r670  
    329329 */ 
    330330void setSubtreeToClearMetaData(id <SapphireDirectory> dir); 
     331 
     332/*! 
     333 * @brief Reset import decisions for this file (also mark to re-import) for an entire subtree with restriction as to predicate.  Does not follow symlinks 
     334 */ 
     335void setSubtreeToResetImportDecisions(id <SapphireDirectory> dir); 
  • branches/CoreData/SapphireFrappliance/MetaData/Support/SapphireDirectory.m

    r592 r670  
    6666        doSubtreeInvokation(dir, select, nil); 
    6767} 
     68 
     69void setSubtreeToResetImportDecisions(id <SapphireDirectory> dir) 
     70{ 
     71        SEL select = @selector(setToResetImportDecisions); 
     72        doSubtreeInvokation(dir, select, nil); 
     73}