-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathMainController.m
More file actions
115 lines (96 loc) · 3.63 KB
/
Copy pathMainController.m
File metadata and controls
115 lines (96 loc) · 3.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#import "MainController.h"
#import "CWArrayController.h"
@implementation MainController
- (IBAction)showHelp:(id)sender
{
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"http://cocoawget.nobody.jp/help/"]];
}
- (IBAction)showWgetOptionHelp:(id)sender
{
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"http://cocoawget.nobody.jp/help/WgetHelp.html"]];
}
-(void)setDirectorySheetEnd:(NSOpenPanel*)sheet
returnCode:(NSModalResponse) returnCode
contextInfo:(void*)contextInfo
{
if(returnCode==NSModalResponseOK){
NSString *downloadFolder=[[[sheet URL] path] copy];
[[[NSUserDefaultsController sharedUserDefaultsController] values] setValue:downloadFolder forKey:@"downloadFolder"];
}
}
- (IBAction)selectDownloadFolder:(id)sender
{
NSOpenPanel *dialog;
NSString *defaultDirectory;
dialog=[NSOpenPanel openPanel];
[dialog setCanChooseDirectories:YES];
[dialog setCanChooseFiles:NO];
NSString *downloadFolder=[[[NSUserDefaultsController sharedUserDefaultsController] values] valueForKey:@"downloadFolder"];
if(downloadFolder) defaultDirectory=downloadFolder;
else defaultDirectory=[NSString stringWithFormat:@"%@",NSHomeDirectory()];
[dialog setDirectoryURL:[NSURL fileURLWithPath:defaultDirectory]];
[dialog beginSheetModalForWindow:prefWindow completionHandler:^(NSModalResponse result) {
[self setDirectorySheetEnd:dialog returnCode:result contextInfo:nil];
}];
}
-(BOOL)confirmClose
{
NSAlert *alert = [[[NSAlert alloc] init] autorelease];
[alert setMessageText:NSLocalizedString(@"Are you sure to quit application?",@"")];
[alert setInformativeText:NSLocalizedString(@"Downloading item exists.",@"")];
[alert addButtonWithTitle:NSLocalizedString(@"Yes",@"")];
[alert addButtonWithTitle:NSLocalizedString(@"No",@"")];
NSModalResponse result = [ alert runModal ];
if(result==NSAlertFirstButtonReturn) return YES;
else return NO;
}
- (BOOL)canCloseWindow
{
if([(CWArrayController*)arrayController downloadingCount]==0) return YES;
else return [self confirmClose];
}
-(void)applicationWillTerminate:(NSNotification*) notification
{
//NSLog(@"applicationWillTerminate");
[(CWArrayController*)arrayController clear];
}
- (BOOL)windowShouldClose:(id)sender
{
//NSLog(@"windowShouldClose");
return [self canCloseWindow];
}
- (void)windowWillClose:(NSNotification *)aNotification
{
//NSLog(@"windowWillClose");
[mainWindow setDelegate:nil];
[NSApp terminate:self];
}
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)app
{
//NSLog(@"applicationShouldTerminate");
if([self canCloseWindow])
return NSTerminateNow;
else
return NSTerminateCancel;
}
- (void)applicationDidBecomeActive/*windowDidBecomeKey*/:(NSNotification *)aNotification
{
[mainWindow makeFirstResponder:url];
}
- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename
{
if(!filename) return NO;
NSLog(@"application openfile");
NSLog(@"%@", filename);
NSMutableString *filePath=[NSMutableString stringWithCapacity:0];
[filePath setString:filename];
[filePath replaceOccurrencesOfString:@"/:" withString:@"/" options:NSLiteralSearch range:NSMakeRange(0, [filePath length])];
[filePath replaceOccurrencesOfString:@":" withString:@"/" options:NSLiteralSearch range:NSMakeRange(0, [filePath length])];
NSError *error;
NSString *contents = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&error];
NSLog(@"%@", filePath);
NSLog(@"%@", contents);
if(!contents) return NO;
return YES;
}
@end