Index: chrome/browser/views/shell_dialogs.cc |
=================================================================== |
--- chrome/browser/views/shell_dialogs.cc (revision 5130) |
+++ chrome/browser/views/shell_dialogs.cc (working copy) |
@@ -194,6 +194,7 @@ |
virtual void SelectFile(Type type, const std::wstring& title, |
const std::wstring& default_path, |
const std::wstring& filter, |
+ const std::wstring& default_extension, |
HWND owning_hwnd, |
void* params); |
virtual bool IsRunning(HWND owning_hwnd) const; |
@@ -206,6 +207,7 @@ |
const std::wstring& title, |
const std::wstring& default_path, |
const std::wstring& filter, |
+ const std::wstring& default_extension, |
RunState run_state, |
void* params); |
@@ -250,12 +252,14 @@ |
const std::wstring& title, |
const std::wstring& default_path, |
const std::wstring& filter, |
+ const std::wstring& default_extension, |
HWND owner, |
void* params) { |
RunState run_state = BeginRun(owner); |
run_state.dialog_thread->message_loop()->PostTask(FROM_HERE, |
NewRunnableMethod(this, &SelectFileDialogImpl::ExecuteSelectFile, type, |
- title, default_path, filter, run_state, params)); |
+ title, default_path, filter, default_extension, |
+ run_state, params)); |
} |
bool SelectFileDialogImpl::IsRunning(HWND owning_hwnd) const { |
@@ -273,6 +277,7 @@ |
const std::wstring& title, |
const std::wstring& default_path, |
const std::wstring& filter, |
+ const std::wstring& default_extension, |
RunState run_state, |
void* params) { |
std::wstring path = default_path; |
@@ -280,7 +285,10 @@ |
if (type == SELECT_FOLDER) { |
success = RunSelectFolderDialog(title, run_state.owner, &path); |
} else if (type == SELECT_SAVEAS_FILE) { |
- success = win_util::SaveFileAs(run_state.owner, default_path, &path); |
+ const wchar_t* filter_string = filter.empty() ? NULL : filter.c_str(); |
+ unsigned index = 0; |
+ success = win_util::SaveFileAsWithFilter(run_state.owner, default_path, |
+ filter_string, default_extension, &index, &path); |
DisableOwner(run_state.owner); |
} else if (type == SELECT_OPEN_FILE) { |
success = RunOpenFileDialog(title, filter, run_state.owner, &path); |