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

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

Issue 7787001: Makes bookmark bar view reset PageNavigator on menu when PageNavigator (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 3 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
« no previous file with comments | « chrome/browser/ui/views/bookmarks/bookmark_bar_view.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_bar_view.h" 5 #include "chrome/browser/ui/views/bookmarks/bookmark_bar_view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <set> 9 #include <set>
10 #include <vector> 10 #include <vector>
(...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 387
388 size_animation_->Reset(1); 388 size_animation_->Reset(1);
389 } 389 }
390 390
391 BookmarkBarView::~BookmarkBarView() { 391 BookmarkBarView::~BookmarkBarView() {
392 if (model_) 392 if (model_)
393 model_->RemoveObserver(this); 393 model_->RemoveObserver(this);
394 394
395 // It's possible for the menu to outlive us, reset the observer to make sure 395 // It's possible for the menu to outlive us, reset the observer to make sure
396 // it doesn't have a reference to us. 396 // it doesn't have a reference to us.
397 if (bookmark_menu_) 397 if (bookmark_menu_) {
398 bookmark_menu_->set_observer(NULL); 398 bookmark_menu_->set_observer(NULL);
399 bookmark_menu_->SetPageNavigator(NULL);
400 }
401 if (context_menu_.get())
402 context_menu_->SetPageNavigator(NULL);
399 403
400 StopShowFolderDropMenuTimer(); 404 StopShowFolderDropMenuTimer();
401 405
402 if (sync_service_) 406 if (sync_service_)
403 sync_service_->RemoveObserver(this); 407 sync_service_->RemoveObserver(this);
404 } 408 }
405 409
406 void BookmarkBarView::SetPageNavigator(PageNavigator* navigator) { 410 void BookmarkBarView::SetPageNavigator(PageNavigator* navigator) {
407 page_navigator_ = navigator; 411 page_navigator_ = navigator;
412 if (bookmark_menu_)
413 bookmark_menu_->SetPageNavigator(navigator);
414 if (context_menu_.get())
415 context_menu_->SetPageNavigator(navigator);
408 } 416 }
409 417
410 void BookmarkBarView::SetBookmarkBarState( 418 void BookmarkBarView::SetBookmarkBarState(
411 BookmarkBar::State state, 419 BookmarkBar::State state,
412 BookmarkBar::AnimateChangeType animate_type) { 420 BookmarkBar::AnimateChangeType animate_type) {
413 if (animate_type == BookmarkBar::ANIMATE_STATE_CHANGE) { 421 if (animate_type == BookmarkBar::ANIMATE_STATE_CHANGE) {
414 animating_detached_ = (state == BookmarkBar::DETACHED || 422 animating_detached_ = (state == BookmarkBar::DETACHED ||
415 bookmark_bar_state_ == BookmarkBar::DETACHED); 423 bookmark_bar_state_ == BookmarkBar::DETACHED);
416 if (state == BookmarkBar::SHOW) 424 if (state == BookmarkBar::SHOW)
417 size_animation_->Show(); 425 size_animation_->Show();
(...skipping 672 matching lines...) Expand 10 before | Expand all | Expand 10 after
1090 nodes.push_back(node); 1098 nodes.push_back(node);
1091 parent = node->parent(); 1099 parent = node->parent();
1092 } else { 1100 } else {
1093 parent = model_->bookmark_bar_node(); 1101 parent = model_->bookmark_bar_node();
1094 nodes.push_back(parent); 1102 nodes.push_back(parent);
1095 } 1103 }
1096 Profile* profile = browser_->profile(); 1104 Profile* profile = browser_->profile();
1097 bool close_on_remove = 1105 bool close_on_remove =
1098 (parent == profile->GetBookmarkModel()->other_node()) && 1106 (parent == profile->GetBookmarkModel()->other_node()) &&
1099 (parent->child_count() == 1); 1107 (parent->child_count() == 1);
1100 BookmarkContextMenu controller(GetWidget(), profile, 1108 context_menu_.reset(new BookmarkContextMenu(GetWidget(), profile,
1101 browser_->GetSelectedTabContents(), parent, nodes, close_on_remove); 1109 browser_->GetSelectedTabContents(), parent, nodes, close_on_remove));
1102 controller.RunMenuAt(p); 1110 context_menu_->RunMenuAt(p);
1103 } 1111 }
1104 1112
1105 void BookmarkBarView::Observe(int type, 1113 void BookmarkBarView::Observe(int type,
1106 const NotificationSource& source, 1114 const NotificationSource& source,
1107 const NotificationDetails& details) { 1115 const NotificationDetails& details) {
1108 DCHECK(browser_->profile()); 1116 DCHECK(browser_->profile());
1109 switch (type) { 1117 switch (type) {
1110 case chrome::NOTIFICATION_BOOKMARK_BUBBLE_SHOWN: { 1118 case chrome::NOTIFICATION_BOOKMARK_BUBBLE_SHOWN: {
1111 StopThrobbing(true); 1119 StopThrobbing(true);
1112 GURL url = *(Details<GURL>(details).ptr()); 1120 GURL url = *(Details<GURL>(details).ptr());
(...skipping 611 matching lines...) Expand 10 before | Expand all | Expand 10 after
1724 (1 - size_animation_->GetCurrentValue()))); 1732 (1 - size_animation_->GetCurrentValue())));
1725 } else { 1733 } else {
1726 prefsize.set_height( 1734 prefsize.set_height(
1727 static_cast<int>( 1735 static_cast<int>(
1728 browser_defaults::kBookmarkBarHeight * 1736 browser_defaults::kBookmarkBarHeight *
1729 size_animation_->GetCurrentValue())); 1737 size_animation_->GetCurrentValue()));
1730 } 1738 }
1731 } 1739 }
1732 return prefsize; 1740 return prefsize;
1733 } 1741 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/bookmarks/bookmark_bar_view.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698