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

Unified Diff: chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk.cc

Issue 7574021: Remove frontend code that allows for dynamic profile setting, and read the profile off the browse... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 4 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/gtk/bookmarks/bookmark_bar_gtk.cc
===================================================================
--- chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk.cc (revision 95527)
+++ chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk.cc (working copy)
@@ -121,10 +121,9 @@
const int BookmarkBarGtk::kBookmarkBarNTPHeight = 57;
BookmarkBarGtk::BookmarkBarGtk(BrowserWindowGtk* window,
- Profile* profile, Browser* browser,
+ Browser* browser,
TabstripOriginProvider* tabstrip_origin_provider)
- : profile_(NULL),
- page_navigator_(NULL),
+ : page_navigator_(NULL),
browser_(browser),
window_(window),
tabstrip_origin_provider_(tabstrip_origin_provider),
@@ -134,7 +133,7 @@
dragged_node_(NULL),
drag_icon_(NULL),
toolbar_drop_item_(NULL),
- theme_service_(GtkThemeService::GetFrom(profile)),
+ theme_service_(GtkThemeService::GetFrom(browser->profile())),
show_instructions_(true),
menu_bar_helper_(this),
slide_animation_(this),
@@ -142,6 +141,7 @@
throbbing_widget_(NULL),
method_factory_(this),
bookmark_bar_state_(BookmarkBar::DETACHED) {
+ Profile* profile = browser->profile();
if (profile->GetProfileSyncService()) {
// Obtain a pointer to the profile sync service and add our instance as an
// observer.
@@ -149,8 +149,7 @@
sync_service_->AddObserver(this);
}
- Init(profile);
- SetProfile(profile);
+ Init();
// Force an update by simulating being in the wrong state.
// BrowserWindowGtk sets our true state after we're created.
SetBookmarkBarState(BookmarkBar::SHOW,
@@ -160,44 +159,21 @@
Source<ThemeService>(theme_service_));
edit_bookmarks_enabled_.Init(prefs::kEditBookmarksEnabled,
- profile_->GetPrefs(), this);
+ profile->GetPrefs(), this);
OnEditBookmarksEnabledChanged();
}
BookmarkBarGtk::~BookmarkBarGtk() {
- RemoveAllBookmarkButtons();
+ RemoveAllButtons();
bookmark_toolbar_.Destroy();
event_box_.Destroy();
}
-void BookmarkBarGtk::SetProfile(Profile* profile) {
- DCHECK(profile);
- if (profile_ == profile)
- return;
-
- RemoveAllBookmarkButtons();
-
- profile_ = profile;
-
- if (model_)
- model_->RemoveObserver(this);
-
- // TODO(erg): Handle extensions
-
- model_ = profile_->GetBookmarkModel();
- model_->AddObserver(this);
- if (model_->IsLoaded())
- Loaded(model_, false);
-
- // else case: we'll receive notification back from the BookmarkModel when done
- // loading, then we'll populate the bar.
-}
-
void BookmarkBarGtk::SetPageNavigator(PageNavigator* navigator) {
page_navigator_ = navigator;
}
-void BookmarkBarGtk::Init(Profile* profile) {
+void BookmarkBarGtk::Init() {
event_box_.Own(gtk_event_box_new());
g_signal_connect(event_box_.get(), "destroy",
G_CALLBACK(&OnEventBoxDestroyThunk), this);
@@ -221,6 +197,7 @@
instructions_ = gtk_alignment_new(0, 0, 1, 1);
gtk_alignment_set_padding(GTK_ALIGNMENT(instructions_), 0, 0,
kInstructionsPadding, 0);
+ Profile* profile = browser_->profile();
instructions_gtk_.reset(new BookmarkBarInstructionsGtk(this, profile));
gtk_container_add(GTK_CONTAINER(instructions_), instructions_gtk_->widget());
gtk_box_pack_start(GTK_BOX(bookmark_hbox_), instructions_,
@@ -310,6 +287,15 @@
gtk_widget_show_all(widget());
gtk_widget_hide(widget());
+
+ AddCoreButtons();
+ // TODO(erg): Handle extensions
+ model_ = profile->GetBookmarkModel();
+ model_->AddObserver(this);
+ if (model_->IsLoaded())
+ Loaded(model_, false);
+ // else case: we'll receive notification back from the BookmarkModel when done
+ // loading, then we'll populate the bar.
}
void BookmarkBarGtk::SetBookmarkBarState(
@@ -398,7 +384,7 @@
}
current_menu_.reset(
- new BookmarkMenuController(browser_, profile_, page_navigator_,
+ new BookmarkMenuController(browser_, browser_->profile(), page_navigator_,
GTK_WINDOW(gtk_widget_get_toplevel(button)),
node,
button == overflow_button_ ?
@@ -506,26 +492,6 @@
}
}
-void BookmarkBarGtk::CreateAllBookmarkButtons() {
- const BookmarkNode* bar = model_->bookmark_bar_node();
- DCHECK(bar && model_->other_node());
-
- // Create a button for each of the children on the bookmark bar.
- for (int i = 0; i < bar->child_count(); ++i) {
- const BookmarkNode* node = bar->GetChild(i);
- GtkToolItem* item = CreateBookmarkToolItem(node);
- gtk_toolbar_insert(GTK_TOOLBAR(bookmark_toolbar_.get()), item, -1);
- if (node->is_folder())
- menu_bar_helper_.Add(gtk_bin_get_child(GTK_BIN(item)));
- }
-
- bookmark_utils::ConfigureButtonForNode(model_->other_node(),
- model_, other_bookmarks_button_, theme_service_);
-
- SetInstructionState();
- SetChevronState();
-}
-
void BookmarkBarGtk::SetInstructionState() {
if (model_)
show_instructions_ = model_->bookmark_bar_node()->empty();
@@ -563,13 +529,39 @@
gtk_widget_set_visible(other_bookmarks_separator_, has_other_children);
}
-void BookmarkBarGtk::RemoveAllBookmarkButtons() {
+void BookmarkBarGtk::RemoveAllButtons() {
gtk_util::RemoveAllChildren(bookmark_toolbar_.get());
menu_bar_helper_.Clear();
+}
+
+void BookmarkBarGtk::AddCoreButtons() {
menu_bar_helper_.Add(other_bookmarks_button_);
menu_bar_helper_.Add(overflow_button_);
}
+void BookmarkBarGtk::ResetButtons() {
+ RemoveAllButtons();
+ AddCoreButtons();
+
+ const BookmarkNode* bar = model_->bookmark_bar_node();
+ DCHECK(bar && model_->other_node());
+
+ // Create a button for each of the children on the bookmark bar.
+ for (int i = 0; i < bar->child_count(); ++i) {
+ const BookmarkNode* node = bar->GetChild(i);
+ GtkToolItem* item = CreateBookmarkToolItem(node);
+ gtk_toolbar_insert(GTK_TOOLBAR(bookmark_toolbar_.get()), item, -1);
+ if (node->is_folder())
+ menu_bar_helper_.Add(gtk_bin_get_child(GTK_BIN(item)));
+ }
+
+ bookmark_utils::ConfigureButtonForNode(model_->other_node(),
+ model_, other_bookmarks_button_, theme_service_);
+
+ SetInstructionState();
+ SetChevronState();
+}
+
int BookmarkBarGtk::GetBookmarkButtonCount() {
GList* children = gtk_container_get_children(
GTK_CONTAINER(bookmark_toolbar_.get()));
@@ -853,8 +845,7 @@
return;
UpdateOtherBookmarksVisibility();
- RemoveAllBookmarkButtons();
- CreateAllBookmarkButtons();
+ ResetButtons();
}
void BookmarkBarGtk::BookmarkModelBeingDeleted(BookmarkModel* model) {
@@ -949,9 +940,7 @@
if (node != model_->bookmark_bar_node())
return; // We only care about reordering of the bookmark bar node.
- // Purge and rebuild the bar.
- RemoveAllBookmarkButtons();
- CreateAllBookmarkButtons();
+ ResetButtons();
}
void BookmarkBarGtk::Observe(int type,
@@ -961,8 +950,7 @@
if (model_ && model_->IsLoaded()) {
// Regenerate the bookmark bar with all new objects with their theme
// properties set correctly for the new theme.
- RemoveAllBookmarkButtons();
- CreateAllBookmarkButtons();
+ ResetButtons();
}
// Resize the bookmark bar since the target height may have changed.
@@ -1119,7 +1107,7 @@
GtkWindow* window = GTK_WINDOW(gtk_widget_get_toplevel(sender));
current_context_menu_controller_.reset(
new BookmarkContextMenuController(
- window, this, profile_, page_navigator_, parent, nodes));
+ window, this, browser_->profile(), page_navigator_, parent, nodes));
current_context_menu_.reset(
new MenuGtk(NULL, current_context_menu_controller_->menu_model()));
current_context_menu_->PopupAsContext(
@@ -1157,10 +1145,10 @@
DCHECK(node->is_url());
DCHECK(page_navigator_);
- RecordAppLaunch(profile_, node->url());
- bookmark_utils::OpenAll(window_->GetNativeHandle(),
- profile_, page_navigator_, node,
- gtk_util::DispositionForCurrentButtonPressEvent());
+ Profile* profile = browser_->profile();
+ RecordAppLaunch(profile, node->url());
+ bookmark_utils::OpenAll(window_->GetNativeHandle(), profile, page_navigator_,
+ node, gtk_util::DispositionForCurrentButtonPressEvent());
UserMetrics::RecordAction(UserMetricsAction("ClickedBookmarkBarURLButton"));
}
@@ -1220,12 +1208,14 @@
g_object_unref(button->parent);
}
-void BookmarkBarGtk::OnButtonDragGet(GtkWidget* widget, GdkDragContext* context,
+void BookmarkBarGtk::OnButtonDragGet(GtkWidget* widget,
+ GdkDragContext* context,
GtkSelectionData* selection_data,
- guint target_type, guint time) {
+ guint target_type,
+ guint time) {
const BookmarkNode* node = bookmark_utils::BookmarkNodeForWidget(widget);
bookmark_utils::WriteBookmarkToSelection(node, selection_data, target_type,
- profile_);
+ browser_->profile());
}
void BookmarkBarGtk::OnFolderClicked(GtkWidget* sender) {
@@ -1240,9 +1230,8 @@
PopupForButton(sender);
} else if (event->button.button == 2) {
const BookmarkNode* node = GetNodeForToolButton(sender);
- bookmark_utils::OpenAll(window_->GetNativeHandle(),
- profile_, page_navigator_,
- node, NEW_BACKGROUND_TAB);
+ bookmark_utils::OpenAll(window_->GetNativeHandle(), browser_->profile(),
+ page_navigator_, node, NEW_BACKGROUND_TAB);
}
}
@@ -1304,7 +1293,7 @@
std::vector<const BookmarkNode*> nodes =
bookmark_utils::GetNodesFromSelection(context, selection_data,
target_type,
- profile_,
+ browser_->profile(),
&delete_selection_data,
&dnd_success);
DCHECK(!nodes.empty());
« no previous file with comments | « chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk.h ('k') | chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698