Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(656)

Side by Side Diff: chrome/browser/ui/views/bookmarks/bookmark_context_menu_controller_views.cc

Issue 12386088: Add a shortcut to open the Apps page from the bookmark bar. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased and answered sky's comments. Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/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 "base/prefs/pref_service.h" 8 #include "base/prefs/pref_service.h"
9 #include "chrome/app/chrome_command_ids.h" 9 #include "chrome/app/chrome_command_ids.h"
10 #include "chrome/browser/bookmarks/bookmark_editor.h" 10 #include "chrome/browser/bookmarks/bookmark_editor.h"
11 #include "chrome/browser/bookmarks/bookmark_model.h" 11 #include "chrome/browser/bookmarks/bookmark_model.h"
12 #include "chrome/browser/bookmarks/bookmark_model_factory.h" 12 #include "chrome/browser/bookmarks/bookmark_model_factory.h"
13 #include "chrome/browser/bookmarks/bookmark_utils.h" 13 #include "chrome/browser/bookmarks/bookmark_utils.h"
14 #include "chrome/browser/prefs/incognito_mode_prefs.h" 14 #include "chrome/browser/prefs/incognito_mode_prefs.h"
15 #include "chrome/browser/profiles/profile.h" 15 #include "chrome/browser/profiles/profile.h"
16 #include "chrome/browser/ui/bookmarks/bookmark_utils.h" 16 #include "chrome/browser/ui/bookmarks/bookmark_utils.h"
17 #include "chrome/browser/ui/browser.h" 17 #include "chrome/browser/ui/browser.h"
18 #include "chrome/browser/ui/chrome_pages.h" 18 #include "chrome/browser/ui/chrome_pages.h"
19 #include "chrome/browser/ui/search/search.h"
19 #include "chrome/browser/ui/tabs/tab_strip_model.h" 20 #include "chrome/browser/ui/tabs/tab_strip_model.h"
20 #include "chrome/common/pref_names.h" 21 #include "chrome/common/pref_names.h"
21 #include "content/public/browser/page_navigator.h" 22 #include "content/public/browser/page_navigator.h"
22 #include "content/public/browser/user_metrics.h" 23 #include "content/public/browser/user_metrics.h"
23 #include "grit/generated_resources.h" 24 #include "grit/generated_resources.h"
24 #include "ui/views/widget/widget.h" 25 #include "ui/views/widget/widget.h"
25 26
26 using content::PageNavigator; 27 using content::PageNavigator;
27 using content::UserMetricsAction; 28 using content::UserMetricsAction;
28 29
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 profile_, 139 profile_,
139 BookmarkEditor::EditDetails::AddFolder(parent, index), 140 BookmarkEditor::EditDetails::AddFolder(parent, index),
140 BookmarkEditor::SHOW_TREE); 141 BookmarkEditor::SHOW_TREE);
141 break; 142 break;
142 } 143 }
143 144
144 case IDC_BOOKMARK_BAR_ALWAYS_SHOW: 145 case IDC_BOOKMARK_BAR_ALWAYS_SHOW:
145 chrome::ToggleBookmarkBarWhenVisible(profile_); 146 chrome::ToggleBookmarkBarWhenVisible(profile_);
146 break; 147 break;
147 148
149 case IDC_BOOKMARK_BAR_SHOW_APPS_SHORTCUT: {
150 PrefService* prefs = profile_->GetPrefs();
151 prefs->SetBoolean(
152 prefs::kShowAppsShortcutInBookmarkBar,
153 !prefs->GetBoolean(prefs::kShowAppsShortcutInBookmarkBar));
154 break;
155 }
156
148 case IDC_BOOKMARK_MANAGER: { 157 case IDC_BOOKMARK_MANAGER: {
149 content::RecordAction(UserMetricsAction("ShowBookmarkManager")); 158 content::RecordAction(UserMetricsAction("ShowBookmarkManager"));
150 if (selection_.size() != 1) 159 if (selection_.size() != 1)
151 chrome::ShowBookmarkManager(browser_); 160 chrome::ShowBookmarkManager(browser_);
152 else if (selection_[0]->is_folder()) 161 else if (selection_[0]->is_folder())
153 chrome::ShowBookmarkManagerForNode(browser_, selection_[0]->id()); 162 chrome::ShowBookmarkManagerForNode(browser_, selection_[0]->id());
154 else if (parent_) 163 else if (parent_)
155 chrome::ShowBookmarkManagerForNode(browser_, parent_->id()); 164 chrome::ShowBookmarkManagerForNode(browser_, parent_->id());
156 else 165 else
157 chrome::ShowBookmarkManager(browser_); 166 chrome::ShowBookmarkManager(browser_);
(...skipping 20 matching lines...) Expand all
178 bookmark_utils::PasteFromClipboard(model, paste_target, index); 187 bookmark_utils::PasteFromClipboard(model, paste_target, index);
179 break; 188 break;
180 } 189 }
181 190
182 default: 191 default:
183 NOTREACHED(); 192 NOTREACHED();
184 } 193 }
185 } 194 }
186 195
187 bool BookmarkContextMenuControllerViews::IsItemChecked(int id) const { 196 bool BookmarkContextMenuControllerViews::IsItemChecked(int id) const {
188 DCHECK_EQ(IDC_BOOKMARK_BAR_ALWAYS_SHOW, id); 197 if (id == IDC_BOOKMARK_BAR_ALWAYS_SHOW)
189 return profile_->GetPrefs()->GetBoolean(prefs::kShowBookmarkBar); 198 return profile_->GetPrefs()->GetBoolean(prefs::kShowBookmarkBar);
199
200 // This should only be available when instant extended is enabled.
201 DCHECK(chrome::search::IsInstantExtendedAPIEnabled(profile_));
202 DCHECK_EQ(IDC_BOOKMARK_BAR_SHOW_APPS_SHORTCUT, id);
203 return profile_->GetPrefs()->GetBoolean(
204 prefs::kShowAppsShortcutInBookmarkBar);
190 } 205 }
191 206
192 bool BookmarkContextMenuControllerViews::IsCommandEnabled(int id) const { 207 bool BookmarkContextMenuControllerViews::IsCommandEnabled(int id) const {
193 bool is_root_node = selection_.size() == 1 && 208 bool is_root_node = selection_.size() == 1 &&
194 selection_[0]->parent() == model_->root_node(); 209 selection_[0]->parent() == model_->root_node();
195 bool can_edit = 210 bool can_edit =
196 profile_->GetPrefs()->GetBoolean(prefs::kEditBookmarksEnabled); 211 profile_->GetPrefs()->GetBoolean(prefs::kEditBookmarksEnabled);
197 IncognitoModePrefs::Availability incognito_avail = 212 IncognitoModePrefs::Availability incognito_avail =
198 IncognitoModePrefs::GetAvailability(profile_->GetPrefs()); 213 IncognitoModePrefs::GetAvailability(profile_->GetPrefs());
199 switch (id) { 214 switch (id) {
(...skipping 22 matching lines...) Expand all
222 237
223 case IDC_BOOKMARK_BAR_NEW_FOLDER: 238 case IDC_BOOKMARK_BAR_NEW_FOLDER:
224 case IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK: 239 case IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK:
225 return can_edit && bookmark_utils::GetParentForNewNodes( 240 return can_edit && bookmark_utils::GetParentForNewNodes(
226 parent_, selection_, NULL) != NULL; 241 parent_, selection_, NULL) != NULL;
227 242
228 case IDC_BOOKMARK_BAR_ALWAYS_SHOW: 243 case IDC_BOOKMARK_BAR_ALWAYS_SHOW:
229 return !profile_->GetPrefs()->IsManagedPreference( 244 return !profile_->GetPrefs()->IsManagedPreference(
230 prefs::kShowBookmarkBar); 245 prefs::kShowBookmarkBar);
231 246
247 case IDC_BOOKMARK_BAR_SHOW_APPS_SHORTCUT:
248 return !profile_->GetPrefs()->IsManagedPreference(
249 prefs::kShowAppsShortcutInBookmarkBar);
250
232 case IDC_COPY: 251 case IDC_COPY:
233 case IDC_CUT: 252 case IDC_CUT:
234 return !selection_.empty() && !is_root_node && 253 return !selection_.empty() && !is_root_node &&
235 (id == IDC_COPY || can_edit); 254 (id == IDC_COPY || can_edit);
236 255
237 case IDC_PASTE: 256 case IDC_PASTE:
238 // Paste to selection from the Bookmark Bar, to parent_ everywhere else 257 // Paste to selection from the Bookmark Bar, to parent_ everywhere else
239 return can_edit && 258 return can_edit &&
240 ((!selection_.empty() && 259 ((!selection_.empty() &&
241 bookmark_utils::CanPasteFromClipboard(selection_[0])) || 260 bookmark_utils::CanPasteFromClipboard(selection_[0])) ||
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 IDS_BOOKMARK_BAR_REMOVE); 299 IDS_BOOKMARK_BAR_REMOVE);
281 300
282 delegate_->AddSeparator(); 301 delegate_->AddSeparator();
283 delegate_->AddItemWithStringId(IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK, 302 delegate_->AddItemWithStringId(IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK,
284 IDS_BOOKMARK_BAR_ADD_NEW_BOOKMARK); 303 IDS_BOOKMARK_BAR_ADD_NEW_BOOKMARK);
285 delegate_->AddItemWithStringId(IDC_BOOKMARK_BAR_NEW_FOLDER, 304 delegate_->AddItemWithStringId(IDC_BOOKMARK_BAR_NEW_FOLDER,
286 IDS_BOOKMARK_BAR_NEW_FOLDER); 305 IDS_BOOKMARK_BAR_NEW_FOLDER);
287 306
288 delegate_->AddSeparator(); 307 delegate_->AddSeparator();
289 delegate_->AddItemWithStringId(IDC_BOOKMARK_MANAGER, IDS_BOOKMARK_MANAGER); 308 delegate_->AddItemWithStringId(IDC_BOOKMARK_MANAGER, IDS_BOOKMARK_MANAGER);
309 if (chrome::search::IsInstantExtendedAPIEnabled(profile_)) {
310 delegate_->AddCheckboxItem(IDC_BOOKMARK_BAR_SHOW_APPS_SHORTCUT,
311 IDS_BOOKMARK_BAR_SHOW_APPS_SHORTCUT);
312 }
290 delegate_->AddCheckboxItem(IDC_BOOKMARK_BAR_ALWAYS_SHOW, 313 delegate_->AddCheckboxItem(IDC_BOOKMARK_BAR_ALWAYS_SHOW,
291 IDS_SHOW_BOOKMARK_BAR); 314 IDS_SHOW_BOOKMARK_BAR);
292 } 315 }
293 316
294 BookmarkContextMenuControllerViews::BookmarkContextMenuControllerViews( 317 BookmarkContextMenuControllerViews::BookmarkContextMenuControllerViews(
295 views::Widget* parent_widget, 318 views::Widget* parent_widget,
296 BookmarkContextMenuControllerViewsDelegate* delegate, 319 BookmarkContextMenuControllerViewsDelegate* delegate,
297 Browser* browser, 320 Browser* browser,
298 Profile* profile, 321 Profile* profile,
299 PageNavigator* navigator, 322 PageNavigator* navigator,
(...skipping 15 matching lines...) Expand all
315 void BookmarkContextMenuControllerViews::BookmarkModelChanged() { 338 void BookmarkContextMenuControllerViews::BookmarkModelChanged() {
316 delegate_->CloseMenu(); 339 delegate_->CloseMenu();
317 } 340 }
318 341
319 BookmarkModel* BookmarkContextMenuControllerViews::RemoveModelObserver() { 342 BookmarkModel* BookmarkContextMenuControllerViews::RemoveModelObserver() {
320 BookmarkModel* model = model_; 343 BookmarkModel* model = model_;
321 model_->RemoveObserver(this); 344 model_->RemoveObserver(this);
322 model_ = NULL; 345 model_ = NULL;
323 return model; 346 return model;
324 } 347 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/bookmarks/bookmark_bar_view_unittest.cc ('k') | chrome/chrome_tests_unit.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698