From 4e255921b53ccd6d18222551612022a8ac19e9f1 Mon Sep 17 00:00:00 2001 From: qinyuhang Date: Fri, 26 Aug 2016 13:32:05 +0800 Subject: [PATCH] add menu button add menu button --- ShadowsocksX-NG.xcodeproj/project.pbxproj | 4 ++++ ShadowsocksX-NG/AppDelegate.swift | 12 ++++++++++++ ShadowsocksX-NG/Base.lproj/MainMenu.xib | 23 ++++++++++++++++++++++- ShadowsocksX-NG/BunchImportUtils.swift | 11 +++++++++++ 4 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 ShadowsocksX-NG/BunchImportUtils.swift diff --git a/ShadowsocksX-NG.xcodeproj/project.pbxproj b/ShadowsocksX-NG.xcodeproj/project.pbxproj index 3e66288..bb3f38a 100644 --- a/ShadowsocksX-NG.xcodeproj/project.pbxproj +++ b/ShadowsocksX-NG.xcodeproj/project.pbxproj @@ -8,6 +8,7 @@ /* Begin PBXBuildFile section */ 0880CE401D6FE6D900BD39E2 /* example-gui-config.json in Resources */ = {isa = PBXBuildFile; fileRef = 0880CE3F1D6FE6D900BD39E2 /* example-gui-config.json */; }; + 0880CE421D6FF7F600BD39E2 /* BunchImportUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0880CE411D6FF7F600BD39E2 /* BunchImportUtils.swift */; }; 088EC3971D5F5B8600E40791 /* whitelist.pac in Resources */ = {isa = PBXBuildFile; fileRef = 088EC3961D5F5B8600E40791 /* whitelist.pac */; }; 088EC3991D5F5BA300E40791 /* whiteiplist.pac in Resources */ = {isa = PBXBuildFile; fileRef = 088EC3981D5F5BA300E40791 /* whiteiplist.pac */; }; 258E511BA910B0521B24DAB8 /* Pods_ShadowsocksX_NG.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 283ED1A8E9B711AC65670031 /* Pods_ShadowsocksX_NG.framework */; }; @@ -92,6 +93,7 @@ /* Begin PBXFileReference section */ 0880CE3F1D6FE6D900BD39E2 /* example-gui-config.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "example-gui-config.json"; sourceTree = ""; }; + 0880CE411D6FF7F600BD39E2 /* BunchImportUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BunchImportUtils.swift; sourceTree = ""; }; 088EC3961D5F5B8600E40791 /* whitelist.pac */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = whitelist.pac; sourceTree = ""; }; 088EC3981D5F5BA300E40791 /* whiteiplist.pac */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = whiteiplist.pac; sourceTree = ""; }; 08AF56C01D6AFA7C00DC4F46 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/PreferencesWindowController.strings"; sourceTree = ""; }; @@ -287,6 +289,7 @@ 9BEEF06F1D04DDB100FC52B3 /* ServerProfileManager.swift */, 9BEEF0771D04FE8A00FC52B3 /* LaunchAgentUtils.swift */, 9B3FFF0C1D05FEB30019A709 /* Utils.swift */, + 0880CE411D6FF7F600BD39E2 /* BunchImportUtils.swift */, 9B3FFF201D08826E0019A709 /* PACUtils.swift */, 9B3FFF131D0705810019A709 /* Notifications.swift */, 9B3FFF1D1D0732660019A709 /* Utils.m */, @@ -642,6 +645,7 @@ 9BEEF06E1D04DCE400FC52B3 /* ServerProfile.swift in Sources */, 9B3FFF0D1D05FEB30019A709 /* Utils.swift in Sources */, 9BEEF0751D04EF3E00FC52B3 /* PreferencesWindowController.swift in Sources */, + 0880CE421D6FF7F600BD39E2 /* BunchImportUtils.swift in Sources */, 9B0BFFE91D0460A70040E62B /* AppDelegate.swift in Sources */, 9BA04B231D23D5A5005AAD7F /* ProxyConfTool.m in Sources */, 9BEEF0781D04FE8A00FC52B3 /* LaunchAgentUtils.swift in Sources */, diff --git a/ShadowsocksX-NG/AppDelegate.swift b/ShadowsocksX-NG/AppDelegate.swift index d5d0e2a..00934b8 100644 --- a/ShadowsocksX-NG/AppDelegate.swift +++ b/ShadowsocksX-NG/AppDelegate.swift @@ -36,6 +36,9 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele @IBOutlet weak var serversMenuItem: NSMenuItem! @IBOutlet var showQRCodeMenuItem: NSMenuItem! @IBOutlet var scanQRCodeMenuItem: NSMenuItem! + @IBOutlet var showBunchJsonExampleFile: NSMenuItem! + @IBOutlet var importBunchJsonFile: NSMenuItem! + @IBOutlet weak var exportAllServerProfile: NSMenuItem! @IBOutlet var serversPreferencesMenuItem: NSMenuItem! @IBOutlet weak var lanchAtLoginMenuItem: NSMenuItem! @@ -257,6 +260,15 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele @IBAction func scanQRCodeFromScreen(sender: NSMenuItem) { ScanQRCodeOnScreen() } + + @IBAction func showBunchJsonExampleFile(sender: NSMenuItem) { + } + + @IBAction func importBunchJsonFile(sender: NSMenuItem) { + } + + @IBAction func exportAllServerProfile(sender: NSMenuItem) { + } @IBAction func toggleLaunghAtLogin(sender: NSMenuItem) { launchAtLoginController.launchAtLogin = !launchAtLoginController.launchAtLogin; diff --git a/ShadowsocksX-NG/Base.lproj/MainMenu.xib b/ShadowsocksX-NG/Base.lproj/MainMenu.xib index 071f5f7..90cfb70 100644 --- a/ShadowsocksX-NG/Base.lproj/MainMenu.xib +++ b/ShadowsocksX-NG/Base.lproj/MainMenu.xib @@ -15,7 +15,9 @@ + + @@ -23,6 +25,7 @@ + @@ -124,12 +127,30 @@ - + + + + + + + + + + + + + + + + + + + diff --git a/ShadowsocksX-NG/BunchImportUtils.swift b/ShadowsocksX-NG/BunchImportUtils.swift new file mode 100644 index 0000000..f8dbe0c --- /dev/null +++ b/ShadowsocksX-NG/BunchImportUtils.swift @@ -0,0 +1,11 @@ +// +// BunchImportUtils.swift +// ShadowsocksX-NG +// +// Created by 秦宇航 on 16/8/26. +// Copyright © 2016年 qiuyuzhou. All rights reserved. +// + +import Foundation +//Todo: function 1 showExampleFile, 调用fileManager 拷贝 json 到Downloads文件夹,然后打开Downloads文件夹 +// function 2 ImportJsonFile, 调用fileManager,读取json文件,对configs for循环调用 profileManager 生成 profile并保存 \ No newline at end of file