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(); |
} |