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

Unified Diff: chrome/browser/ui/cocoa/bookmarks/bookmark_menu_bridge.mm

Issue 8141003: [Mac] Restore the old bookmark menus now that the experiment is over. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 2 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/cocoa/bookmarks/bookmark_menu_bridge.mm
diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_menu_bridge.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_menu_bridge.mm
index 79766db8ba418d0935487faa2669647beb086771..0af4b23b6038caed012ef6e86bc5816ea70ae59e 100644
--- a/chrome/browser/ui/cocoa/bookmarks/bookmark_menu_bridge.mm
+++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_menu_bridge.mm
@@ -4,8 +4,6 @@
#import <AppKit/AppKit.h>
-#include "chrome/browser/ui/cocoa/bookmarks/bookmark_menu_bridge.h"
-
#include "base/sys_string_conversions.h"
#include "chrome/app/chrome_command_ids.h"
#import "chrome/browser/app_controller_mac.h"
@@ -13,6 +11,7 @@
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/ui/browser_list.h"
+#include "chrome/browser/ui/cocoa/bookmarks/bookmark_menu_bridge.h"
#import "chrome/browser/ui/cocoa/bookmarks/bookmark_menu_cocoa_controller.h"
#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
@@ -24,22 +23,7 @@
BookmarkMenuBridge::BookmarkMenuBridge(Profile* profile,
NSMenu *menu)
- : menu_is_valid_(false),
- root_node_(NULL),
- off_the_side_node_start_index_(0),
- profile_(profile),
- controller_([[BookmarkMenuCocoaController alloc] initWithBridge:this
- andMenu:menu]) {
- if (GetBookmarkModel())
- ObserveBookmarkModel();
-}
-
-BookmarkMenuBridge::BookmarkMenuBridge(const BookmarkNode* root_node,
- Profile* profile,
- NSMenu* menu)
- : menu_is_valid_(false),
- root_node_(root_node),
- off_the_side_node_start_index_(0),
+ : menuIsValid_(false),
profile_(profile),
controller_([[BookmarkMenuCocoaController alloc] initWithBridge:this
andMenu:menu]) {
@@ -51,6 +35,7 @@ BookmarkMenuBridge::~BookmarkMenuBridge() {
BookmarkModel *model = GetBookmarkModel();
if (model)
model->RemoveObserver(this);
+ [controller_ release];
}
NSMenu* BookmarkMenuBridge::BookmarkMenu() {
@@ -72,7 +57,7 @@ void BookmarkMenuBridge::UpdateSubMenu(NSMenu* bookmark_menu) {
void BookmarkMenuBridge::UpdateMenuInternal(NSMenu* bookmark_menu,
bool is_submenu) {
DCHECK(bookmark_menu);
- if (menu_is_valid_)
+ if (menuIsValid_)
return;
BookmarkModel* model = GetBookmarkModel();
if (!model || !model->IsLoaded())
@@ -86,31 +71,27 @@ void BookmarkMenuBridge::UpdateMenuInternal(NSMenu* bookmark_menu,
ClearBookmarkMenu(bookmark_menu);
- if (!root_node_) {
- // Add bookmark bar items, if any.
- const BookmarkNode* bar_node = model->bookmark_bar_node();
- CHECK(bar_node);
- if (!bar_node->empty()) {
- [bookmark_menu addItem:[NSMenuItem separatorItem]];
- AddNodeToMenu(bar_node, bookmark_menu, !is_submenu);
- }
+ // Add bookmark bar items, if any.
+ const BookmarkNode* barNode = model->bookmark_bar_node();
+ CHECK(barNode);
+ if (!barNode->empty()) {
+ [bookmark_menu addItem:[NSMenuItem separatorItem]];
+ AddNodeToMenu(barNode, bookmark_menu, !is_submenu);
+ }
- // If the "Other Bookmarks" folder has any content, make a submenu for it
- // and fill it in.
- if (!model->other_node()->empty()) {
- NSString* other_items_title =
- l10n_util::GetNSString(IDS_BOOKMARK_BAR_OTHER_FOLDER_NAME);
- [bookmark_menu addItem:[NSMenuItem separatorItem]];
- AddNodeAsSubmenu(bookmark_menu,
- model->other_node(),
- other_items_title,
- !is_submenu);
- }
- } else {
- AddNodeToMenu(root_node_, bookmark_menu, false);
+ // If the "Other Bookmarks" folder has any content, make a submenu for it and
+ // fill it in.
+ if (!model->other_node()->empty()) {
+ NSString* other_items_title =
+ l10n_util::GetNSString(IDS_BOOKMARK_BAR_OTHER_FOLDER_NAME);
+ [bookmark_menu addItem:[NSMenuItem separatorItem]];
+ AddNodeAsSubmenu(bookmark_menu,
+ model->other_node(),
+ other_items_title,
+ !is_submenu);
}
- menu_is_valid_ = true;
+ menuIsValid_ = true;
}
void BookmarkMenuBridge::BookmarkModelBeingDeleted(BookmarkModel* model) {
@@ -228,16 +209,9 @@ void BookmarkMenuBridge::AddNodeAsSubmenu(NSMenu* menu,
AddNodeToMenu(node, other_submenu, add_extra_items);
}
-void BookmarkMenuBridge::AddNodeToMenu(const BookmarkNode* node,
- NSMenu* menu,
+// TODO(jrg): limit the number of bookmarks in the menubar?
+void BookmarkMenuBridge::AddNodeToMenu(const BookmarkNode* node, NSMenu* menu,
bool add_extra_items) {
- AddNodeToMenuRecursive(node, menu, add_extra_items, 0);
-}
-
-void BookmarkMenuBridge::AddNodeToMenuRecursive(const BookmarkNode* node,
- NSMenu* menu,
- bool add_extra_items,
- int recursion_depth) {
int child_count = node->child_count();
if (!child_count) {
NSString* empty_string = l10n_util::GetNSString(IDS_MENU_EMPTY_SUBMENU);
@@ -245,27 +219,21 @@ void BookmarkMenuBridge::AddNodeToMenuRecursive(const BookmarkNode* node,
action:nil
keyEquivalent:@""] autorelease];
[menu addItem:item];
- } else {
- // If this is the first recursive pass, start adding children from the
- // start index, which defaults to 0.
- const int start = recursion_depth == 0 ? off_the_side_node_start_index_ : 0;
- for (int i = start; i < child_count; i++) {
- const BookmarkNode* child = node->GetChild(i);
- NSString* title = [BookmarkMenuCocoaController menuTitleForNode:child];
- NSMenuItem* item = [[[NSMenuItem alloc] initWithTitle:title
- action:nil
- keyEquivalent:@""] autorelease];
- [menu addItem:item];
- bookmark_nodes_[child] = item;
- if (child->is_folder()) {
- [item setImage:folder_image_];
- NSMenu* submenu = [[[NSMenu alloc] initWithTitle:title] autorelease];
- [menu setSubmenu:submenu forItem:item];
- AddNodeToMenuRecursive(child, submenu, add_extra_items,
- recursion_depth + 1); // Recursive call.
- } else {
- ConfigureMenuItem(child, item, false);
- }
+ } else for (int i = 0; i < child_count; i++) {
+ const BookmarkNode* child = node->GetChild(i);
+ NSString* title = [BookmarkMenuCocoaController menuTitleForNode:child];
+ NSMenuItem* item = [[[NSMenuItem alloc] initWithTitle:title
+ action:nil
+ keyEquivalent:@""] autorelease];
+ [menu addItem:item];
+ bookmark_nodes_[child] = item;
+ if (child->is_folder()) {
+ [item setImage:folder_image_];
+ NSMenu* submenu = [[[NSMenu alloc] initWithTitle:title] autorelease];
+ [menu setSubmenu:submenu forItem:item];
+ AddNodeToMenu(child, submenu, add_extra_items); // recursive call
+ } else {
+ ConfigureMenuItem(child, item, false);
}
}

Powered by Google App Engine
This is Rietveld 408576698