Win: Remove adding '*.*' to file name in a save dialog.
This commit is contained in:
parent
ddea2fced4
commit
fa24e15d8b
1 changed files with 19 additions and 2 deletions
|
@ -79,8 +79,25 @@ class FileDialog {
|
||||||
if (!title.empty())
|
if (!title.empty())
|
||||||
GetPtr()->SetTitle(base::UTF8ToUTF16(title).c_str());
|
GetPtr()->SetTitle(base::UTF8ToUTF16(title).c_str());
|
||||||
|
|
||||||
if (!filterspec.empty())
|
// By default, *.* will be added to the file name if file type is "*.*". In
|
||||||
GetPtr()->SetDefaultExtension(filterspec.front().pszSpec);
|
// Electron, we disable it to make a better experience.
|
||||||
|
//
|
||||||
|
// From MSDN: https://msdn.microsoft.com/en-us/library/windows/desktop/
|
||||||
|
// bb775970(v=vs.85).aspx
|
||||||
|
//
|
||||||
|
// If SetDefaultExtension is not called, the dialog will not update
|
||||||
|
// automatically when user choose a new file type in the file dialog.
|
||||||
|
//
|
||||||
|
// We set file extension to the first none-wildcard extension to make
|
||||||
|
// sure the dialog will update file extension automatically.
|
||||||
|
for (size_t i = 0; i < filterspec.size(); ++i) {
|
||||||
|
if (std::wstring(filterspec[i].pszSpec) != L"*.*") {
|
||||||
|
// SetFileTypeIndex is regarded as one-based index.
|
||||||
|
GetPtr()->SetFileTypeIndex(i+1);
|
||||||
|
GetPtr()->SetDefaultExtension(filterspec[i].pszSpec);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
SetDefaultFolder(default_path);
|
SetDefaultFolder(default_path);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue