Skip to content

Commit a2acad4

Browse files
committed
Merge pull request nwjs#384 from MaestroElearning/mac-file-dialog
added mac specific file chooser dialog code
2 parents ce7f335 + 5c2eb1f commit a2acad4

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

src/browser/shell_download_manager_delegate.cc renamed to src/browser/shell_download_manager_delegate.mm

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@
2929
#include <commdlg.h>
3030
#endif
3131

32+
#if defined(OS_MACOSX)
33+
#include <AppKit/NSSavePanel.h>
34+
#include <Foundation/NSURL.h>
35+
#endif
36+
3237
#include "base/bind.h"
3338
#include "base/file_util.h"
3439
#include "base/logging.h"
@@ -189,7 +194,17 @@ void ShellDownloadManagerDelegate::ChooseDownloadPath(
189194
}
190195
gtk_widget_destroy(dialog);
191196
#else
192-
NOTIMPLEMENTED();
197+
std::string base_name = FilePath(suggested_path).BaseName().value();
198+
199+
NSSavePanel *savePanel = [NSSavePanel savePanel];
200+
201+
[savePanel setNamedFieldStringValue:[NSString stringWithUTF8String:base_name.c_str()]];
202+
203+
if ([savePanel runModal] == NSFileHandlingPanelOKButton) {
204+
char *filename = (char *)[[[savePanel URL] path] UTF8String];
205+
206+
result = FilePath(filename);
207+
}
193208
#endif
194209

195210
callback.Run(result, DownloadItem::TARGET_DISPOSITION_PROMPT,

0 commit comments

Comments
 (0)