From 2cd766cc6bd31dc2eedf777466c4f9a87c05b60a Mon Sep 17 00:00:00 2001 From: clowwindy Date: Thu, 10 Jul 2014 10:22:57 +0800 Subject: [PATCH] remove unused comments; remember running mode when switched off, remove alert which sucks --- ShadowWeb/zh-Hans.lproj/Localizable.strings | 4 +- ShadowsocksX/SWBAppDelegate.m | 99 +++++++++----------- ShadowsocksX/menu_icon_global.png | Bin 3031 -> 0 bytes shadowsocks_sysconf/main.m | 19 +--- 4 files changed, 50 insertions(+), 72 deletions(-) delete mode 100644 ShadowsocksX/menu_icon_global.png diff --git a/ShadowWeb/zh-Hans.lproj/Localizable.strings b/ShadowWeb/zh-Hans.lproj/Localizable.strings index b3f6abc..e0b1c60 100644 --- a/ShadowWeb/zh-Hans.lproj/Localizable.strings +++ b/ShadowWeb/zh-Hans.lproj/Localizable.strings @@ -45,9 +45,11 @@ "Shadowsocks: Off" = "Shadowsocks: 关闭"; "Turn Shadowsocks On" = "打开 Shadowsocks"; "Turn Shadowsocks Off" = "关闭 Shadowsocks"; +"Auto Proxy Mode" = "自动代理模式"; +"Global Mode" = "全局模式"; "Open Server Preferences..." = "打开服务器设定..."; "Please fill in the blanks." = "请填写以下内容。"; "Show Logs..." = "显示日志..."; -"Edit PAC..." = "编辑 PAC..."; +"Edit PAC for Auto Proxy Mode..." = "编辑自动模式的 PAC..."; "Quit" = "退出"; "https://github.com/shadowsocks/shadowsocks-iOS/wiki/Shadowsocks-for-OSX-Help" = "https://github.com/shadowsocks/shadowsocks-iOS/wiki/Shadowsocks-for-OSX-%E5%B8%AE%E5%8A%A9"; \ No newline at end of file diff --git a/ShadowsocksX/SWBAppDelegate.m b/ShadowsocksX/SWBAppDelegate.m index 6c0b83c..41e7d01 100644 --- a/ShadowsocksX/SWBAppDelegate.m +++ b/ShadowsocksX/SWBAppDelegate.m @@ -13,6 +13,7 @@ #import "ShadowsocksRunner.h" #define kShadowsocksIsRunningKey @"ShadowsocksIsRunning" +#define kShadowsocksRunningModeKey @"ShadowsocksMode" #define kShadowsocksHelper @"/Library/Application Support/ShadowsocksX/shadowsocks_sysconf" #define kSysconfVersion @"1.0.0" @@ -58,11 +59,11 @@ static SWBAppDelegate *appDelegate; statusMenuItem = [[NSMenuItem alloc] initWithTitle:_L(Shadowsocks Off) action:nil keyEquivalent:@""]; - enableMenuItem = [[NSMenuItem alloc] initWithTitle:_L(Turn Shadowsocks Off) action:@selector(enableProxy) keyEquivalent:@""]; + enableMenuItem = [[NSMenuItem alloc] initWithTitle:_L(Turn Shadowsocks Off) action:@selector(toggleRunning) keyEquivalent:@""]; // [statusMenuItem setEnabled:NO]; - autoMenuItem = [[NSMenuItem alloc] initWithTitle:_L(Use Shadowsocks Auto Proxy Mode) action:@selector(enableAutoProxy) keyEquivalent:@""]; + autoMenuItem = [[NSMenuItem alloc] initWithTitle:_L(Auto Proxy Mode) action:@selector(enableAutoProxy) keyEquivalent:@""]; // [enableMenuItem setState:1]; - globalMenuItem = [[NSMenuItem alloc] initWithTitle:_L(Use Shadowsocks Global Mode) action:@selector(enableGlobal) + globalMenuItem = [[NSMenuItem alloc] initWithTitle:_L(Global Mode) action:@selector(enableGlobal) keyEquivalent:@""]; [menu addItem:statusMenuItem]; @@ -73,7 +74,7 @@ static SWBAppDelegate *appDelegate; [menu addItem:[NSMenuItem separatorItem]]; [menu addItemWithTitle:_L(Open Server Preferences...) action:@selector(showConfigWindow) keyEquivalent:@""]; - [menu addItemWithTitle:_L(Edit PAC...) action:@selector(editPAC) keyEquivalent:@""]; + [menu addItemWithTitle:_L(Edit PAC for Auto Proxy Mode...) action:@selector(editPAC) keyEquivalent:@""]; [menu addItemWithTitle:_L(Show Logs...) action:@selector(showLogs) keyEquivalent:@""]; [menu addItemWithTitle:_L(Help) action:@selector(showHelp) keyEquivalent:@""]; [menu addItem:[NSMenuItem separatorItem]]; @@ -100,60 +101,39 @@ static SWBAppDelegate *appDelegate; } } -- (void)enableProxy { - if (isRunning) { - runningMode = @"off"; - } else { - runningMode = @"auto"; - } - isRunning = !isRunning; - - [self toggleSystemProxy:runningMode]; - [[NSUserDefaults standardUserDefaults] setObject:runningMode forKey:kShadowsocksIsRunningKey]; - [self updateMenu]; -} - - (void)enableAutoProxy { - isRunning = YES; runningMode = @"auto"; - [self toggleSystemProxy:@"auto"]; - [[NSUserDefaults standardUserDefaults] setValue:runningMode forKey:kShadowsocksIsRunningKey]; + [[NSUserDefaults standardUserDefaults] setValue:runningMode forKey:kShadowsocksRunningModeKey]; [self updateMenu]; + [self reloadSystemProxy]; } - (void)enableGlobal { - isRunning = YES; runningMode = @"global"; - [self toggleSystemProxy:@"global"]; - [[NSUserDefaults standardUserDefaults] setValue:runningMode forKey:kShadowsocksIsRunningKey]; + [[NSUserDefaults standardUserDefaults] setValue:runningMode forKey:kShadowsocksRunningModeKey]; [self updateMenu]; + [self reloadSystemProxy]; } - (void)updateMenu { - if (isRunning) { statusMenuItem.title = _L(Shadowsocks: On); enableMenuItem.title = _L(Turn Shadowsocks Off); - - if ([runningMode isEqualToString:@"auto"]) { - self.item.image = [NSImage imageNamed:@"menu_icon"]; - [autoMenuItem setState:1]; - [globalMenuItem setState:0]; - } else { - self.item.image = [NSImage imageNamed:@"menu_icon_global"]; - [autoMenuItem setState:0]; - [globalMenuItem setState:1]; - } - + self.item.image = [NSImage imageNamed:@"menu_icon"]; } else { statusMenuItem.title = _L(Shadowsocks: Off); enableMenuItem.title = _L(Turn Shadowsocks On); - [autoMenuItem setState: 0]; - [globalMenuItem setState: 0]; self.item.image = [NSImage imageNamed:@"menu_icon_disabled"]; -// [enableMenuItem setState:0]; } + if ([runningMode isEqualToString:@"auto"]) { + [autoMenuItem setState:1]; + [globalMenuItem setState:0]; + } else if([runningMode isEqualToString:@"global"]) { + [autoMenuItem setState:0]; + [globalMenuItem setState:1]; + } + } void onPACChange( @@ -164,13 +144,13 @@ void onPACChange( const FSEventStreamEventFlags eventFlags[], const FSEventStreamEventId eventIds[]) { - [appDelegate reloadPAC]; + [appDelegate reloadSystemProxy]; } -- (void)reloadPAC { +- (void)reloadSystemProxy { if (isRunning) { - [self toggleSystemProxy:@"off"]; - [self toggleSystemProxy:runningMode]; + [self toggleSystemProxy:NO]; + [self toggleSystemProxy:YES]; } } @@ -227,7 +207,7 @@ void onPACChange( - (void)applicationWillTerminate:(NSNotification *)notification { NSLog(@"terminating"); if (isRunning) { - [self toggleSystemProxy:@"off"]; + [self toggleSystemProxy:NO]; } } @@ -287,10 +267,6 @@ void onPACChange( str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; if (![str isEqualToString:kSysconfVersion]) { - NSAlert *alert = [[NSAlert alloc] init]; - [alert addButtonWithTitle:@"OK"]; - [alert setMessageText:@"shadowsocks helper need to be updated"]; - [alert runModal]; return NO; } return YES; @@ -307,23 +283,38 @@ void onPACChange( [self updateMenu]; } -- (void)toggleSystemProxy:(NSString*)mode { - isRunning = ([mode isEqualToString:@"auto"] || [mode isEqualToString:@"global"]); +- (void)toggleRunning { + [self toggleSystemProxy:!isRunning]; + [[NSUserDefaults standardUserDefaults] setBool:isRunning forKey:kShadowsocksIsRunningKey]; + [self updateMenu]; +} + +- (NSString *)runningMode { + NSString *mode = [[NSUserDefaults standardUserDefaults] stringForKey:kShadowsocksRunningModeKey]; + if (mode) { + return mode; + } + return @"auto"; +} + +- (void)toggleSystemProxy:(BOOL)useProxy { + isRunning = useProxy; NSTask *task; task = [[NSTask alloc] init]; [task setLaunchPath:kShadowsocksHelper]; - /* + NSString *param; if (useProxy) { - param = @"on"; + param = [self runningMode]; } else { param = @"off"; - }*/ + } + // this log is very important + NSLog(@"run shadowsocks helper: %@", kShadowsocksHelper); NSArray *arguments; - //NSLog(@"run shadowsocks helper: %@", kShadowsocksHelper); - arguments = [NSArray arrayWithObjects:mode, nil]; + arguments = [NSArray arrayWithObjects:param, nil]; [task setArguments:arguments]; NSPipe *stdoutpipe; diff --git a/ShadowsocksX/menu_icon_global.png b/ShadowsocksX/menu_icon_global.png deleted file mode 100644 index c4a7919fd987f38827d69457206fc77c9c3de1a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3031 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