|
@@ -49,7 +49,7 @@ class KMMergeView: KMBaseXibView {
|
|
|
var files: [KMFileAttribute] = [] //导入文件
|
|
|
var lockFiles: [KMFileAttribute] = [] //存在密码文件
|
|
|
var lockFilesIndex: Int = 0
|
|
|
-
|
|
|
+ var newPageSize = CGSizeZero
|
|
|
|
|
|
var insertRow: Int = 0
|
|
|
override func draw(_ dirtyRect: NSRect) {
|
|
@@ -68,11 +68,15 @@ class KMMergeView: KMBaseXibView {
|
|
|
tableview.dataSource = self
|
|
|
tableview.allowsMultipleSelection = true
|
|
|
|
|
|
- tableview.register(NSNib.init(nibNamed: "KMMergeTableViewCell", bundle: nil), forIdentifier: NSUserInterfaceItemIdentifier(rawValue: "KMMergeTableViewCell"))
|
|
|
+// tableview.register(NSNib.init(nibNamed: "KMMergeTableViewCell", bundle: nil), forIdentifier: NSUserInterfaceItemIdentifier(rawValue: "KMMergeTableViewCell"))
|
|
|
|
|
|
progress.isHidden = true
|
|
|
|
|
|
boxLabel.textColor = KMAppearance.Layout.h0Color()
|
|
|
+
|
|
|
+ blankView.dragAction = { [unowned self] view, filePaths in
|
|
|
+ self.addFilePaths(urls: filePaths)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
override func updateLanguage() {
|
|
@@ -96,6 +100,12 @@ class KMMergeView: KMBaseXibView {
|
|
|
|
|
|
override func reloadData() {
|
|
|
self.updateButtonState()
|
|
|
+ if files.count != 0 {
|
|
|
+ self.blankView.isHidden = true
|
|
|
+ } else {
|
|
|
+ self.blankView.isHidden = false
|
|
|
+ }
|
|
|
+
|
|
|
self.tableview.reloadData()
|
|
|
}
|
|
|
|
|
@@ -126,17 +136,24 @@ extension KMMergeView: NSTableViewDataSource {
|
|
|
}
|
|
|
|
|
|
func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
|
|
|
- let cell = tableView.makeView(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "KMMergeTableViewCell"), owner: self) as? KMMergeTableViewCell
|
|
|
- cell?.removeAction = { [unowned self] view, model in
|
|
|
- self.files.removeObject(model)
|
|
|
- self.reloadData()
|
|
|
+ if let cell = tableView.makeView(withIdentifier: NSUserInterfaceItemIdentifier("KMMergeTableViewCell"), owner: nil) as? KMMergeTableViewCell {
|
|
|
+ // 配置单元格的显示内容
|
|
|
+ cell.removeAction = { [unowned self] view, model in
|
|
|
+ self.files.removeObject(model)
|
|
|
+ self.reloadData()
|
|
|
+ }
|
|
|
+ return cell
|
|
|
}
|
|
|
- return cell
|
|
|
+ return nil
|
|
|
}
|
|
|
|
|
|
func tableView(_ tableView: NSTableView, shouldSelect tableColumn: NSTableColumn?) -> Bool {
|
|
|
return false
|
|
|
}
|
|
|
+
|
|
|
+ func tableView(_ tableView: NSTableView, heightOfRow row: Int) -> CGFloat {
|
|
|
+ return 60
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
extension KMMergeView: NSTableViewDelegate {
|
|
@@ -269,6 +286,9 @@ extension KMMergeView: NSTableViewDelegate {
|
|
|
|
|
|
extension KMMergeView {
|
|
|
@IBAction func clearButtonAction(_ sender: Any) {
|
|
|
+ self.files.removeAll()
|
|
|
+ self.reloadData()
|
|
|
+
|
|
|
guard let callBack = clearAction else { return }
|
|
|
|
|
|
callBack(self)
|
|
@@ -291,12 +311,52 @@ extension KMMergeView {
|
|
|
|
|
|
callBack(self)
|
|
|
}
|
|
|
+
|
|
|
+ @IBAction func sizeButtonAction(_ sender: NSButton) {
|
|
|
+ originalSizeButton.state = .off
|
|
|
+ A3SizeButton.state = .off
|
|
|
+ A4SizeButton.state = .off
|
|
|
+ USLetterSizeButton.state = .off
|
|
|
+ USLegalButton.state = .off
|
|
|
+ customSizeButton.state = .off
|
|
|
+ sender.state = .on
|
|
|
+
|
|
|
+ pageSizeHeightTextField.isEnabled = sender.isEqual(customSizeButton)
|
|
|
+ pageSizeWidthTextField.isEnabled = sender.isEqual(customSizeButton)
|
|
|
+
|
|
|
+ var size = CGSizeZero
|
|
|
+ switch sender.tag {
|
|
|
+ case 0:
|
|
|
+ break
|
|
|
+ case 1:
|
|
|
+ size = CGSizeMake(595, 841);
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ size = CGSizeMake(841, 1190);
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ size = CGSizeMake(612, 792);
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ size = CGSizeMake(612, 1108);
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+ size = CGSizeMake(595, 841);
|
|
|
+ pageSizeWidthTextField.stringValue = size.width.description
|
|
|
+ pageSizeHeightTextField.stringValue = size.height.description
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break
|
|
|
+ }
|
|
|
+ self.newPageSize = size
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//MARK: public
|
|
|
extension KMMergeView {
|
|
|
func addFilePaths(urls: [URL]) {
|
|
|
lockFiles.removeAll()
|
|
|
+ files.removeAll()
|
|
|
|
|
|
for url in urls {
|
|
|
let file = KMFileAttribute()
|
|
@@ -331,6 +391,8 @@ extension KMMergeView {
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+ } else {
|
|
|
+ completion(true, "")
|
|
|
}
|
|
|
}
|
|
|
}
|