diff options
author | maf@chromium.org <maf@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-26 00:40:47 +0000 |
---|---|---|
committer | maf@chromium.org <maf@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-26 00:40:47 +0000 |
commit | 26848cb1f60d002b9cb83950d5989446dbcc6c97 (patch) | |
tree | b00b538ad8b5f768d3c5f20a0195438f379695b0 /chrome | |
parent | 8539c7950987c416d6431875ae433e4b0bb01082 (diff) | |
download | chromium_src-26848cb1f60d002b9cb83950d5989446dbcc6c97.zip chromium_src-26848cb1f60d002b9cb83950d5989446dbcc6c97.tar.gz chromium_src-26848cb1f60d002b9cb83950d5989446dbcc6c97.tar.bz2 |
Mac. Build bookmark tooltips more intelligently, not showing title if same as URL.
Refactor tooltip string code to remove duplication.
R=mrossetti@chromium.org
BUG=70709
Review URL: http://codereview.chromium.org/6979021
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86753 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
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 { |