Merge pull request #9588 from electron/poiru/dialog-default-file-name

Use last selected directory when using default file name in dialog.showSaveDialog()
This commit is contained in:
Kevin Sawicki 2017-06-14 14:41:45 -07:00 committed by GitHub
commit dae27de504
4 changed files with 16 additions and 6 deletions

View file

@ -72,8 +72,12 @@ class FileChooserDialog {
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog_),
settings.default_path.value().c_str());
} else {
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog_),
if (settings.default_path.IsAbsolute()) {
gtk_file_chooser_set_current_folder(
GTK_FILE_CHOOSER(dialog_),
settings.default_path.DirName().value().c_str());
}
gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(dialog_),
settings.default_path.BaseName().value().c_str());
}

View file

@ -65,8 +65,11 @@ void SetupDialog(NSSavePanel* dialog,
if (base::DirectoryExists(settings.default_path)) {
default_dir = base::SysUTF8ToNSString(settings.default_path.value());
} else {
if (settings.default_path.IsAbsolute()) {
default_dir =
base::SysUTF8ToNSString(settings.default_path.DirName().value());
}
default_filename =
base::SysUTF8ToNSString(settings.default_path.BaseName().value());
}

View file

@ -105,8 +105,10 @@ class FileDialog {
}
}
if (settings.default_path.IsAbsolute()) {
SetDefaultFolder(settings.default_path);
}
}
bool Show(atom::NativeWindow* parent_window) {
atom::UnresponsiveSuppressor suppressor;

View file

@ -87,7 +87,8 @@ shown.
* `browserWindow` BrowserWindow (optional)
* `options` Object
* `title` String (optional)
* `defaultPath` String (optional)
* `defaultPath` String (optional) - Absolute directory path, absolute file
path, or file name to use by default.
* `buttonLabel` String (optional) - Custom label for the confirmation button, when
left empty the default label will be used.
* `filters` [FileFilter[]](structures/file-filter.md) (optional)