KMPDFEditPageRangeWindowController.swift 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. //
  2. // KMPDFEditPageRangeWindowController.swift
  3. // PDF Master
  4. //
  5. // Created by tangchao on 2023/11/10.
  6. //
  7. import Cocoa
  8. class KMPDFEditPageRangeWindowController: NSWindowController {
  9. var pdfDocument: CPDFDocument?
  10. var pageSelectCallBack: (([NSNumber]) -> Void)?
  11. @IBOutlet var pageRangeLabel: NSTextField!
  12. @IBOutlet var pageRangeTextField: NSTextField!
  13. @IBOutlet var totalPageCountLabel: NSTextField!
  14. @IBOutlet var detailLabel: NSTextField!
  15. @IBOutlet var cancelButton: NSButton!
  16. @IBOutlet var okButton: NSButton!
  17. override var windowNibName: NSNib.Name? {
  18. return "KMPDFEditPageRangeWindowController"
  19. }
  20. deinit {
  21. KMPrint("KMPDFEditPageRangeWindowController deinit.")
  22. }
  23. override func windowDidLoad() {
  24. super.windowDidLoad()
  25. self.pageRangeLabel.stringValue = KMLocalizedString("Page Range", nil)
  26. self.pageRangeTextField.placeholderString = KMLocalizedString("e.g. 1,3-5,10", nil)
  27. // self.totalPageCountLabel.integerValue = self.pdfDocument.pageCount;
  28. self.totalPageCountLabel.stringValue = String(format: ", Total %ld Pages", self.pdfDocument?.pageCount ?? 0)
  29. self.detailLabel.stringValue = ""
  30. self.cancelButton.title = KMLocalizedString("Cancel", nil)
  31. self.okButton.title = KMLocalizedString("OK", nil)
  32. self.window?.title = KMLocalizedString("Page Range", nil)
  33. }
  34. @IBAction func buttonClicked_Cancel(_ sender: AnyObject?) {
  35. if let win = self.window {
  36. self.window?.sheetParent?.endSheet(win)
  37. }
  38. }
  39. @IBAction func buttonClicked_Done(_ sender: AnyObject?) {
  40. let fileAttribute = KMFileAttribute()
  41. fileAttribute.filePath = self.pdfDocument?.documentURL.path ?? ""
  42. fileAttribute.pdfDocument = self.pdfDocument
  43. fileAttribute.bAllPage = false
  44. fileAttribute.pagesString = self.pageRangeTextField.stringValue
  45. if fileAttribute.fetchSelectPages().isEmpty {
  46. let alert = NSAlert()
  47. alert.alertStyle = .critical
  48. alert.messageText = String(format: "%@ %@", self.pdfDocument?.documentURL.lastPathComponent.lastPathComponent ?? "", KMLocalizedString("Invalid page range or the page number is out of range. Please try again.", nil))
  49. alert.runModal()
  50. self.window?.makeFirstResponder(self.pageRangeTextField)
  51. return
  52. } else {
  53. if (self.pageSelectCallBack != nil) {
  54. self.pageSelectCallBack!(fileAttribute.fetchSelectPages());
  55. }
  56. }
  57. }
  58. }