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

Side by Side Diff: chrome/browser/download/save_package.cc

Issue 63093: Refactoring; switch the |filter| parameter into something that is more amenab... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 8 months 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/download/download_manager.cc ('k') | chrome/browser/gtk/dialogs_gtk.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/download/save_package.h" 5 #include "chrome/browser/download/save_package.h"
6 6
7 #include "base/file_util.h" 7 #include "base/file_util.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "base/path_service.h" 10 #include "base/path_service.h"
(...skipping 977 matching lines...) Expand 10 before | Expand all | Expand 10 after
988 file_util::ReplaceIllegalCharacters(&file_name, L' '); 988 file_util::ReplaceIllegalCharacters(&file_name, L' ');
989 TrimWhitespace(file_name, TRIM_ALL, &file_name); 989 TrimWhitespace(file_name, TRIM_ALL, &file_name);
990 FilePath suggest_name = FilePath::FromWStringHack(save_file_path.GetValue()); 990 FilePath suggest_name = FilePath::FromWStringHack(save_file_path.GetValue());
991 suggest_name = suggest_name.Append(FilePath::FromWStringHack(file_name)); 991 suggest_name = suggest_name.Append(FilePath::FromWStringHack(file_name));
992 992
993 return suggest_name; 993 return suggest_name;
994 } 994 }
995 995
996 void SavePackage::GetSaveInfo() { 996 void SavePackage::GetSaveInfo() {
997 // Use "Web Page, Complete" option as default choice of saving page. 997 // Use "Web Page, Complete" option as default choice of saving page.
998 int filter_index = 2; 998 int file_type_index = 2;
999 std::wstring filter; 999 SelectFileDialog::FileTypeInfo file_type_info;
1000 FilePath::StringType default_extension; 1000 FilePath::StringType default_extension;
1001 FilePath title = 1001 FilePath title =
1002 FilePath::FromWStringHack(UTF16ToWideHack(web_contents_->GetTitle())); 1002 FilePath::FromWStringHack(UTF16ToWideHack(web_contents_->GetTitle()));
1003 FilePath suggested_path = 1003 FilePath suggested_path =
1004 GetSuggestNameForSaveAs(web_contents_->profile()->GetPrefs(), title); 1004 GetSuggestNameForSaveAs(web_contents_->profile()->GetPrefs(), title);
1005 1005
1006 SavePackageParam* save_params = 1006 SavePackageParam* save_params =
1007 new SavePackageParam(web_contents_->contents_mime_type()); 1007 new SavePackageParam(web_contents_->contents_mime_type());
1008 1008
1009 // If the contents can not be saved as complete-HTML, do not show the 1009 // If the contents can not be saved as complete-HTML, do not show the
1010 // file filters. 1010 // file filters.
1011 if (CanSaveAsComplete(save_params->current_tab_mime_type)) { 1011 if (CanSaveAsComplete(save_params->current_tab_mime_type)) {
1012 filter = l10n_util::GetString(IDS_SAVE_PAGE_FILTER); 1012 file_type_info.extensions.resize(2);
1013 filter.resize(filter.size() + 2); 1013 file_type_info.extensions[0].push_back(FILE_PATH_LITERAL("htm"));
1014 filter[filter.size() - 1] = L'\0'; 1014 file_type_info.extension_description_overrides.push_back(
1015 filter[filter.size() - 2] = L'\0'; 1015 WideToUTF16(l10n_util::GetString(IDS_SAVE_PAGE_DESC_HTML_ONLY)));
1016 file_type_info.extensions[1].push_back(FILE_PATH_LITERAL("htm"));
1017 file_type_info.extension_description_overrides.push_back(
1018 WideToUTF16(l10n_util::GetString(IDS_SAVE_PAGE_DESC_COMPLETE)));
1019 file_type_info.include_all_files = false;
1016 default_extension = FILE_PATH_LITERAL("htm"); 1020 default_extension = FILE_PATH_LITERAL("htm");
1017 } else { 1021 } else {
1018 #if defined(OS_WIN) 1022 file_type_info.extensions.resize(1);
1019 filter = win_util::GetFileFilterFromPath(suggested_path.ToWStringHack()); 1023 file_type_info.extensions[0].push_back(suggested_path.Extension());
1020 #else 1024 file_type_info.include_all_files = true;
1021 // TODO(port): implement this. 1025 file_type_index = 1;
1022 NOTIMPLEMENTED();
1023 #endif
1024 filter_index = 1;
1025 } 1026 }
1026 1027
1027
1028 #if defined(OS_LINUX) || defined(OS_WIN) 1028 #if defined(OS_LINUX) || defined(OS_WIN)
1029 if (g_should_prompt_for_filename) { 1029 if (g_should_prompt_for_filename) {
1030 if (!select_file_dialog_.get()) 1030 if (!select_file_dialog_.get())
1031 select_file_dialog_ = SelectFileDialog::Create(this); 1031 select_file_dialog_ = SelectFileDialog::Create(this);
1032 select_file_dialog_->SelectFile(SelectFileDialog::SELECT_SAVEAS_FILE, 1032 select_file_dialog_->SelectFile(SelectFileDialog::SELECT_SAVEAS_FILE,
1033 string16(), 1033 string16(),
1034 suggested_path, 1034 suggested_path,
1035 filter, 1035 &file_type_info,
1036 filter_index, 1036 file_type_index,
1037 default_extension, 1037 default_extension,
1038 platform_util::GetTopLevel( 1038 platform_util::GetTopLevel(
1039 web_contents_->GetNativeView()), 1039 web_contents_->GetNativeView()),
1040 save_params); 1040 save_params);
1041 } else 1041 } else
1042 #endif // defined(OS_LINUX) || defined(OS_WIN) 1042 #endif // defined(OS_LINUX) || defined(OS_WIN)
1043 { 1043 {
1044 // Just use 'suggested_path' instead of opening the dialog prompt. 1044 // Just use 'suggested_path' instead of opening the dialog prompt.
1045 ContinueSave(save_params, suggested_path, filter_index); 1045 ContinueSave(save_params, suggested_path, file_type_index);
1046 delete save_params; 1046 delete save_params;
1047 } 1047 }
1048 } 1048 }
1049 1049
1050 // Called after the save file dialog box returns. 1050 // Called after the save file dialog box returns.
1051 void SavePackage::ContinueSave(SavePackageParam* param, 1051 void SavePackage::ContinueSave(SavePackageParam* param,
1052 const FilePath& final_name, 1052 const FilePath& final_name,
1053 int index) { 1053 int index) {
1054 // Ensure the filename is safe. 1054 // Ensure the filename is safe.
1055 param->saved_main_file_path = final_name; 1055 param->saved_main_file_path = final_name;
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
1145 int index, void* params) { 1145 int index, void* params) {
1146 SavePackageParam* save_params = reinterpret_cast<SavePackageParam*>(params); 1146 SavePackageParam* save_params = reinterpret_cast<SavePackageParam*>(params);
1147 ContinueSave(save_params, path, index); 1147 ContinueSave(save_params, path, index);
1148 delete save_params; 1148 delete save_params;
1149 } 1149 }
1150 1150
1151 void SavePackage::FileSelectionCanceled(void* params) { 1151 void SavePackage::FileSelectionCanceled(void* params) {
1152 SavePackageParam* save_params = reinterpret_cast<SavePackageParam*>(params); 1152 SavePackageParam* save_params = reinterpret_cast<SavePackageParam*>(params);
1153 delete save_params; 1153 delete save_params;
1154 } 1154 }
OLDNEW
« no previous file with comments | « chrome/browser/download/download_manager.cc ('k') | chrome/browser/gtk/dialogs_gtk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698