Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(180)

Unified Diff: chrome/browser/views/shell_dialogs.cc

Issue 10621: Adds the ability for save dialogs to take a default extension.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 12 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);

Powered by Google App Engine
This is Rietveld 408576698