cog/FileTree/FileTreeViewController.m

67 lines
1.8 KiB
Objective-C

//
// SplitViewController.m
// Cog
//
// Created by Vincent Spader on 6/20/08.
// Copyright 2008 __MyCompanyName__. All rights reserved.
//
#import "FileTreeViewController.h"
#import "PlaybackController.h"
#import "PlaylistLoader.h"
#import "SandboxBroker.h"
@implementation FileTreeViewController
- (id)init {
return [super initWithNibName:@"FileTree" bundle:[NSBundle mainBundle]];
}
- (void)addToPlaylistInternal:(NSArray *)urls {
[self doAddToPlaylist:urls origin:URLOriginInternal];
}
- (void)addToPlaylistExternal:(NSArray *)urls {
[self doAddToPlaylist:urls origin:URLOriginExternal];
}
- (void)doAddToPlaylist:(NSArray *)urls origin:(URLOrigin)origin {
NSDictionary *loadEntryData = @{ @"entries": urls,
@"sort": @(YES),
@"origin": @(origin) };
[playlistLoader performSelectorInBackground:@selector(addURLsInBackground:) withObject:loadEntryData];
}
- (void)clear:(id)sender {
[playlistLoader clear:sender];
}
- (void)playPauseResume:(NSObject *)id {
[playbackController playPauseResume:id];
}
- (FileTreeOutlineView *)outlineView {
return fileTreeOutlineView;
}
- (IBAction)chooseRootFolder:(id)sender {
NSString *path = [[NSUserDefaults standardUserDefaults] stringForKey:@"fileTreeRootURL"];
NSOpenPanel *panel = [NSOpenPanel openPanel];
[panel setAllowsMultipleSelection:NO];
[panel setCanChooseDirectories:YES];
[panel setCanChooseFiles:NO];
[panel setFloatingPanel:YES];
if(path) {
[panel setDirectoryURL:[NSURL fileURLWithPath:path]];
}
[panel setTitle:@"Open to choose tree path"];
NSInteger result = [panel runModal];
if(result == NSModalResponseOK) {
[[SandboxBroker sharedSandboxBroker] addFolderIfMissing:[panel URL]];
[[NSUserDefaults standardUserDefaults] setValue:[[panel URL] absoluteString] forKey:@"fileTreeRootURL"];
}
}
@end