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 @@
+