mirror of
https://github.com/electron/electron.git
synced 2026-02-16 01:56:59 -05:00
Use last selected directory when using default file name in dialog.showSaveDialog()
Prior to this change, attempting to use
`dialog.showSaveDialog({ defaultPath: 'foo.png' })` would open the save
dialog to the current directory with the default file name set to
`foo.png`. We now use the last selected directory instead of the current
directory.
Absolute paths are not affected by this change.
This commit is contained in:
@@ -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_),
|
||||
settings.default_path.DirName().value().c_str());
|
||||
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());
|
||||
}
|
||||
|
||||
@@ -65,8 +65,11 @@ void SetupDialog(NSSavePanel* dialog,
|
||||
if (base::DirectoryExists(settings.default_path)) {
|
||||
default_dir = base::SysUTF8ToNSString(settings.default_path.value());
|
||||
} else {
|
||||
default_dir =
|
||||
base::SysUTF8ToNSString(settings.default_path.DirName().value());
|
||||
if (settings.default_path.IsAbsolute()) {
|
||||
default_dir =
|
||||
base::SysUTF8ToNSString(settings.default_path.DirName().value());
|
||||
}
|
||||
|
||||
default_filename =
|
||||
base::SysUTF8ToNSString(settings.default_path.BaseName().value());
|
||||
}
|
||||
|
||||
@@ -105,7 +105,9 @@ class FileDialog {
|
||||
}
|
||||
}
|
||||
|
||||
SetDefaultFolder(settings.default_path);
|
||||
if (settings.default_path.IsAbsolute()) {
|
||||
SetDefaultFolder(settings.default_path);
|
||||
}
|
||||
}
|
||||
|
||||
bool Show(atom::NativeWindow* parent_window) {
|
||||
|
||||
Reference in New Issue
Block a user