| 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" |
| (...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 203 selection_.clear(); | 203 selection_.clear(); |
| 204 break; | 204 break; |
| 205 } | 205 } |
| 206 | 206 |
| 207 case IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK: { | 207 case IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK: { |
| 208 content::RecordAction( | 208 content::RecordAction( |
| 209 UserMetricsAction("BookmarkBar_ContextMenu_Add")); | 209 UserMetricsAction("BookmarkBar_ContextMenu_Add")); |
| 210 | 210 |
| 211 int index; | 211 int index; |
| 212 const BookmarkNode* parent = | 212 const BookmarkNode* parent = |
| 213 bookmark_utils::GetParentForNewNodes(parent_, selection_, &index); | 213 bookmarks::GetParentForNewNodes(parent_, selection_, &index); |
| 214 GURL url; | 214 GURL url; |
| 215 base::string16 title; | 215 base::string16 title; |
| 216 chrome::GetURLAndTitleToBookmark( | 216 chrome::GetURLAndTitleToBookmark( |
| 217 browser_->tab_strip_model()->GetActiveWebContents(), | 217 browser_->tab_strip_model()->GetActiveWebContents(), |
| 218 &url, &title); | 218 &url, &title); |
| 219 BookmarkEditor::Show(parent_window_, | 219 BookmarkEditor::Show(parent_window_, |
| 220 profile_, | 220 profile_, |
| 221 BookmarkEditor::EditDetails::AddNodeInFolder( | 221 BookmarkEditor::EditDetails::AddNodeInFolder( |
| 222 parent, index, url, title), | 222 parent, index, url, title), |
| 223 BookmarkEditor::SHOW_TREE); | 223 BookmarkEditor::SHOW_TREE); |
| 224 break; | 224 break; |
| 225 } | 225 } |
| 226 | 226 |
| 227 case IDC_BOOKMARK_BAR_NEW_FOLDER: { | 227 case IDC_BOOKMARK_BAR_NEW_FOLDER: { |
| 228 content::RecordAction( | 228 content::RecordAction( |
| 229 UserMetricsAction("BookmarkBar_ContextMenu_NewFolder")); | 229 UserMetricsAction("BookmarkBar_ContextMenu_NewFolder")); |
| 230 | 230 |
| 231 int index; | 231 int index; |
| 232 const BookmarkNode* parent = | 232 const BookmarkNode* parent = |
| 233 bookmark_utils::GetParentForNewNodes(parent_, selection_, &index); | 233 bookmarks::GetParentForNewNodes(parent_, selection_, &index); |
| 234 BookmarkEditor::Show( | 234 BookmarkEditor::Show( |
| 235 parent_window_, | 235 parent_window_, |
| 236 profile_, | 236 profile_, |
| 237 BookmarkEditor::EditDetails::AddFolder(parent, index), | 237 BookmarkEditor::EditDetails::AddFolder(parent, index), |
| 238 BookmarkEditor::SHOW_TREE); | 238 BookmarkEditor::SHOW_TREE); |
| 239 break; | 239 break; |
| 240 } | 240 } |
| 241 | 241 |
| 242 case IDC_BOOKMARK_BAR_ALWAYS_SHOW: | 242 case IDC_BOOKMARK_BAR_ALWAYS_SHOW: |
| 243 chrome::ToggleBookmarkBarWhenVisible(profile_); | 243 chrome::ToggleBookmarkBarWhenVisible(profile_); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 266 else if (selection_[0]->is_folder()) | 266 else if (selection_[0]->is_folder()) |
| 267 chrome::ShowBookmarkManagerForNode(browser_, selection_[0]->id()); | 267 chrome::ShowBookmarkManagerForNode(browser_, selection_[0]->id()); |
| 268 else if (parent_) | 268 else if (parent_) |
| 269 chrome::ShowBookmarkManagerForNode(browser_, parent_->id()); | 269 chrome::ShowBookmarkManagerForNode(browser_, parent_->id()); |
| 270 else | 270 else |
| 271 chrome::ShowBookmarkManager(browser_); | 271 chrome::ShowBookmarkManager(browser_); |
| 272 break; | 272 break; |
| 273 } | 273 } |
| 274 | 274 |
| 275 case IDC_CUT: | 275 case IDC_CUT: |
| 276 bookmark_utils::CopyToClipboard(model_, selection_, true); | 276 bookmarks::CopyToClipboard(model_, selection_, true); |
| 277 break; | 277 break; |
| 278 | 278 |
| 279 case IDC_COPY: | 279 case IDC_COPY: |
| 280 bookmark_utils::CopyToClipboard(model_, selection_, false); | 280 bookmarks::CopyToClipboard(model_, selection_, false); |
| 281 break; | 281 break; |
| 282 | 282 |
| 283 case IDC_PASTE: { | 283 case IDC_PASTE: { |
| 284 int index; | 284 int index; |
| 285 const BookmarkNode* paste_target = | 285 const BookmarkNode* paste_target = |
| 286 bookmark_utils::GetParentForNewNodes(parent_, selection_, &index); | 286 bookmarks::GetParentForNewNodes(parent_, selection_, &index); |
| 287 if (!paste_target) | 287 if (!paste_target) |
| 288 return; | 288 return; |
| 289 | 289 |
| 290 bookmark_utils::PasteFromClipboard(model_, paste_target, index); | 290 bookmarks::PasteFromClipboard(model_, paste_target, index); |
| 291 break; | 291 break; |
| 292 } | 292 } |
| 293 | 293 |
| 294 default: | 294 default: |
| 295 NOTREACHED(); | 295 NOTREACHED(); |
| 296 } | 296 } |
| 297 | 297 |
| 298 if (delegate_) | 298 if (delegate_) |
| 299 delegate_->DidExecuteCommand(id); | 299 delegate_->DidExecuteCommand(id); |
| 300 } | 300 } |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 336 | 336 |
| 337 DCHECK_EQ(IDC_BOOKMARK_BAR_SHOW_APPS_SHORTCUT, command_id); | 337 DCHECK_EQ(IDC_BOOKMARK_BAR_SHOW_APPS_SHORTCUT, command_id); |
| 338 return prefs->GetBoolean(prefs::kShowAppsShortcutInBookmarkBar); | 338 return prefs->GetBoolean(prefs::kShowAppsShortcutInBookmarkBar); |
| 339 } | 339 } |
| 340 | 340 |
| 341 bool BookmarkContextMenuController::IsCommandIdEnabled(int command_id) const { | 341 bool BookmarkContextMenuController::IsCommandIdEnabled(int command_id) const { |
| 342 PrefService* prefs = profile_->GetPrefs(); | 342 PrefService* prefs = profile_->GetPrefs(); |
| 343 | 343 |
| 344 bool is_root_node = selection_.size() == 1 && | 344 bool is_root_node = selection_.size() == 1 && |
| 345 selection_[0]->parent() == model_->root_node(); | 345 selection_[0]->parent() == model_->root_node(); |
| 346 bool can_edit = | 346 bool can_edit = prefs->GetBoolean(prefs::kEditBookmarksEnabled) && |
| 347 prefs->GetBoolean(prefs::kEditBookmarksEnabled) && | 347 bookmarks::CanAllBeEditedByUser(model_->client(), selection_); |
| 348 bookmark_utils::CanAllBeEditedByUser(model_->client(), selection_); | |
| 349 IncognitoModePrefs::Availability incognito_avail = | 348 IncognitoModePrefs::Availability incognito_avail = |
| 350 IncognitoModePrefs::GetAvailability(prefs); | 349 IncognitoModePrefs::GetAvailability(prefs); |
| 351 | 350 |
| 352 switch (command_id) { | 351 switch (command_id) { |
| 353 case IDC_BOOKMARK_BAR_OPEN_INCOGNITO: | 352 case IDC_BOOKMARK_BAR_OPEN_INCOGNITO: |
| 354 return !profile_->IsOffTheRecord() && | 353 return !profile_->IsOffTheRecord() && |
| 355 incognito_avail != IncognitoModePrefs::DISABLED; | 354 incognito_avail != IncognitoModePrefs::DISABLED; |
| 356 | 355 |
| 357 case IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO: | 356 case IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO: |
| 358 return chrome::HasBookmarkURLsAllowedInIncognitoMode(selection_, profile_) | 357 return chrome::HasBookmarkURLsAllowedInIncognitoMode(selection_, profile_) |
| (...skipping 20 matching lines...) Expand all Loading... |
| 379 return can_edit && | 378 return can_edit && |
| 380 BookmarkUndoServiceFactory::GetForProfile(profile_)-> | 379 BookmarkUndoServiceFactory::GetForProfile(profile_)-> |
| 381 undo_manager()->redo_count() > 0; | 380 undo_manager()->redo_count() > 0; |
| 382 | 381 |
| 383 case IDC_BOOKMARK_BAR_REMOVE: | 382 case IDC_BOOKMARK_BAR_REMOVE: |
| 384 return !selection_.empty() && !is_root_node && can_edit; | 383 return !selection_.empty() && !is_root_node && can_edit; |
| 385 | 384 |
| 386 case IDC_BOOKMARK_BAR_NEW_FOLDER: | 385 case IDC_BOOKMARK_BAR_NEW_FOLDER: |
| 387 case IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK: | 386 case IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK: |
| 388 return can_edit && model_->client()->CanBeEditedByUser(parent_) && | 387 return can_edit && model_->client()->CanBeEditedByUser(parent_) && |
| 389 bookmark_utils::GetParentForNewNodes(parent_, selection_, NULL) != | 388 bookmarks::GetParentForNewNodes(parent_, selection_, NULL) != NULL; |
| 390 NULL; | |
| 391 | 389 |
| 392 case IDC_BOOKMARK_BAR_ALWAYS_SHOW: | 390 case IDC_BOOKMARK_BAR_ALWAYS_SHOW: |
| 393 return !prefs->IsManagedPreference(prefs::kShowBookmarkBar); | 391 return !prefs->IsManagedPreference(prefs::kShowBookmarkBar); |
| 394 | 392 |
| 395 case IDC_BOOKMARK_BAR_SHOW_APPS_SHORTCUT: | 393 case IDC_BOOKMARK_BAR_SHOW_APPS_SHORTCUT: |
| 396 return !prefs->IsManagedPreference(prefs::kShowAppsShortcutInBookmarkBar); | 394 return !prefs->IsManagedPreference(prefs::kShowAppsShortcutInBookmarkBar); |
| 397 | 395 |
| 398 case IDC_COPY: | 396 case IDC_COPY: |
| 399 case IDC_CUT: | 397 case IDC_CUT: |
| 400 return !selection_.empty() && !is_root_node && | 398 return !selection_.empty() && !is_root_node && |
| 401 (command_id == IDC_COPY || can_edit); | 399 (command_id == IDC_COPY || can_edit); |
| 402 | 400 |
| 403 case IDC_PASTE: | 401 case IDC_PASTE: |
| 404 // Paste to selection from the Bookmark Bar, to parent_ everywhere else | 402 // Paste to selection from the Bookmark Bar, to parent_ everywhere else |
| 405 return can_edit && | 403 return can_edit && |
| 406 ((!selection_.empty() && | 404 ((!selection_.empty() && |
| 407 bookmark_utils::CanPasteFromClipboard(model_, selection_[0])) || | 405 bookmarks::CanPasteFromClipboard(model_, selection_[0])) || |
| 408 bookmark_utils::CanPasteFromClipboard(model_, parent_)); | 406 bookmarks::CanPasteFromClipboard(model_, parent_)); |
| 409 } | 407 } |
| 410 return true; | 408 return true; |
| 411 } | 409 } |
| 412 | 410 |
| 413 bool BookmarkContextMenuController::IsCommandIdVisible(int command_id) const { | 411 bool BookmarkContextMenuController::IsCommandIdVisible(int command_id) const { |
| 414 if (command_id == IDC_BOOKMARK_BAR_SHOW_MANAGED_BOOKMARKS) { | 412 if (command_id == IDC_BOOKMARK_BAR_SHOW_MANAGED_BOOKMARKS) { |
| 415 // The option to hide the Managed Bookmarks folder is only available if | 413 // The option to hide the Managed Bookmarks folder is only available if |
| 416 // there are any managed bookmarks configured at all. | 414 // there are any managed bookmarks configured at all. |
| 417 ChromeBookmarkClient* client = | 415 ChromeBookmarkClient* client = |
| 418 ChromeBookmarkClientFactory::GetForProfile(profile_); | 416 ChromeBookmarkClientFactory::GetForProfile(profile_); |
| 419 return !client->managed_node()->empty(); | 417 return !client->managed_node()->empty(); |
| 420 } | 418 } |
| 421 | 419 |
| 422 return true; | 420 return true; |
| 423 } | 421 } |
| 424 | 422 |
| 425 bool BookmarkContextMenuController::GetAcceleratorForCommandId( | 423 bool BookmarkContextMenuController::GetAcceleratorForCommandId( |
| 426 int command_id, | 424 int command_id, |
| 427 ui::Accelerator* accelerator) { | 425 ui::Accelerator* accelerator) { |
| 428 return false; | 426 return false; |
| 429 } | 427 } |
| 430 | 428 |
| 431 void BookmarkContextMenuController::BookmarkModelChanged() { | 429 void BookmarkContextMenuController::BookmarkModelChanged() { |
| 432 if (delegate_) | 430 if (delegate_) |
| 433 delegate_->CloseMenu(); | 431 delegate_->CloseMenu(); |
| 434 } | 432 } |
| OLD | NEW |