// // KMPDFEditPageRangeWindowController.swift // PDF Master // // Created by tangchao on 2023/11/10. // import Cocoa class KMPDFEditPageRangeWindowController: NSWindowController { var pdfDocument: CPDFDocument? var pageSelectCallBack: (([NSNumber]) -> Void)? @IBOutlet var pageRangeLabel: NSTextField! @IBOutlet var pageRangeTextField: NSTextField! @IBOutlet var totalPageCountLabel: NSTextField! @IBOutlet var detailLabel: NSTextField! @IBOutlet var cancelButton: NSButton! @IBOutlet var okButton: NSButton! override var windowNibName: NSNib.Name? { return "KMPDFEditPageRangeWindowController" } deinit { KMPrint("KMPDFEditPageRangeWindowController deinit.") } override func windowDidLoad() { super.windowDidLoad() self.pageRangeLabel.stringValue = KMLocalizedString("Page Range", nil) self.pageRangeTextField.placeholderString = KMLocalizedString("e.g. 1,3-5,10", nil) // self.totalPageCountLabel.integerValue = self.pdfDocument.pageCount; self.totalPageCountLabel.stringValue = String(format: ", Total %ld Pages", self.pdfDocument?.pageCount ?? 0) self.detailLabel.stringValue = "" self.cancelButton.title = KMLocalizedString("Cancel", nil) self.okButton.title = KMLocalizedString("OK", nil) self.window?.title = KMLocalizedString("Page Range", nil) } @IBAction func buttonClicked_Cancel(_ sender: AnyObject?) { if let win = self.window { self.window?.sheetParent?.endSheet(win) } } @IBAction func buttonClicked_Done(_ sender: AnyObject?) { let fileAttribute = KMFileAttribute() fileAttribute.filePath = self.pdfDocument?.documentURL.path ?? "" fileAttribute.pdfDocument = self.pdfDocument fileAttribute.bAllPage = false fileAttribute.pagesString = self.pageRangeTextField.stringValue if fileAttribute.fetchSelectPages().isEmpty { let alert = NSAlert() alert.alertStyle = .critical 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)) alert.runModal() self.window?.makeFirstResponder(self.pageRangeTextField) return } else { if (self.pageSelectCallBack != nil) { self.pageSelectCallBack!(fileAttribute.fetchSelectPages()); } } } }