diff --git a/ShadowsocksX-NG.xcodeproj/project.pbxproj b/ShadowsocksX-NG.xcodeproj/project.pbxproj index d04cf9c..9980e9d 100755 --- a/ShadowsocksX-NG.xcodeproj/project.pbxproj +++ b/ShadowsocksX-NG.xcodeproj/project.pbxproj @@ -144,7 +144,6 @@ 9B0BFFF41D0460A70040E62B /* ShadowsocksX-NGTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "ShadowsocksX-NGTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 9B0BFFF81D0460A70040E62B /* ShadowsocksX_NGTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShadowsocksX_NGTests.swift; sourceTree = ""; }; 9B0BFFFA1D0460A70040E62B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 9B0D55451D2CC1B800A4A8E2 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/MainMenu.strings"; sourceTree = ""; }; 9B0D554A1D2CC85E00A4A8E2 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/ProxyPreferencesController.strings"; sourceTree = ""; }; 9B0D554B1D2CC87400A4A8E2 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/ProxyPreferencesController.xib; sourceTree = ""; }; 9B172A5D1D0ACEA100B87B9A /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/AdvPreferencesWindowController.strings"; sourceTree = ""; }; @@ -782,7 +781,6 @@ isa = PBXVariantGroup; children = ( 9B0BFFED1D0460A70040E62B /* Base */, - 9B0D55451D2CC1B800A4A8E2 /* zh-Hans */, C6E28E9B1DA79FB9004F8330 /* zh-Hans */, ); name = MainMenu.xib; diff --git a/ShadowsocksX-NG/AppDelegate.swift b/ShadowsocksX-NG/AppDelegate.swift index be0ecf8..277cfa5 100755 --- a/ShadowsocksX-NG/AppDelegate.swift +++ b/ShadowsocksX-NG/AppDelegate.swift @@ -30,7 +30,6 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele @IBOutlet weak var runningStatusMenuItem: NSMenuItem! @IBOutlet weak var toggleRunningMenuItem: NSMenuItem! - @IBOutlet weak var proxyMenuItem: NSMenuItem! @IBOutlet weak var autoModeMenuItem: NSMenuItem! @IBOutlet weak var globalModeMenuItem: NSMenuItem! @IBOutlet weak var manualModeMenuItem: NSMenuItem! @@ -58,6 +57,8 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele let kHudCornerRadius: CGFloat = 18.0 let kHudHorizontalMargin: CGFloat = 30 let kHudHeight: CGFloat = 90.0 + + let kProfileMenuItemIndexBase = 100 var timerToFadeOut: Timer? = nil var fadingOut: Bool = false @@ -438,7 +439,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele } @IBAction func selectServer(_ sender: NSMenuItem) { - let index = sender.tag + let index = sender.tag - kProfileMenuItemIndexBase let spMgr = ServerProfileManager.instance let newProfile = spMgr.profiles[index] if newProfile.uuid != spMgr.activeProfileId { @@ -507,17 +508,14 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele serversMenuItem.title = serverMenuText if mode == "auto" { - proxyMenuItem.title = "Proxy - Auto By PAC".localized autoModeMenuItem.state = 1 globalModeMenuItem.state = 0 manualModeMenuItem.state = 0 } else if mode == "global" { - proxyMenuItem.title = "Proxy - Global".localized autoModeMenuItem.state = 0 globalModeMenuItem.state = 1 manualModeMenuItem.state = 0 } else if mode == "manual" { - proxyMenuItem.title = "Proxy - Manual".localized autoModeMenuItem.state = 0 globalModeMenuItem.state = 0 manualModeMenuItem.state = 1 @@ -564,17 +562,18 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele func updateServersMenu() { let mgr = ServerProfileManager.instance serversMenuItem.submenu?.removeAllItems() - let showQRItem = showQRCodeMenuItem - let scanQRItem = scanQRCodeMenuItem let preferencesItem = serversPreferencesMenuItem let showBunch = showBunchJsonExampleFileItem let importBuntch = importBunchJsonFileItem let exportAllServer = exportAllServerProfileItem + serversMenuItem.submenu?.addItem(preferencesItem!) + serversMenuItem.submenu?.addItem(NSMenuItem.separator()) + var i = 0 for p in mgr.profiles { let item = NSMenuItem() - item.tag = i + item.tag = i + kProfileMenuItemIndexBase if p.remark.isEmpty { item.title = "\(p.serverHost):\(p.serverPort)" } else { @@ -594,13 +593,10 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele if !mgr.profiles.isEmpty { serversMenuItem.submenu?.addItem(NSMenuItem.separator()) } - serversMenuItem.submenu?.addItem(showQRItem!) - serversMenuItem.submenu?.addItem(scanQRItem!) + serversMenuItem.submenu?.addItem(showBunch!) serversMenuItem.submenu?.addItem(importBuntch!) serversMenuItem.submenu?.addItem(exportAllServer!) - serversMenuItem.submenu?.addItem(NSMenuItem.separator()) - serversMenuItem.submenu?.addItem(preferencesItem!) } func handleURLEvent(_ event: NSAppleEventDescriptor, withReplyEvent replyEvent: NSAppleEventDescriptor) { diff --git a/ShadowsocksX-NG/Base.lproj/MainMenu.xib b/ShadowsocksX-NG/Base.lproj/MainMenu.xib index e8f315c..520d361 100755 --- a/ShadowsocksX-NG/Base.lproj/MainMenu.xib +++ b/ShadowsocksX-NG/Base.lproj/MainMenu.xib @@ -1,8 +1,8 @@ - + - + @@ -18,13 +18,12 @@ - - + + - @@ -49,73 +48,39 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - + - - - - - - - + + @@ -134,34 +99,74 @@ - - + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - diff --git a/ShadowsocksX-NG/zh-Hans.lproj/MainMenu.strings b/ShadowsocksX-NG/zh-Hans.lproj/MainMenu.strings index 655994d..bd40c2f 100644 --- a/ShadowsocksX-NG/zh-Hans.lproj/MainMenu.strings +++ b/ShadowsocksX-NG/zh-Hans.lproj/MainMenu.strings @@ -41,7 +41,7 @@ /* Class = "NSMenu"; title = "代理"; ObjectID = "YZp-bf-L40"; */ "YZp-bf-L40.title" = "代理"; -/* Class = "NSMenuItem"; title = "高级设置..."; ObjectID = "bZ3-fy-34d"; */ +/* Class = "NSMenuItem"; title = "Advanced Preferences ..."; ObjectID = "bZ3-fy-34d"; */ "bZ3-fy-34d.title" = "高级设置..."; /* Class = "NSMenuItem"; title = "代理"; ObjectID = "diI-fB-Rss"; */ @@ -59,8 +59,8 @@ /* Class = "NSMenuItem"; title = "编辑PAC用户自定规则..."; ObjectID = "rms-p0-CvB"; */ "rms-p0-CvB.title" = "编辑PAC用户自定规则..."; -/* Class = "NSMenuItem"; title = "高级设置..."; ObjectID = "sbx-yz-3lO"; */ -"sbx-yz-3lO.title" = "高级设置..."; +/* Class = "NSMenuItem"; title = "Advanced PAC Proxy Preferences..."; ObjectID = "sbx-yz-3lO"; */ +"sbx-yz-3lO.title" = "高级PAC代理设置..."; /* Class = "NSMenuItem"; title = "服务器"; ObjectID = "u5M-hQ-VSc"; */ "u5M-hQ-VSc.title" = "服务器"; @@ -88,3 +88,8 @@ /* Class = "NSMenuItem"; title = "Export All Server To Json..."; ObjectID = "6k0-gn-DQv"; */ "6k0-gn-DQv.title" = "导出全部服务器配置..."; + +/* Class = "NSMenuItem"; title = "Preferences"; ObjectID = "iVn-LD-Ynd"; */ +"iVn-LD-Ynd.title" = "偏好设置"; + +