109 lines
4.0 KiB
Swift
109 lines
4.0 KiB
Swift
//
|
|
// ViewController+UITableViewDelegate.swift
|
|
// SimpleVideoEditor
|
|
//
|
|
// Created by RenZhu Macro on 2020/7/9.
|
|
// Copyright © 2020 RenZhu Macro. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
import MetalVideoProcess
|
|
|
|
extension ViewController: UITableViewDelegate {
|
|
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
|
|
//selected
|
|
if tableView == self.mainTableView {
|
|
let item = self.mainResources[indexPath.row]
|
|
self.mainSelectedItem = item
|
|
currentPostion = item.transformFilter?.translation ?? Position(0.0, 0.0)
|
|
self.mainEditButton.isEnabled = true
|
|
self.mainDeleteButton.isEnabled = true
|
|
self.subEditButton.isEnabled = false
|
|
self.subDeleteButton.isEnabled = false
|
|
self.subSelectedItem = nil
|
|
guard let subIndex = self.subTableView.indexPathForSelectedRow else {
|
|
return
|
|
}
|
|
self.subTableView.deselectRow(at: subIndex, animated: true)
|
|
|
|
} else {
|
|
let item = self.subResources[indexPath.row]
|
|
self.subSelectedItem = item
|
|
currentPostion = item.transformFilter?.translation ?? Position(0.0, 0.0)
|
|
self.mainEditButton.isEnabled = false
|
|
self.mainDeleteButton.isEnabled = false
|
|
self.subEditButton.isEnabled = true
|
|
self.subDeleteButton.isEnabled = true
|
|
self.mainSelectedItem = nil
|
|
guard let mainIndex = self.mainTableView.indexPathForSelectedRow else {
|
|
return
|
|
}
|
|
self.mainTableView.deselectRow(at: mainIndex, animated: true)
|
|
}
|
|
}
|
|
}
|
|
|
|
extension ViewController: TableViewDraggerDelegate {
|
|
func dragger(_ dragger: TableViewDragger, moveDraggingAt indexPath: IndexPath, newIndexPath: IndexPath) -> Bool {
|
|
if dragger == self.mainDragger! {
|
|
let item = self.mainResources[indexPath.row]
|
|
self.mainResources.remove(at: indexPath.row)
|
|
self.mainResources.insert(item, at: newIndexPath.row)
|
|
mainTableView.moveRow(at: indexPath, to: newIndexPath)
|
|
} else {
|
|
let item = self.subResources[indexPath.row]
|
|
self.subResources.remove(at: indexPath.row)
|
|
self.subResources.insert(item, at: newIndexPath.row)
|
|
subTableView.moveRow(at: indexPath, to: newIndexPath)
|
|
}
|
|
|
|
|
|
|
|
return true
|
|
}
|
|
|
|
func dragger(_ dragger: TableViewDragger, didEndDraggingAt indexPath: IndexPath) {
|
|
dragger.tableView?.reloadData()
|
|
}
|
|
|
|
func dragger(_ dragger: TableViewDragger, willEndDraggingAt indexPath: IndexPath) {
|
|
self.rebuildPipeline()
|
|
}
|
|
}
|
|
|
|
extension ViewController: TableViewDraggerDataSource {
|
|
|
|
}
|
|
|
|
extension ViewController: UITableViewDataSource {
|
|
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
|
if self.mainTableView == tableView {
|
|
return self.mainResources.count
|
|
} else {
|
|
return self.subResources.count
|
|
}
|
|
}
|
|
|
|
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
|
if self.mainTableView == tableView {
|
|
guard let cell = tableView.dequeueReusableCell(withIdentifier: "mainCell", for: indexPath) as? ResourceItemTableViewCell else {
|
|
return UITableViewCell()
|
|
}
|
|
let item = self.mainResources[indexPath.row]
|
|
cell.textLabel?.text = NSString(format: "t:%d s:%@ d:%@", item.trackID, item.startTimeText, item.durationText) as String
|
|
return cell
|
|
} else {
|
|
guard let cell = tableView.dequeueReusableCell(withIdentifier: "pipCell", for: indexPath) as? ResourceItemTableViewCell else {
|
|
return UITableViewCell()
|
|
}
|
|
let item = self.subResources[indexPath.row]
|
|
cell.textLabel?.text = NSString(format: "t:%d s:%@ d:%@", item.trackID, item.startTimeText, item.durationText) as String
|
|
return cell
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|