mac: make ShowSaveDialog accept no parent window.
This commit is contained in:
parent
c95cfc9540
commit
43b492c641
1 changed files with 18 additions and 18 deletions
|
@ -120,11 +120,10 @@ void ShowOpenDialog(atom::NativeWindow* parent_window,
|
||||||
}];
|
}];
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ShowSaveDialog(atom::NativeWindow* window,
|
bool ShowSaveDialog(atom::NativeWindow* parent_window,
|
||||||
const std::string& title,
|
const std::string& title,
|
||||||
const base::FilePath& default_path,
|
const base::FilePath& default_path,
|
||||||
base::FilePath* path) {
|
base::FilePath* path) {
|
||||||
DCHECK(window);
|
|
||||||
DCHECK(path);
|
DCHECK(path);
|
||||||
NSSavePanel* dialog = [NSSavePanel savePanel];
|
NSSavePanel* dialog = [NSSavePanel savePanel];
|
||||||
|
|
||||||
|
@ -132,25 +131,26 @@ bool ShowSaveDialog(atom::NativeWindow* window,
|
||||||
|
|
||||||
[dialog setCanSelectHiddenExtension:YES];
|
[dialog setCanSelectHiddenExtension:YES];
|
||||||
|
|
||||||
__block bool result = false;
|
__block int chosen = -1;
|
||||||
__block base::FilePath ret_path;
|
|
||||||
[dialog beginSheetModalForWindow:window->GetNativeWindow()
|
|
||||||
completionHandler:^(NSInteger chosen) {
|
|
||||||
if (chosen == NSFileHandlingPanelCancelButton ||
|
|
||||||
![[dialog URL] isFileURL]) {
|
|
||||||
result = false;
|
|
||||||
} else {
|
|
||||||
result = true;
|
|
||||||
ret_path = base::FilePath(base::SysNSStringToUTF8([[dialog URL] path]));
|
|
||||||
}
|
|
||||||
|
|
||||||
[NSApp stopModal];
|
if (parent_window == NULL) {
|
||||||
}];
|
chosen = [dialog runModal];
|
||||||
|
} else {
|
||||||
|
NSWindow* window = parent_window->GetNativeWindow();
|
||||||
|
|
||||||
[NSApp runModalForWindow:window->GetNativeWindow()];
|
[dialog beginSheetModalForWindow:window
|
||||||
|
completionHandler:^(NSInteger c) {
|
||||||
|
chosen = c;
|
||||||
|
[NSApp stopModal];
|
||||||
|
}];
|
||||||
|
[NSApp runModalForWindow:window];
|
||||||
|
}
|
||||||
|
|
||||||
*path = ret_path;
|
if (chosen == NSFileHandlingPanelCancelButton || ![[dialog URL] isFileURL])
|
||||||
return result;
|
return false;
|
||||||
|
|
||||||
|
*path = base::FilePath(base::SysNSStringToUTF8([[dialog URL] path]));
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace file_dialog
|
} // namespace file_dialog
|
||||||
|
|
Loading…
Reference in a new issue