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

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

Issue 1233673002: Fix componentization of chrome/browser/bookmarks (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix "gn check" and compilation on Mac Created 5 years, 5 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
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_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 <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/bind.h" 12 #include "base/bind.h"
13 #include "base/i18n/rtl.h" 13 #include "base/i18n/rtl.h"
14 #include "base/location.h" 14 #include "base/location.h"
15 #include "base/metrics/histogram.h" 15 #include "base/metrics/histogram.h"
16 #include "base/prefs/pref_service.h" 16 #include "base/prefs/pref_service.h"
17 #include "base/single_thread_task_runner.h" 17 #include "base/single_thread_task_runner.h"
18 #include "base/strings/string_util.h" 18 #include "base/strings/string_util.h"
19 #include "base/strings/utf_string_conversions.h" 19 #include "base/strings/utf_string_conversions.h"
20 #include "base/thread_task_runner_handle.h" 20 #include "base/thread_task_runner_handle.h"
21 #include "chrome/browser/bookmarks/bookmark_model_factory.h" 21 #include "chrome/browser/bookmarks/bookmark_model_factory.h"
22 #include "chrome/browser/bookmarks/chrome_bookmark_client.h" 22 #include "chrome/browser/bookmarks/managed_bookmark_service_factory.h"
23 #include "chrome/browser/bookmarks/chrome_bookmark_client_factory.h"
24 #include "chrome/browser/browser_process.h" 23 #include "chrome/browser/browser_process.h"
25 #include "chrome/browser/chrome_notification_types.h" 24 #include "chrome/browser/chrome_notification_types.h"
26 #include "chrome/browser/defaults.h" 25 #include "chrome/browser/defaults.h"
27 #include "chrome/browser/profiles/profile.h" 26 #include "chrome/browser/profiles/profile.h"
28 #include "chrome/browser/search/search.h" 27 #include "chrome/browser/search/search.h"
29 #include "chrome/browser/sync/profile_sync_service.h" 28 #include "chrome/browser/sync/profile_sync_service.h"
30 #include "chrome/browser/sync/profile_sync_service_factory.h" 29 #include "chrome/browser/sync/profile_sync_service_factory.h"
31 #include "chrome/browser/themes/theme_properties.h" 30 #include "chrome/browser/themes/theme_properties.h"
32 #include "chrome/browser/ui/bookmarks/bookmark_bar_constants.h" 31 #include "chrome/browser/ui/bookmarks/bookmark_bar_constants.h"
33 #include "chrome/browser/ui/bookmarks/bookmark_drag_drop.h" 32 #include "chrome/browser/ui/bookmarks/bookmark_drag_drop.h"
(...skipping 14 matching lines...) Expand all
48 #include "chrome/browser/ui/views/frame/browser_view.h" 47 #include "chrome/browser/ui/views/frame/browser_view.h"
49 #include "chrome/browser/ui/views/location_bar/location_bar_view.h" 48 #include "chrome/browser/ui/views/location_bar/location_bar_view.h"
50 #include "chrome/common/chrome_switches.h" 49 #include "chrome/common/chrome_switches.h"
51 #include "chrome/common/extensions/extension_constants.h" 50 #include "chrome/common/extensions/extension_constants.h"
52 #include "chrome/common/extensions/extension_metrics.h" 51 #include "chrome/common/extensions/extension_metrics.h"
53 #include "chrome/common/pref_names.h" 52 #include "chrome/common/pref_names.h"
54 #include "chrome/common/url_constants.h" 53 #include "chrome/common/url_constants.h"
55 #include "chrome/grit/generated_resources.h" 54 #include "chrome/grit/generated_resources.h"
56 #include "components/bookmarks/browser/bookmark_model.h" 55 #include "components/bookmarks/browser/bookmark_model.h"
57 #include "components/bookmarks/browser/bookmark_utils.h" 56 #include "components/bookmarks/browser/bookmark_utils.h"
57 #include "components/bookmarks/managed/managed_bookmark_service.h"
58 #include "components/metrics/metrics_service.h" 58 #include "components/metrics/metrics_service.h"
59 #include "content/public/browser/notification_details.h" 59 #include "content/public/browser/notification_details.h"
60 #include "content/public/browser/notification_source.h" 60 #include "content/public/browser/notification_source.h"
61 #include "content/public/browser/page_navigator.h" 61 #include "content/public/browser/page_navigator.h"
62 #include "content/public/browser/render_view_host.h" 62 #include "content/public/browser/render_view_host.h"
63 #include "content/public/browser/render_widget_host_view.h" 63 #include "content/public/browser/render_widget_host_view.h"
64 #include "content/public/browser/user_metrics.h" 64 #include "content/public/browser/user_metrics.h"
65 #include "content/public/browser/web_contents.h" 65 #include "content/public/browser/web_contents.h"
66 #include "extensions/browser/extension_registry.h" 66 #include "extensions/browser/extension_registry.h"
67 #include "extensions/common/extension.h" 67 #include "extensions/common/extension.h"
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after
496 DISALLOW_COPY_AND_ASSIGN(ButtonSeparatorView); 496 DISALLOW_COPY_AND_ASSIGN(ButtonSeparatorView);
497 }; 497 };
498 498
499 // BookmarkBarView ------------------------------------------------------------ 499 // BookmarkBarView ------------------------------------------------------------
500 500
501 // static 501 // static
502 const char BookmarkBarView::kViewClassName[] = "BookmarkBarView"; 502 const char BookmarkBarView::kViewClassName[] = "BookmarkBarView";
503 503
504 BookmarkBarView::BookmarkBarView(Browser* browser, BrowserView* browser_view) 504 BookmarkBarView::BookmarkBarView(Browser* browser, BrowserView* browser_view)
505 : page_navigator_(NULL), 505 : page_navigator_(NULL),
506 client_(NULL), 506 managed_(NULL),
507 bookmark_menu_(NULL), 507 bookmark_menu_(NULL),
508 bookmark_drop_menu_(NULL), 508 bookmark_drop_menu_(NULL),
509 other_bookmarks_button_(NULL), 509 other_bookmarks_button_(NULL),
510 managed_bookmarks_button_(NULL), 510 managed_bookmarks_button_(NULL),
511 supervised_bookmarks_button_(NULL), 511 supervised_bookmarks_button_(NULL),
512 apps_page_shortcut_(NULL), 512 apps_page_shortcut_(NULL),
513 overflow_button_(NULL), 513 overflow_button_(NULL),
514 instructions_(NULL), 514 instructions_(NULL),
515 bookmarks_separator_view_(NULL), 515 bookmarks_separator_view_(NULL),
516 browser_(browser), 516 browser_(browser),
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
600 *model_start_index = 0; 600 *model_start_index = 0;
601 601
602 if (loc.x() < 0 || loc.x() >= width() || loc.y() < 0 || loc.y() >= height()) 602 if (loc.x() < 0 || loc.x() >= width() || loc.y() < 0 || loc.y() >= height())
603 return NULL; 603 return NULL;
604 604
605 gfx::Point adjusted_loc(GetMirroredXInView(loc.x()), loc.y()); 605 gfx::Point adjusted_loc(GetMirroredXInView(loc.x()), loc.y());
606 606
607 // Check the managed button first. 607 // Check the managed button first.
608 if (managed_bookmarks_button_->visible() && 608 if (managed_bookmarks_button_->visible() &&
609 managed_bookmarks_button_->bounds().Contains(adjusted_loc)) { 609 managed_bookmarks_button_->bounds().Contains(adjusted_loc)) {
610 return client_->managed_node(); 610 return managed_->managed_node();
611 } 611 }
612 612
613 // Then check the supervised button. 613 // Then check the supervised button.
614 if (supervised_bookmarks_button_->visible() && 614 if (supervised_bookmarks_button_->visible() &&
615 supervised_bookmarks_button_->bounds().Contains(adjusted_loc)) { 615 supervised_bookmarks_button_->bounds().Contains(adjusted_loc)) {
616 return client_->supervised_node(); 616 return managed_->supervised_node();
617 } 617 }
618 618
619 // Then check the bookmark buttons. 619 // Then check the bookmark buttons.
620 for (int i = 0; i < GetBookmarkButtonCount(); ++i) { 620 for (int i = 0; i < GetBookmarkButtonCount(); ++i) {
621 views::View* child = child_at(i); 621 views::View* child = child_at(i);
622 if (!child->visible()) 622 if (!child->visible())
623 break; 623 break;
624 if (child->bounds().Contains(adjusted_loc)) 624 if (child->bounds().Contains(adjusted_loc))
625 return model_->bookmark_bar_node()->GetChild(i); 625 return model_->bookmark_bar_node()->GetChild(i);
626 } 626 }
627 627
628 // Then the overflow button. 628 // Then the overflow button.
629 if (overflow_button_->visible() && 629 if (overflow_button_->visible() &&
630 overflow_button_->bounds().Contains(adjusted_loc)) { 630 overflow_button_->bounds().Contains(adjusted_loc)) {
631 *model_start_index = GetFirstHiddenNodeIndex(); 631 *model_start_index = GetFirstHiddenNodeIndex();
632 return model_->bookmark_bar_node(); 632 return model_->bookmark_bar_node();
633 } 633 }
634 634
635 // And finally the other folder. 635 // And finally the other folder.
636 if (other_bookmarks_button_->visible() && 636 if (other_bookmarks_button_->visible() &&
637 other_bookmarks_button_->bounds().Contains(adjusted_loc)) { 637 other_bookmarks_button_->bounds().Contains(adjusted_loc)) {
638 return model_->other_node(); 638 return model_->other_node();
639 } 639 }
640 640
641 return NULL; 641 return NULL;
642 } 642 }
643 643
644 views::MenuButton* BookmarkBarView::GetMenuButtonForNode( 644 views::MenuButton* BookmarkBarView::GetMenuButtonForNode(
645 const BookmarkNode* node) { 645 const BookmarkNode* node) {
646 if (node == client_->managed_node()) 646 if (node == managed_->managed_node())
647 return managed_bookmarks_button_; 647 return managed_bookmarks_button_;
648 if (node == client_->supervised_node()) 648 if (node == managed_->supervised_node())
649 return supervised_bookmarks_button_; 649 return supervised_bookmarks_button_;
650 if (node == model_->other_node()) 650 if (node == model_->other_node())
651 return other_bookmarks_button_; 651 return other_bookmarks_button_;
652 if (node == model_->bookmark_bar_node()) 652 if (node == model_->bookmark_bar_node())
653 return overflow_button_; 653 return overflow_button_;
654 int index = model_->bookmark_bar_node()->GetIndexOf(node); 654 int index = model_->bookmark_bar_node()->GetIndexOf(node);
655 if (index == -1 || !node->is_folder()) 655 if (index == -1 || !node->is_folder())
656 return NULL; 656 return NULL;
657 return static_cast<views::MenuButton*>(child_at(index)); 657 return static_cast<views::MenuButton*>(child_at(index));
658 } 658 }
(...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after
1227 void BookmarkBarView::BookmarkModelLoaded(BookmarkModel* model, 1227 void BookmarkBarView::BookmarkModelLoaded(BookmarkModel* model,
1228 bool ids_reassigned) { 1228 bool ids_reassigned) {
1229 // There should be no buttons. If non-zero it means Load was invoked more than 1229 // There should be no buttons. If non-zero it means Load was invoked more than
1230 // once, or we didn't properly clear things. Either of which shouldn't happen. 1230 // once, or we didn't properly clear things. Either of which shouldn't happen.
1231 // The actual bookmark buttons are added from Layout(). 1231 // The actual bookmark buttons are added from Layout().
1232 DCHECK_EQ(0, GetBookmarkButtonCount()); 1232 DCHECK_EQ(0, GetBookmarkButtonCount());
1233 DCHECK(model->other_node()); 1233 DCHECK(model->other_node());
1234 other_bookmarks_button_->SetAccessibleName(model->other_node()->GetTitle()); 1234 other_bookmarks_button_->SetAccessibleName(model->other_node()->GetTitle());
1235 other_bookmarks_button_->SetText(model->other_node()->GetTitle()); 1235 other_bookmarks_button_->SetText(model->other_node()->GetTitle());
1236 managed_bookmarks_button_->SetAccessibleName( 1236 managed_bookmarks_button_->SetAccessibleName(
1237 client_->managed_node()->GetTitle()); 1237 managed_->managed_node()->GetTitle());
1238 managed_bookmarks_button_->SetText(client_->managed_node()->GetTitle()); 1238 managed_bookmarks_button_->SetText(managed_->managed_node()->GetTitle());
1239 supervised_bookmarks_button_->SetAccessibleName( 1239 supervised_bookmarks_button_->SetAccessibleName(
1240 client_->supervised_node()->GetTitle()); 1240 managed_->supervised_node()->GetTitle());
1241 supervised_bookmarks_button_->SetText(client_->supervised_node()->GetTitle()); 1241 supervised_bookmarks_button_->SetText(
1242 managed_->supervised_node()->GetTitle());
1242 UpdateColors(); 1243 UpdateColors();
1243 UpdateOtherAndManagedButtonsVisibility(); 1244 UpdateOtherAndManagedButtonsVisibility();
1244 other_bookmarks_button_->SetEnabled(true); 1245 other_bookmarks_button_->SetEnabled(true);
1245 managed_bookmarks_button_->SetEnabled(true); 1246 managed_bookmarks_button_->SetEnabled(true);
1246 supervised_bookmarks_button_->SetEnabled(true); 1247 supervised_bookmarks_button_->SetEnabled(true);
1247 LayoutAndPaint(); 1248 LayoutAndPaint();
1248 } 1249 }
1249 1250
1250 void BookmarkBarView::BookmarkModelBeingDeleted(BookmarkModel* model) { 1251 void BookmarkBarView::BookmarkModelBeingDeleted(BookmarkModel* model) {
1251 NOTREACHED(); 1252 NOTREACHED();
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
1410 } 1411 }
1411 1412
1412 void BookmarkBarView::OnMenuButtonClicked(views::View* view, 1413 void BookmarkBarView::OnMenuButtonClicked(views::View* view,
1413 const gfx::Point& point) { 1414 const gfx::Point& point) {
1414 const BookmarkNode* node; 1415 const BookmarkNode* node;
1415 1416
1416 int start_index = 0; 1417 int start_index = 0;
1417 if (view == other_bookmarks_button_) { 1418 if (view == other_bookmarks_button_) {
1418 node = model_->other_node(); 1419 node = model_->other_node();
1419 } else if (view == managed_bookmarks_button_) { 1420 } else if (view == managed_bookmarks_button_) {
1420 node = client_->managed_node(); 1421 node = managed_->managed_node();
1421 } else if (view == supervised_bookmarks_button_) { 1422 } else if (view == supervised_bookmarks_button_) {
1422 node = client_->supervised_node(); 1423 node = managed_->supervised_node();
1423 } else if (view == overflow_button_) { 1424 } else if (view == overflow_button_) {
1424 node = model_->bookmark_bar_node(); 1425 node = model_->bookmark_bar_node();
1425 start_index = GetFirstHiddenNodeIndex(); 1426 start_index = GetFirstHiddenNodeIndex();
1426 } else { 1427 } else {
1427 int button_index = GetIndexOf(view); 1428 int button_index = GetIndexOf(view);
1428 DCHECK_NE(-1, button_index); 1429 DCHECK_NE(-1, button_index);
1429 node = model_->bookmark_bar_node()->GetChild(button_index); 1430 node = model_->bookmark_bar_node()->GetChild(button_index);
1430 } 1431 }
1431 1432
1432 RecordBookmarkFolderOpen(GetBookmarkLaunchLocation()); 1433 RecordBookmarkFolderOpen(GetBookmarkLaunchLocation());
(...skipping 16 matching lines...) Expand all
1449 false); 1450 false);
1450 page_navigator_->OpenURL(params); 1451 page_navigator_->OpenURL(params);
1451 RecordBookmarkAppsPageOpen(GetBookmarkLaunchLocation()); 1452 RecordBookmarkAppsPageOpen(GetBookmarkLaunchLocation());
1452 return; 1453 return;
1453 } 1454 }
1454 1455
1455 const BookmarkNode* node; 1456 const BookmarkNode* node;
1456 if (sender->tag() == kOtherFolderButtonTag) { 1457 if (sender->tag() == kOtherFolderButtonTag) {
1457 node = model_->other_node(); 1458 node = model_->other_node();
1458 } else if (sender->tag() == kManagedFolderButtonTag) { 1459 } else if (sender->tag() == kManagedFolderButtonTag) {
1459 node = client_->managed_node(); 1460 node = managed_->managed_node();
1460 } else if (sender->tag() == kSupervisedFolderButtonTag) { 1461 } else if (sender->tag() == kSupervisedFolderButtonTag) {
1461 node = client_->supervised_node(); 1462 node = managed_->supervised_node();
1462 } else { 1463 } else {
1463 int index = GetIndexOf(sender); 1464 int index = GetIndexOf(sender);
1464 DCHECK_NE(-1, index); 1465 DCHECK_NE(-1, index);
1465 node = model_->bookmark_bar_node()->GetChild(index); 1466 node = model_->bookmark_bar_node()->GetChild(index);
1466 } 1467 }
1467 DCHECK(page_navigator_); 1468 DCHECK(page_navigator_);
1468 1469
1469 if (node->is_url()) { 1470 if (node->is_url()) {
1470 RecordAppLaunch(browser_->profile(), node->url()); 1471 RecordAppLaunch(browser_->profile(), node->url());
1471 OpenURLParams params( 1472 OpenURLParams params(
(...skipping 17 matching lines...) Expand all
1489 } 1490 }
1490 1491
1491 const BookmarkNode* parent = NULL; 1492 const BookmarkNode* parent = NULL;
1492 std::vector<const BookmarkNode*> nodes; 1493 std::vector<const BookmarkNode*> nodes;
1493 if (source == other_bookmarks_button_) { 1494 if (source == other_bookmarks_button_) {
1494 parent = model_->other_node(); 1495 parent = model_->other_node();
1495 // Do this so the user can open all bookmarks. BookmarkContextMenu makes 1496 // Do this so the user can open all bookmarks. BookmarkContextMenu makes
1496 // sure the user can't edit/delete the node in this case. 1497 // sure the user can't edit/delete the node in this case.
1497 nodes.push_back(parent); 1498 nodes.push_back(parent);
1498 } else if (source == managed_bookmarks_button_) { 1499 } else if (source == managed_bookmarks_button_) {
1499 parent = client_->managed_node(); 1500 parent = managed_->managed_node();
1500 nodes.push_back(parent); 1501 nodes.push_back(parent);
1501 } else if (source == supervised_bookmarks_button_) { 1502 } else if (source == supervised_bookmarks_button_) {
1502 parent = client_->supervised_node(); 1503 parent = managed_->supervised_node();
1503 nodes.push_back(parent); 1504 nodes.push_back(parent);
1504 } else if (source != this && source != apps_page_shortcut_) { 1505 } else if (source != this && source != apps_page_shortcut_) {
1505 // User clicked on one of the bookmark buttons, find which one they 1506 // User clicked on one of the bookmark buttons, find which one they
1506 // clicked on, except for the apps page shortcut, which must behave as if 1507 // clicked on, except for the apps page shortcut, which must behave as if
1507 // the user clicked on the bookmark bar background. 1508 // the user clicked on the bookmark bar background.
1508 int bookmark_button_index = GetIndexOf(source); 1509 int bookmark_button_index = GetIndexOf(source);
1509 DCHECK(bookmark_button_index != -1 && 1510 DCHECK(bookmark_button_index != -1 &&
1510 bookmark_button_index < GetBookmarkButtonCount()); 1511 bookmark_button_index < GetBookmarkButtonCount());
1511 const BookmarkNode* node = 1512 const BookmarkNode* node =
1512 model_->bookmark_bar_node()->GetChild(bookmark_button_index); 1513 model_->bookmark_bar_node()->GetChild(bookmark_button_index);
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
1572 UpdateBookmarksSeparatorVisibility(); 1573 UpdateBookmarksSeparatorVisibility();
1573 1574
1574 instructions_ = new BookmarkBarInstructionsView(this); 1575 instructions_ = new BookmarkBarInstructionsView(this);
1575 AddChildView(instructions_); 1576 AddChildView(instructions_);
1576 1577
1577 set_context_menu_controller(this); 1578 set_context_menu_controller(this);
1578 1579
1579 size_animation_.reset(new gfx::SlideAnimation(this)); 1580 size_animation_.reset(new gfx::SlideAnimation(this));
1580 1581
1581 model_ = BookmarkModelFactory::GetForProfile(browser_->profile()); 1582 model_ = BookmarkModelFactory::GetForProfile(browser_->profile());
1582 client_ = ChromeBookmarkClientFactory::GetForProfile(browser_->profile()); 1583 managed_ = ManagedBookmarkServiceFactory::GetForProfile(browser_->profile());
1583 if (model_) { 1584 if (model_) {
1584 model_->AddObserver(this); 1585 model_->AddObserver(this);
1585 if (model_->loaded()) 1586 if (model_->loaded())
1586 BookmarkModelLoaded(model_, false); 1587 BookmarkModelLoaded(model_, false);
1587 // else case: we'll receive notification back from the BookmarkModel when 1588 // else case: we'll receive notification back from the BookmarkModel when
1588 // done loading, then we'll populate the bar. 1589 // done loading, then we'll populate the bar.
1589 } 1590 }
1590 } 1591 }
1591 1592
1592 int BookmarkBarView::GetBookmarkButtonCount() const { 1593 int BookmarkBarView::GetBookmarkButtonCount() const {
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
1758 } 1759 }
1759 if (index >= GetBookmarkButtonCount()) 1760 if (index >= GetBookmarkButtonCount())
1760 return needs_layout; 1761 return needs_layout;
1761 1762
1762 delete child_at(index); 1763 delete child_at(index);
1763 return true; 1764 return true;
1764 } 1765 }
1765 1766
1766 void BookmarkBarView::BookmarkNodeChangedImpl(BookmarkModel* model, 1767 void BookmarkBarView::BookmarkNodeChangedImpl(BookmarkModel* model,
1767 const BookmarkNode* node) { 1768 const BookmarkNode* node) {
1768 if (node == client_->managed_node()) { 1769 if (node == managed_->managed_node()) {
1769 // The managed node may have its title updated. 1770 // The managed node may have its title updated.
1770 managed_bookmarks_button_->SetAccessibleName( 1771 managed_bookmarks_button_->SetAccessibleName(
1771 client_->managed_node()->GetTitle()); 1772 managed_->managed_node()->GetTitle());
1772 managed_bookmarks_button_->SetText(client_->managed_node()->GetTitle()); 1773 managed_bookmarks_button_->SetText(managed_->managed_node()->GetTitle());
1773 return; 1774 return;
1774 } 1775 }
1775 if (node == client_->supervised_node()) { 1776 if (node == managed_->supervised_node()) {
1776 // The supervised node may have its title updated. 1777 // The supervised node may have its title updated.
1777 supervised_bookmarks_button_->SetAccessibleName( 1778 supervised_bookmarks_button_->SetAccessibleName(
1778 client_->supervised_node()->GetTitle()); 1779 managed_->supervised_node()->GetTitle());
1779 supervised_bookmarks_button_->SetText( 1780 supervised_bookmarks_button_->SetText(
1780 client_->supervised_node()->GetTitle()); 1781 managed_->supervised_node()->GetTitle());
1781 return; 1782 return;
1782 } 1783 }
1783 1784
1784 if (node->parent() != model->bookmark_bar_node()) { 1785 if (node->parent() != model->bookmark_bar_node()) {
1785 // We only care about nodes on the bookmark bar. 1786 // We only care about nodes on the bookmark bar.
1786 return; 1787 return;
1787 } 1788 }
1788 int index = model->bookmark_bar_node()->GetIndexOf(node); 1789 int index = model->bookmark_bar_node()->GetIndexOf(node);
1789 DCHECK_NE(-1, index); 1790 DCHECK_NE(-1, index);
1790 if (index >= GetBookmarkButtonCount()) 1791 if (index >= GetBookmarkButtonCount())
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
1860 if (other_bookmarks_button_->visible() && other_delta_x >= 0 && 1861 if (other_bookmarks_button_->visible() && other_delta_x >= 0 &&
1861 other_delta_x < other_bookmarks_button_->width()) { 1862 other_delta_x < other_bookmarks_button_->width()) {
1862 // Mouse is over 'other' folder. 1863 // Mouse is over 'other' folder.
1863 location->button_type = DROP_OTHER_FOLDER; 1864 location->button_type = DROP_OTHER_FOLDER;
1864 location->on = true; 1865 location->on = true;
1865 found = true; 1866 found = true;
1866 } else if (!GetBookmarkButtonCount()) { 1867 } else if (!GetBookmarkButtonCount()) {
1867 // No bookmarks, accept the drop. 1868 // No bookmarks, accept the drop.
1868 location->index = 0; 1869 location->index = 0;
1869 const BookmarkNode* node = data.GetFirstNode(model_, profile->GetPath()); 1870 const BookmarkNode* node = data.GetFirstNode(model_, profile->GetPath());
1870 int ops = node && client_->CanBeEditedByUser(node) ? 1871 int ops = node && managed_->CanBeEditedByUser(node) ?
1871 ui::DragDropTypes::DRAG_MOVE : 1872 ui::DragDropTypes::DRAG_MOVE :
1872 ui::DragDropTypes::DRAG_COPY | ui::DragDropTypes::DRAG_LINK; 1873 ui::DragDropTypes::DRAG_COPY | ui::DragDropTypes::DRAG_LINK;
1873 location->operation = chrome::GetPreferredBookmarkDropOperation( 1874 location->operation = chrome::GetPreferredBookmarkDropOperation(
1874 event.source_operations(), ops); 1875 event.source_operations(), ops);
1875 return; 1876 return;
1876 } 1877 }
1877 1878
1878 for (int i = 0; i < GetBookmarkButtonCount() && 1879 for (int i = 0; i < GetBookmarkButtonCount() &&
1879 GetBookmarkButton(i)->visible() && !found; i++) { 1880 GetBookmarkButton(i)->visible() && !found; i++) {
1880 views::LabelButton* button = GetBookmarkButton(i); 1881 views::LabelButton* button = GetBookmarkButton(i);
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
1966 parent_on_bb = parent; 1967 parent_on_bb = parent;
1967 } 1968 }
1968 if (parent_on_bb) { 1969 if (parent_on_bb) {
1969 int index = bbn->GetIndexOf(parent_on_bb); 1970 int index = bbn->GetIndexOf(parent_on_bb);
1970 if (index >= GetFirstHiddenNodeIndex()) { 1971 if (index >= GetFirstHiddenNodeIndex()) {
1971 // Node is hidden, animate the overflow button. 1972 // Node is hidden, animate the overflow button.
1972 throbbing_view_ = overflow_button_; 1973 throbbing_view_ = overflow_button_;
1973 } else if (!overflow_only) { 1974 } else if (!overflow_only) {
1974 throbbing_view_ = static_cast<CustomButton*>(child_at(index)); 1975 throbbing_view_ = static_cast<CustomButton*>(child_at(index));
1975 } 1976 }
1976 } else if (bookmarks::IsDescendantOf(node, client_->managed_node())) { 1977 } else if (bookmarks::IsDescendantOf(node, managed_->managed_node())) {
1977 throbbing_view_ = managed_bookmarks_button_; 1978 throbbing_view_ = managed_bookmarks_button_;
1978 } else if (bookmarks::IsDescendantOf(node, client_->supervised_node())) { 1979 } else if (bookmarks::IsDescendantOf(node, managed_->supervised_node())) {
1979 throbbing_view_ = supervised_bookmarks_button_; 1980 throbbing_view_ = supervised_bookmarks_button_;
1980 } else if (!overflow_only) { 1981 } else if (!overflow_only) {
1981 throbbing_view_ = other_bookmarks_button_; 1982 throbbing_view_ = other_bookmarks_button_;
1982 } 1983 }
1983 1984
1984 // Use a large number so that the button continues to throb. 1985 // Use a large number so that the button continues to throb.
1985 if (throbbing_view_) 1986 if (throbbing_view_)
1986 throbbing_view_->StartThrobbing(std::numeric_limits<int>::max()); 1987 throbbing_view_->StartThrobbing(std::numeric_limits<int>::max());
1987 } 1988 }
1988 1989
(...skipping 11 matching lines...) Expand all
2000 } 2001 }
2001 old_node = parent; 2002 old_node = parent;
2002 } 2003 }
2003 if (old_node) { 2004 if (old_node) {
2004 if (old_index_on_bb >= GetFirstHiddenNodeIndex()) { 2005 if (old_index_on_bb >= GetFirstHiddenNodeIndex()) {
2005 // Node is hidden, animate the overflow button. 2006 // Node is hidden, animate the overflow button.
2006 return overflow_button_; 2007 return overflow_button_;
2007 } 2008 }
2008 return static_cast<CustomButton*>(child_at(old_index_on_bb)); 2009 return static_cast<CustomButton*>(child_at(old_index_on_bb));
2009 } 2010 }
2010 if (bookmarks::IsDescendantOf(parent, client_->managed_node())) 2011 if (bookmarks::IsDescendantOf(parent, managed_->managed_node()))
2011 return managed_bookmarks_button_; 2012 return managed_bookmarks_button_;
2012 if (bookmarks::IsDescendantOf(parent, client_->supervised_node())) 2013 if (bookmarks::IsDescendantOf(parent, managed_->supervised_node()))
2013 return supervised_bookmarks_button_; 2014 return supervised_bookmarks_button_;
2014 // Node wasn't on the bookmark bar, use the "Other Bookmarks" button. 2015 // Node wasn't on the bookmark bar, use the "Other Bookmarks" button.
2015 return other_bookmarks_button_; 2016 return other_bookmarks_button_;
2016 } 2017 }
2017 2018
2018 void BookmarkBarView::UpdateColors() { 2019 void BookmarkBarView::UpdateColors() {
2019 // We don't always have a theme provider (ui tests, for example). 2020 // We don't always have a theme provider (ui tests, for example).
2020 const ui::ThemeProvider* theme_provider = GetThemeProvider(); 2021 const ui::ThemeProvider* theme_provider = GetThemeProvider();
2021 if (!theme_provider) 2022 if (!theme_provider)
2022 return; 2023 return;
(...skipping 10 matching lines...) Expand all
2033 } 2034 }
2034 2035
2035 bool BookmarkBarView::UpdateOtherAndManagedButtonsVisibility() { 2036 bool BookmarkBarView::UpdateOtherAndManagedButtonsVisibility() {
2036 bool has_other_children = !model_->other_node()->empty(); 2037 bool has_other_children = !model_->other_node()->empty();
2037 bool update_other = has_other_children != other_bookmarks_button_->visible(); 2038 bool update_other = has_other_children != other_bookmarks_button_->visible();
2038 if (update_other) { 2039 if (update_other) {
2039 other_bookmarks_button_->SetVisible(has_other_children); 2040 other_bookmarks_button_->SetVisible(has_other_children);
2040 UpdateBookmarksSeparatorVisibility(); 2041 UpdateBookmarksSeparatorVisibility();
2041 } 2042 }
2042 2043
2043 bool show_managed = !client_->managed_node()->empty() && 2044 bool show_managed = !managed_->managed_node()->empty() &&
2044 browser_->profile()->GetPrefs()->GetBoolean( 2045 browser_->profile()->GetPrefs()->GetBoolean(
2045 bookmarks::prefs::kShowManagedBookmarksInBookmarkBar); 2046 bookmarks::prefs::kShowManagedBookmarksInBookmarkBar);
2046 bool update_managed = show_managed != managed_bookmarks_button_->visible(); 2047 bool update_managed = show_managed != managed_bookmarks_button_->visible();
2047 if (update_managed) 2048 if (update_managed)
2048 managed_bookmarks_button_->SetVisible(show_managed); 2049 managed_bookmarks_button_->SetVisible(show_managed);
2049 2050
2050 bool show_supervised = !client_->supervised_node()->empty(); 2051 bool show_supervised = !managed_->supervised_node()->empty();
2051 bool update_supervised = 2052 bool update_supervised =
2052 show_supervised != supervised_bookmarks_button_->visible(); 2053 show_supervised != supervised_bookmarks_button_->visible();
2053 if (update_supervised) 2054 if (update_supervised)
2054 supervised_bookmarks_button_->SetVisible(show_supervised); 2055 supervised_bookmarks_button_->SetVisible(show_supervised);
2055 2056
2056 return update_other || update_managed || update_supervised; 2057 return update_other || update_managed || update_supervised;
2057 } 2058 }
2058 2059
2059 void BookmarkBarView::UpdateBookmarksSeparatorVisibility() { 2060 void BookmarkBarView::UpdateBookmarksSeparatorVisibility() {
2060 // Ash does not paint the bookmarks separator line because it looks odd on 2061 // Ash does not paint the bookmarks separator line because it looks odd on
(...skipping 12 matching lines...) Expand all
2073 return; 2074 return;
2074 apps_page_shortcut_->SetVisible(visible); 2075 apps_page_shortcut_->SetVisible(visible);
2075 UpdateBookmarksSeparatorVisibility(); 2076 UpdateBookmarksSeparatorVisibility();
2076 LayoutAndPaint(); 2077 LayoutAndPaint();
2077 } 2078 }
2078 2079
2079 void BookmarkBarView::OnShowManagedBookmarksPrefChanged() { 2080 void BookmarkBarView::OnShowManagedBookmarksPrefChanged() {
2080 if (UpdateOtherAndManagedButtonsVisibility()) 2081 if (UpdateOtherAndManagedButtonsVisibility())
2081 LayoutAndPaint(); 2082 LayoutAndPaint();
2082 } 2083 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698