Adium

Changeset 14425

Show
Ignore:
Timestamp:
12/14/2005 05:00:28 PM (3 years ago)
Author:
evands
Message:

The Insert Safari Link toolbar item now takes the icon and name of the default browser if it is one we specify supporting. I'd love for someone to make Firefox work (fix the Safari.scpt in Resources to handle it, then uncomment @"Firefox" in this code). Patch from wootest with modifications by me. Closes #1099.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/Source/ESSafariLinkToolbarItemPlugin.m

    r13417 r14425  
    3939- (void)installPlugin 
    4040{ 
    41         //SafariLink 
     41        CFURLRef        urlToDefaultBrowser = NULL; 
     42        NSString        *browserName = nil; 
     43        NSImage         *browserImage = nil; 
     44 
     45        if (LSGetApplicationForURL((CFURLRef)[NSURL URLWithString:@"http://google.com"], 
     46                                                           kLSRolesViewer, 
     47                                                           NULL /*outAppRef*/, 
     48                                                           &urlToDefaultBrowser) != kLSApplicationNotFoundErr) { 
     49                NSString        *defaultBrowserName; 
     50                NSString        *defaultBrowserPath; 
     51 
     52                defaultBrowserPath = [(NSURL *)urlToDefaultBrowser path]; 
     53                defaultBrowserName = [[NSFileManager defaultManager] displayNameAtPath:defaultBrowserPath]; 
     54 
     55                //Is the default browser supported? 
     56                //XXX FireFox should be supportable, but I can't get the script to work -eds 
     57                NSEnumerator *enumerator = [[NSArray arrayWithObjects:@"Safari",/*@"Firefox",*/@"Omniweb",@"Camino",@"NetNewsWire",nil] objectEnumerator]; 
     58                NSString         *aSupportedBrowser; 
     59 
     60                while ((aSupportedBrowser = [enumerator nextObject])) { 
     61                        if ([defaultBrowserName rangeOfString:aSupportedBrowser 
     62                                                                                  options:(NSCaseInsensitiveSearch | NSLiteralSearch)].location != NSNotFound) { 
     63                                //Use the name and image provided by the system if possible 
     64                                browserName = defaultBrowserName; 
     65                                browserImage = [[NSWorkspace sharedWorkspace] iconForFile:defaultBrowserPath]; 
     66                                break; 
     67                        } 
     68                } 
     69        } 
     70         
     71        if (urlToDefaultBrowser) { 
     72                CFRelease(urlToDefaultBrowser); 
     73        } 
     74         
     75        if (!browserName || !browserImage) { 
     76                //Fall back on Safari and the image stored within our bundle if necessary 
     77                browserName = @"Safari"; 
     78                browserImage = [NSImage imageNamed:@"Safari" forClass:[self class]]; 
     79        }        
     80 
    4281        NSToolbarItem   *toolbarItem; 
    4382        toolbarItem = [AIToolbarUtilities toolbarItemWithIdentifier:SAFARI_LINK_IDENTIFER 
    44                                                                                                                   label:AILocalizedString(@"Safari Link",nil) 
    45                                                                                                    paletteLabel:AILocalizedString(@"Insert Safari Link",nil) 
    46                                                                                                                 toolTip:AILocalizedString(@"Insert link to active page in Safari",nil) 
     83                                                                                                                  label:[NSString stringWithFormat:AILocalizedString(@"%@ Link",nil), browserName] 
     84                                                                                                   paletteLabel:[NSString stringWithFormat:AILocalizedString(@"Insert %@ Link",nil), browserName] 
     85                                                                                                                toolTip:[NSString stringWithFormat:AILocalizedString(@"Insert link to active page in %@",nil), browserName] 
    4786                                                                                                                 target:self 
    4887                                                                                                settingSelector:@selector(setImage:) 
    49                                                                                                         itemContent:[NSImage imageNamed:@"Safari" forClass:[self class]] 
     88                                                                                                        itemContent:browserImage 
    5089                                                                                                                 action:@selector(insertSafariLink:) 
    5190                                                                                                                   menu:nil];