Ticket #130: skip_and_merge_names.diff

File skip_and_merge_names.diff, 1.2 kB (added by anonymous, 7 months ago)
  • SapphireBrowser.m

    old new  
    421421                return; 
    422422        } 
    423423         
    424         NSString *name = [_names objectAtIndex:row]; 
     424        NSMutableString *name = [NSMutableString stringWithString:[_names objectAtIndex:row]]; 
    425425         
    426426        /*Check for dir*/ 
    427427        if(row < dirCount) 
    428428        { 
    429                 /*Browse the subdir*/ 
    430                 id controller = [[SapphireBrowser alloc] initWithScene:[self scene] metaData:[metaData metaDataForDirectory:name]]; 
     429                /*Browse the subdir, but skip over virtual directories with a single entry iPod sty-lee*/ 
     430                SapphireDirectoryMetaData *subdirMeta = [metaData metaDataForDirectory:name]; 
     431                while( [[subdirMeta directories] count] == 1 ) 
     432                { 
     433                        NSString *subdirName = [[[subdirMeta directories] lastObject] retain]; 
     434                        subdirMeta = [subdirMeta metaDataForDirectory:subdirName]; 
     435                        [name appendFormat:@", %@", subdirName]; 
     436                } 
     437 
     438                id controller = [[SapphireBrowser alloc] initWithScene:[self scene] metaData:subdirMeta]; 
    431439                [controller setListTitle:[NSString stringWithFormat:@" %@",name]]; 
    432440                [controller setListIcon:[self listIcon]]; 
    433441                [[self stack] pushController:controller];