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