123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- //
- // KMPageEditSplitWindowController.swift
- // PDF Reader Pro
- //
- // Created by tangchao on 2023/1/12.
- //
- class KMPageEditSplitWindowController: KMPageEditSettingBaseWindowController {
- var hasPreView = false
-
- override func initSubViews() {
- super.initSubViews()
-
- if (self.hasPreView) {
- let controller = KMPDFInsertPreviewViewController(nibName: "KMPDFInsertPreviewViewController", bundle: nil)
- controller.pdfDocument = CPDFDocument(url: self.model?.documentURL)
- self.contentBox.contentView?.addSubview(controller.view)
- controller.view.frame = NSMakeRect(0, 40, 176+16*2, 300)
- controller.view.autoresizingMask = [.maxYMargin]
-
- if let settingView: KMPageEditSplitSettingView = KMPageEditSplitSettingView.createFromNib() {
- self.contentBox.contentView?.addSubview(settingView)
- let settingViewLeft: CGFloat = 176+16+8
- settingView.frame = NSRect(x: settingViewLeft, y: 0, width: NSWidth(self.contentBox.frame)-settingViewLeft, height: NSHeight(self.contentBox.frame))
- settingView.autoresizingMask = [.width, .height]
- self.settingView = settingView
- settingView.pageCount = self.model?.pageCount ?? 0
- settingView.type = (self.model as? KMPageEditSplitSettingModel)?.type ?? 0
- if (settingView.type == 2) {
- settingView.setPageRangeString((self.model as? KMPageEditSplitSettingModel)?.pageRangeString ?? "")
- }
- settingView.updateName(self.model?.outputFileName ?? "")
- }
- } else {
- if let settingView: KMPageEditSplitSettingView = KMPageEditSplitSettingView.createFromNib() {
- self.contentBox.contentView = settingView
- self.settingView = settingView
- settingView.pageCount = self.model?.pageCount ?? 0
- settingView.type = (self.model as? KMPageEditSplitSettingModel)?.type ?? 0
- if ((self.model as! KMPageEditSplitSettingModel).type == 2) {
- settingView.setPageRangeString((self.model as? KMPageEditSplitSettingModel)?.pageRangeString ?? "")
- }
- settingView.updateName(self.model!.outputFileName)
- }
- }
-
- self.settingView?.itemClick = { [unowned self] index, value in
- if (index == 1) { /// 类型切换
- (self.model as? KMPageEditSplitSettingModel)?.type = value as? Int ?? 0
- return
- }
- if (index == 2) { /// 平均每几页拆分
- (self.model as? KMPageEditSplitSettingModel)?.avgNumberForOneFile = value as? Int ?? 0
- return
- }
- if (index == 3) { /// 平均拆分几个文件
- (self.model as? KMPageEditSplitSettingModel)?.avgSplitNumberFile = value as? Int ?? 0
- return
- }
- if (index == 4) { /// 页面范围切换
- (self.model as? KMPageEditSplitSettingModel)?.pageRangeType = value as? Int ?? 0
- return
- }
- if (index == 5) { /// 页面范围输入
- var pageCount = 0
- if let _pageCount = self.model?.pageCount {
- pageCount = _pageCount
- }
- if let data = value as? String, let _value = Int(data) {
- if (_value < 1 || _value > pageCount) {
- let alert = NSAlert()
- alert.messageText = NSLocalizedString("Page range must between 1 and \(pageCount)", comment: "")
- alert.informativeText = NSLocalizedString("Out of page range", comment: "")
- alert.runModal()
- (self.settingView as? KMPageEditSplitSettingView)?.setPageRangeString("1")
- (self.model as? KMPageEditSplitSettingModel)?.pageRangeType = 2
- (self.model as? KMPageEditSplitSettingModel)?.pageRangeString = "1"
- return
- }
- }
- (self.model as? KMPageEditSplitSettingModel)?.pageRangeType = 2
- (self.model as? KMPageEditSplitSettingModel)?.pageRangeString = value as? String ?? ""
- return
- }
- if (index == 6) { /// 将原始文档名前置
- (self.model as? KMPageEditSplitSettingModel)?.origFileNameIsPrefix = value as? Bool ?? false
-
- (self.settingView as? KMPageEditSplitSettingView)?.updateName(self.model?.outputFileName ?? "")
- return
- }
- if (index == 7) { /// 标签
- (self.model as? KMPageEditSplitSettingModel)?.hasTag = value as? Bool ?? false
-
- (self.settingView as? KMPageEditSplitSettingView)?.updateName(self.model?.outputFileName ?? "")
- return
- }
- if (index == 8) { /// 分隔符
- (self.model as? KMPageEditSplitSettingModel)?.hasSep = value as? Bool ?? false
-
- (self.settingView as? KMPageEditSplitSettingView)?.updateName(self.model?.outputFileName ?? "")
- return
- }
-
- if (index == 9) { /// 分隔符
- (self.model as? KMPageEditSplitSettingModel)?.tagString = value as? String ?? ""
-
- (self.settingView as? KMPageEditSplitSettingView)?.updateName(self.model?.outputFileName ?? "")
- return
- }
-
- if (index == 10) { /// 分隔符
- (self.model as? KMPageEditSplitSettingModel)?.sepString = value as? String ?? ""
-
- (self.settingView as? KMPageEditSplitSettingView)?.updateName(self.model?.outputFileName ?? "")
- return
- }
- }
- }
-
- override func initDefaultValue() {
- super.initDefaultValue()
-
- if (self.hasPreView) {
- self.setWindowSize(NSSize(width: 583, height: 481))
- self.titleLabel.stringValue = NSLocalizedString("Split", comment: "")
- } else {
- self.setWindowSize(NSSize(width: 480, height: 450))
- self.titleLabel.stringValue = NSLocalizedString("Split Page", comment: "")
- }
-
- self.funcVC?.stringValue = NSLocalizedString("Split", comment: "")
- self.funcVC?.updateUI()
- }
-
- override func funcButtonAction() {
- guard let _model = self.model as? KMPageEditSplitSettingModel else {
- super.funcButtonAction()
- return
- }
-
- if (_model.pageRangeType == 2) {
- let pages = KMPageRangeTools.findSelectPage(pageRangeString: _model.pageRangeString, pageCount: _model.pageCount)
- if (pages.isEmpty) {
- let alert = NSAlert()
- alert.messageText = NSLocalizedString("Page range must between 1 and \(_model.pageCount)", comment: "")
- alert.informativeText = NSLocalizedString("Out of page range", comment: "")
- alert.runModal()
- (self.settingView as? KMPageEditSplitSettingView)?.setPageRangeString("1")
-
- _model.pageRangeString = "1"
- return
- }
- }
- super.funcButtonAction()
- }
- }
|