All in one preferences window.

This commit is contained in:
Qiu Yuzhou
2017-03-17 23:11:12 +08:00
parent 24836d203a
commit fd0971d88d
29 changed files with 932 additions and 1486 deletions

View File

@ -0,0 +1,72 @@
//
// ProxyInterfacesTableViewCtrl.swift
// ShadowsocksX-NG
//
// Created by on 2017/3/17.
// Copyright © 2017 qiuyuzhou. All rights reserved.
//
import Cocoa
import RxCocoa
import RxSwift
class ProxyInterfacesViewCtrl: NSViewController, NSTableViewDataSource, NSTableViewDelegate {
var networkServices: NSArray!
var selectedNetworkServices: NSMutableSet!
@IBOutlet weak var tableView: NSTableView!
@IBOutlet weak var autoConfigCheckBox: NSButton!
override func viewDidLoad() {
super.viewDidLoad()
let defaults = UserDefaults.standard
if let services = defaults.array(forKey: "Proxy4NetworkServices") {
selectedNetworkServices = NSMutableSet(array: services)
} else {
selectedNetworkServices = NSMutableSet()
}
networkServices = ProxyConfTool.networkServicesList() as NSArray!
tableView.reloadData()
}
//--------------------------------------------------
// For NSTableViewDataSource
func numberOfRows(in tableView: NSTableView) -> Int {
if networkServices != nil {
return networkServices.count
}
return 0;
}
func tableView(_ tableView: NSTableView, objectValueFor tableColumn: NSTableColumn?
, row: Int) -> Any? {
let cell = tableColumn!.dataCell as! NSButtonCell
let networkService = networkServices[row] as! [String: Any]
let key = networkService["key"] as! String
if selectedNetworkServices.contains(key) {
cell.state = 1
} else {
cell.state = 0
}
let userDefinedName = networkService["userDefinedName"] as! String
cell.title = userDefinedName
return cell
}
func tableView(_ tableView: NSTableView, setObjectValue object: Any?
, for tableColumn: NSTableColumn?, row: Int) {
let networkService = networkServices[row] as! [String: Any]
let key = networkService["key"] as! String
// NSLog("%d", object!.integerValue)
if (object! as AnyObject).intValue == 1 {
selectedNetworkServices.add(key)
} else {
selectedNetworkServices.remove(key)
}
}
}