KMPDFEditPageRangeWindowController.swift 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. //
  2. // KMPDFEditPageRangeWindowController.swift
  3. // PDF Reader Pro
  4. //
  5. // Created by tangchao on 2023/11/10.
  6. //
  7. import Cocoa
  8. class KMPDFEditPageRangeWindowController: NSWindowController {
  9. weak var pdfDocument: CPDFDocument?
  10. var pageSelectCallBack: (([Int]) -> 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.pagesType = .custom
  45. fileAttribute.pagesString = self.pageRangeTextField.stringValue
  46. if fileAttribute.fetchSelectPages().isEmpty {
  47. let alert = NSAlert()
  48. alert.alertStyle = .critical
  49. 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))
  50. alert.runModal()
  51. self.window?.makeFirstResponder(self.pageRangeTextField)
  52. return
  53. } else {
  54. if (self.pageSelectCallBack != nil) {
  55. self.pageSelectCallBack!(fileAttribute.fetchSelectPages());
  56. }
  57. }
  58. }
  59. }