Pārlūkot izejas kodu

【编辑工具】压缩设置界面提示框实现

lizhe 2 dienas atpakaļ
vecāks
revīzija
9cab38ddc3
17 mainītis faili ar 216 papildinājumiem un 14 dzēšanām
  1. 58 0
      PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/KMBatchOperateCompressSettingViewController.swift
  2. 2 2
      PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/KMBatchOperateCompressSettingViewController.xib
  3. 25 0
      PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/AlertView/KMBatchOperateCompressSettingAlertView.swift
  4. 53 0
      PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/AlertView/KMBatchOperateCompressSettingAlertView.xib
  5. 0 0
      PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/Tableview/Base/KMBaseCompressTableCellView.swift
  6. 0 0
      PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/Tableview/Cell/KMCompressDiscardPanelTableCellView.swift
  7. 0 0
      PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/Tableview/Cell/KMCompressDiscardPanelTableCellView.xib
  8. 0 0
      PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/Tableview/Cell/KMCompressFontsPanelTableCellView.swift
  9. 0 0
      PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/Tableview/Cell/KMCompressFontsPanelTableCellView.xib
  10. 4 0
      PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/KMCompressImagesPanelTableCellView.swift
  11. 22 0
      PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/KMCompressImagesPanelTableCellView.xib
  12. 1 0
      PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/KMCompressModesTableCellView.swift
  13. 0 0
      PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/Tableview/Cell/KMCompressModesTableCellView.xib
  14. 0 0
      PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/Tableview/KMCompressSettingTableView.swift
  15. 0 0
      PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/Tableview/KMCompressSettingTableView.xib
  16. 0 1
      PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/View/KMBatchOperateCompressView.swift
  17. 51 11
      PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj

+ 58 - 0
PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/KMBatchOperateCompressSettingViewController.swift

@@ -15,6 +15,8 @@ class KMBatchOperateCompressSettingViewController: KMBaseViewController {
     @IBOutlet weak var cancelButton: KMButton!
     @IBOutlet weak var settingView: KMCompressSettingTableView!
     
+    private var toastViews: [NSView] = [] // 用于管理多个 alertView
+    
     var cancelAction: KMBatchOperateCompressSettingViewCancelAction?
     var doneAction: KMBatchOperateCompressSettingViewDoneAction?
     
@@ -33,6 +35,62 @@ class KMBatchOperateCompressSettingViewController: KMBaseViewController {
             window.contentMaxSize = CGSizeMake(624, 513)
         }
         
+        self.showAlert("Unembed any font may result in incomplete display of text")
+        
+        // 自动移除视图
+        DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
+            self.showAlert("Less than 7 items selected; compression quality may be affected")
+        }
+        
+    }
+
+    func showAlert(_ string: String) {
+        // 创建 alertView
+        let alertView = KMBatchOperateCompressSettingAlertView()
+        alertView.titleString = string
+        alertView.translatesAutoresizingMaskIntoConstraints = false
+        self.view.addSubview(alertView)
+
+        // 添加到管理数组
+        toastViews.append(alertView)
+
+        // 设置约束
+        let centerYOffset = CGFloat((46 + 12) * (toastViews.count - 1) + 68) // 每个 Toast 间隔 30px
+        NSLayoutConstraint.activate([
+            alertView.widthAnchor.constraint(lessThanOrEqualTo: self.view.widthAnchor, multiplier: 0.8),
+            alertView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor),
+            alertView.centerYAnchor.constraint(equalTo: self.view.topAnchor, constant: centerYOffset),
+        ])
+
+        // 自动移除视图
+        DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
+            self.removeAlert(alertView)
+        }
+    }
+
+    private func removeAlert(_ alertView: NSView) {
+        // 淡出动画
+        NSAnimationContext.runAnimationGroup({ context in
+            context.duration = 0.3
+            alertView.animator().alphaValue = 0
+        }, completionHandler: {
+            // 从视图和数组中移除
+            alertView.removeFromSuperview()
+            if let index = self.toastViews.firstIndex(of: alertView) {
+                self.toastViews.remove(at: index)
+            }
+            // 重新布局其他 Toast
+            self.rearrangeToasts()
+        })
+    }
+
+    private func rearrangeToasts() {
+        for (index, toastView) in toastViews.enumerated() {
+            let newYOffset = CGFloat(-46 * index)
+            if let constraint = toastView.constraints.first(where: { $0.firstAttribute == .centerY }) {
+                constraint.constant = newYOffset
+            }
+        }
     }
 }
 

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

@@ -21,7 +21,7 @@
             <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
             <subviews>
                 <customView translatesAutoresizingMaskIntoConstraints="NO" id="fbx-YC-qHs" customClass="KMCompressSettingTableView" customModule="PDF_Reader_Pro" customModuleProvider="target">
-                    <rect key="frame" x="0.0" y="64" width="624" height="429"/>
+                    <rect key="frame" x="0.0" y="64" width="624" height="441"/>
                 </customView>
                 <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="sVB-3V-Y0k" customClass="KMButton" customModule="PDF_Reader_Pro" customModuleProvider="target">
                     <rect key="frame" x="386" y="13" width="76" height="32"/>
@@ -56,7 +56,7 @@ DQ
                 <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="top" secondItem="Hz6-mo-xeY" secondAttribute="top" constant="8" id="ckJ-fE-0nn"/>
                 <constraint firstItem="fbx-YC-qHs" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" id="mLG-xd-Co3"/>
                 <constraint firstItem="sVB-3V-Y0k" firstAttribute="centerY" secondItem="eVt-ve-VmB" secondAttribute="centerY" id="t0w-fU-UlE"/>
             </constraints>

+ 25 - 0
PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/AlertView/KMBatchOperateCompressSettingAlertView.swift

@@ -0,0 +1,25 @@
+//
+//  KMBatchOperateCompressSettingAlertView.swift
+//  PDF Reader Pro
+//
+//  Created by lizhe on 2024/11/21.
+//
+
+import Cocoa
+
+class KMBatchOperateCompressSettingAlertView: KMBaseXibView {
+    @IBOutlet weak var titleLabel: NSTextField!
+    
+    var titleString: String = "" {
+        didSet {
+            self.titleLabel.stringValue = titleString
+        }
+    }
+    
+    
+    override func draw(_ dirtyRect: NSRect) {
+        super.draw(dirtyRect)
+
+        // Drawing code here.
+    }
+}

+ 53 - 0
PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/AlertView/KMBatchOperateCompressSettingAlertView.xib

@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="22505"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <customObject id="-2" userLabel="File's Owner" customClass="KMBatchOperateCompressSettingAlertView" customModule="PDF_Reader_Pro" customModuleProvider="target">
+            <connections>
+                <outlet property="titleLabel" destination="NIX-I8-6kU" id="U2D-G9-LsJ"/>
+            </connections>
+        </customObject>
+        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
+        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
+        <customView id="c22-O7-iKe">
+            <rect key="frame" x="0.0" y="0.0" width="577" height="47"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+            <subviews>
+                <box boxType="custom" borderWidth="0.0" cornerRadius="6" translatesAutoresizingMaskIntoConstraints="NO" id="rAK-Va-WfF">
+                    <rect key="frame" x="0.0" y="0.0" width="577" height="47"/>
+                    <view key="contentView" id="4WU-gf-YMU">
+                        <rect key="frame" x="0.0" y="0.0" width="577" height="47"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                    </view>
+                    <color key="fillColor" white="0.0" alpha="0.80000000000000004" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                </box>
+                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="NIX-I8-6kU">
+                    <rect key="frame" x="22" y="16" width="533" height="15"/>
+                    <textFieldCell key="cell" lineBreakMode="clipping" title="Unembed any font may result in incomplete display of text" id="gwW-Ti-4Rd">
+                        <font key="font" metaFont="system" size="12"/>
+                        <color key="textColor" red="0.9882352941176471" green="0.99215686274509807" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                    </textFieldCell>
+                    <connections>
+                        <action selector="titleLabel:" target="-1" id="yHJ-Vc-GJh"/>
+                    </connections>
+                </textField>
+            </subviews>
+            <constraints>
+                <constraint firstItem="rAK-Va-WfF" firstAttribute="top" secondItem="c22-O7-iKe" secondAttribute="top" id="Aho-nu-bWU"/>
+                <constraint firstAttribute="bottom" secondItem="rAK-Va-WfF" secondAttribute="bottom" id="NiG-nw-2lZ"/>
+                <constraint firstItem="rAK-Va-WfF" firstAttribute="leading" secondItem="c22-O7-iKe" secondAttribute="leading" id="U0N-YU-IKQ"/>
+                <constraint firstAttribute="trailing" secondItem="NIX-I8-6kU" secondAttribute="trailing" constant="24" id="VYa-RX-yWU"/>
+                <constraint firstItem="NIX-I8-6kU" firstAttribute="top" secondItem="c22-O7-iKe" secondAttribute="top" constant="16" id="bF2-Wh-Y62"/>
+                <constraint firstAttribute="bottom" secondItem="NIX-I8-6kU" secondAttribute="bottom" constant="16" id="jDJ-cg-HOn"/>
+                <constraint firstItem="NIX-I8-6kU" firstAttribute="leading" secondItem="c22-O7-iKe" secondAttribute="leading" constant="24" id="oWm-hR-Suv"/>
+                <constraint firstAttribute="trailing" secondItem="rAK-Va-WfF" secondAttribute="trailing" id="xrp-hr-BeK"/>
+            </constraints>
+            <point key="canvasLocation" x="187.5" y="206"/>
+        </customView>
+    </objects>
+</document>

PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/Base/KMBaseCompressTableCellView.swift → PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/Tableview/Base/KMBaseCompressTableCellView.swift


PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/KMCompressDiscardPanelTableCellView.swift → PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/Tableview/Cell/KMCompressDiscardPanelTableCellView.swift


PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/KMCompressDiscardPanelTableCellView.xib → PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/Tableview/Cell/KMCompressDiscardPanelTableCellView.xib


PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/KMCompressFontsPanelTableCellView.swift → PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/Tableview/Cell/KMCompressFontsPanelTableCellView.swift


PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/KMCompressFontsPanelTableCellView.xib → PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/Tableview/Cell/KMCompressFontsPanelTableCellView.xib


+ 4 - 0
PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/KMCompressImagesPanelTableCellView.swift

@@ -59,6 +59,7 @@ class KMCompressImagesPanelTableCellView: KMBaseCompressTableCellView, NibLoadab
     override func reloadData() {
         guard let model = model else { return }
         
+        self.comboBox.selectItem(at: 0)
         self.titleLabel.stringValue = NSLocalizedString(model.title, comment: "")
     }
     
@@ -102,6 +103,7 @@ extension KMCompressImagesPanelTableCellView {
 
 extension KMCompressImagesPanelTableCellView {
     func showPPIAlert() {
+        self.imagePPIAlertLabel.stringValue = NSLocalizedString("Limit 10-2400", comment: "")
         self.imagePPIAlertLabel.isHidden = false
         self.imagePPITextField.layer?.borderColor = NSColor(hex: "#E73861").cgColor;
         self.imagePPITextField.backgroundColor(NSColor(hex: "#393C3E"))
@@ -115,6 +117,8 @@ extension KMCompressImagesPanelTableCellView {
     }
     
     func showAbovePPIAlert() {
+        let tempValue = Int(self.imagePPITextField.stringValue) ?? 10
+        self.imageAbovePPIAlertLabel.stringValue = NSLocalizedString("Limit \(tempValue)-\(tempValue * 10)", comment: "")
         self.imageAbovePPIAlertLabel.isHidden = false
         self.imageAbovePPITextField.layer?.borderColor = NSColor(hex: "#E73861").cgColor;
         self.imageAbovePPITextField.backgroundColor(NSColor(hex: "#393C3E"))

+ 22 - 0
PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/KMCompressImagesPanelTableCellView.xib

@@ -153,6 +153,22 @@
                                         <constraint firstAttribute="width" constant="76" id="gOn-AM-2mB"/>
                                     </constraints>
                                 </box>
+                                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="cyX-jp-tkC">
+                                    <rect key="frame" x="93" y="2" width="66" height="11"/>
+                                    <textFieldCell key="cell" lineBreakMode="clipping" title="Limit 10-2400" id="vSd-hr-wUA">
+                                        <font key="font" metaFont="system" size="9"/>
+                                        <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                                    </textFieldCell>
+                                </textField>
+                                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="iix-Ff-Ic1">
+                                    <rect key="frame" x="326" y="2" width="28" height="11"/>
+                                    <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="2Cb-0L-wwu">
+                                        <font key="font" metaFont="system" size="9"/>
+                                        <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                                    </textFieldCell>
+                                </textField>
                             </subviews>
                             <constraints>
                                 <constraint firstItem="rRb-W1-BeU" firstAttribute="centerY" secondItem="92j-6E-enx" secondAttribute="centerY" id="0Kh-iM-7yU"/>
@@ -160,13 +176,17 @@
                                 <constraint firstItem="nPY-8Y-8dL" firstAttribute="leading" secondItem="taM-CD-cQz" secondAttribute="trailing" constant="20" id="1ON-Qs-o55"/>
                                 <constraint firstItem="T1Q-4g-yfg" firstAttribute="centerY" secondItem="nPY-8Y-8dL" secondAttribute="centerY" id="38W-YI-Fcx"/>
                                 <constraint firstItem="taM-CD-cQz" firstAttribute="leading" secondItem="rRb-W1-BeU" secondAttribute="trailing" constant="4" id="8kn-nb-9Qk"/>
+                                <constraint firstItem="cyX-jp-tkC" firstAttribute="leading" secondItem="YEb-Wo-gCO" secondAttribute="leading" id="GHN-8T-NsA"/>
                                 <constraint firstItem="XUj-mR-Ka0" firstAttribute="centerY" secondItem="lD6-Gr-28s" secondAttribute="centerY" id="Isv-dU-i1U"/>
                                 <constraint firstAttribute="height" constant="50" id="JuA-Pt-tsa"/>
                                 <constraint firstItem="lD6-Gr-28s" firstAttribute="centerY" secondItem="nPY-8Y-8dL" secondAttribute="centerY" id="K1h-vk-sqB"/>
                                 <constraint firstItem="T1Q-4g-yfg" firstAttribute="leading" secondItem="nPY-8Y-8dL" secondAttribute="trailing" constant="6" id="L3z-gh-VTs"/>
                                 <constraint firstItem="vte-w4-cRw" firstAttribute="centerY" secondItem="yLL-Y6-iJB" secondAttribute="centerY" id="LVA-JK-tKF"/>
+                                <constraint firstItem="iix-Ff-Ic1" firstAttribute="leading" secondItem="iP8-Kl-ohG" secondAttribute="leading" id="QbC-LR-vrD"/>
+                                <constraint firstItem="iix-Ff-Ic1" firstAttribute="top" secondItem="T1Q-4g-yfg" secondAttribute="bottom" constant="2" id="RuS-hc-dD0"/>
                                 <constraint firstItem="vte-w4-cRw" firstAttribute="leading" secondItem="T1Q-4g-yfg" secondAttribute="trailing" constant="4" id="TtN-pV-9N3"/>
                                 <constraint firstItem="XUj-mR-Ka0" firstAttribute="leading" secondItem="lD6-Gr-28s" secondAttribute="trailing" constant="6" id="aIk-QQ-rRS"/>
+                                <constraint firstItem="cyX-jp-tkC" firstAttribute="top" secondItem="rRb-W1-BeU" secondAttribute="bottom" constant="2" id="aNF-Jv-iBY"/>
                                 <constraint firstItem="lD6-Gr-28s" firstAttribute="leading" secondItem="vte-w4-cRw" secondAttribute="trailing" constant="20" id="bLS-M9-Pkx"/>
                                 <constraint firstItem="92j-6E-enx" firstAttribute="centerY" secondItem="Yqh-YR-NAF" secondAttribute="centerY" id="bLw-t6-z4J"/>
                                 <constraint firstItem="taM-CD-cQz" firstAttribute="centerY" secondItem="ADh-6q-unE" secondAttribute="centerY" id="j8x-tn-IrT"/>
@@ -193,7 +213,9 @@
             <connections>
                 <outlet property="buttonConetntView" destination="Yqh-YR-NAF" id="UP5-Yj-8FY"/>
                 <outlet property="comboBox" destination="05O-ID-Yh1" id="Pih-F9-7qe"/>
+                <outlet property="imageAbovePPIAlertLabel" destination="iix-Ff-Ic1" id="NSX-Ip-VEB"/>
                 <outlet property="imageAbovePPITextField" destination="iP8-Kl-ohG" id="OCs-YY-RhH"/>
+                <outlet property="imagePPIAlertLabel" destination="cyX-jp-tkC" id="ruN-Je-bBV"/>
                 <outlet property="imagePPITextField" destination="YEb-Wo-gCO" id="B1C-AV-pdz"/>
                 <outlet property="titleLabel" destination="Ht4-BQ-Ga8" id="qMg-MO-MFT"/>
             </connections>

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

@@ -31,6 +31,7 @@ class KMCompressModesTableCellView: KMBaseCompressTableCellView, NibLoadable {
     override func reloadData() {
         guard let model = model else { return }
         
+        self.comboBox.selectItem(at: 0)
         self.titleLabel.stringValue = NSLocalizedString(model.title, comment: "")
     }
 }

PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/KMCompressModesTableCellView.xib → PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/Tableview/Cell/KMCompressModesTableCellView.xib


PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/KMCompressSettingTableView.swift → PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/Tableview/KMCompressSettingTableView.swift


PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/KMCompressSettingTableView.xib → PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/SettingView/View/Tableview/KMCompressSettingTableView.xib


+ 0 - 1
PDF Office/PDF Master/Class/Batch/WindowController/VC/Compress/View/KMBatchOperateCompressView.swift

@@ -121,7 +121,6 @@ extension KMBatchOperateCompressView {
     @IBAction func settingButtonAction(_ sender: Any) {
         let controller: KMBatchOperateCompressSettingViewController = KMBatchOperateCompressSettingViewController(nibName: "KMBatchOperateCompressSettingViewController", bundle: nil)
         let window = NSWindow(contentViewController: controller)
-        
         window.minSize = CGSizeMake(624, 513)
         window.maxSize = CGSizeMake(624, 513)
         window.styleMask.remove(.resizable)

+ 51 - 11
PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj

@@ -1470,6 +1470,12 @@
 		AD188B8F2CEC7F6A006BB8A6 /* KMBaseCompressTableCellView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD188B8E2CEC7F6A006BB8A6 /* KMBaseCompressTableCellView.swift */; };
 		AD188B902CEC7F6A006BB8A6 /* KMBaseCompressTableCellView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD188B8E2CEC7F6A006BB8A6 /* KMBaseCompressTableCellView.swift */; };
 		AD188B912CEC7F6A006BB8A6 /* KMBaseCompressTableCellView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD188B8E2CEC7F6A006BB8A6 /* KMBaseCompressTableCellView.swift */; };
+		AD188B952CEED8F0006BB8A6 /* KMBatchOperateCompressSettingAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD188B942CEED8F0006BB8A6 /* KMBatchOperateCompressSettingAlertView.swift */; };
+		AD188B962CEED8F0006BB8A6 /* KMBatchOperateCompressSettingAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD188B942CEED8F0006BB8A6 /* KMBatchOperateCompressSettingAlertView.swift */; };
+		AD188B972CEED8F0006BB8A6 /* KMBatchOperateCompressSettingAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD188B942CEED8F0006BB8A6 /* KMBatchOperateCompressSettingAlertView.swift */; };
+		AD188B992CEED900006BB8A6 /* KMBatchOperateCompressSettingAlertView.xib in Resources */ = {isa = PBXBuildFile; fileRef = AD188B982CEED900006BB8A6 /* KMBatchOperateCompressSettingAlertView.xib */; };
+		AD188B9A2CEED900006BB8A6 /* KMBatchOperateCompressSettingAlertView.xib in Resources */ = {isa = PBXBuildFile; fileRef = AD188B982CEED900006BB8A6 /* KMBatchOperateCompressSettingAlertView.xib */; };
+		AD188B9B2CEED900006BB8A6 /* KMBatchOperateCompressSettingAlertView.xib in Resources */ = {isa = PBXBuildFile; fileRef = AD188B982CEED900006BB8A6 /* KMBatchOperateCompressSettingAlertView.xib */; };
 		AD199DDD2B200FA300D56FEE /* KMPrintPosterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD199DDC2B200FA300D56FEE /* KMPrintPosterView.swift */; };
 		AD199DDE2B200FA300D56FEE /* KMPrintPosterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD199DDC2B200FA300D56FEE /* KMPrintPosterView.swift */; };
 		AD199DDF2B200FA300D56FEE /* KMPrintPosterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD199DDC2B200FA300D56FEE /* KMPrintPosterView.swift */; };
@@ -6278,6 +6284,8 @@
 		AD0FA51529A9FA8F00EDEB50 /* KMResetPasswordView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMResetPasswordView.xib; sourceTree = "<group>"; };
 		AD188B892CEC3F75006BB8A6 /* KMCompressSettingTableView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMCompressSettingTableView.xib; sourceTree = "<group>"; };
 		AD188B8E2CEC7F6A006BB8A6 /* KMBaseCompressTableCellView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMBaseCompressTableCellView.swift; sourceTree = "<group>"; };
+		AD188B942CEED8F0006BB8A6 /* KMBatchOperateCompressSettingAlertView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMBatchOperateCompressSettingAlertView.swift; sourceTree = "<group>"; };
+		AD188B982CEED900006BB8A6 /* KMBatchOperateCompressSettingAlertView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMBatchOperateCompressSettingAlertView.xib; sourceTree = "<group>"; };
 		AD199DDC2B200FA300D56FEE /* KMPrintPosterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPrintPosterView.swift; sourceTree = "<group>"; };
 		AD199DE02B200FB000D56FEE /* KMPrintPosterView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMPrintPosterView.xib; sourceTree = "<group>"; };
 		AD199DE62B230A9300D56FEE /* KMPrintMultipageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPrintMultipageView.swift; sourceTree = "<group>"; };
@@ -9558,6 +9566,41 @@
 			path = Base;
 			sourceTree = "<group>";
 		};
+		AD188B922CEED8AE006BB8A6 /* Tableview */ = {
+			isa = PBXGroup;
+			children = (
+				AD188B9C2CEEDCBC006BB8A6 /* Cell */,
+				ADC59B952CE74DCA002F819D /* KMCompressSettingTableView.swift */,
+				AD188B892CEC3F75006BB8A6 /* KMCompressSettingTableView.xib */,
+				AD188B8D2CEC7F37006BB8A6 /* Base */,
+			);
+			path = Tableview;
+			sourceTree = "<group>";
+		};
+		AD188B932CEED8C0006BB8A6 /* AlertView */ = {
+			isa = PBXGroup;
+			children = (
+				AD188B942CEED8F0006BB8A6 /* KMBatchOperateCompressSettingAlertView.swift */,
+				AD188B982CEED900006BB8A6 /* KMBatchOperateCompressSettingAlertView.xib */,
+			);
+			path = AlertView;
+			sourceTree = "<group>";
+		};
+		AD188B9C2CEEDCBC006BB8A6 /* Cell */ = {
+			isa = PBXGroup;
+			children = (
+				ADC59B9E2CEAE124002F819D /* KMCompressModesTableCellView.swift */,
+				ADC59BA22CEAE140002F819D /* KMCompressModesTableCellView.xib */,
+				ADC59BA62CEAE155002F819D /* KMCompressImagesPanelTableCellView.swift */,
+				ADC59BAA2CEAE165002F819D /* KMCompressImagesPanelTableCellView.xib */,
+				ADC59BAE2CEAE17C002F819D /* KMCompressFontsPanelTableCellView.swift */,
+				ADC59BB22CEAE184002F819D /* KMCompressFontsPanelTableCellView.xib */,
+				ADC59BB62CEAE1F4002F819D /* KMCompressDiscardPanelTableCellView.swift */,
+				ADC59BBA2CEAE1FE002F819D /* KMCompressDiscardPanelTableCellView.xib */,
+			);
+			path = Cell;
+			sourceTree = "<group>";
+		};
 		AD199DE42B2075A500D56FEE /* Multipage */ = {
 			isa = PBXGroup;
 			children = (
@@ -10782,8 +10825,6 @@
 			children = (
 				ADC59BC72CEB2907002F819D /* Model */,
 				ADC59B9D2CEADD87002F819D /* View */,
-				ADC59B952CE74DCA002F819D /* KMCompressSettingTableView.swift */,
-				AD188B892CEC3F75006BB8A6 /* KMCompressSettingTableView.xib */,
 			);
 			path = SettingView;
 			sourceTree = "<group>";
@@ -10791,15 +10832,8 @@
 		ADC59B9D2CEADD87002F819D /* View */ = {
 			isa = PBXGroup;
 			children = (
-				AD188B8D2CEC7F37006BB8A6 /* Base */,
-				ADC59B9E2CEAE124002F819D /* KMCompressModesTableCellView.swift */,
-				ADC59BA22CEAE140002F819D /* KMCompressModesTableCellView.xib */,
-				ADC59BA62CEAE155002F819D /* KMCompressImagesPanelTableCellView.swift */,
-				ADC59BAA2CEAE165002F819D /* KMCompressImagesPanelTableCellView.xib */,
-				ADC59BAE2CEAE17C002F819D /* KMCompressFontsPanelTableCellView.swift */,
-				ADC59BB22CEAE184002F819D /* KMCompressFontsPanelTableCellView.xib */,
-				ADC59BB62CEAE1F4002F819D /* KMCompressDiscardPanelTableCellView.swift */,
-				ADC59BBA2CEAE1FE002F819D /* KMCompressDiscardPanelTableCellView.xib */,
+				AD188B932CEED8C0006BB8A6 /* AlertView */,
+				AD188B922CEED8AE006BB8A6 /* Tableview */,
 			);
 			path = View;
 			sourceTree = "<group>";
@@ -15348,6 +15382,7 @@
 				BBAC26A82AFE138800563A08 /* KMToolbarItemPopViewController.xib in Resources */,
 				F356720829AF184A00740FF3 /* CPDFListAnnotationNoteWindowController.xib in Resources */,
 				9F94747F29FA24200042F949 /* Credits.rtf in Resources */,
+				AD188B992CEED900006BB8A6 /* KMBatchOperateCompressSettingAlertView.xib in Resources */,
 				89316825296D73CC0073EA59 /* KMSignatureAnnotationViewController.xib in Resources */,
 				9FBA0EE928FFC2FE001117AF /* Image.xcassets in Resources */,
 				BBA19F3229ADAC81001A285A /* signPicture_hover.pdf in Resources */,
@@ -15926,6 +15961,7 @@
 				BBADCF652AF3CB92004ECE0C /* KMWatermarkCollectionViewItem.xib in Resources */,
 				F356720929AF184A00740FF3 /* CPDFListAnnotationNoteWindowController.xib in Resources */,
 				BBB789B52BE8BF2400F7E09C /* AIChatStringUploadItem.xib in Resources */,
+				AD188B9A2CEED900006BB8A6 /* KMBatchOperateCompressSettingAlertView.xib in Resources */,
 				ADDF838D2B391A5D00A81A4E /* DSignatureFileListCellView.xib in Resources */,
 				9FDD0FA32952FF4D000C4DAD /* $themes.json in Resources */,
 				BBFA1CE72B60DDC50053AD4A /* KMScreenShotEditViewController.xib in Resources */,
@@ -16699,6 +16735,7 @@
 				9F512CCC2B4640AB00EC0BC3 /* KMPageDisplayCustomThemesCollectionViewItem.xib in Resources */,
 				9F8539F82947137500DF644E /* sadfavicon.png in Resources */,
 				9F8539FB2947137500DF644E /* newtab_p.pdf in Resources */,
+				AD188B9B2CEED900006BB8A6 /* KMBatchOperateCompressSettingAlertView.xib in Resources */,
 				9F221EDC29A9EC0900978A59 /* KMFillSignTextPanel.xib in Resources */,
 				BBB29BD02AEA190E005F1B6B /* KMToolbarCustomViewController.xib in Resources */,
 				BBB789A42BE8BF2400F7E09C /* AIChatFileInfoItem.xib in Resources */,
@@ -17622,6 +17659,7 @@
 				9FF371BE2C69A6BB005F9CC5 /* CDistanceMeasureInfoWindowController.swift in Sources */,
 				AD1FE8412BD7C98300AA4A9B /* KMPosterPrintManager.m in Sources */,
 				ADB2D6E6294740F30029D2B3 /* KMPrintPaperSetWindowController.swift in Sources */,
+				AD188B952CEED8F0006BB8A6 /* KMBatchOperateCompressSettingAlertView.swift in Sources */,
 				BB897271294DB6BE0045787C /* KMWatermarkAdjectivePlainView.swift in Sources */,
 				ADBC2D37299F0A5A006280C8 /* KMPrintHelpViewController.swift in Sources */,
 				BBB9428B2BA2CB6A00542373 /* KMAdsInfo.swift in Sources */,
@@ -18410,6 +18448,7 @@
 				89752E1A2941FD48003FF08E /* KMSearchCellView.swift in Sources */,
 				AD3AAD1C2B0B5B4400DE5FE7 /* KMCompareCoveringWindowController.swift in Sources */,
 				BB0FE0612B7351AA001E0F88 /* AIInfoManager.m in Sources */,
+				AD188B962CEED8F0006BB8A6 /* KMBatchOperateCompressSettingAlertView.swift in Sources */,
 				9F0CB50A2986563300007028 /* KMDesignToken+BorderBottom.swift in Sources */,
 				ADDF83662B391A5C00A81A4E /* DSignatureFromFileViewController.swift in Sources */,
 				AD055EB52B8841780035F824 /* SKSeparatorCell.m in Sources */,
@@ -19995,6 +20034,7 @@
 				BBB9B327299A5D6D004F3235 /* GTMKeychain_macOS.m in Sources */,
 				9F0CB5072986561E00007028 /* KMDesignToken+BorderRight.swift in Sources */,
 				9F1F82CC292F6CF90092C4B4 /* KMPDFInsertPageWindow.swift in Sources */,
+				AD188B972CEED8F0006BB8A6 /* KMBatchOperateCompressSettingAlertView.swift in Sources */,
 				ADC59BB12CEAE17C002F819D /* KMCompressFontsPanelTableCellView.swift in Sources */,
 				AD7D5C872B8ECD83006562CD /* KMPDFSyncRecord.swift in Sources */,
 				BB4EEF2F29763EE7003A3537 /* KMRedactBaseWindowController.swift in Sources */,