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

Side by Side Diff: chrome/browser/cocoa/bookmark_menu_bridge.mm

Issue 245035: Bookmark menus not updated when their name is edited in the bookmark bar.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 #import <AppKit/AppKit.h> 5 #import <AppKit/AppKit.h>
6 6
7 #include "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "base/sys_string_conversions.h" 8 #include "base/sys_string_conversions.h"
9 #include "chrome/app/chrome_dll_resource.h" // IDC_BOOKMARK_MENU 9 #include "chrome/app/chrome_dll_resource.h" // IDC_BOOKMARK_MENU
10 #import "chrome/browser/app_controller_mac.h" 10 #import "chrome/browser/app_controller_mac.h"
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 int old_index, 87 int old_index,
88 const BookmarkNode* node) { 88 const BookmarkNode* node) {
89 // TODO(jrg): this is brute force; perhaps we should be nicer. 89 // TODO(jrg): this is brute force; perhaps we should be nicer.
90 Loaded(model); 90 Loaded(model);
91 } 91 }
92 92
93 void BookmarkMenuBridge::BookmarkNodeChanged(BookmarkModel* model, 93 void BookmarkMenuBridge::BookmarkNodeChanged(BookmarkModel* model,
94 const BookmarkNode* node) { 94 const BookmarkNode* node) {
95 NSMenuItem* item = MenuItemForNode(node); 95 NSMenuItem* item = MenuItemForNode(node);
96 if (item) 96 if (item)
97 ConfigureMenuItem(node, item); 97 ConfigureMenuItem(node, item, true);
98 } 98 }
99 99
100 void BookmarkMenuBridge::BookmarkNodeFavIconLoaded(BookmarkModel* model, 100 void BookmarkMenuBridge::BookmarkNodeFavIconLoaded(BookmarkModel* model,
101 const BookmarkNode* node) { 101 const BookmarkNode* node) {
102 NSMenuItem* item = MenuItemForNode(node); 102 NSMenuItem* item = MenuItemForNode(node);
103 if (item) 103 if (item)
104 ConfigureMenuItem(node, item); 104 ConfigureMenuItem(node, item, false);
105 } 105 }
106 106
107 void BookmarkMenuBridge::BookmarkNodeChildrenReordered( 107 void BookmarkMenuBridge::BookmarkNodeChildrenReordered(
108 BookmarkModel* model, const BookmarkNode* node) { 108 BookmarkModel* model, const BookmarkNode* node) {
109 // TODO(jrg): this is brute force; perhaps we should be nicer. 109 // TODO(jrg): this is brute force; perhaps we should be nicer.
110 Loaded(model); 110 Loaded(model);
111 } 111 }
112 112
113 // Watch for changes. 113 // Watch for changes.
114 void BookmarkMenuBridge::ObserveBookmarkModel() { 114 void BookmarkMenuBridge::ObserveBookmarkModel() {
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 NSMenuItem* item = [[[NSMenuItem alloc] initWithTitle:title 173 NSMenuItem* item = [[[NSMenuItem alloc] initWithTitle:title
174 action:nil 174 action:nil
175 keyEquivalent:@""] autorelease]; 175 keyEquivalent:@""] autorelease];
176 [menu addItem:item]; 176 [menu addItem:item];
177 bookmark_nodes_[child] = item; 177 bookmark_nodes_[child] = item;
178 if (child->is_folder()) { 178 if (child->is_folder()) {
179 NSMenu* submenu = [[[NSMenu alloc] initWithTitle:title] autorelease]; 179 NSMenu* submenu = [[[NSMenu alloc] initWithTitle:title] autorelease];
180 [menu setSubmenu:submenu forItem:item]; 180 [menu setSubmenu:submenu forItem:item];
181 AddNodeToMenu(child, submenu); // recursive call 181 AddNodeToMenu(child, submenu); // recursive call
182 } else { 182 } else {
183 ConfigureMenuItem(child, item); 183 ConfigureMenuItem(child, item, false);
184 } 184 }
185 } 185 }
186 } 186 }
187 187
188 void BookmarkMenuBridge::ConfigureMenuItem(const BookmarkNode* node, 188 void BookmarkMenuBridge::ConfigureMenuItem(const BookmarkNode* node,
189 NSMenuItem* item) { 189 NSMenuItem* item,
190 bool set_title) {
191 if (set_title) {
192 NSString* title = [BookmarkMenuCocoaController menuTitleForNode:node];
193 [item setTitle:title];
194 }
190 [item setTarget:controller_]; 195 [item setTarget:controller_];
191 [item setAction:@selector(openBookmarkMenuItem:)]; 196 [item setAction:@selector(openBookmarkMenuItem:)];
192 [item setTag:node->id()]; 197 [item setTag:node->id()];
193 // Add a tooltip 198 // Add a tooltip
194 std::string url_string = node->GetURL().possibly_invalid_spec(); 199 std::string url_string = node->GetURL().possibly_invalid_spec();
195 NSString* tooltip = [NSString stringWithFormat:@"%@\n%s", 200 NSString* tooltip = [NSString stringWithFormat:@"%@\n%s",
196 base::SysWideToNSString(node->GetTitle()), 201 base::SysWideToNSString(node->GetTitle()),
197 url_string.c_str()]; 202 url_string.c_str()];
198 [item setToolTip:tooltip]; 203 [item setToolTip:tooltip];
199 204
(...skipping 14 matching lines...) Expand all
214 219
215 NSMenuItem* BookmarkMenuBridge::MenuItemForNode(const BookmarkNode* node) { 220 NSMenuItem* BookmarkMenuBridge::MenuItemForNode(const BookmarkNode* node) {
216 if (!node) 221 if (!node)
217 return nil; 222 return nil;
218 std::map<const BookmarkNode*, NSMenuItem*>::iterator it = 223 std::map<const BookmarkNode*, NSMenuItem*>::iterator it =
219 bookmark_nodes_.find(node); 224 bookmark_nodes_.find(node);
220 if (it == bookmark_nodes_.end()) 225 if (it == bookmark_nodes_.end())
221 return nil; 226 return nil;
222 return it->second; 227 return it->second;
223 } 228 }
OLDNEW
« no previous file with comments | « chrome/browser/cocoa/bookmark_menu_bridge.h ('k') | chrome/browser/cocoa/bookmark_menu_bridge_unittest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698