Changeset 2945

Show
Ignore:
Timestamp:
06/01/05 15:39:22 (4 years ago)
Author:
morris
Message:

Resupport dragging files onto the app, this time using FHFileHandler

Fix an exception during exit if handler was NULL

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • Footagehead/trunk/FHController.m

    r2933 r2945  
    4545- (FHFile *)fileAtIndex:(unsigned int)index; 
    4646 
     47- (void)loadURL:(ZAURL *)url; 
    4748- (void)loadURL:(ZAURL *)url selectRow:(int)row; 
     49- (void)loadURL:(ZAURL *)url selectFile:(NSString *)file; 
     50- (void)loadURL:(ZAURL *)url selectRow:(int)row file:(NSString *)file; 
    4851- (void)loadFile:(FHFile *)file; 
    4952 
     
    190193 
    191194                // --- load files 
    192                 [self loadURL:url selectRow:0]; 
     195                [self loadURL:url]; 
    193196        } 
    194197         
     
    199202 
    200203- (void)applicationWillTerminate:(NSNotification *)notification { 
    201         [FHSettings setObject:[[_handler URL] string] forKey:FHOpenURL]; 
     204        ZAURL   *url; 
     205         
     206        url = [_handler URL]; 
     207         
     208        if(url) 
     209                [FHSettings setObject:[url string] forKey:FHOpenURL]; 
    202210         
    203211        [[FHCache cache] purgeTemporaryPaths]; 
     
    213221 
    214222- (BOOL)application:(NSApplication *)application openFile:(NSString *)path { 
    215         [self loadURL:[ZAURL fileURLWithPath:path] selectRow:0]; 
     223        NSString        *file; 
     224         
     225        if([[NSFileManager defaultManager] directoryExistsAtPath:path]) { 
     226                [self loadURL:[ZAURL fileURLWithPath:path]]; 
     227        } else { 
     228                file = [path lastPathComponent]; 
     229                path = [path stringByDeletingLastPathComponent]; 
     230                 
     231                [self loadURL:[ZAURL fileURLWithPath:path] selectFile:file]; 
     232        } 
    216233 
    217234        return YES; 
     
    377394- (void)openPanelDidEnd:(NSOpenPanel *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo { 
    378395        if(returnCode == NSOKButton) 
    379                 [self loadURL:[ZAURL fileURLWithPath:[sheet filename]] selectRow:0]; 
     396                [self loadURL:[ZAURL fileURLWithPath:[sheet filename]]]; 
    380397} 
    381398 
     
    398415         
    399416        if(returnCode == NSRunStoppedResponse) 
    400                 [self loadURL:[ZAURL URLWithString:[_openURLTextView string] scheme:@"http"] selectRow:0]; 
     417                [self loadURL:[ZAURL URLWithString:[_openURLTextView string] scheme:@"http"]]; 
    401418} 
    402419 
     
    423440                url = [[ZAURL alloc] initWithScheme:@"spotlight" host:@"localhost" port:0]; 
    424441                [url setPath:[NSSWF:@"/%@", [_openSpotlightTextView string]]]; 
    425                 [self loadURL:url selectRow:0]; 
     442                [self loadURL:url]; 
    426443                [url release]; 
    427444        } 
     
    438455        if(![url isEqual:[_handler URL]]) { 
    439456                name = [[[_handler URL] path] lastPathComponent]; 
    440                 [self loadURL:url selectRow:0]; 
     457                [self loadURL:url]; 
    441458                [self updateImage]; 
    442459                [_tableView selectRowWithStringValue:name]; 
     
    447464 
    448465- (IBAction)openMenu:(id)sender { 
    449         [self loadURL:[sender representedObject] selectRow:0]; 
     466        [self loadURL:[sender representedObject]]; 
    450467        [self updateImage]; 
    451468} 
     
    459476         
    460477        if([file isDirectory]) 
    461                 [self loadURL:[file URL] selectRow:0]; 
     478                [self loadURL:[file URL]]; 
    462479        else 
    463480                [[NSWorkspace sharedWorkspace] openURL:[[file URL] URL]]; 
     
    472489         
    473490        if([file isDirectory]) 
    474                 [self loadURL:[file URL] selectRow:0]; 
     491                [self loadURL:[file URL]]; 
    475492} 
    476493 
     
    701718#pragma mark - 
    702719 
     720- (void)loadURL:(ZAURL *)url { 
     721        [self loadURL:url selectRow:0 file:NULL]; 
     722} 
     723 
     724 
     725 
    703726- (void)loadURL:(ZAURL *)url selectRow:(int)row { 
    704         FHHandler       *handler; 
    705         BOOL            select; 
     727        [self loadURL:url selectRow:row file:NULL]; 
     728
     729 
     730 
     731 
     732- (void)loadURL:(ZAURL *)url selectFile:(NSString *)file { 
     733        [self loadURL:url selectRow:0 file:file]; 
     734
     735 
     736 
     737 
     738- (void)loadURL:(ZAURL *)url selectRow:(int)row file:(NSString *)file { 
     739        FHHandler               *handler; 
     740        unsigned int    i, count; 
     741        BOOL                    select; 
    706742         
    707743        [self startSpinning]; 
     
    711747        if(!handler) { 
    712748                [self stopSpinning]; 
     749                 
     750                if(!_handler) 
     751                        [_imageView setImage:NULL]; 
    713752                 
    714753                return; 
     
    729768        [self updateButtons]; 
    730769        [self reloadPathMenu]; 
     770         
     771        if(file) { 
     772                for(i = 0, count = [[_handler files] count]; i < count; i++) { 
     773                        if([[[[_handler files] objectAtIndex:i] name] isEqualToString:file]) { 
     774                                row = i; 
     775                                 
     776                                break; 
     777                        } 
     778                } 
     779        } 
    731780         
    732781        select = (row != [_tableView selectedRow]);