| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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 "app/l10n_util.h" | 7 #include "app/l10n_util.h" |
| 8 #include "base/file_util.h" | 8 #include "base/file_util.h" |
| 9 #include "base/i18n/file_util_icu.h" | 9 #include "base/i18n/file_util_icu.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 1063 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1074 new SavePackageParam(tab_contents_->contents_mime_type()); | 1074 new SavePackageParam(tab_contents_->contents_mime_type()); |
| 1075 | 1075 |
| 1076 bool can_save_as_complete = | 1076 bool can_save_as_complete = |
| 1077 CanSaveAsComplete(save_params->current_tab_mime_type); | 1077 CanSaveAsComplete(save_params->current_tab_mime_type); |
| 1078 | 1078 |
| 1079 FilePath title = | 1079 FilePath title = |
| 1080 FilePath::FromWStringHack(UTF16ToWideHack(tab_contents_->GetTitle())); | 1080 FilePath::FromWStringHack(UTF16ToWideHack(tab_contents_->GetTitle())); |
| 1081 FilePath suggested_path = | 1081 FilePath suggested_path = |
| 1082 save_dir.Append(GetSuggestedNameForSaveAs(title, can_save_as_complete)); | 1082 save_dir.Append(GetSuggestedNameForSaveAs(title, can_save_as_complete)); |
| 1083 | 1083 |
| 1084 // If the contents can not be saved as complete-HTML, do not show the | 1084 // If the contents cannot be saved as complete-HTML, do not show the |
| 1085 // file filters. | 1085 // file filters. |
| 1086 if (can_save_as_complete) { | 1086 if (can_save_as_complete) { |
| 1087 file_type_info.extensions.resize(2); | 1087 file_type_info.extensions.resize(2); |
| 1088 file_type_info.extensions[0].push_back(FILE_PATH_LITERAL("htm")); | 1088 file_type_info.extensions[0].push_back(FILE_PATH_LITERAL("htm")); |
| 1089 file_type_info.extensions[0].push_back(FILE_PATH_LITERAL("html")); | 1089 file_type_info.extensions[0].push_back(FILE_PATH_LITERAL("html")); |
| 1090 file_type_info.extension_description_overrides.push_back( | 1090 file_type_info.extension_description_overrides.push_back( |
| 1091 WideToUTF16(l10n_util::GetString(IDS_SAVE_PAGE_DESC_HTML_ONLY))); | 1091 WideToUTF16(l10n_util::GetString(IDS_SAVE_PAGE_DESC_HTML_ONLY))); |
| 1092 file_type_info.extensions[1].push_back(FILE_PATH_LITERAL("htm")); | 1092 file_type_info.extensions[1].push_back(FILE_PATH_LITERAL("htm")); |
| 1093 file_type_info.extensions[1].push_back(FILE_PATH_LITERAL("html")); | 1093 file_type_info.extensions[1].push_back(FILE_PATH_LITERAL("html")); |
| 1094 file_type_info.extension_description_overrides.push_back( | 1094 file_type_info.extension_description_overrides.push_back( |
| 1095 WideToUTF16(l10n_util::GetString(IDS_SAVE_PAGE_DESC_COMPLETE))); | 1095 WideToUTF16(l10n_util::GetString(IDS_SAVE_PAGE_DESC_COMPLETE))); |
| 1096 file_type_info.include_all_files = false; | 1096 file_type_info.include_all_files = false; |
| 1097 default_extension = kDefaultHtmlExtension; | 1097 default_extension = kDefaultHtmlExtension; |
| 1098 } else { | 1098 } else { |
| 1099 file_type_info.extensions.resize(1); | 1099 file_type_info.extensions.resize(1); |
| 1100 file_type_info.extensions[0].push_back(suggested_path.Extension()); | 1100 file_type_info.extensions[0].push_back(suggested_path.Extension()); |
| 1101 if (!file_type_info.extensions[0][0].empty()) | 1101 if (!file_type_info.extensions[0][0].empty()) |
| 1102 file_type_info.extensions[0][0].erase(0, 1); // drop the . | 1102 file_type_info.extensions[0][0].erase(0, 1); // drop the . |
| 1103 file_type_info.include_all_files = true; | 1103 file_type_info.include_all_files = true; |
| 1104 file_type_index = 1; | 1104 file_type_index = 1; |
| 1105 } | 1105 } |
| 1106 | 1106 |
| 1107 if (g_should_prompt_for_filename) { | 1107 if (g_should_prompt_for_filename) { |
| 1108 if (!select_file_dialog_.get()) | 1108 if (!select_file_dialog_.get()) |
| 1109 select_file_dialog_ = SelectFileDialog::Create(this); | 1109 select_file_dialog_ = SelectFileDialog::Create(this); |
| 1110 #if defined(OS_MACOSX) |
| 1111 select_file_dialog_->SelectFileInTab(SelectFileDialog::SELECT_SAVEAS_FILE, |
| 1112 string16(), |
| 1113 suggested_path, |
| 1114 &file_type_info, |
| 1115 file_type_index, |
| 1116 default_extension, |
| 1117 tab_contents_, |
| 1118 save_params); |
| 1119 #else |
| 1110 select_file_dialog_->SelectFile(SelectFileDialog::SELECT_SAVEAS_FILE, | 1120 select_file_dialog_->SelectFile(SelectFileDialog::SELECT_SAVEAS_FILE, |
| 1111 string16(), | 1121 string16(), |
| 1112 suggested_path, | 1122 suggested_path, |
| 1113 &file_type_info, | 1123 &file_type_info, |
| 1114 file_type_index, | 1124 file_type_index, |
| 1115 default_extension, | 1125 default_extension, |
| 1116 platform_util::GetTopLevel( | 1126 platform_util::GetTopLevel( |
| 1117 tab_contents_->GetNativeView()), | 1127 tab_contents_->GetNativeView()), |
| 1118 save_params); | 1128 save_params); |
| 1129 #endif |
| 1119 } else { | 1130 } else { |
| 1120 // Just use 'suggested_path' instead of opening the dialog prompt. | 1131 // Just use 'suggested_path' instead of opening the dialog prompt. |
| 1121 ContinueSave(save_params, suggested_path, file_type_index); | 1132 ContinueSave(save_params, suggested_path, file_type_index); |
| 1122 delete save_params; | 1133 delete save_params; |
| 1123 } | 1134 } |
| 1124 } | 1135 } |
| 1125 | 1136 |
| 1126 // Called after the save file dialog box returns. | 1137 // Called after the save file dialog box returns. |
| 1127 void SavePackage::ContinueSave(SavePackageParam* param, | 1138 void SavePackage::ContinueSave(SavePackageParam* param, |
| 1128 const FilePath& final_name, | 1139 const FilePath& final_name, |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1221 int index, void* params) { | 1232 int index, void* params) { |
| 1222 SavePackageParam* save_params = reinterpret_cast<SavePackageParam*>(params); | 1233 SavePackageParam* save_params = reinterpret_cast<SavePackageParam*>(params); |
| 1223 ContinueSave(save_params, path, index); | 1234 ContinueSave(save_params, path, index); |
| 1224 delete save_params; | 1235 delete save_params; |
| 1225 } | 1236 } |
| 1226 | 1237 |
| 1227 void SavePackage::FileSelectionCanceled(void* params) { | 1238 void SavePackage::FileSelectionCanceled(void* params) { |
| 1228 SavePackageParam* save_params = reinterpret_cast<SavePackageParam*>(params); | 1239 SavePackageParam* save_params = reinterpret_cast<SavePackageParam*>(params); |
| 1229 delete save_params; | 1240 delete save_params; |
| 1230 } | 1241 } |
| OLD | NEW |