@@ -176,7 +176,7 @@ class ConfigWindowController: NSWindowController, NSWindowDelegate, NSTabViewDel
176
176
// add
177
177
V2rayServer . add ( )
178
178
179
- DispatchQueue . main. sync {
179
+ DispatchQueue . main. async {
180
180
V2rayServer . loadConfig ( )
181
181
// reload data
182
182
self . serversTableView. reloadData ( )
@@ -187,7 +187,7 @@ class ConfigWindowController: NSWindowController, NSWindowDelegate, NSTabViewDel
187
187
188
188
// delete server config
189
189
case 1 :
190
- DispatchQueue . main. sync {
190
+ DispatchQueue . main. async {
191
191
// get seleted index
192
192
let idx = self . serversTableView. selectedRow
193
193
// remove
@@ -562,7 +562,7 @@ class ConfigWindowController: NSWindowController, NSWindowDelegate, NSTabViewDel
562
562
563
563
v2rayConfig. parseJson ( jsonText: self . configText. string)
564
564
if v2rayConfig. errors. count > 0 {
565
- DispatchQueue . main. sync {
565
+ DispatchQueue . main. async {
566
566
self . errTip. stringValue = v2rayConfig. errors [ 0 ]
567
567
}
568
568
}
@@ -579,7 +579,7 @@ class ConfigWindowController: NSWindowController, NSWindowDelegate, NSTabViewDel
579
579
}
580
580
self . refreshServerList ( ok: errMsg. count == 0 )
581
581
} else {
582
- DispatchQueue . main. sync {
582
+ DispatchQueue . main. async {
583
583
self . errTip. stringValue = errMsg
584
584
}
585
585
}
@@ -898,27 +898,27 @@ extension ConfigWindowController: NSTableViewDataSource {
898
898
func tableView( _ tableView: NSTableView , objectValueFor tableColumn: NSTableColumn ? , row: Int ) -> Any ? {
899
899
let v2rayItemList = V2rayServer . list ( )
900
900
// set cell data
901
- if v2rayItemList. count >= row {
901
+ if row < v2rayItemList. count {
902
902
return v2rayItemList [ row] . remark
903
903
}
904
904
return nil
905
905
}
906
906
907
907
// edit cell
908
- func tableView( _ tableView: NSTableView , setObjectValue: Any ? , for forTableColumn : NSTableColumn ? , row: Int ) {
908
+ func tableView( _ tableView: NSTableView , setObjectValue: Any ? , for tableColumn : NSTableColumn ? , row: Int ) {
909
909
guard let remark = setObjectValue as? String else {
910
910
NSLog ( " remark is nil " )
911
911
return
912
912
}
913
913
DispatchQueue . global ( ) . async {
914
914
// edit item remark
915
915
V2rayServer . edit ( rowIndex: row, remark: remark)
916
- // reload table
916
+ // reload table on main thread
917
917
DispatchQueue . main. async {
918
918
tableView. reloadData ( )
919
+ // reload menu
920
+ menuController. showServers ( )
919
921
}
920
- // reload menu
921
- menuController. showServers ( )
922
922
}
923
923
}
924
924
}
@@ -942,25 +942,24 @@ extension ConfigWindowController: NSTableViewDelegate {
942
942
if dropOperation == . above {
943
943
return . move
944
944
}
945
- return NSDragOperation ( )
945
+ return [ ]
946
946
}
947
947
948
948
func tableView( _ tableView: NSTableView , acceptDrop info: NSDraggingInfo , row: Int , dropOperation: NSTableView . DropOperation ) -> Bool {
949
949
var oldIndexes = [ Int] ( )
950
- info. enumerateDraggingItems ( options: [ ] , for: tableView, classes: [ NSPasteboardItem . self] , searchOptions: [ : ] , using: {
951
- ( draggingItem: NSDraggingItem , idx: Int , stop: UnsafeMutablePointer < ObjCBool > ) in
950
+ info. enumerateDraggingItems ( options: [ ] , for: tableView, classes: [ NSPasteboardItem . self] , searchOptions: [ : ] ) { ( draggingItem, _, _) in
952
951
if let str = ( draggingItem. item as! NSPasteboardItem ) . string ( forType: NSPasteboard . PasteboardType ( rawValue: self . tableViewDragType) ) ,
953
952
let index = Int ( str) {
954
953
oldIndexes. append ( index)
955
954
}
956
- } )
955
+ }
957
956
958
957
var oldIndexOffset = 0
959
958
var newIndexOffset = 0
960
959
var oldIndexLast = 0
961
960
var newIndexLast = 0
962
961
963
- // For simplicity, the code below uses `tableView.moveRowAtIndex ` to move rows around directly.
962
+ // For simplicity, the code below uses `tableView.moveRow(at:to:) ` to move rows around directly.
964
963
// You may want to move rows in your content array and then call `tableView.reloadData()` instead.
965
964
for oldIndex in oldIndexes {
966
965
if oldIndex < row {
@@ -978,12 +977,12 @@ extension ConfigWindowController: NSTableViewDelegate {
978
977
V2rayServer . move ( oldIndex: oldIndexLast, newIndex: newIndexLast)
979
978
DispatchQueue . main. async {
980
979
// set selected
981
- self . serversTableView. selectRowIndexes ( NSIndexSet ( index : newIndexLast) as IndexSet , byExtendingSelection: false )
980
+ self . serversTableView. selectRowIndexes ( IndexSet ( integer : newIndexLast) , byExtendingSelection: false )
982
981
// reload table
983
982
self . serversTableView. reloadData ( )
983
+ // reload menu
984
+ menuController. showServers ( )
984
985
}
985
- // reload menu
986
- menuController. showServers ( )
987
986
}
988
987
return true
989
988
}
0 commit comments