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

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

Issue 164547: Mac: make save/open dialogs operate as tab-modal sheets.... Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: Painfully (but hopefully correctly) merged ToT. Created 11 years, 2 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_request_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) 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
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
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 }
OLDNEW
« no previous file with comments | « chrome/browser/download/download_request_manager.cc ('k') | chrome/browser/gtk/dialogs_gtk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698