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

Side by Side Diff: chrome/browser/media_galleries/media_galleries_dialog_controller.cc

Issue 46973005: Media Galleries: Use the same last directory entry as file_system_api. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/media_galleries/media_galleries_dialog_controller.h ('k') | no next file » | 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/media_galleries/media_galleries_dialog_controller.h" 5 #include "chrome/browser/media_galleries/media_galleries_dialog_controller.h"
6 6
7 #include "base/base_paths.h" 7 #include "base/base_paths.h"
8 #include "base/path_service.h" 8 #include "base/path_service.h"
9 #include "base/stl_util.h" 9 #include "base/stl_util.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
11 #include "chrome/browser/browser_process.h" 11 #include "chrome/browser/browser_process.h"
12 #include "chrome/browser/extensions/api/file_system/file_system_api.h"
13 #include "chrome/browser/extensions/extension_prefs.h"
12 #include "chrome/browser/media_galleries/media_file_system_registry.h" 14 #include "chrome/browser/media_galleries/media_file_system_registry.h"
13 #include "chrome/browser/media_galleries/media_galleries_histograms.h" 15 #include "chrome/browser/media_galleries/media_galleries_histograms.h"
14 #include "chrome/browser/profiles/profile.h" 16 #include "chrome/browser/profiles/profile.h"
15 #include "chrome/browser/storage_monitor/storage_info.h" 17 #include "chrome/browser/storage_monitor/storage_info.h"
16 #include "chrome/browser/storage_monitor/storage_monitor.h" 18 #include "chrome/browser/storage_monitor/storage_monitor.h"
17 #include "chrome/browser/ui/chrome_select_file_policy.h" 19 #include "chrome/browser/ui/chrome_select_file_policy.h"
18 #include "chrome/common/extensions/extension.h" 20 #include "chrome/common/extensions/extension.h"
19 #include "chrome/common/extensions/permissions/media_galleries_permission.h" 21 #include "chrome/common/extensions/permissions/media_galleries_permission.h"
20 #include "chrome/common/extensions/permissions/permissions_data.h" 22 #include "chrome/common/extensions/permissions/permissions_data.h"
21 #include "content/public/browser/web_contents.h" 23 #include "content/public/browser/web_contents.h"
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 83
82 MediaGalleriesDialogController::MediaGalleriesDialogController( 84 MediaGalleriesDialogController::MediaGalleriesDialogController(
83 content::WebContents* web_contents, 85 content::WebContents* web_contents,
84 const Extension& extension, 86 const Extension& extension,
85 const base::Closure& on_finish) 87 const base::Closure& on_finish)
86 : web_contents_(web_contents), 88 : web_contents_(web_contents),
87 extension_(&extension), 89 extension_(&extension),
88 on_finish_(on_finish) { 90 on_finish_(on_finish) {
89 preferences_ = 91 preferences_ =
90 g_browser_process->media_file_system_registry()->GetPreferences( 92 g_browser_process->media_file_system_registry()->GetPreferences(
91 Profile::FromBrowserContext(web_contents_->GetBrowserContext())); 93 GetProfile());
92 // Passing unretained pointer is safe, since the dialog controller 94 // Passing unretained pointer is safe, since the dialog controller
93 // is self-deleting, and so won't be deleted until it can be shown 95 // is self-deleting, and so won't be deleted until it can be shown
94 // and then closed. 96 // and then closed.
95 preferences_->EnsureInitialized( 97 preferences_->EnsureInitialized(
96 base::Bind(&MediaGalleriesDialogController::OnPreferencesInitialized, 98 base::Bind(&MediaGalleriesDialogController::OnPreferencesInitialized,
97 base::Unretained(this))); 99 base::Unretained(this)));
98 100
99 gallery_menu_model_.reset(new GalleryContextMenuModel(this)); 101 gallery_menu_model_.reset(new GalleryContextMenuModel(this));
100 ui::SimpleMenuModel* menu_model = 102 ui::SimpleMenuModel* menu_model =
101 new ui::SimpleMenuModel(gallery_menu_model_.get()); 103 new ui::SimpleMenuModel(gallery_menu_model_.get());
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 } 204 }
203 205
204 MediaGalleriesDialogController::GalleryPermissionsVector 206 MediaGalleriesDialogController::GalleryPermissionsVector
205 MediaGalleriesDialogController::UnattachedPermissions() const { 207 MediaGalleriesDialogController::UnattachedPermissions() const {
206 GalleryPermissionsVector unattached; 208 GalleryPermissionsVector unattached;
207 FillPermissions(false, &unattached); 209 FillPermissions(false, &unattached);
208 return unattached; 210 return unattached;
209 } 211 }
210 212
211 void MediaGalleriesDialogController::OnAddFolderClicked() { 213 void MediaGalleriesDialogController::OnAddFolderClicked() {
212 base::FilePath desktop; 214 base::FilePath default_path =
213 PathService::Get(base::DIR_USER_DESKTOP, &desktop); 215 extensions::file_system_api::GetLastChooseEntryDirectory(
216 extensions::ExtensionPrefs::Get(GetProfile()), extension_->id());
217 if (default_path.empty())
218 PathService::Get(base::DIR_USER_DESKTOP, &default_path);
214 select_folder_dialog_ = 219 select_folder_dialog_ =
215 ui::SelectFileDialog::Create(this, new ChromeSelectFilePolicy(NULL)); 220 ui::SelectFileDialog::Create(this, new ChromeSelectFilePolicy(NULL));
216 select_folder_dialog_->SelectFile( 221 select_folder_dialog_->SelectFile(
217 ui::SelectFileDialog::SELECT_FOLDER, 222 ui::SelectFileDialog::SELECT_FOLDER,
218 l10n_util::GetStringUTF16(IDS_MEDIA_GALLERIES_DIALOG_ADD_GALLERY_TITLE), 223 l10n_util::GetStringUTF16(IDS_MEDIA_GALLERIES_DIALOG_ADD_GALLERY_TITLE),
219 desktop, 224 default_path,
220 NULL, 225 NULL,
221 0, 226 0,
222 base::FilePath::StringType(), 227 base::FilePath::StringType(),
223 web_contents_->GetView()->GetTopLevelNativeWindow(), 228 web_contents_->GetView()->GetTopLevelNativeWindow(),
224 NULL); 229 NULL);
225 } 230 }
226 231
227 void MediaGalleriesDialogController::DidToggleGalleryId( 232 void MediaGalleriesDialogController::DidToggleGalleryId(
228 MediaGalleryPrefId gallery_id, 233 MediaGalleryPrefId gallery_id,
229 bool enabled) { 234 bool enabled) {
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 delete this; 285 delete this;
281 } 286 }
282 287
283 content::WebContents* MediaGalleriesDialogController::web_contents() { 288 content::WebContents* MediaGalleriesDialogController::web_contents() {
284 return web_contents_; 289 return web_contents_;
285 } 290 }
286 291
287 void MediaGalleriesDialogController::FileSelected(const base::FilePath& path, 292 void MediaGalleriesDialogController::FileSelected(const base::FilePath& path,
288 int /*index*/, 293 int /*index*/,
289 void* /*params*/) { 294 void* /*params*/) {
295 extensions::file_system_api::SetLastChooseEntryDirectory(
296 extensions::ExtensionPrefs::Get(GetProfile()),
297 extension_->id(),
298 path);
299
290 // Try to find it in the prefs. 300 // Try to find it in the prefs.
291 MediaGalleryPrefInfo gallery; 301 MediaGalleryPrefInfo gallery;
292 bool gallery_exists = preferences_->LookUpGalleryByPath(path, &gallery); 302 bool gallery_exists = preferences_->LookUpGalleryByPath(path, &gallery);
293 if (gallery_exists && gallery.type != MediaGalleryPrefInfo::kBlackListed) { 303 if (gallery_exists && gallery.type != MediaGalleryPrefInfo::kBlackListed) {
294 // The prefs are in sync with |known_galleries_|, so it should exist in 304 // The prefs are in sync with |known_galleries_|, so it should exist in
295 // |known_galleries_| as well. User selecting a known gallery effectively 305 // |known_galleries_| as well. User selecting a known gallery effectively
296 // just sets the gallery to permitted. 306 // just sets the gallery to permitted.
297 DCHECK(ContainsKey(known_galleries_, gallery.pref_id)); 307 DCHECK(ContainsKey(known_galleries_, gallery.pref_id));
298 dialog_->UpdateGalleries(); 308 dialog_->UpdateGalleries();
299 return; 309 return;
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
459 const std::string& device_id) { 469 const std::string& device_id) {
460 dialog_->UpdateGalleries(); 470 dialog_->UpdateGalleries();
461 } 471 }
462 472
463 ui::MenuModel* MediaGalleriesDialogController::GetContextMenuModel( 473 ui::MenuModel* MediaGalleriesDialogController::GetContextMenuModel(
464 MediaGalleryPrefId id) { 474 MediaGalleryPrefId id) {
465 gallery_menu_model_->set_media_gallery_pref_id(id); 475 gallery_menu_model_->set_media_gallery_pref_id(id);
466 return context_menu_model_.get(); 476 return context_menu_model_.get();
467 } 477 }
468 478
479 Profile* MediaGalleriesDialogController::GetProfile() {
480 return Profile::FromBrowserContext(web_contents_->GetBrowserContext());
481 }
482
469 // MediaGalleries dialog ------------------------------------------------------- 483 // MediaGalleries dialog -------------------------------------------------------
470 484
471 MediaGalleriesDialog::~MediaGalleriesDialog() {} 485 MediaGalleriesDialog::~MediaGalleriesDialog() {}
OLDNEW
« no previous file with comments | « chrome/browser/media_galleries/media_galleries_dialog_controller.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698