diff --git a/ShadowsocksX-NG/AppDelegate.swift b/ShadowsocksX-NG/AppDelegate.swift index 6d671b1..631d071 100644 --- a/ShadowsocksX-NG/AppDelegate.swift +++ b/ShadowsocksX-NG/AppDelegate.swift @@ -43,6 +43,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele @IBOutlet var serversPreferencesMenuItem: NSMenuItem! @IBOutlet weak var lanchAtLoginMenuItem: NSMenuItem! + @IBOutlet weak var connectAtLaunchMenuItem: NSMenuItem! @IBOutlet weak var ShowNetworkSpeedItem: NSMenuItem! var statusItemView:StatusItemView! @@ -189,6 +190,10 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele ProxyConfHelper.install() applyConfig() SyncSSLocal() + + if defaults.boolForKey("ConnectAtLaunch") { + toggleRunning(toggleRunningMenuItem) + } } @@ -200,8 +205,6 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele let defaults = NSUserDefaults.standardUserDefaults() defaults.setBool(false, forKey: "ShadowsocksOn") ProxyConfHelper.stopPACServer() - - } func applyConfig() { @@ -323,6 +326,12 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele updateLaunchAtLoginMenu() } + @IBAction func toggleConnectAtLaunch(sender: NSMenuItem) { + let defaults = NSUserDefaults.standardUserDefaults() + defaults.setBool(!defaults.boolForKey("ConnectAtLaunch"), forKey: "ConnectAtLaunch") + updateMainMenu() + } + @IBAction func selectPACMode(sender: NSMenuItem) { let defaults = NSUserDefaults.standardUserDefaults() defaults.setValue("auto", forKey: "ShadowsocksRunningMode") @@ -529,12 +538,18 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele // statusItem.image = image statusItemView.setIcon(image!) } - let showSpeed = defaults.boolForKey("enable_showSpeed") - if showSpeed{ + + if defaults.boolForKey("enable_showSpeed") { ShowNetworkSpeedItem.state = 1 }else{ ShowNetworkSpeedItem.state = 0 } + + if defaults.boolForKey("ConnectAtLaunch") { + connectAtLaunchMenuItem.state = 1 + } else { + connectAtLaunchMenuItem.state = 0 + } } func updateServersMenu() { diff --git a/ShadowsocksX-NG/Base.lproj/MainMenu.xib b/ShadowsocksX-NG/Base.lproj/MainMenu.xib index 32fca15..774a914 100644 --- a/ShadowsocksX-NG/Base.lproj/MainMenu.xib +++ b/ShadowsocksX-NG/Base.lproj/MainMenu.xib @@ -16,6 +16,7 @@ + @@ -187,6 +188,12 @@ + + + + + + diff --git a/ShadowsocksX-NG/Base.lproj/PreferencesWindowController.xib b/ShadowsocksX-NG/Base.lproj/PreferencesWindowController.xib index a0b9885..449da60 100644 --- a/ShadowsocksX-NG/Base.lproj/PreferencesWindowController.xib +++ b/ShadowsocksX-NG/Base.lproj/PreferencesWindowController.xib @@ -1,5 +1,5 @@ - + diff --git a/ShadowsocksX-NG/zh-Hans.lproj/MainMenu.strings b/ShadowsocksX-NG/zh-Hans.lproj/MainMenu.strings index 5742d13..119a3e6 100644 --- a/ShadowsocksX-NG/zh-Hans.lproj/MainMenu.strings +++ b/ShadowsocksX-NG/zh-Hans.lproj/MainMenu.strings @@ -95,4 +95,5 @@ /* Class = "NSMenuItem"; title = "Show network speed"; ObjectID = "a3h-uQ-DuO"; */ "a3h-uQ-DuO.title" = "显示网速"; - +/* Class = "NSMenuItem"; title = "Connect At Launch"; ObjectID = "aB3-cf-5j0"; */ +"aB3-cf-5j0.title" = "打开时自动连接";