| 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/bookmarks/chrome_bookmark_client.h" | |
| 13 #include "chrome/browser/bookmarks/chrome_bookmark_client_factory.h" | |
| 14 #include "chrome/browser/prefs/incognito_mode_prefs.h" | 12 #include "chrome/browser/prefs/incognito_mode_prefs.h" |
| 15 #include "chrome/browser/profiles/profile.h" | 13 #include "chrome/browser/profiles/profile.h" |
| 16 #include "chrome/browser/ui/bookmarks/bookmark_editor.h" | 14 #include "chrome/browser/ui/bookmarks/bookmark_editor.h" |
| 17 #include "chrome/browser/ui/bookmarks/bookmark_utils.h" | 15 #include "chrome/browser/ui/bookmarks/bookmark_utils.h" |
| 18 #include "chrome/browser/ui/browser.h" | 16 #include "chrome/browser/ui/browser.h" |
| 19 #include "chrome/browser/ui/chrome_pages.h" | 17 #include "chrome/browser/ui/chrome_pages.h" |
| 20 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 18 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| 21 #include "chrome/browser/undo/bookmark_undo_service_factory.h" | 19 #include "chrome/browser/undo/bookmark_undo_service_factory.h" |
| 22 #include "chrome/common/chrome_switches.h" | 20 #include "chrome/common/chrome_switches.h" |
| 23 #include "chrome/common/pref_names.h" | 21 #include "chrome/common/pref_names.h" |
| (...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 313 int command_id) const { | 311 int command_id) const { |
| 314 if (command_id == IDC_BOOKMARK_BAR_UNDO) { | 312 if (command_id == IDC_BOOKMARK_BAR_UNDO) { |
| 315 return BookmarkUndoServiceFactory::GetForProfile(profile_)-> | 313 return BookmarkUndoServiceFactory::GetForProfile(profile_)-> |
| 316 undo_manager()->GetUndoLabel(); | 314 undo_manager()->GetUndoLabel(); |
| 317 } | 315 } |
| 318 if (command_id == IDC_BOOKMARK_BAR_REDO) { | 316 if (command_id == IDC_BOOKMARK_BAR_REDO) { |
| 319 return BookmarkUndoServiceFactory::GetForProfile(profile_)-> | 317 return BookmarkUndoServiceFactory::GetForProfile(profile_)-> |
| 320 undo_manager()->GetRedoLabel(); | 318 undo_manager()->GetRedoLabel(); |
| 321 } | 319 } |
| 322 if (command_id == IDC_BOOKMARK_BAR_SHOW_MANAGED_BOOKMARKS) { | 320 if (command_id == IDC_BOOKMARK_BAR_SHOW_MANAGED_BOOKMARKS) { |
| 323 ChromeBookmarkClient* client = | |
| 324 ChromeBookmarkClientFactory::GetForProfile(profile_); | |
| 325 return l10n_util::GetStringFUTF16(IDS_BOOKMARK_BAR_SHOW_MANAGED_BOOKMARKS, | 321 return l10n_util::GetStringFUTF16(IDS_BOOKMARK_BAR_SHOW_MANAGED_BOOKMARKS, |
| 326 client->managed_node()->GetTitle()); | 322 model_->managed_node()->GetTitle()); |
| 327 } | 323 } |
| 328 | 324 |
| 329 NOTREACHED(); | 325 NOTREACHED(); |
| 330 return base::string16(); | 326 return base::string16(); |
| 331 } | 327 } |
| 332 | 328 |
| 333 bool BookmarkContextMenuController::IsCommandIdChecked(int command_id) const { | 329 bool BookmarkContextMenuController::IsCommandIdChecked(int command_id) const { |
| 334 PrefService* prefs = profile_->GetPrefs(); | 330 PrefService* prefs = profile_->GetPrefs(); |
| 335 if (command_id == IDC_BOOKMARK_BAR_ALWAYS_SHOW) | 331 if (command_id == IDC_BOOKMARK_BAR_ALWAYS_SHOW) |
| 336 return prefs->GetBoolean(bookmarks::prefs::kShowBookmarkBar); | 332 return prefs->GetBoolean(bookmarks::prefs::kShowBookmarkBar); |
| 337 if (command_id == IDC_BOOKMARK_BAR_SHOW_MANAGED_BOOKMARKS) | 333 if (command_id == IDC_BOOKMARK_BAR_SHOW_MANAGED_BOOKMARKS) |
| 338 return prefs->GetBoolean( | 334 return prefs->GetBoolean( |
| 339 bookmarks::prefs::kShowManagedBookmarksInBookmarkBar); | 335 bookmarks::prefs::kShowManagedBookmarksInBookmarkBar); |
| 340 | 336 |
| 341 DCHECK_EQ(IDC_BOOKMARK_BAR_SHOW_APPS_SHORTCUT, command_id); | 337 DCHECK_EQ(IDC_BOOKMARK_BAR_SHOW_APPS_SHORTCUT, command_id); |
| 342 return prefs->GetBoolean(bookmarks::prefs::kShowAppsShortcutInBookmarkBar); | 338 return prefs->GetBoolean(bookmarks::prefs::kShowAppsShortcutInBookmarkBar); |
| 343 } | 339 } |
| 344 | 340 |
| 345 bool BookmarkContextMenuController::IsCommandIdEnabled(int command_id) const { | 341 bool BookmarkContextMenuController::IsCommandIdEnabled(int command_id) const { |
| 346 PrefService* prefs = profile_->GetPrefs(); | 342 PrefService* prefs = profile_->GetPrefs(); |
| 347 | 343 |
| 348 bool is_root_node = selection_.size() == 1 && | 344 bool is_root_node = selection_.size() == 1 && |
| 349 selection_[0]->parent() == model_->root_node(); | 345 selection_[0]->parent() == model_->root_node(); |
| 350 bool can_edit = prefs->GetBoolean(bookmarks::prefs::kEditBookmarksEnabled) && | 346 bool can_edit = prefs->GetBoolean(bookmarks::prefs::kEditBookmarksEnabled) && |
| 351 bookmarks::CanAllBeEditedByUser(model_->client(), selection_); | 347 bookmarks::CanAllBeEditedByUser(model_, selection_); |
| 352 IncognitoModePrefs::Availability incognito_avail = | 348 IncognitoModePrefs::Availability incognito_avail = |
| 353 IncognitoModePrefs::GetAvailability(prefs); | 349 IncognitoModePrefs::GetAvailability(prefs); |
| 354 | 350 |
| 355 switch (command_id) { | 351 switch (command_id) { |
| 356 case IDC_BOOKMARK_BAR_OPEN_INCOGNITO: | 352 case IDC_BOOKMARK_BAR_OPEN_INCOGNITO: |
| 357 return !profile_->IsOffTheRecord() && | 353 return !profile_->IsOffTheRecord() && |
| 358 incognito_avail != IncognitoModePrefs::DISABLED; | 354 incognito_avail != IncognitoModePrefs::DISABLED; |
| 359 | 355 |
| 360 case IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO: | 356 case IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO: |
| 361 return chrome::HasBookmarkURLsAllowedInIncognitoMode(selection_, profile_) | 357 return chrome::HasBookmarkURLsAllowedInIncognitoMode(selection_, profile_) |
| (...skipping 19 matching lines...) Expand all Loading... |
| 381 case IDC_BOOKMARK_BAR_REDO: | 377 case IDC_BOOKMARK_BAR_REDO: |
| 382 return can_edit && | 378 return can_edit && |
| 383 BookmarkUndoServiceFactory::GetForProfile(profile_)-> | 379 BookmarkUndoServiceFactory::GetForProfile(profile_)-> |
| 384 undo_manager()->redo_count() > 0; | 380 undo_manager()->redo_count() > 0; |
| 385 | 381 |
| 386 case IDC_BOOKMARK_BAR_REMOVE: | 382 case IDC_BOOKMARK_BAR_REMOVE: |
| 387 return !selection_.empty() && !is_root_node && can_edit; | 383 return !selection_.empty() && !is_root_node && can_edit; |
| 388 | 384 |
| 389 case IDC_BOOKMARK_BAR_NEW_FOLDER: | 385 case IDC_BOOKMARK_BAR_NEW_FOLDER: |
| 390 case IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK: | 386 case IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK: |
| 391 return can_edit && model_->client()->CanBeEditedByUser(parent_) && | 387 return can_edit && model_->CanBeEditedByUser(parent_) && |
| 392 bookmarks::GetParentForNewNodes(parent_, selection_, NULL) != NULL; | 388 bookmarks::GetParentForNewNodes(parent_, selection_, NULL) != NULL; |
| 393 | 389 |
| 394 case IDC_BOOKMARK_BAR_ALWAYS_SHOW: | 390 case IDC_BOOKMARK_BAR_ALWAYS_SHOW: |
| 395 return !prefs->IsManagedPreference(bookmarks::prefs::kShowBookmarkBar); | 391 return !prefs->IsManagedPreference(bookmarks::prefs::kShowBookmarkBar); |
| 396 | 392 |
| 397 case IDC_BOOKMARK_BAR_SHOW_APPS_SHORTCUT: | 393 case IDC_BOOKMARK_BAR_SHOW_APPS_SHORTCUT: |
| 398 return !prefs->IsManagedPreference( | 394 return !prefs->IsManagedPreference( |
| 399 bookmarks::prefs::kShowAppsShortcutInBookmarkBar); | 395 bookmarks::prefs::kShowAppsShortcutInBookmarkBar); |
| 400 | 396 |
| 401 case IDC_COPY: | 397 case IDC_COPY: |
| 402 case IDC_CUT: | 398 case IDC_CUT: |
| 403 return !selection_.empty() && !is_root_node && | 399 return !selection_.empty() && !is_root_node && |
| 404 (command_id == IDC_COPY || can_edit); | 400 (command_id == IDC_COPY || can_edit); |
| 405 | 401 |
| 406 case IDC_PASTE: | 402 case IDC_PASTE: |
| 407 // Paste to selection from the Bookmark Bar, to parent_ everywhere else | 403 // Paste to selection from the Bookmark Bar, to parent_ everywhere else |
| 408 return can_edit && | 404 return can_edit && |
| 409 ((!selection_.empty() && | 405 ((!selection_.empty() && |
| 410 bookmarks::CanPasteFromClipboard(model_, selection_[0])) || | 406 bookmarks::CanPasteFromClipboard(model_, selection_[0])) || |
| 411 bookmarks::CanPasteFromClipboard(model_, parent_)); | 407 bookmarks::CanPasteFromClipboard(model_, parent_)); |
| 412 } | 408 } |
| 413 return true; | 409 return true; |
| 414 } | 410 } |
| 415 | 411 |
| 416 bool BookmarkContextMenuController::IsCommandIdVisible(int command_id) const { | 412 bool BookmarkContextMenuController::IsCommandIdVisible(int command_id) const { |
| 417 if (command_id == IDC_BOOKMARK_BAR_SHOW_MANAGED_BOOKMARKS) { | 413 if (command_id == IDC_BOOKMARK_BAR_SHOW_MANAGED_BOOKMARKS) { |
| 418 // The option to hide the Managed Bookmarks folder is only available if | 414 // The option to hide the Managed Bookmarks folder is only available if |
| 419 // there are any managed bookmarks configured at all. | 415 // there are any managed bookmarks configured at all. |
| 420 ChromeBookmarkClient* client = | 416 return !model_->managed_node()->empty(); |
| 421 ChromeBookmarkClientFactory::GetForProfile(profile_); | |
| 422 return !client->managed_node()->empty(); | |
| 423 } | 417 } |
| 424 | 418 |
| 425 return true; | 419 return true; |
| 426 } | 420 } |
| 427 | 421 |
| 428 bool BookmarkContextMenuController::GetAcceleratorForCommandId( | 422 bool BookmarkContextMenuController::GetAcceleratorForCommandId( |
| 429 int command_id, | 423 int command_id, |
| 430 ui::Accelerator* accelerator) { | 424 ui::Accelerator* accelerator) { |
| 431 return false; | 425 return false; |
| 432 } | 426 } |
| 433 | 427 |
| 434 void BookmarkContextMenuController::BookmarkModelChanged() { | 428 void BookmarkContextMenuController::BookmarkModelChanged() { |
| 435 if (delegate_) | 429 if (delegate_) |
| 436 delegate_->CloseMenu(); | 430 delegate_->CloseMenu(); |
| 437 } | 431 } |
| OLD | NEW |