diff --git a/ShadowsocksX-NG/AppDelegate.swift b/ShadowsocksX-NG/AppDelegate.swift index 059671a..a90f763 100755 --- a/ShadowsocksX-NG/AppDelegate.swift +++ b/ShadowsocksX-NG/AppDelegate.swift @@ -32,10 +32,8 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele @IBOutlet weak var serversMenuItem: NSMenuItem! @IBOutlet var showQRCodeMenuItem: NSMenuItem! @IBOutlet var scanQRCodeMenuItem: NSMenuItem! - @IBOutlet var showBunchJsonExampleFileItem: NSMenuItem! - @IBOutlet var importBunchJsonFileItem: NSMenuItem! - @IBOutlet var exportAllServerProfileItem: NSMenuItem! - @IBOutlet var serversPreferencesMenuItem: NSMenuItem! + @IBOutlet var serverProfilesBeginSeparatorMenuItem: NSMenuItem! + @IBOutlet var serverProfilesEndSeparatorMenuItem: NSMenuItem! @IBOutlet weak var copyHttpProxyExportCmdLineMenuItem: NSMenuItem! @@ -478,39 +476,33 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele } func updateServersMenu() { + guard let menu = serversMenuItem.submenu else { return } + let mgr = ServerProfileManager.instance - serversMenuItem.submenu?.removeAllItems() - 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 profiles = mgr.profiles + + // Remove all profile menu items + let beginIndex = menu.index(of: serverProfilesBeginSeparatorMenuItem) + 1 + let endIndex = menu.index(of: serverProfilesEndSeparatorMenuItem) + // Remove from end to begin, so the index won't change :) + for index in (beginIndex.. - + - + @@ -16,15 +16,13 @@ - - + + - - @@ -73,6 +71,7 @@ +