Use NSWorkspace methods instead of Launch Services and Finder functions.
[WebKit-https.git] / WebKit / MIME.subproj / IFDownloadHandler.mm
1 //
2 //  IFDownloadHandler.m
3 //  WebKit
4 //
5 //  Created by Chris Blumenberg on Thu Apr 11 2002.
6 //  Copyright (c) 2002 __MyCompanyName__. All rights reserved.
7 //
8
9 #import <WebKit/IFDownloadHandler.h>
10 #import <WebKit/IFWebDataSourcePrivate.h>
11 #import <WebKit/WebKitDebug.h>
12
13 @implementation IFDownloadHandler
14
15 - initWithDataSource:(IFWebDataSource *)dSource
16 {
17     dataSource = [dSource retain];
18     WEBKITDEBUGLEVEL(WEBKIT_LOG_DOWNLOAD, "Download started for: %s", [[[dSource inputURL] absoluteString] cString]);
19     return self;
20 }
21
22 - (void)dealloc
23 {
24     [dataSource release];
25 }
26
27 - (void)downloadCompletedWithData:(NSData *)data;
28 {
29     NSString *path = [dataSource _downloadPath];
30     NSFileManager *fileManager;
31     NSWorkspace *workspace;
32     
33     // FIXME: Should probably not replace existing file
34     // FIXME: Should report error if there is one
35     fileManager = [NSFileManager defaultManager];
36     [fileManager createFileAtPath:path contents:data attributes:nil];
37     WEBKITDEBUGLEVEL(WEBKIT_LOG_DOWNLOAD, "Download complete. Saved to: %s", [path cString]);
38     
39     // Send Finder notification
40     WEBKITDEBUGLEVEL(WEBKIT_LOG_DOWNLOAD, "Notifying Finder");
41     workspace = [NSWorkspace sharedWorkspace];
42     [workspace noteFileSystemChanged:path];
43     
44     if([dataSource contentPolicy] == IFContentPolicyOpenExternally){
45         [workspace openFile:path];
46     }
47 }
48
49
50 @end