|
@@ -199,6 +199,10 @@ extension KMBatchProcessingTableView: NSTableViewDelegate {
|
|
model.hover = false
|
|
model.hover = false
|
|
let columnIndex = self.tableView.column(withIdentifier: NSUserInterfaceItemIdentifier(KMBatchProcessingTableViewOptions.delete.rawValue.description))
|
|
let columnIndex = self.tableView.column(withIdentifier: NSUserInterfaceItemIdentifier(KMBatchProcessingTableViewOptions.delete.rawValue.description))
|
|
self.tableView.reloadData(forRowIndexes: IndexSet(integer: i), columnIndexes: IndexSet(integer: columnIndex))
|
|
self.tableView.reloadData(forRowIndexes: IndexSet(integer: i), columnIndexes: IndexSet(integer: columnIndex))
|
|
|
|
+ if self.tableView.rowView(atRow: i, makeIfNecessary: false) is KMBatchProcessingTableRowView {
|
|
|
|
+ let rowView: KMBatchProcessingTableRowView = self.tableView.rowView(atRow: i, makeIfNecessary: false) as! KMBatchProcessingTableRowView
|
|
|
|
+ rowView.reloadData()
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
if i == row {
|
|
if i == row {
|
|
@@ -209,6 +213,10 @@ extension KMBatchProcessingTableView: NSTableViewDelegate {
|
|
}
|
|
}
|
|
let columnIndex = self.tableView.column(withIdentifier: NSUserInterfaceItemIdentifier(KMBatchProcessingTableViewOptions.delete.rawValue.description))
|
|
let columnIndex = self.tableView.column(withIdentifier: NSUserInterfaceItemIdentifier(KMBatchProcessingTableViewOptions.delete.rawValue.description))
|
|
self.tableView.reloadData(forRowIndexes: IndexSet(integer: i), columnIndexes: IndexSet(integer: columnIndex))
|
|
self.tableView.reloadData(forRowIndexes: IndexSet(integer: i), columnIndexes: IndexSet(integer: columnIndex))
|
|
|
|
+ if self.tableView.rowView(atRow: i, makeIfNecessary: false) is KMBatchProcessingTableRowView {
|
|
|
|
+ let rowView: KMBatchProcessingTableRowView = self.tableView.rowView(atRow: i, makeIfNecessary: false) as! KMBatchProcessingTableRowView
|
|
|
|
+ rowView.reloadData()
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -216,27 +224,45 @@ extension KMBatchProcessingTableView: NSTableViewDelegate {
|
|
}
|
|
}
|
|
|
|
|
|
tableRowView.rightMouseCallback = { [unowned self] (view, event) in
|
|
tableRowView.rightMouseCallback = { [unowned self] (view, event) in
|
|
- let point = view.convert(event.locationInWindow, from: nil)
|
|
|
|
- var popViewDataArr: [String] = ["Show in Finder","Remove"]
|
|
|
|
- let vc: KMHomePopViewController = KMHomePopViewController().initWithPopViewDataArr(popViewDataArr)
|
|
|
|
- let createFilePopover: NSPopover = NSPopover.init()
|
|
|
|
- createFilePopover.contentViewController = vc
|
|
|
|
- createFilePopover.animates = true
|
|
|
|
- createFilePopover.behavior = .semitransient
|
|
|
|
- createFilePopover.setValue(true, forKey: "shouldHideAnchor")
|
|
|
|
- createFilePopover.show(relativeTo: CGRect(x: point.x, y: point.y, width: 10, height: 5), of: view, preferredEdge: .maxX)
|
|
|
|
- vc.customBoxWidthLayoutConstraint.constant = 100
|
|
|
|
- vc.downCallback = { [unowned self](downEntered: Bool, count: String) -> Void in
|
|
|
|
- if downEntered {
|
|
|
|
- if count == popViewDataArr[0] {
|
|
|
|
- if FileManager.default.fileExists(atPath: view.model.filePath) {
|
|
|
|
- NSWorkspace.shared.activateFileViewerSelecting([URL(fileURLWithPath: view.model.filePath)])
|
|
|
|
|
|
+ self.didSelectItem(shouldSelectRow: row)
|
|
|
|
+ DispatchQueue.main.async {
|
|
|
|
+ if self.tableView.rowView(atRow: row, makeIfNecessary: false) != nil {
|
|
|
|
+ let rowView = self.tableView.rowView(atRow: row, makeIfNecessary: false)
|
|
|
|
+ self.addRightMenu(view: rowView!, event: event)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ tableRowView.mouseDownCallback = { [unowned self] (mouseEntered, mouseBox) in
|
|
|
|
+ if data != nil {
|
|
|
|
+ for i in 0...self.data!.count - 1 {
|
|
|
|
+ let model = self.data![i]
|
|
|
|
+ if model.select == true {
|
|
|
|
+ model.select = false
|
|
|
|
+ let columnIndex = self.tableView.column(withIdentifier: NSUserInterfaceItemIdentifier(KMBatchProcessingTableViewOptions.delete.rawValue.description))
|
|
|
|
+ self.tableView.reloadData(forRowIndexes: IndexSet(integer: i), columnIndexes: IndexSet(integer: columnIndex))
|
|
|
|
+ if self.tableView.rowView(atRow: i, makeIfNecessary: false) is KMBatchProcessingTableRowView {
|
|
|
|
+ let rowView: KMBatchProcessingTableRowView = self.tableView.rowView(atRow: i, makeIfNecessary: false) as! KMBatchProcessingTableRowView
|
|
|
|
+ rowView.reloadData()
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if i == row {
|
|
|
|
+ if mouseEntered {
|
|
|
|
+ model.select = true
|
|
|
|
+ } else {
|
|
|
|
+ model.select = false
|
|
|
|
+ }
|
|
|
|
+ let columnIndex = self.tableView.column(withIdentifier: NSUserInterfaceItemIdentifier(KMBatchProcessingTableViewOptions.delete.rawValue.description))
|
|
|
|
+ self.tableView.reloadData(forRowIndexes: IndexSet(integer: i), columnIndexes: IndexSet(integer: columnIndex))
|
|
|
|
+ if self.tableView.rowView(atRow: i, makeIfNecessary: false) is KMBatchProcessingTableRowView {
|
|
|
|
+ let rowView: KMBatchProcessingTableRowView = self.tableView.rowView(atRow: i, makeIfNecessary: false) as! KMBatchProcessingTableRowView
|
|
|
|
+ rowView.reloadData()
|
|
}
|
|
}
|
|
- } else if count == popViewDataArr[1] {
|
|
|
|
- self.presenter.deleteData(model: view.model)
|
|
|
|
|
|
+ self.didSelectItem(shouldSelectRow: i)
|
|
}
|
|
}
|
|
- createFilePopover.close()
|
|
|
|
}
|
|
}
|
|
|
|
+
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return tableRowView
|
|
return tableRowView
|
|
@@ -266,6 +292,12 @@ extension KMBatchProcessingTableView: NSTableViewDelegate {
|
|
}
|
|
}
|
|
|
|
|
|
func tableView(_ tableView: NSTableView, shouldSelectRow row: Int) -> Bool {
|
|
func tableView(_ tableView: NSTableView, shouldSelectRow row: Int) -> Bool {
|
|
|
|
+
|
|
|
|
+ print("选中3")
|
|
|
|
+ return true
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ func didSelectItem(shouldSelectRow row: Int) {
|
|
if self.data != nil {
|
|
if self.data != nil {
|
|
for item in self.data! {
|
|
for item in self.data! {
|
|
item.select = false
|
|
item.select = false
|
|
@@ -279,8 +311,6 @@ extension KMBatchProcessingTableView: NSTableViewDelegate {
|
|
self.tableView.reloadData()
|
|
self.tableView.reloadData()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- print("选中3")
|
|
|
|
- return true
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -421,3 +451,30 @@ extension Array {
|
|
protocol KMBatchProcessingTableViewDelegate: NSObject {
|
|
protocol KMBatchProcessingTableViewDelegate: NSObject {
|
|
func reloadData(data: [KMBatchProcessingTableViewModel])
|
|
func reloadData(data: [KMBatchProcessingTableViewModel])
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+extension KMBatchProcessingTableView {
|
|
|
|
+ func addRightMenu(view: NSView, event: NSEvent) {
|
|
|
|
+ let menus = NSMenu()
|
|
|
|
+ menus.addItem(withTitle: NSLocalizedString("Show in Finder", comment: ""), action: #selector(showInFinder), target: self)
|
|
|
|
+ menus.addItem(withTitle: NSLocalizedString("Remove", comment: ""), action: #selector(removeItem), target: self)
|
|
|
|
+
|
|
|
|
+ let point = view.convert(event.locationInWindow, from: nil)
|
|
|
|
+ menus.popUp(positioning: nil, at: point, in: view)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @objc func showInFinder(sender: KMBatchProcessingTableRowView) {
|
|
|
|
+ if self.selectModels.count != 0 {
|
|
|
|
+ let model = self.selectModels.first
|
|
|
|
+ if FileManager.default.fileExists(atPath: model!.filePath) {
|
|
|
|
+ NSWorkspace.shared.activateFileViewerSelecting([URL(fileURLWithPath: model!.filePath)])
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @objc func removeItem(sender: KMBatchProcessingTableRowView) {
|
|
|
|
+ if self.selectModels.count != 0 {
|
|
|
|
+ let model = self.selectModels.first!
|
|
|
|
+ self.presenter.deleteData(model: model)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|