From 6f6b75b664e7805cb14c6dd1728af721ccbb6961 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E5=AE=87=E8=88=AA?= Date: Fri, 14 Jul 2017 08:55:20 +0800 Subject: [PATCH] Rerange menu items TODO finish the table view of subscribe management Especially the bind profile thing --- ShadowsocksX-NG/AppDelegate.swift | 21 +++++++++++++- ShadowsocksX-NG/Base.lproj/MainMenu.xib | 29 ++++++++++++++----- ShadowsocksX-NG/SubscribeManager.swift | 6 ++-- .../SubscribePreferenceWindowController.swift | 16 +++++++++- .../zh-Hans.lproj/MainMenu.strings | 7 +++++ 5 files changed, 67 insertions(+), 12 deletions(-) diff --git a/ShadowsocksX-NG/AppDelegate.swift b/ShadowsocksX-NG/AppDelegate.swift index 4b440f1..79b625d 100644 --- a/ShadowsocksX-NG/AppDelegate.swift +++ b/ShadowsocksX-NG/AppDelegate.swift @@ -52,6 +52,9 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele @IBOutlet weak var ShowNetworkSpeedItem: NSMenuItem! @IBOutlet weak var checkUpdateMenuItem: NSMenuItem! @IBOutlet weak var checkUpdateAtLaunchMenuItem: NSMenuItem! + @IBOutlet var updateSubscribeAtLaunchMenuItem: NSMenuItem! + @IBOutlet var manualUpdateSubscribeMenuItem: NSMenuItem! + @IBOutlet var editSubscribeMenuItem: NSMenuItem! // MARK: Variables var statusItemView:StatusItemView! @@ -92,7 +95,8 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele "LocalHTTP.FollowGlobal": true, "AutoCheckUpdate": false, "ACLFileName": "chn.acl", - "SubscribeFeed": "" + "Subscribes": [], + "AutoUpdateSubscribe":false, ]) setUpMenu(defaults.bool(forKey: "enable_showSpeed")) @@ -360,6 +364,15 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele ServerProfileManager.instance.exportConfigFile() } + @IBAction func updateSubscribe(_ sender: NSMenuItem) { + } + + @IBAction func updateSubscribeAtLaunch(_ sender: NSMenuItem) { + } + + + // MARK: Proxy submenu function + @IBAction func selectPACMode(_ sender: NSMenuItem) { let defaults = UserDefaults.standard defaults.setValue("auto", forKey: "ShadowsocksRunningMode") @@ -635,6 +648,9 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele let showBunch = showBunchJsonExampleFileItem let importBuntch = importBunchJsonFileItem let exportAllServer = exportAllServerProfileItem + let updateSubscribeItem = manualUpdateSubscribeMenuItem + let autoUpdateSubscribeItem = updateSubscribeAtLaunchMenuItem + let editSubscribeItem = editSubscribeMenuItem // let pingItem = pingserverMenuItem var i = 0 @@ -690,6 +706,9 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele if !mgr.profiles.isEmpty { serversMenuItem.submenu?.addItem(NSMenuItem.separator()) } + serversMenuItem.submenu?.addItem(editSubscribeItem!) + serversMenuItem.submenu?.addItem(autoUpdateSubscribeItem!) + serversMenuItem.submenu?.addItem(updateSubscribeItem!) serversMenuItem.submenu?.addItem(showQRItem!) serversMenuItem.submenu?.addItem(scanQRItem!) serversMenuItem.submenu?.addItem(showBunch!) diff --git a/ShadowsocksX-NG/Base.lproj/MainMenu.xib b/ShadowsocksX-NG/Base.lproj/MainMenu.xib index 60a27c4..c07b020 100644 --- a/ShadowsocksX-NG/Base.lproj/MainMenu.xib +++ b/ShadowsocksX-NG/Base.lproj/MainMenu.xib @@ -1,5 +1,5 @@ - + @@ -23,11 +23,13 @@ + + @@ -38,6 +40,7 @@ + @@ -119,12 +122,6 @@ - - - - - - @@ -140,6 +137,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/ShadowsocksX-NG/SubscribeManager.swift b/ShadowsocksX-NG/SubscribeManager.swift index 94386b9..80b2d9a 100644 --- a/ShadowsocksX-NG/SubscribeManager.swift +++ b/ShadowsocksX-NG/SubscribeManager.swift @@ -15,11 +15,11 @@ class SubscribeManager:NSObject{ let defaults = UserDefaults.standard fileprivate override init() { - subscribes = defaults.array(forKey: "Subscribe") as! [Subscribe] + subscribes = defaults.array(forKey: "Subscribes") as! [Subscribe] } func addSubscribe(oneSubscribe: Subscribe) -> Bool { subscribes.append(oneSubscribe) - defaults.set(subscribes, forKey: "Subscribe") + defaults.set(subscribes, forKey: "Subscribes") return true } func deleteSubscribe(toDeleteSubscribe: Subscribe) -> Bool { @@ -28,7 +28,7 @@ class SubscribeManager:NSObject{ subscribes.remove(at: index) } }) - defaults.set(subscribes, forKey: "Subscribe") + defaults.set(subscribes, forKey: "Subscribes") return true } func updateAllServerFromSubscribe(){ diff --git a/ShadowsocksX-NG/SubscribePreferenceWindowController.swift b/ShadowsocksX-NG/SubscribePreferenceWindowController.swift index 48e53e8..6de3f0b 100644 --- a/ShadowsocksX-NG/SubscribePreferenceWindowController.swift +++ b/ShadowsocksX-NG/SubscribePreferenceWindowController.swift @@ -18,16 +18,30 @@ class SubscribePreferenceWindowController: NSWindowController { @IBOutlet weak var GroupTextField: NSTextField! @IBOutlet weak var MaxCountTextField: NSTextField! + var sbMgr: SubscribeManager! + var defaults: UserDefaults! + override func windowDidLoad() { super.windowDidLoad() // Implement this method to handle any initialization after your window controller's window has been loaded from its nib file. // TODO load stored subscribes and prepare the manager + sbMgr = SubscribeManager.instance + defaults = UserDefaults.standard + } + + override func awakeFromNib() { +// profilesTableView.register(forDraggedTypes: [tableViewDragType]) +// profilesTableView.allowsMultipleSelection = true } @IBAction func onOk(_ sender: NSButton) { // TODO append to manager and save - var subscribe = Subscribe.init(initUrlString: FeedTextField.stringValue, initGroupName: GroupTextField.stringValue, initToken: TokenTextField.stringValue, initMaxCount: MaxCountTextField.integerValue) + let subscribe = Subscribe.init(initUrlString: FeedTextField.stringValue, initGroupName: GroupTextField.stringValue, initToken: TokenTextField.stringValue, initMaxCount: MaxCountTextField.integerValue) + if subscribe.feedValidator() { + _ = sbMgr.addSubscribe(oneSubscribe: subscribe) + } + subscribe.updateServerFromFeed() window?.performClose(self) } diff --git a/ShadowsocksX-NG/zh-Hans.lproj/MainMenu.strings b/ShadowsocksX-NG/zh-Hans.lproj/MainMenu.strings index eea6bfc..49b4f4d 100644 --- a/ShadowsocksX-NG/zh-Hans.lproj/MainMenu.strings +++ b/ShadowsocksX-NG/zh-Hans.lproj/MainMenu.strings @@ -113,3 +113,10 @@ "sDG-YV-yuQ.title" = "ACL自动"; +"NnE-Ad-1An.title" = "手动更新订阅"; + +"nQ4-Nv-tox.title" = "打开时自动更新订阅"; + +"QJ6-eg-mzv.title" = "编辑订阅"; + +