diff options
3 files changed, 19 insertions, 22 deletions
diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.h b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.h index b874014..79aee30 100644 --- a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.h +++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.h @@ -349,7 +349,8 @@ willAnimateFromState:(bookmarks::VisualState)oldState // Or from a context menu over either the bar or a button. - (IBAction)addPage:(id)sender; - (IBAction)addFolder:(id)sender; - +// Make a relevant tooltip string for node. +- (NSString*)tooltipForNode:(const BookmarkNode*)node; @end // Redirects from BookmarkBarBridge, the C++ object which glues us to diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.mm index 91a3ab5..24bfc90 100644 --- a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.mm +++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.mm @@ -1145,14 +1145,8 @@ void RecordAppLaunch(Profile* profile, GURL url) { [item setTarget:self]; [item setAction:@selector(openBookmarkMenuItem:)]; [item setTag:[self menuTagFromNodeId:child->id()]]; - if (child->is_url()) { - // Add a tooltip - std::string url_string = child->GetURL().possibly_invalid_spec(); - NSString* tooltip = [NSString stringWithFormat:@"%@\n%s", - base::SysUTF16ToNSString(child->GetTitle()), - url_string.c_str()]; - [item setToolTip:tooltip]; - } + if (child->is_url()) + [item setToolTip:[self tooltipForNode:child]]; } } @@ -1232,6 +1226,18 @@ void RecordAppLaunch(Profile* profile, GURL url) { } } +- (NSString*)tooltipForNode:(const BookmarkNode*)node { + NSString* title = base::SysUTF16ToNSString(node->GetTitle()); + std::string url_string = node->GetURL().possibly_invalid_spec(); + NSString* url = [NSString stringWithUTF8String:url_string.c_str()]; + if ([title length] == 0) + return url; + else if ([url length] == 0 || [url isEqualToString:title]) + return title; + else + return [NSString stringWithFormat:@"%@\n%@", title, url]; +} + - (BookmarkButton*)buttonForNode:(const BookmarkNode*)node xOffset:(int*)xOffset { BookmarkButtonCell* cell = [self cellForBookmarkNode:node]; @@ -1271,14 +1277,8 @@ void RecordAppLaunch(Profile* profile, GURL url) { // Make the button do something [button setTarget:self]; [button setAction:@selector(openBookmark:)]; - if (node->is_url()) { - // Add a tooltip. - NSString* title = base::SysUTF16ToNSString(node->GetTitle()); - std::string url_string = node->GetURL().possibly_invalid_spec(); - NSString* tooltip = [NSString stringWithFormat:@"%@\n%s", title, - url_string.c_str()]; - [button setToolTip:tooltip]; - } + if (node->is_url()) + [button setToolTip:[self tooltipForNode:node]]; } return [[button.get() retain] autorelease]; } diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller.mm index 8e51c22..060ca67 100644 --- a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller.mm +++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller.mm @@ -389,11 +389,7 @@ struct LayoutMetrics { [button setTarget:self]; [button setAction:@selector(openBookmark:)]; // Add a tooltip. - NSString* title = base::SysUTF16ToNSString(node->GetTitle()); - std::string urlString = node->GetURL().possibly_invalid_spec(); - NSString* tooltip = [NSString stringWithFormat:@"%@\n%s", title, - urlString.c_str()]; - [button setToolTip:tooltip]; + [button setToolTip:[barController_ tooltipForNode:node]]; [button setAcceptsTrackIn:YES]; } } else { |