| OLD | NEW |
| 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/ui/bookmarks/bookmark_context_menu_controller.h" | 5 #include "chrome/browser/ui/bookmarks/bookmark_context_menu_controller.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
| 9 #include "base/prefs/pref_service.h" | 9 #include "base/prefs/pref_service.h" |
| 10 #include "chrome/app/chrome_command_ids.h" | 10 #include "chrome/app/chrome_command_ids.h" |
| 11 #include "chrome/browser/bookmarks/bookmark_model_factory.h" | 11 #include "chrome/browser/bookmarks/bookmark_model_factory.h" |
| 12 #include "chrome/browser/prefs/incognito_mode_prefs.h" | 12 #include "chrome/browser/prefs/incognito_mode_prefs.h" |
| 13 #include "chrome/browser/profiles/profile.h" | 13 #include "chrome/browser/profiles/profile.h" |
| 14 #include "chrome/browser/ui/bookmarks/bookmark_editor.h" | 14 #include "chrome/browser/ui/bookmarks/bookmark_editor.h" |
| 15 #include "chrome/browser/ui/bookmarks/bookmark_utils.h" | 15 #include "chrome/browser/ui/bookmarks/bookmark_utils.h" |
| 16 #include "chrome/browser/ui/browser.h" | 16 #include "chrome/browser/ui/browser.h" |
| 17 #include "chrome/browser/ui/chrome_pages.h" | 17 #include "chrome/browser/ui/chrome_pages.h" |
| 18 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 18 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| 19 #include "chrome/browser/undo/bookmark_undo_service.h" | 19 #include "chrome/browser/undo/bookmark_undo_service.h" |
| 20 #include "chrome/browser/undo/bookmark_undo_service_factory.h" | 20 #include "chrome/browser/undo/bookmark_undo_service_factory.h" |
| 21 #include "chrome/common/chrome_switches.h" | 21 #include "chrome/common/chrome_switches.h" |
| 22 #include "chrome/common/pref_names.h" | 22 #include "chrome/common/pref_names.h" |
| 23 #include "components/bookmarks/browser/bookmark_client.h" |
| 23 #include "components/bookmarks/browser/bookmark_model.h" | 24 #include "components/bookmarks/browser/bookmark_model.h" |
| 24 #include "components/bookmarks/browser/bookmark_utils.h" | 25 #include "components/bookmarks/browser/bookmark_utils.h" |
| 25 #include "content/public/browser/page_navigator.h" | 26 #include "content/public/browser/page_navigator.h" |
| 26 #include "content/public/browser/user_metrics.h" | 27 #include "content/public/browser/user_metrics.h" |
| 27 #include "grit/generated_resources.h" | 28 #include "grit/generated_resources.h" |
| 28 #include "ui/base/l10n/l10n_util.h" | 29 #include "ui/base/l10n/l10n_util.h" |
| 29 | 30 |
| 30 using base::UserMetricsAction; | 31 using base::UserMetricsAction; |
| 31 using content::PageNavigator; | 32 using content::PageNavigator; |
| 32 | 33 |
| (...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 314 | 315 |
| 315 DCHECK_EQ(IDC_BOOKMARK_BAR_SHOW_APPS_SHORTCUT, command_id); | 316 DCHECK_EQ(IDC_BOOKMARK_BAR_SHOW_APPS_SHORTCUT, command_id); |
| 316 return prefs->GetBoolean(prefs::kShowAppsShortcutInBookmarkBar); | 317 return prefs->GetBoolean(prefs::kShowAppsShortcutInBookmarkBar); |
| 317 } | 318 } |
| 318 | 319 |
| 319 bool BookmarkContextMenuController::IsCommandIdEnabled(int command_id) const { | 320 bool BookmarkContextMenuController::IsCommandIdEnabled(int command_id) const { |
| 320 PrefService* prefs = profile_->GetPrefs(); | 321 PrefService* prefs = profile_->GetPrefs(); |
| 321 | 322 |
| 322 bool is_root_node = selection_.size() == 1 && | 323 bool is_root_node = selection_.size() == 1 && |
| 323 selection_[0]->parent() == model_->root_node(); | 324 selection_[0]->parent() == model_->root_node(); |
| 324 bool can_edit = prefs->GetBoolean(prefs::kEditBookmarksEnabled); | 325 bool can_edit = prefs->GetBoolean(prefs::kEditBookmarksEnabled) && |
| 326 model_->client()->AllCanBeEditedByUser(selection_); |
| 325 IncognitoModePrefs::Availability incognito_avail = | 327 IncognitoModePrefs::Availability incognito_avail = |
| 326 IncognitoModePrefs::GetAvailability(prefs); | 328 IncognitoModePrefs::GetAvailability(prefs); |
| 329 |
| 327 switch (command_id) { | 330 switch (command_id) { |
| 328 case IDC_BOOKMARK_BAR_OPEN_INCOGNITO: | 331 case IDC_BOOKMARK_BAR_OPEN_INCOGNITO: |
| 329 return !profile_->IsOffTheRecord() && | 332 return !profile_->IsOffTheRecord() && |
| 330 incognito_avail != IncognitoModePrefs::DISABLED; | 333 incognito_avail != IncognitoModePrefs::DISABLED; |
| 331 | 334 |
| 332 case IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO: | 335 case IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO: |
| 333 return chrome::HasBookmarkURLsAllowedInIncognitoMode(selection_, profile_) | 336 return chrome::HasBookmarkURLsAllowedInIncognitoMode(selection_, profile_) |
| 334 && | 337 && |
| 335 !profile_->IsOffTheRecord() && | 338 !profile_->IsOffTheRecord() && |
| 336 incognito_avail != IncognitoModePrefs::DISABLED; | 339 incognito_avail != IncognitoModePrefs::DISABLED; |
| (...skipping 16 matching lines...) Expand all Loading... |
| 353 case IDC_BOOKMARK_BAR_REDO: | 356 case IDC_BOOKMARK_BAR_REDO: |
| 354 return can_edit && | 357 return can_edit && |
| 355 BookmarkUndoServiceFactory::GetForProfile(profile_)-> | 358 BookmarkUndoServiceFactory::GetForProfile(profile_)-> |
| 356 undo_manager()->redo_count() > 0; | 359 undo_manager()->redo_count() > 0; |
| 357 | 360 |
| 358 case IDC_BOOKMARK_BAR_REMOVE: | 361 case IDC_BOOKMARK_BAR_REMOVE: |
| 359 return !selection_.empty() && !is_root_node && can_edit; | 362 return !selection_.empty() && !is_root_node && can_edit; |
| 360 | 363 |
| 361 case IDC_BOOKMARK_BAR_NEW_FOLDER: | 364 case IDC_BOOKMARK_BAR_NEW_FOLDER: |
| 362 case IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK: | 365 case IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK: |
| 363 return can_edit && bookmark_utils::GetParentForNewNodes( | 366 return can_edit && model_->client()->CanBeEditedByUser(parent_) && |
| 364 parent_, selection_, NULL) != NULL; | 367 bookmark_utils::GetParentForNewNodes(parent_, selection_, NULL) != |
| 368 NULL; |
| 365 | 369 |
| 366 case IDC_BOOKMARK_BAR_ALWAYS_SHOW: | 370 case IDC_BOOKMARK_BAR_ALWAYS_SHOW: |
| 367 return !prefs->IsManagedPreference(prefs::kShowBookmarkBar); | 371 return !prefs->IsManagedPreference(prefs::kShowBookmarkBar); |
| 368 | 372 |
| 369 case IDC_BOOKMARK_BAR_SHOW_APPS_SHORTCUT: | 373 case IDC_BOOKMARK_BAR_SHOW_APPS_SHORTCUT: |
| 370 return !prefs->IsManagedPreference(prefs::kShowAppsShortcutInBookmarkBar); | 374 return !prefs->IsManagedPreference(prefs::kShowAppsShortcutInBookmarkBar); |
| 371 | 375 |
| 372 case IDC_COPY: | 376 case IDC_COPY: |
| 373 case IDC_CUT: | 377 case IDC_CUT: |
| 374 return !selection_.empty() && !is_root_node && | 378 return !selection_.empty() && !is_root_node && |
| 375 (command_id == IDC_COPY || can_edit); | 379 (command_id == IDC_COPY || can_edit); |
| 376 | 380 |
| 377 case IDC_PASTE: | 381 case IDC_PASTE: |
| 378 // Paste to selection from the Bookmark Bar, to parent_ everywhere else | 382 // Paste to selection from the Bookmark Bar, to parent_ everywhere else |
| 379 return can_edit && | 383 return can_edit && |
| 380 ((!selection_.empty() && | 384 ((!selection_.empty() && |
| 381 bookmark_utils::CanPasteFromClipboard(selection_[0])) || | 385 bookmark_utils::CanPasteFromClipboard(model_, selection_[0])) || |
| 382 bookmark_utils::CanPasteFromClipboard(parent_)); | 386 bookmark_utils::CanPasteFromClipboard(model_, parent_)); |
| 383 } | 387 } |
| 384 return true; | 388 return true; |
| 385 } | 389 } |
| 386 | 390 |
| 387 bool BookmarkContextMenuController::GetAcceleratorForCommandId( | 391 bool BookmarkContextMenuController::GetAcceleratorForCommandId( |
| 388 int command_id, | 392 int command_id, |
| 389 ui::Accelerator* accelerator) { | 393 ui::Accelerator* accelerator) { |
| 390 return false; | 394 return false; |
| 391 } | 395 } |
| 392 | 396 |
| 393 void BookmarkContextMenuController::BookmarkModelChanged() { | 397 void BookmarkContextMenuController::BookmarkModelChanged() { |
| 394 if (delegate_) | 398 if (delegate_) |
| 395 delegate_->CloseMenu(); | 399 delegate_->CloseMenu(); |
| 396 } | 400 } |
| OLD | NEW |