| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/views/bookmarks/bookmark_context_menu_controller_vie
ws.h" | 5 #include "chrome/browser/ui/views/bookmarks/bookmark_context_menu_controller_vie
ws.h" |
| 6 | 6 |
| 7 #include "base/compiler_specific.h" | 7 #include "base/compiler_specific.h" |
| 8 #include "chrome/app/chrome_command_ids.h" | 8 #include "chrome/app/chrome_command_ids.h" |
| 9 #include "chrome/browser/bookmarks/bookmark_editor.h" | 9 #include "chrome/browser/bookmarks/bookmark_editor.h" |
| 10 #include "chrome/browser/bookmarks/bookmark_folder_editor_controller.h" | 10 #include "chrome/browser/bookmarks/bookmark_folder_editor_controller.h" |
| (...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 222 | 222 |
| 223 bool BookmarkContextMenuControllerViews::IsItemChecked(int id) const { | 223 bool BookmarkContextMenuControllerViews::IsItemChecked(int id) const { |
| 224 DCHECK(id == IDC_BOOKMARK_BAR_ALWAYS_SHOW); | 224 DCHECK(id == IDC_BOOKMARK_BAR_ALWAYS_SHOW); |
| 225 return profile_->GetPrefs()->GetBoolean(prefs::kShowBookmarkBar); | 225 return profile_->GetPrefs()->GetBoolean(prefs::kShowBookmarkBar); |
| 226 } | 226 } |
| 227 | 227 |
| 228 bool BookmarkContextMenuControllerViews::IsCommandEnabled(int id) const { | 228 bool BookmarkContextMenuControllerViews::IsCommandEnabled(int id) const { |
| 229 bool is_root_node = | 229 bool is_root_node = |
| 230 (selection_.size() == 1 && | 230 (selection_.size() == 1 && |
| 231 selection_[0]->parent() == model_->root_node()); | 231 selection_[0]->parent() == model_->root_node()); |
| 232 bool can_edit = |
| 233 profile_->GetPrefs()->GetBoolean(prefs::kEditBookmarksEnabled); |
| 232 switch (id) { | 234 switch (id) { |
| 233 case IDC_BOOKMARK_BAR_OPEN_INCOGNITO: | 235 case IDC_BOOKMARK_BAR_OPEN_INCOGNITO: |
| 234 return !profile_->IsOffTheRecord() && | 236 return !profile_->IsOffTheRecord() && |
| 235 profile_->GetPrefs()->GetBoolean(prefs::kIncognitoEnabled); | 237 profile_->GetPrefs()->GetBoolean(prefs::kIncognitoEnabled); |
| 236 | 238 |
| 237 case IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO: | 239 case IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO: |
| 238 return HasURLs() && !profile_->IsOffTheRecord() && | 240 return HasURLs() && !profile_->IsOffTheRecord() && |
| 239 profile_->GetPrefs()->GetBoolean(prefs::kIncognitoEnabled); | 241 profile_->GetPrefs()->GetBoolean(prefs::kIncognitoEnabled); |
| 240 | 242 |
| 241 case IDC_BOOKMARK_BAR_OPEN_ALL: | 243 case IDC_BOOKMARK_BAR_OPEN_ALL: |
| 242 case IDC_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW: | 244 case IDC_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW: |
| 243 return HasURLs(); | 245 return HasURLs(); |
| 244 | 246 |
| 245 case IDC_BOOKMARK_BAR_RENAME_FOLDER: | 247 case IDC_BOOKMARK_BAR_RENAME_FOLDER: |
| 246 case IDC_BOOKMARK_BAR_EDIT: | 248 case IDC_BOOKMARK_BAR_EDIT: |
| 247 return selection_.size() == 1 && !is_root_node; | 249 return selection_.size() == 1 && !is_root_node && can_edit; |
| 248 | 250 |
| 249 case IDC_BOOKMARK_BAR_REMOVE: | 251 case IDC_BOOKMARK_BAR_REMOVE: |
| 250 return !selection_.empty() && !is_root_node; | 252 return !selection_.empty() && !is_root_node && can_edit; |
| 251 | 253 |
| 252 case IDC_BOOKMARK_BAR_NEW_FOLDER: | 254 case IDC_BOOKMARK_BAR_NEW_FOLDER: |
| 253 case IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK: | 255 case IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK: |
| 254 return bookmark_utils::GetParentForNewNodes( | 256 return can_edit && bookmark_utils::GetParentForNewNodes( |
| 255 parent_, selection_, NULL) != NULL; | 257 parent_, selection_, NULL) != NULL; |
| 256 | 258 |
| 257 case IDC_BOOKMARK_BAR_ALWAYS_SHOW: | 259 case IDC_BOOKMARK_BAR_ALWAYS_SHOW: |
| 258 return !profile_->GetPrefs()->IsManagedPreference( | 260 return !profile_->GetPrefs()->IsManagedPreference( |
| 259 prefs::kEnableBookmarkBar); | 261 prefs::kEnableBookmarkBar); |
| 260 | 262 |
| 261 case IDC_COPY: | 263 case IDC_COPY: |
| 262 case IDC_CUT: | 264 case IDC_CUT: |
| 263 return !selection_.empty() && !is_root_node; | 265 return !selection_.empty() && !is_root_node && |
| 266 (id == IDC_COPY || can_edit); |
| 264 | 267 |
| 265 case IDC_PASTE: | 268 case IDC_PASTE: |
| 266 // Paste to selection from the Bookmark Bar, to parent_ everywhere else | 269 // Paste to selection from the Bookmark Bar, to parent_ everywhere else |
| 267 return (!selection_.empty() && | 270 return can_edit && |
| 268 bookmark_utils::CanPasteFromClipboard(selection_[0])) || | 271 ((!selection_.empty() && |
| 269 bookmark_utils::CanPasteFromClipboard(parent_); | 272 bookmark_utils::CanPasteFromClipboard(selection_[0])) || |
| 273 bookmark_utils::CanPasteFromClipboard(parent_)); |
| 270 } | 274 } |
| 271 return true; | 275 return true; |
| 272 } | 276 } |
| 273 | 277 |
| 274 void BookmarkContextMenuControllerViews::BookmarkModelChanged() { | 278 void BookmarkContextMenuControllerViews::BookmarkModelChanged() { |
| 275 delegate_->CloseMenu(); | 279 delegate_->CloseMenu(); |
| 276 } | 280 } |
| 277 | 281 |
| 278 BookmarkModel* BookmarkContextMenuControllerViews::RemoveModelObserver() { | 282 BookmarkModel* BookmarkContextMenuControllerViews::RemoveModelObserver() { |
| 279 BookmarkModel* model = model_; | 283 BookmarkModel* model = model_; |
| 280 model_->RemoveObserver(this); | 284 model_->RemoveObserver(this); |
| 281 model_ = NULL; | 285 model_ = NULL; |
| 282 return model; | 286 return model; |
| 283 } | 287 } |
| 284 | 288 |
| 285 bool BookmarkContextMenuControllerViews::HasURLs() const { | 289 bool BookmarkContextMenuControllerViews::HasURLs() const { |
| 286 for (size_t i = 0; i < selection_.size(); ++i) { | 290 for (size_t i = 0; i < selection_.size(); ++i) { |
| 287 if (bookmark_utils::NodeHasURLs(selection_[i])) | 291 if (bookmark_utils::NodeHasURLs(selection_[i])) |
| 288 return true; | 292 return true; |
| 289 } | 293 } |
| 290 return false; | 294 return false; |
| 291 } | 295 } |
| OLD | NEW |