Fixed wrong value on browser selection on cancled custom browser selection

This commit is contained in:
Michael Starke
2014-08-17 13:33:46 +02:00
parent b56c1ee020
commit f762f86938
2 changed files with 16 additions and 10 deletions

View File

@@ -13,6 +13,6 @@
@property (weak) IBOutlet NSPopUpButton *browserPopup; @property (weak) IBOutlet NSPopUpButton *browserPopup;
- (IBAction)showCustomBrowserSelection:(id)sender; - (IBAction)_showCustomBrowserSelection:(id)sender;
@end @end

View File

@@ -42,14 +42,16 @@
} }
#pragma mark Actions #pragma mark Actions
- (void)selectBrowser:(id)sender { - (void)_selectBrowser:(id)sender {
NSString *browserBundleId = [sender representedObject]; NSString *browserBundleId = [sender representedObject];
[[NSUserDefaults standardUserDefaults] setObject:browserBundleId forKey:kMPSettingsKeyBrowserBundleId]; if(browserBundleId) {
[[NSUserDefaults standardUserDefaults] synchronize]; [[NSUserDefaults standardUserDefaults] setObject:browserBundleId forKey:kMPSettingsKeyBrowserBundleId];
[[NSUserDefaults standardUserDefaults] synchronize];
}
[self _updateBrowserSelection]; [self _updateBrowserSelection];
} }
- (void)showCustomBrowserSelection:(id)sender { - (void)_showCustomBrowserSelection:(id)sender {
NSOpenPanel *openPanel = [NSOpenPanel openPanel]; NSOpenPanel *openPanel = [NSOpenPanel openPanel];
NSURL *applicationURL = [[NSFileManager defaultManager] URLsForDirectory:NSApplicationDirectory inDomains:NSSystemDomainMask][0]; NSURL *applicationURL = [[NSFileManager defaultManager] URLsForDirectory:NSApplicationDirectory inDomains:NSSystemDomainMask][0];
[openPanel setDirectoryURL:applicationURL]; [openPanel setDirectoryURL:applicationURL];
@@ -62,7 +64,11 @@
if(result == NSFileHandlingPanelOKButton) { if(result == NSFileHandlingPanelOKButton) {
NSMenuItem *customBrowser = [[NSMenuItem alloc] init]; NSMenuItem *customBrowser = [[NSMenuItem alloc] init];
[customBrowser setRepresentedObject:[[NSBundle bundleWithPath:[[openPanel URL] path]] bundleIdentifier]]; [customBrowser setRepresentedObject:[[NSBundle bundleWithPath:[[openPanel URL] path]] bundleIdentifier]];
[self selectBrowser:customBrowser]; [self _selectBrowser:customBrowser];
}
else {
/* Reset the selection if the user cancels */
[self _updateBrowserSelection];
} }
}]; }];
} }
@@ -73,7 +79,7 @@
NSMenu *browserMenu = [[NSMenu alloc] init]; NSMenu *browserMenu = [[NSMenu alloc] init];
[self.browserPopup setMenu:browserMenu]; [self.browserPopup setMenu:browserMenu];
NSMenuItem *defaultItem = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"DEFAULT_BROWSER", "Default Browser") action:@selector(selectBrowser:) keyEquivalent:@""]; NSMenuItem *defaultItem = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"DEFAULT_BROWSER", "Default Browser") action:@selector(_selectBrowser:) keyEquivalent:@""];
[defaultItem setRepresentedObject:nil]; [defaultItem setRepresentedObject:nil];
[defaultItem setTarget:self]; [defaultItem setTarget:self];
[browserMenu addItem:defaultItem]; [browserMenu addItem:defaultItem];
@@ -89,7 +95,7 @@
if(nil == bundlePath || nil == browserName) { if(nil == bundlePath || nil == browserName) {
continue; // Skip missing Applications continue; // Skip missing Applications
} }
NSMenuItem *browserItem = [[NSMenuItem alloc] initWithTitle:browserName action:@selector(selectBrowser:) keyEquivalent:@""]; NSMenuItem *browserItem = [[NSMenuItem alloc] initWithTitle:browserName action:@selector(_selectBrowser:) keyEquivalent:@""];
[browserItem setRepresentedObject:bundleIdentifier]; [browserItem setRepresentedObject:bundleIdentifier];
[browserItem setTarget:self]; [browserItem setTarget:self];
[browserMenu addItem:browserItem]; [browserMenu addItem:browserItem];
@@ -107,7 +113,7 @@
NSString *bundlePath = [[NSWorkspace sharedWorkspace] absolutePathForAppBundleWithIdentifier:currentDefaultBrowser]; NSString *bundlePath = [[NSWorkspace sharedWorkspace] absolutePathForAppBundleWithIdentifier:currentDefaultBrowser];
if (bundlePath != nil) { if (bundlePath != nil) {
NSString *browserName = [[NSFileManager defaultManager] displayNameAtPath:bundlePath]; NSString *browserName = [[NSFileManager defaultManager] displayNameAtPath:bundlePath];
NSMenuItem *browserItem = [[NSMenuItem alloc] initWithTitle:browserName action:@selector(selectBrowser:) keyEquivalent:@""]; NSMenuItem *browserItem = [[NSMenuItem alloc] initWithTitle:browserName action:@selector(_selectBrowser:) keyEquivalent:@""];
[browserItem setRepresentedObject:currentDefaultBrowser]; [browserItem setRepresentedObject:currentDefaultBrowser];
[browserItem setTarget:self]; [browserItem setTarget:self];
[browserMenu addItem:browserItem]; [browserMenu addItem:browserItem];
@@ -117,7 +123,7 @@
} }
NSMenuItem *selectOtherBrowserItem = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"OTHER_BROWSER", "Select Browser") NSMenuItem *selectOtherBrowserItem = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"OTHER_BROWSER", "Select Browser")
action:@selector(showCustomBrowserSelection:) action:@selector(_showCustomBrowserSelection:)
keyEquivalent:@""]; keyEquivalent:@""];
[selectOtherBrowserItem setTarget:self]; [selectOtherBrowserItem setTarget:self];