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

Unified Diff: chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc

Issue 12550006: Mac: Add a shortcut to open the Apps page from the bookmark bar. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
index 9e89bc90cdb452254da1ad7fdacb48287714c193..fb40bef2bf19584b5dbd3d79364e379c28428c51 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
@@ -957,10 +957,13 @@ void BookmarkBarView::Loaded(BookmarkModel* model, bool ids_reassigned) {
DCHECK(model_->other_node());
other_bookmarked_button_->SetAccessibleName(model_->other_node()->GetTitle());
other_bookmarked_button_->SetText(model_->other_node()->GetTitle());
+ apps_page_shortcut_->SetAccessibleName(model_->apps_node()->GetTitle());
+ apps_page_shortcut_->SetText(model_->apps_node()->GetTitle());
UpdateColors();
UpdateOtherBookmarksVisibility();
other_bookmarked_button_->SetEnabled(true);
-
+ UpdateAppsPageShortcutVisibility();
+ apps_page_shortcut_->SetEnabled(true);
Layout();
SchedulePaint();
}
@@ -1224,13 +1227,14 @@ void BookmarkBarView::Init() {
AddChildView(other_bookmarked_button_);
apps_page_shortcut_ = CreateAppsPageShortcutButton();
+ // We'll re-enable when the model is loaded.
+ other_bookmarked_button_->SetEnabled(false);
AddChildView(apps_page_shortcut_);
profile_pref_registrar_.Init(browser_->profile()->GetPrefs());
profile_pref_registrar_.Add(
prefs::kShowAppsShortcutInBookmarkBar,
base::Bind(&BookmarkBarView::OnAppsPageShortcutVisibilityChanged,
base::Unretained(this)));
- apps_page_shortcut_->SetVisible(ShouldShowAppsShortcut());
bookmarks_separator_view_ = new ButtonSeparatorView();
AddChildView(bookmarks_separator_view_);
@@ -1327,8 +1331,7 @@ views::View* BookmarkBarView::CreateBookmarkButton(const BookmarkNode* node) {
}
views::TextButton* BookmarkBarView::CreateAppsPageShortcutButton() {
- views::TextButton* button = new ShortcutButton(
- this, l10n_util::GetStringUTF16(IDS_BOOKMARK_BAR_APPS_SHORTCUT_NAME));
+ views::TextButton* button = new ShortcutButton(this, string16());
button->SetTooltipText(l10n_util::GetStringUTF16(
IDS_BOOKMARK_BAR_APPS_SHORTCUT_TOOLTIP));
button->set_id(VIEW_ID_BOOKMARK_BAR_ELEMENT);
@@ -1658,6 +1661,19 @@ void BookmarkBarView::UpdateOtherBookmarksVisibility() {
SchedulePaint();
}
+void BookmarkBarView::UpdateAppsPageShortcutVisibility() {
+ bool visible = model_->IsLoaded() &&
+ chrome::search::IsInstantExtendedAPIEnabled() &&
+ browser_->profile()->GetPrefs()->GetBoolean(
+ prefs::kShowAppsShortcutInBookmarkBar);
+ if (visible == apps_page_shortcut_->visible())
+ return;
+ apps_page_shortcut_->SetVisible(visible);
+ UpdateBookmarksSeparatorVisibility();
+ Layout();
+ SchedulePaint();
+}
+
void BookmarkBarView::UpdateBookmarksSeparatorVisibility() {
// Ash does not paint the bookmarks separator line because it looks odd on
// the flat background. We keep it present for layout, but don't draw it.
@@ -1809,15 +1825,7 @@ gfx::Size BookmarkBarView::LayoutItems(bool compute_bounds_only) {
return prefsize;
}
-bool BookmarkBarView::ShouldShowAppsShortcut() const {
- return chrome::search::IsInstantExtendedAPIEnabled() &&
- browser_->profile()->GetPrefs()->GetBoolean(
- prefs::kShowAppsShortcutInBookmarkBar);
-}
-
void BookmarkBarView::OnAppsPageShortcutVisibilityChanged() {
DCHECK(apps_page_shortcut_);
- apps_page_shortcut_->SetVisible(ShouldShowAppsShortcut());
- UpdateBookmarksSeparatorVisibility();
- Layout();
+ UpdateAppsPageShortcutVisibility();
}

Powered by Google App Engine
This is Rietveld 408576698