Browse Source

【编辑工具】压缩 - 高级选项卡数据模型搭建

lizhe 1 tuần trước cách đây
mục cha
commit
20fcf46d55

+ 14 - 1
PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/KMBatchOperateCompressSettingViewController.swift

@@ -7,11 +7,24 @@
 
 import Cocoa
 
-class KMBatchOperateCompressSettingViewController: NSViewController {
+typealias KMBatchOperateCompressSettingViewCancelAction = (_ controller: KMBatchOperateCompressSettingViewController ) -> Void
+typealias KMBatchOperateCompressSettingViewDoneAction = (_ controller: KMBatchOperateCompressSettingViewController ) -> Void
 
+class KMBatchOperateCompressSettingViewController: KMBaseViewController {
+    var cancelAction: KMBatchOperateCompressSettingViewCancelAction?
+    var doneAction: KMBatchOperateCompressSettingViewDoneAction?
+    
     override func viewDidLoad() {
         super.viewDidLoad()
         // Do view setup here.
     }
     
 }
+
+extension KMBatchOperateCompressSettingViewController {
+    @IBAction func cancelButtonAction(_ sender: Any) {
+        guard let callBack = cancelAction else { return }
+        
+        callBack(self)
+    }
+}

+ 34 - 2
PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/KMBatchOperateCompressSettingViewController.xib

@@ -14,9 +14,41 @@
         <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
         <customObject id="-3" userLabel="Application" customClass="NSObject"/>
         <customView id="Hz6-mo-xeY">
-            <rect key="frame" x="0.0" y="0.0" width="480" height="272"/>
+            <rect key="frame" x="0.0" y="0.0" width="624" height="513"/>
             <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
-            <point key="canvasLocation" x="34" y="-8"/>
+            <subviews>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="fbx-YC-qHs" customClass="KMCompressSettingTableView" customModule="PDF_Reader_Pro" customModuleProvider="target">
+                    <rect key="frame" x="20" y="64" width="584" height="429"/>
+                </customView>
+                <button translatesAutoresizingMaskIntoConstraints="NO" id="sVB-3V-Y0k" customClass="KMButton" customModule="PDF_Reader_Pro" customModuleProvider="target">
+                    <rect key="frame" x="499" y="20" width="60" height="16"/>
+                    <buttonCell key="cell" type="square" title="  Cancel  " bezelStyle="shadowlessSquare" imagePosition="left" inset="2" id="EYu-9c-4mc">
+                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                        <font key="font" metaFont="system"/>
+                    </buttonCell>
+                    <connections>
+                        <action selector="cancelButtonAction:" target="-2" id="upk-fU-fOC"/>
+                    </connections>
+                </button>
+                <button translatesAutoresizingMaskIntoConstraints="NO" id="eVt-ve-VmB" customClass="KMButton" customModule="PDF_Reader_Pro" customModuleProvider="target">
+                    <rect key="frame" x="567" y="20" width="37" height="16"/>
+                    <buttonCell key="cell" type="square" title="  OK  " bezelStyle="shadowlessSquare" imagePosition="left" inset="2" id="pnh-3j-SVd">
+                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                        <font key="font" metaFont="system"/>
+                    </buttonCell>
+                </button>
+            </subviews>
+            <constraints>
+                <constraint firstAttribute="trailing" secondItem="fbx-YC-qHs" secondAttribute="trailing" constant="20" id="A1Z-3W-rxf"/>
+                <constraint firstAttribute="bottom" secondItem="fbx-YC-qHs" secondAttribute="bottom" constant="64" id="J3x-rf-L9f"/>
+                <constraint firstAttribute="bottom" secondItem="eVt-ve-VmB" secondAttribute="bottom" constant="20" id="KCi-BI-FJQ"/>
+                <constraint firstAttribute="trailing" secondItem="eVt-ve-VmB" secondAttribute="trailing" constant="20" id="L0M-fU-M18"/>
+                <constraint firstItem="eVt-ve-VmB" firstAttribute="leading" secondItem="sVB-3V-Y0k" secondAttribute="trailing" constant="8" id="Okp-Tv-xiQ"/>
+                <constraint firstItem="fbx-YC-qHs" firstAttribute="top" secondItem="Hz6-mo-xeY" secondAttribute="top" constant="20" id="ckJ-fE-0nn"/>
+                <constraint firstItem="fbx-YC-qHs" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" constant="20" id="mLG-xd-Co3"/>
+                <constraint firstItem="sVB-3V-Y0k" firstAttribute="centerY" secondItem="eVt-ve-VmB" secondAttribute="centerY" id="t0w-fU-UlE"/>
+            </constraints>
+            <point key="canvasLocation" x="63" y="134.5"/>
         </customView>
     </objects>
 </document>

+ 53 - 32
PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/KMCompressSettingTableView.swift

@@ -9,51 +9,72 @@ import Cocoa
 
 class KMCompressSettingTableView: KMBaseXibView {
     @IBOutlet weak var tableView: NSTableView!
-    
-    
-    
-    override func setup() {
+    var datas: [KMCompressSettingModel] = []
         
+    override func setup() {
+        self.tableView.register(.init(nibNamed: "KMCompressModesTableCellView", bundle: nil), forIdentifier: .init("KMCompressModesTableCellView"))
+        self.tableView.delegate = self
+        self.tableView.dataSource = self
     }
     
     override func reloadData() {
+        var model = KMCompressSettingModel()
+        model.title = NSLocalizedString("Models", comment: "")
+        self.datas.append(model)
+        
+        model = KMCompressSettingModel()
+        model.title = NSLocalizedString("Image Panel", comment: "")
+        self.datas.append(model)
+        
+        model = KMCompressSettingModel()
+        model.title = NSLocalizedString("Fonts Panel", comment: "")
+        self.datas.append(model)
+        
+        model = KMCompressSettingModel()
+        model.title = NSLocalizedString("Discard Objects Panel", comment: "")
+        self.datas.append(model)
+        
+        model = KMCompressSettingModel()
+        model.title = NSLocalizedString("Discard User Data Panel", comment: "")
+        self.datas.append(model)
+        
+        model = KMCompressSettingModel()
+        model.title = NSLocalizedString("Discard Other Data", comment: "")
+        self.datas.append(model)
         
+        self.tableView.reloadData()
     }
     
     
     
 }
 
-//extension KMCompressSettingTableView: NSTabViewDelegate, NSTableViewDataSource {
-//    func numberOfRows(in tableView: NSTableView) -> Int {
-//        return self.datas.count
-//    }
-//    
-//    func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
-//        var cell = tableView.makeView(withIdentifier: .init("KMUserListItemCellView"), owner: self)
-//        if cell == nil {
-//            cell = KMUserListItemCellView.createFromNib()
-////            cell?.wantsLayer = true
-////            cell?.layer?.backgroundColor = NSColor.red.cgColor
-//        }
-//        
-//        let cellView = cell as? KMUserListItemCellView
-//        let model = self.datas[row]
-//        cellView?.fileNameLabel.stringValue = model.fileName ?? ""
-//        cellView?.fileSizeLabel.stringValue = model.fileSizeString ?? ""
-//        cellView?.button.image = NSImage(named: "KMImageNameUserFbDeleteIcon")
-//        cellView?.box.fillColor = .clear
-//        
+extension KMCompressSettingTableView: NSTableViewDelegate, NSTableViewDataSource {
+    func numberOfRows(in tableView: NSTableView) -> Int {
+        return self.datas.count
+    }
+    
+    func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
+        var cell = tableView.makeView(withIdentifier: .init("KMCompressModesTableCellView"), owner: self)
+        if cell == nil {
+            cell = KMCompressModesTableCellView.createFromNib()
+//            cell?.wantsLayer = true
+//            cell?.layer?.backgroundColor = NSColor.red.cgColor
+        }
+        
+        let cellView = cell as? KMUserListItemCellView
+        let model = self.datas[row]
+        
 //        cellView?.itemClick = { [weak self] idx in
 ////            if idx == 1 { // remove
 ////                self?.itemClick?(row, nil)
 ////            }
 //        }
-//        
-//        return cell
-//    }
-//    
-//    func tableView(_ tableView: NSTableView, heightOfRow row: Int) -> CGFloat {
-//        return 60.0 // 自定义行高
-//    }
-//}
+        
+        return cell
+    }
+    
+    func tableView(_ tableView: NSTableView, heightOfRow row: Int) -> CGFloat {
+        return 60.0 // 自定义行高
+    }
+}

+ 53 - 0
PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/Model/KMCompressSettingModel.swift

@@ -0,0 +1,53 @@
+//
+//  KMCompressSettingModel.swift
+//  PDF Reader Pro
+//
+//  Created by lizhe on 2024/11/18.
+//
+
+import Cocoa
+
+enum KMCompressSettingPanelType: Int {
+    case modes = 0
+    case images
+    case fonts
+    case discardObject
+    case discardUserData
+    case discardOtherData
+}
+
+struct KMCompressObjectOptions: OptionSet {
+    let rawValue: Int
+    
+    static let formAndAction = KMCompressObjectOptions(rawValue: 1 << 0)
+    static let javaScript = KMCompressObjectOptions(rawValue: 1 << 1)
+    static let thumbnails = KMCompressObjectOptions(rawValue: 1 << 2)
+    static let documentTags = KMCompressObjectOptions(rawValue: 1 << 3)
+    static let bookmarks = KMCompressObjectOptions(rawValue: 1 << 4)
+}
+
+struct KMCompressUserDataOptions: OptionSet {
+    let rawValue: Int
+    
+    static let commentsFormAndMultimedia = KMCompressUserDataOptions(rawValue: 1 << 0)
+    static let documentInfomationAndMetadata = KMCompressUserDataOptions(rawValue: 1 << 1)
+    static let allObject = KMCompressUserDataOptions(rawValue: 1 << 2)
+    static let fileAttachments = KMCompressUserDataOptions(rawValue: 1 << 3)
+    static let hiddenLayerContentAndFlattenVisibleLayers = KMCompressUserDataOptions(rawValue: 1 << 4)
+}
+
+struct KMCompressOtherDataOptions: OptionSet {
+    let rawValue: Int
+    
+    static let invalidBookmarks = KMCompressOtherDataOptions(rawValue: 1 << 0)
+    static let invalidLinks = KMCompressOtherDataOptions(rawValue: 1 << 1)
+    static let unrefrencedNamedDestinations = KMCompressOtherDataOptions(rawValue: 1 << 2)
+    static let pageContent = KMCompressOtherDataOptions(rawValue: 1 << 3)
+}
+
+class KMCompressSettingModel: NSObject {
+    var title: String = ""
+    var discardType: KMCompressSettingPanelType = .modes
+    var selectIndexSet: NSIndexSet = .init(index: 0)
+    var content: Any? = nil
+}

+ 1 - 1
PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/KMCompressModesTableCellView.swift

@@ -7,7 +7,7 @@
 
 import Cocoa
 
-class KMCompressModesTableCellView: NSTableCellView {
+class KMCompressModesTableCellView: NSTableCellView, NibLoadable {
 
     override func draw(_ dirtyRect: NSRect) {
         super.draw(dirtyRect)

+ 17 - 2
PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/View/KMBatchOperateCompressView.swift

@@ -12,13 +12,28 @@ class KMBatchOperateCompressView: KMBaseXibView {
     @IBOutlet weak var standardButton: NSButton!
     @IBOutlet weak var mobileButton: NSButton!
     @IBOutlet weak var customButton: NSButton!
-
     @IBOutlet weak var tipButton: KMButton!
+    @IBOutlet weak var settingButton: NSButton!
     
     override func draw(_ dirtyRect: NSRect) {
         super.draw(dirtyRect)
 
         // Drawing code here.
     }
-    
+}
+
+extension KMBatchOperateCompressView {
+    @IBAction func settingButtonAction(_ sender: Any) {
+        
+        let controller: KMBatchOperateCompressSettingViewController = KMBatchOperateCompressSettingViewController(nibName: "KMBatchOperateCompressSettingViewController", bundle: nil)
+        let window = NSWindow(contentViewController: controller)
+        let currentWindow = NSWindow.currentWindow()
+        currentWindow.beginSheet(window)
+        
+        controller.cancelAction = { resultControler in
+            currentWindow.endSheet(window)
+        }
+        
+        
+    }
 }

+ 12 - 1
PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/View/KMBatchOperateCompressView.xib

@@ -6,7 +6,15 @@
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
-        <customObject id="-2" userLabel="File's Owner" customClass="KMBatchOperateCompressView" customModule="PDF_Reader_Pro" customModuleProvider="target"/>
+        <customObject id="-2" userLabel="File's Owner" customClass="KMBatchOperateCompressView" customModule="PDF_Reader_Pro" customModuleProvider="target">
+            <connections>
+                <outlet property="customButton" destination="6x0-ch-VkE" id="Azq-Oh-00p"/>
+                <outlet property="mobileButton" destination="ygY-fe-yeM" id="if8-oW-QR8"/>
+                <outlet property="settingButton" destination="1Bh-FK-sZg" id="iba-Yt-VOv"/>
+                <outlet property="standardButton" destination="6SE-sT-zpS" id="CD0-LZ-PTM"/>
+                <outlet property="tipButton" destination="dJy-8r-7hO" id="puZ-0n-9lH"/>
+            </connections>
+        </customObject>
         <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
         <customObject id="-3" userLabel="Application" customClass="NSObject"/>
         <customView id="c22-O7-iKe">
@@ -43,6 +51,9 @@
                                 <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                                 <font key="font" metaFont="system"/>
                             </buttonCell>
+                            <connections>
+                                <action selector="settingButtonAction:" target="-2" id="isb-xG-gwJ"/>
+                            </connections>
                         </button>
                         <button translatesAutoresizingMaskIntoConstraints="NO" id="dJy-8r-7hO" customClass="KMButton" customModule="PDF_Reader_Pro" customModuleProvider="target">
                             <rect key="frame" x="66" y="218" width="31" height="16"/>

+ 3 - 3
PDF Office/PDF Master/Class/Batch/WindowController/VC/KMBatchOperateRemoveHeaderFooterViewController.xib

@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22155" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22155"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
-        <customObject id="-2" userLabel="File's Owner" customClass="KMBatchOperateRemoveHeaderFooterViewController" customModule="PDF_Master" customModuleProvider="target">
+        <customObject id="-2" userLabel="File's Owner" customClass="KMBatchOperateRemoveHeaderFooterViewController" customModule="PDF_Reader_Pro" customModuleProvider="target">
             <connections>
                 <outlet property="actionButton" destination="rij-IY-bAZ" id="uRb-Ty-y7n"/>
                 <outlet property="view" destination="Hz6-mo-xeY" id="0bl-1N-x8E"/>

+ 27 - 6
PDF Office/PDF Master/Class/PDFTools/Compress/View/KMCompressView.xib

@@ -139,24 +139,45 @@ DQ
                                 <constraint firstAttribute="height" constant="140" id="HWO-1j-I4e"/>
                             </constraints>
                         </box>
-                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="u2u-i9-7s5" customClass="KMBatchOperateCompressView" customModule="PDF_Reader_Pro" customModuleProvider="target">
-                            <rect key="frame" x="40" y="58" width="451" height="166"/>
+                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="SgF-oL-wWE">
+                            <rect key="frame" x="40" y="60" width="451" height="184"/>
+                            <subviews>
+                                <customView translatesAutoresizingMaskIntoConstraints="NO" id="plO-in-6i0" customClass="KMBatchOperateCompressView" customModule="PDF_Reader_Pro" customModuleProvider="target">
+                                    <rect key="frame" x="0.0" y="0.0" width="451" height="158"/>
+                                </customView>
+                                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="lrq-Ko-3OF">
+                                    <rect key="frame" x="-2" y="164" width="49" height="16"/>
+                                    <textFieldCell key="cell" lineBreakMode="clipping" title="Models" id="Sy1-Df-BRB">
+                                        <font key="font" usesAppearanceFont="YES"/>
+                                        <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                                    </textFieldCell>
+                                </textField>
+                            </subviews>
+                            <constraints>
+                                <constraint firstItem="lrq-Ko-3OF" firstAttribute="top" secondItem="SgF-oL-wWE" secondAttribute="top" constant="4" id="4rE-jd-yaN"/>
+                                <constraint firstAttribute="bottom" secondItem="plO-in-6i0" secondAttribute="bottom" id="Hll-Xh-jjI"/>
+                                <constraint firstItem="plO-in-6i0" firstAttribute="leading" secondItem="SgF-oL-wWE" secondAttribute="leading" id="RfT-jd-wf1"/>
+                                <constraint firstAttribute="trailing" secondItem="plO-in-6i0" secondAttribute="trailing" id="fbA-hs-ezY"/>
+                                <constraint firstItem="plO-in-6i0" firstAttribute="top" secondItem="SgF-oL-wWE" secondAttribute="top" constant="26" id="sl7-ce-Ak2"/>
+                                <constraint firstItem="lrq-Ko-3OF" firstAttribute="leading" secondItem="SgF-oL-wWE" secondAttribute="leading" id="vld-gi-Xrs"/>
+                            </constraints>
                         </customView>
                     </subviews>
                     <constraints>
                         <constraint firstAttribute="trailing" secondItem="JoQ-Bg-A7A" secondAttribute="trailing" constant="40" id="0BD-V6-QH5"/>
+                        <constraint firstItem="SgF-oL-wWE" firstAttribute="top" secondItem="JoQ-Bg-A7A" secondAttribute="bottom" constant="20" id="9NG-mB-ztG"/>
+                        <constraint firstItem="SgF-oL-wWE" firstAttribute="leading" secondItem="7D3-FA-RtT" secondAttribute="leading" constant="40" id="9a9-39-bSK"/>
                         <constraint firstItem="M8m-46-Uhb" firstAttribute="centerY" secondItem="oK4-qZ-nsZ" secondAttribute="centerY" id="BNo-z7-3aF"/>
                         <constraint firstItem="oK4-qZ-nsZ" firstAttribute="leading" secondItem="7D3-FA-RtT" secondAttribute="leading" constant="15" id="Cpb-jC-cBb"/>
                         <constraint firstItem="IHF-en-Dqi" firstAttribute="centerY" secondItem="oK4-qZ-nsZ" secondAttribute="centerY" id="Hd6-wV-p14"/>
-                        <constraint firstAttribute="trailing" secondItem="u2u-i9-7s5" secondAttribute="trailing" constant="40" id="LIj-xc-gg7"/>
                         <constraint firstAttribute="trailing" secondItem="IHF-en-Dqi" secondAttribute="trailing" constant="33" id="PnY-ds-mE9"/>
                         <constraint firstAttribute="bottom" secondItem="oK4-qZ-nsZ" secondAttribute="bottom" constant="18" id="S50-eb-Jw5"/>
                         <constraint firstItem="JoQ-Bg-A7A" firstAttribute="leading" secondItem="7D3-FA-RtT" secondAttribute="leading" constant="40" id="SIf-DG-vtq"/>
-                        <constraint firstItem="u2u-i9-7s5" firstAttribute="leading" secondItem="7D3-FA-RtT" secondAttribute="leading" constant="40" id="TEj-JF-zdb"/>
+                        <constraint firstAttribute="bottom" secondItem="SgF-oL-wWE" secondAttribute="bottom" constant="60" id="UUd-Wo-FET"/>
                         <constraint firstItem="JoQ-Bg-A7A" firstAttribute="top" secondItem="7D3-FA-RtT" secondAttribute="top" constant="20" id="cN3-Xc-cuz"/>
-                        <constraint firstAttribute="bottom" secondItem="u2u-i9-7s5" secondAttribute="bottom" constant="58" id="p9O-L0-KPK"/>
                         <constraint firstItem="IHF-en-Dqi" firstAttribute="leading" secondItem="M8m-46-Uhb" secondAttribute="trailing" constant="15" id="qhx-jh-Biu"/>
-                        <constraint firstItem="u2u-i9-7s5" firstAttribute="top" secondItem="JoQ-Bg-A7A" secondAttribute="bottom" constant="40" id="zdX-xV-MKC"/>
+                        <constraint firstAttribute="trailing" secondItem="SgF-oL-wWE" secondAttribute="trailing" constant="40" id="wK4-ew-dnc"/>
                     </constraints>
                 </view>
             </subviews>

+ 17 - 1
PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj

@@ -2302,6 +2302,9 @@
 		ADC59BC42CEB0916002F819D /* KMBatchOperateCompressView.xib in Resources */ = {isa = PBXBuildFile; fileRef = ADC59BC32CEB0916002F819D /* KMBatchOperateCompressView.xib */; };
 		ADC59BC52CEB0916002F819D /* KMBatchOperateCompressView.xib in Resources */ = {isa = PBXBuildFile; fileRef = ADC59BC32CEB0916002F819D /* KMBatchOperateCompressView.xib */; };
 		ADC59BC62CEB0916002F819D /* KMBatchOperateCompressView.xib in Resources */ = {isa = PBXBuildFile; fileRef = ADC59BC32CEB0916002F819D /* KMBatchOperateCompressView.xib */; };
+		ADC59BC92CEB2B07002F819D /* KMCompressSettingModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADC59BC82CEB2B07002F819D /* KMCompressSettingModel.swift */; };
+		ADC59BCA2CEB2B07002F819D /* KMCompressSettingModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADC59BC82CEB2B07002F819D /* KMCompressSettingModel.swift */; };
+		ADC59BCB2CEB2B07002F819D /* KMCompressSettingModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADC59BC82CEB2B07002F819D /* KMCompressSettingModel.swift */; };
 		ADC63E372A49813E00854E02 /* KMSubscribeSuccessWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADC63E352A49813E00854E02 /* KMSubscribeSuccessWindowController.swift */; };
 		ADC63E382A49813E00854E02 /* KMSubscribeSuccessWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADC63E352A49813E00854E02 /* KMSubscribeSuccessWindowController.swift */; };
 		ADC63E392A49813E00854E02 /* KMSubscribeSuccessWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADC63E352A49813E00854E02 /* KMSubscribeSuccessWindowController.swift */; };
@@ -6574,6 +6577,7 @@
 		ADC59BBA2CEAE1FE002F819D /* KMCompressDiscardPanelTableCellView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMCompressDiscardPanelTableCellView.xib; sourceTree = "<group>"; };
 		ADC59BBF2CEB0908002F819D /* KMBatchOperateCompressView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMBatchOperateCompressView.swift; sourceTree = "<group>"; };
 		ADC59BC32CEB0916002F819D /* KMBatchOperateCompressView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMBatchOperateCompressView.xib; sourceTree = "<group>"; };
+		ADC59BC82CEB2B07002F819D /* KMCompressSettingModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMCompressSettingModel.swift; sourceTree = "<group>"; };
 		ADC63E352A49813E00854E02 /* KMSubscribeSuccessWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMSubscribeSuccessWindowController.swift; sourceTree = "<group>"; };
 		ADC63E362A49813E00854E02 /* KMSubscribeSuccessWindowController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMSubscribeSuccessWindowController.xib; sourceTree = "<group>"; };
 		ADC63E3E2A49816900854E02 /* KMSubscribeSuccessView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMSubscribeSuccessView.swift; sourceTree = "<group>"; };
@@ -10764,6 +10768,7 @@
 		ADC59B942CE74D4F002F819D /* SettingView */ = {
 			isa = PBXGroup;
 			children = (
+				ADC59BC72CEB2907002F819D /* Model */,
 				ADC59B9D2CEADD87002F819D /* View */,
 				ADC59B952CE74DCA002F819D /* KMCompressSettingTableView.swift */,
 				ADC59B992CE74F0E002F819D /* KMCompressSettingTableView.xib */,
@@ -10795,6 +10800,14 @@
 			path = View;
 			sourceTree = "<group>";
 		};
+		ADC59BC72CEB2907002F819D /* Model */ = {
+			isa = PBXGroup;
+			children = (
+				ADC59BC82CEB2B07002F819D /* KMCompressSettingModel.swift */,
+			);
+			path = Model;
+			sourceTree = "<group>";
+		};
 		ADC63E332A49805000854E02 /* WaterMark */ = {
 			isa = PBXGroup;
 			children = (
@@ -14176,8 +14189,8 @@
 				AD3718B62CE6F7CD007095A8 /* Compress */,
 				BBE9D0962AF0CECB002E83CE /* KMBatchOperateCompressViewController.swift */,
 				BBE9D09A2AF0CEEA002E83CE /* KMBatchOperateCompressViewController.xib */,
-				BB65A0812AF8FEA1003A27A0 /* KMBatchOperateRemoveHeaderFooterViewController.xib */,
 				BB65A07F2AF8FE7A003A27A0 /* KMBatchOperateRemoveHeaderFooterViewController.swift */,
+				BB65A0812AF8FEA1003A27A0 /* KMBatchOperateRemoveHeaderFooterViewController.xib */,
 				BB6347AD2AF1F0A400F5438E /* KMBatchOperateConvertViewController.swift */,
 				BB6347AF2AF1F0BB00F5438E /* KMBatchOperateConvertViewController.xib */,
 				BBAC26A32AFE134300563A08 /* KMToolbarItemPopViewController.swift */,
@@ -17091,6 +17104,7 @@
 				ADAFDA762AEB5FCD00F084BC /* KMHomeHistoryCollectionItem.swift in Sources */,
 				BBEC00BF295C306400A26C98 /* KMBatesPropertyController.swift in Sources */,
 				BB93CDE52AE757A000B29C57 /* KMToolbarItemView.swift in Sources */,
+				ADC59BC92CEB2B07002F819D /* KMCompressSettingModel.swift in Sources */,
 				89E4E6EC2963D1B7002DBA6F /* KMColorPickerViewController.m in Sources */,
 				BB6EA2972B70AF48000D4490 /* KMConvertCompareViewController.m in Sources */,
 				BB71853D2C2B0A7C00C1156B /* KMEditPDFToolbarView.swift in Sources */,
@@ -18903,6 +18917,7 @@
 				BBA19F4029ADE40A001A285A /* KMCellEmptyView.m in Sources */,
 				89316823296D73CC0073EA59 /* KMSignatureAnnotationViewController.m in Sources */,
 				ADDF83422B391A5C00A81A4E /* DSignatureConfigWindowController.swift in Sources */,
+				ADC59BCA2CEB2B07002F819D /* KMCompressSettingModel.swift in Sources */,
 				AD055E7F2B88294F0035F824 /* SKBookmarkSheetController.m in Sources */,
 				BB88E43C294023CB002B3655 /* KMDocumentModel.swift in Sources */,
 				BBB14A6429792D6900936EDB /* KMRedactPageRangeContentView.swift in Sources */,
@@ -19694,6 +19709,7 @@
 				BB3A42982B4BC72C006D0642 /* KMNotesPanelController.swift in Sources */,
 				9F0CB4E72986557F00007028 /* KMDesignToken+PaddingRight.swift in Sources */,
 				BB853C842AF8BAF0009C20C1 /* KMSetPasswordObject.swift in Sources */,
+				ADC59BCB2CEB2B07002F819D /* KMCompressSettingModel.swift in Sources */,
 				BBD1F789296FAC7C00343885 /* KMPageEditSettingBaseView.swift in Sources */,
 				BB2C6ACF28F41BA000478A33 /* CPDFListView.m in Sources */,
 				BB6013822AD38E0100A76FB2 /* CPDFTextAnnotation+PDFListView.swift in Sources */,

+ 2 - 2
PDF Office/PDF Reader Pro.xcodeproj/xcuserdata/lizhe.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -23950,7 +23950,7 @@
             endingColumnNumber = "9223372036854775807"
             startingLineNumber = "69"
             endingLineNumber = "69"
-            landmarkName = "checkPassword(url:type:password:completion:)"
+            landmarkName = "kCheckPassword(url:type:password:completion:)"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
@@ -23966,7 +23966,7 @@
             endingColumnNumber = "9223372036854775807"
             startingLineNumber = "95"
             endingLineNumber = "95"
-            landmarkName = "checkPassword(url:type:password:completion:)"
+            landmarkName = "kCheckPassword(url:type:password:completion:)"
             landmarkType = "7">
             <Locations>
                <Location