Procházet zdrojové kódy

Merge branch 'develop_PDFReaderProNew' of git.kdan.cc:Mac_PDF/PDF_Office into develop_PDFReaderProNew

tangchao před 1 rokem
rodič
revize
1590a04e29

+ 24 - 8
PDF Office/PDF Master.xcodeproj/project.pbxproj

@@ -2664,9 +2664,6 @@
 		BB853C6F2AF879C1009C20C1 /* KMBatchRemoveWatermarkOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB853C6E2AF879C1009C20C1 /* KMBatchRemoveWatermarkOperation.swift */; };
 		BB853C702AF879C1009C20C1 /* KMBatchRemoveWatermarkOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB853C6E2AF879C1009C20C1 /* KMBatchRemoveWatermarkOperation.swift */; };
 		BB853C712AF879C1009C20C1 /* KMBatchRemoveWatermarkOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB853C6E2AF879C1009C20C1 /* KMBatchRemoveWatermarkOperation.swift */; };
-		BB853C792AF8B59B009C20C1 /* KMBatchOperateAddPasswordViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB853C782AF8B59B009C20C1 /* KMBatchOperateAddPasswordViewController.xib */; };
-		BB853C7A2AF8B59B009C20C1 /* KMBatchOperateAddPasswordViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB853C782AF8B59B009C20C1 /* KMBatchOperateAddPasswordViewController.xib */; };
-		BB853C7B2AF8B59B009C20C1 /* KMBatchOperateAddPasswordViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB853C782AF8B59B009C20C1 /* KMBatchOperateAddPasswordViewController.xib */; };
 		BB853C7D2AF8B5D6009C20C1 /* KMBatchOperateAddPasswordViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB853C7C2AF8B5D6009C20C1 /* KMBatchOperateAddPasswordViewController.swift */; };
 		BB853C7E2AF8B5D6009C20C1 /* KMBatchOperateAddPasswordViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB853C7C2AF8B5D6009C20C1 /* KMBatchOperateAddPasswordViewController.swift */; };
 		BB853C7F2AF8B5D6009C20C1 /* KMBatchOperateAddPasswordViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB853C7C2AF8B5D6009C20C1 /* KMBatchOperateAddPasswordViewController.swift */; };
@@ -2984,6 +2981,15 @@
 		BBA93D3429BF0ECE0044E0DD /* SKKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = BBA93D3229BF0ECD0044E0DD /* SKKeychain.m */; };
 		BBA93D3529BF0ECE0044E0DD /* SKKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = BBA93D3229BF0ECD0044E0DD /* SKKeychain.m */; };
 		BBAC26A12AFDF54F00563A08 /* KMConvertOperationQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBAC26A02AFDF54F00563A08 /* KMConvertOperationQueue.swift */; };
+		BBAC26A42AFE134300563A08 /* KMToolbarItemPopViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBAC26A32AFE134300563A08 /* KMToolbarItemPopViewController.swift */; };
+		BBAC26A52AFE134300563A08 /* KMToolbarItemPopViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBAC26A32AFE134300563A08 /* KMToolbarItemPopViewController.swift */; };
+		BBAC26A62AFE134300563A08 /* KMToolbarItemPopViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBAC26A32AFE134300563A08 /* KMToolbarItemPopViewController.swift */; };
+		BBAC26A82AFE138800563A08 /* KMToolbarItemPopViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBAC26A72AFE138700563A08 /* KMToolbarItemPopViewController.xib */; };
+		BBAC26A92AFE138800563A08 /* KMToolbarItemPopViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBAC26A72AFE138700563A08 /* KMToolbarItemPopViewController.xib */; };
+		BBAC26AA2AFE138800563A08 /* KMToolbarItemPopViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBAC26A72AFE138700563A08 /* KMToolbarItemPopViewController.xib */; };
+		BBAC26AC2AFE31F400563A08 /* KMBatchOperateAddPasswordViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBAC26AB2AFE31F400563A08 /* KMBatchOperateAddPasswordViewController.xib */; };
+		BBAC26AD2AFE31F400563A08 /* KMBatchOperateAddPasswordViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBAC26AB2AFE31F400563A08 /* KMBatchOperateAddPasswordViewController.xib */; };
+		BBAC26AE2AFE31F400563A08 /* KMBatchOperateAddPasswordViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBAC26AB2AFE31F400563A08 /* KMBatchOperateAddPasswordViewController.xib */; };
 		BBADCF582AF3C7B3004ECE0C /* KMBatchOperateAddWatermarkViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBADCF552AF3C7B2004ECE0C /* KMBatchOperateAddWatermarkViewController.xib */; };
 		BBADCF592AF3C7B3004ECE0C /* KMBatchOperateAddWatermarkViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBADCF552AF3C7B2004ECE0C /* KMBatchOperateAddWatermarkViewController.xib */; };
 		BBADCF5A2AF3C7B3004ECE0C /* KMBatchOperateAddWatermarkViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBADCF552AF3C7B2004ECE0C /* KMBatchOperateAddWatermarkViewController.xib */; };
@@ -4690,7 +4696,6 @@
 		BB853C662AF87502009C20C1 /* KMBatchOperateRemoveWatermarkViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KMBatchOperateRemoveWatermarkViewController.xib; sourceTree = "<group>"; };
 		BB853C6A2AF8782A009C20C1 /* KMRemoveWatermarkOperationQueue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMRemoveWatermarkOperationQueue.swift; sourceTree = "<group>"; };
 		BB853C6E2AF879C1009C20C1 /* KMBatchRemoveWatermarkOperation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMBatchRemoveWatermarkOperation.swift; sourceTree = "<group>"; };
-		BB853C782AF8B59B009C20C1 /* KMBatchOperateAddPasswordViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KMBatchOperateAddPasswordViewController.xib; sourceTree = "<group>"; };
 		BB853C7C2AF8B5D6009C20C1 /* KMBatchOperateAddPasswordViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMBatchOperateAddPasswordViewController.swift; sourceTree = "<group>"; };
 		BB853C812AF8BAF0009C20C1 /* KMSetPasswordObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMSetPasswordObject.swift; sourceTree = "<group>"; };
 		BB853C852AF8BC12009C20C1 /* KMAddPasswordOperationQueue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMAddPasswordOperationQueue.swift; sourceTree = "<group>"; };
@@ -4803,6 +4808,9 @@
 		BBA93D3129BF0ECD0044E0DD /* SKKeychain.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKKeychain.h; sourceTree = "<group>"; };
 		BBA93D3229BF0ECD0044E0DD /* SKKeychain.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SKKeychain.m; sourceTree = "<group>"; };
 		BBAC26A02AFDF54F00563A08 /* KMConvertOperationQueue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMConvertOperationQueue.swift; sourceTree = "<group>"; };
+		BBAC26A32AFE134300563A08 /* KMToolbarItemPopViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMToolbarItemPopViewController.swift; sourceTree = "<group>"; };
+		BBAC26A72AFE138700563A08 /* KMToolbarItemPopViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KMToolbarItemPopViewController.xib; sourceTree = "<group>"; };
+		BBAC26AB2AFE31F400563A08 /* KMBatchOperateAddPasswordViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KMBatchOperateAddPasswordViewController.xib; sourceTree = "<group>"; };
 		BBADCF552AF3C7B2004ECE0C /* KMBatchOperateAddWatermarkViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KMBatchOperateAddWatermarkViewController.xib; sourceTree = "<group>"; };
 		BBADCF602AF3CB92004ECE0C /* KMWatermarkCollectionViewItem.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KMWatermarkCollectionViewItem.xib; sourceTree = "<group>"; };
 		BBAFC8392985194800D0648E /* KMPDFEditAppendWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KMPDFEditAppendWindow.m; sourceTree = "<group>"; };
@@ -8317,7 +8325,7 @@
 			isa = PBXGroup;
 			children = (
 				BB853C7C2AF8B5D6009C20C1 /* KMBatchOperateAddPasswordViewController.swift */,
-				BB853C782AF8B59B009C20C1 /* KMBatchOperateAddPasswordViewController.xib */,
+				BBAC26AB2AFE31F400563A08 /* KMBatchOperateAddPasswordViewController.xib */,
 			);
 			path = VC;
 			sourceTree = "<group>";
@@ -8939,6 +8947,8 @@
 				BBE9D09A2AF0CEEA002E83CE /* KMBatchOperateCompressViewController.xib */,
 				BB6347AD2AF1F0A400F5438E /* KMBatchOperateConvertViewController.swift */,
 				BB6347AF2AF1F0BB00F5438E /* KMBatchOperateConvertViewController.xib */,
+				BBAC26A32AFE134300563A08 /* KMToolbarItemPopViewController.swift */,
+				BBAC26A72AFE138700563A08 /* KMToolbarItemPopViewController.xib */,
 			);
 			path = VC;
 			sourceTree = "<group>";
@@ -9719,7 +9729,6 @@
 				ADBC375829CAE95700D93208 /* KMComparativeOutlineSectionCell.xib in Resources */,
 				AD867FBB29DFBB3B00F00440 /* KMAnnotationOutlineSectionView.xib in Resources */,
 				AD0FA50629A8E61B00EDEB50 /* KMLightMemberAlertView.xib in Resources */,
-				BB853C792AF8B59B009C20C1 /* KMBatchOperateAddPasswordViewController.xib in Resources */,
 				ADCFFC0629C04617007D3657 /* BOTA.xcassets in Resources */,
 				89E4E7852967BF5A002DBA6F /* KMCustomizeStampViewController.xib in Resources */,
 				BB1BFF652AE9FBA8003EB179 /* KMBatchOperateWindowController.xib in Resources */,
@@ -9824,6 +9833,7 @@
 				9FAAA335290BD0A20046FFCE /* KMHistoryFileCollectionViewItem.xib in Resources */,
 				ADD1B6CB2942E85300C3FFF7 /* KMPrintBottomView.xib in Resources */,
 				89752DB02936F505003FF08E /* KMCustomButtonPopMenuViewController.xib in Resources */,
+				BBAC26A82AFE138800563A08 /* KMToolbarItemPopViewController.xib in Resources */,
 				F356720829AF184A00740FF3 /* CPDFListAnnotationNoteWindowController.xib in Resources */,
 				9F94747F29FA24200042F949 /* Credits.rtf in Resources */,
 				89316825296D73CC0073EA59 /* KMSignatureAnnotationViewController.xib in Resources */,
@@ -9840,6 +9850,7 @@
 				BB8F454A295A9CDC0037EA22 /* KMHeaderFooterListController.xib in Resources */,
 				9F853A082947137500DF644E /* newtab.pdf in Resources */,
 				8997011128F40842009AF911 /* KMOutlineViewController.xib in Resources */,
+				BBAC26AC2AFE31F400563A08 /* KMBatchOperateAddPasswordViewController.xib in Resources */,
 				BB1BFF752AEA0B38003EB179 /* KMBatchOperateLeftViewController.xib in Resources */,
 				9F0CB4A229683E2600007028 /* KMPropertiesPanelSizeSubVC.xib in Resources */,
 				BB49ECE0293EED6100C82CA2 /* KMConvertWordWindowController.xib in Resources */,
@@ -10123,6 +10134,7 @@
 				9FD0FA3529CD947000F2AB0D /* KMOpacityPanel.xib in Resources */,
 				BB5DF1F52959C9F00025CDA1 /* KMHeaderFooterPropertyMainController.xib in Resources */,
 				9FBC48BC299B44C600CA39D7 /* KMSecondaryViewController.xib in Resources */,
+				BBAC26A92AFE138800563A08 /* KMToolbarItemPopViewController.xib in Resources */,
 				9F94747C29FA22700042F949 /* InfoPlist.strings in Resources */,
 				AD2D74B129F0CEB300EDC5E4 /* KMCancellationWindowController.xib in Resources */,
 				9F1FE4DF29406E4700E952CA /* .gclient in Resources */,
@@ -10187,7 +10199,6 @@
 				BB1BFF6E2AEA030F003EB179 /* KMBatchOperateSplitViewController.xib in Resources */,
 				BB003032298D315E002DD1A0 /* KMPreferenceMarkupController.xib in Resources */,
 				BB89721C294AED6C0045787C /* KMWatermarkAdjectivePreViewBaseController.xib in Resources */,
-				BB853C7A2AF8B59B009C20C1 /* KMBatchOperateAddPasswordViewController.xib in Resources */,
 				ADB5E51F2A3711DF007110A8 /* KMSubscribeWaterMarkView.xib in Resources */,
 				9FDD0F9D2952FF4D000C4DAD /* comp-light.json in Resources */,
 				ADED71DA29B57C01005EEC0A /* Localizable.strings in Resources */,
@@ -10223,6 +10234,7 @@
 				BBC348372955A118008D2CD1 /* KMCreateBackgroundController.xib in Resources */,
 				ADC31FAD2A0E0C3900ED44A2 /* KMEditPropertyAlignmentView.xib in Resources */,
 				9F0CB4832967F64D00007028 /* KMPropertiesPanelReadOnlySubVC.xib in Resources */,
+				BBAC26AD2AFE31F400563A08 /* KMBatchOperateAddPasswordViewController.xib in Resources */,
 				899700FA28F4051B009AF911 /* KMAnnotationViewController.xib in Resources */,
 				9FDD0FBB295D5230000C4DAD /* KMToolbarController.xib in Resources */,
 				9F1FE4E829406E4700E952CA /* COPYING in Resources */,
@@ -10325,6 +10337,7 @@
 			buildActionMask = 2147483647;
 			files = (
 				BB90E4EC2AF347A700B04B9F /* PreferenceWindow.xib in Resources */,
+				BBAC26AE2AFE31F400563A08 /* KMBatchOperateAddPasswordViewController.xib in Resources */,
 				9F705F7B291A3A84005199AD /* KMHistoryFileDeleteWindowController.xib in Resources */,
 				89E4E7432964160F002DBA6F /* KMAnnotationLinkViewController.xib in Resources */,
 				ADBC373929CA975B00D93208 /* KMCompatative.xcassets in Resources */,
@@ -10481,7 +10494,6 @@
 				AD88109C29A78AEC00178CA1 /* KMVerificationCodeView.xib in Resources */,
 				89E4E7872967BF5A002DBA6F /* KMCustomizeStampViewController.xib in Resources */,
 				BB4EEF3229763EE7003A3537 /* KMRedactBaseWindowController.xib in Resources */,
-				BB853C7B2AF8B59B009C20C1 /* KMBatchOperateAddPasswordViewController.xib in Resources */,
 				9F853A0A2947137500DF644E /* newtab.pdf in Resources */,
 				AD85D1892AEF46DF000F4D28 /* KMHomeNOFileView.xib in Resources */,
 				8997011328F40842009AF911 /* KMOutlineViewController.xib in Resources */,
@@ -10557,6 +10569,7 @@
 				BBC4F9F02AEB58470098A1A8 /* KMAlertWindowController.xib in Resources */,
 				ADBC2CF7299C7B3E006280C8 /* Print.xcassets in Resources */,
 				9F0CB48C29683DC400007028 /* KMPropertiesPanelPresetColorSubVC.xib in Resources */,
+				BBAC26AA2AFE138800563A08 /* KMToolbarItemPopViewController.xib in Resources */,
 				BBADCF662AF3CB92004ECE0C /* KMWatermarkCollectionViewItem.xib in Resources */,
 				9F0CB49C29683E1000007028 /* KMPropertiesPanelTextSubVC.xib in Resources */,
 				BB49ED0B293F461500C82CA2 /* KMConvertCSVWindowController.xib in Resources */,
@@ -11461,6 +11474,7 @@
 				BB14703B299DC0D200784A6A /* OIDErrorUtilities.m in Sources */,
 				BB853C862AF8BC12009C20C1 /* KMAddPasswordOperationQueue.swift in Sources */,
 				F34BF93529530708002C25A2 /* NSImage+PDFListView.m in Sources */,
+				BBAC26A42AFE134300563A08 /* KMToolbarItemPopViewController.swift in Sources */,
 				ADD1B70A29471FA500C3FFF7 /* KMPrintChoosePresenter.swift in Sources */,
 				BB1BFF692AEA02F8003EB179 /* KMBatchOperateSplitViewController.swift in Sources */,
 				F3599173292B62F5000D25DE /* CStringConstants.m in Sources */,
@@ -12234,6 +12248,7 @@
 				BB146FE5299DC0D100784A6A /* GTLRURITemplate.m in Sources */,
 				9F1FE4F129406E4700E952CA /* BackgroundGradientView.m in Sources */,
 				89E4E6E42963CD82002DBA6F /* KMGeneralAnnotationViewController.m in Sources */,
+				BBAC26A52AFE134300563A08 /* KMToolbarItemPopViewController.swift in Sources */,
 				9F0CB4BE2977C06300007028 /* KMPropertiesPanelColorSubVC.swift in Sources */,
 				AD1CA41A2A061CE10070541F /* KMAnnotationScreenTypeViewItem.swift in Sources */,
 				BB0A55152A3052F800B6E84B /* KMCustomTextField.swift in Sources */,
@@ -12385,6 +12400,7 @@
 				9FBA0F0029015A82001117AF /* KMFastToolCollectionViewItem.swift in Sources */,
 				BB146FD1299DC0D100784A6A /* GTMMIMEDocument.m in Sources */,
 				9FCFECA62AD237B500EAD2CB /* KMBatchTableRowView.swift in Sources */,
+				BBAC26A62AFE134300563A08 /* KMToolbarItemPopViewController.swift in Sources */,
 				BB93CDEB2AE7B6E100B29C57 /* KMToolbarView.swift in Sources */,
 				AD1D48232AFB6BBA007AC1F0 /* KMMergeView.swift in Sources */,
 				BB1EC8002967B26700EC0BC3 /* KMPDFEditViewController.swift in Sources */,

+ 15 - 0
PDF Office/PDF Master.xcodeproj/xcuserdata/kdanmobile.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -273,6 +273,21 @@
                   endingLineNumber = "332"
                   offsetFromSymbolStart = "299">
                </Location>
+               <Location
+                  uuid = "4AA5DDA9-7119-40D7-89B4-F368372F819A - 89e3ff688b88713e"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Master.KMEditPDFTextManager.setFontAlignment(alignment: __C.NSTextAlignment) -&gt; ()"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/kdanmobile/PDF_Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/Side/RightSide/EditPDF/Manager/KMEditPDFTextManager.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "332"
+                  endingLineNumber = "332"
+                  offsetFromSymbolStart = "192">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>

+ 26 - 0
PDF Office/PDF Master/Class/Batch/WindowController/VC/KMToolbarItemPopViewController.swift

@@ -0,0 +1,26 @@
+//
+//  KMToolbarItemPopViewController.swift
+//  PDF Master
+//
+//  Created by liujiajie on 2023/11/10.
+//
+
+import Cocoa
+
+class KMToolbarItemPopViewController: NSViewController{
+    @IBOutlet var toolbarHelpTipLabel: NSTextField!
+    
+    convenience init() {
+        self.init(nibName: "KMToolbarItemPopViewController", bundle: nil)
+        
+    }
+    
+    func updateWithHelpTip(helpTip: String) {
+        self.toolbarHelpTipLabel.stringValue = helpTip.count > 0 ? helpTip : ""
+    }
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        self.toolbarHelpTipLabel.textColor = .labelColor
+    }
+}

+ 42 - 0
PDF Office/PDF Master/Class/Batch/WindowController/VC/KMToolbarItemPopViewController.xib

@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22154" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+    <dependencies>
+        <deployment identifier="macosx"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22154"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <customObject id="-2" userLabel="File's Owner" customClass="KMToolbarItemPopViewController" customModule="PDF_Master" customModuleProvider="target">
+            <connections>
+                <outlet property="toolbarHelpTipLabel" destination="Anw-6R-RbF" id="Ra3-8V-bZf"/>
+                <outlet property="view" destination="Hz6-mo-xeY" id="0bl-1N-x8E"/>
+            </connections>
+        </customObject>
+        <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="10" height="24"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+            <subviews>
+                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Anw-6R-RbF">
+                    <rect key="frame" x="3" y="5" width="4" height="14"/>
+                    <constraints>
+                        <constraint firstAttribute="width" relation="lessThanOrEqual" constant="300" id="jFH-vi-FyE"/>
+                    </constraints>
+                    <textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="left" id="cwU-Ja-9t5">
+                        <font key="font" metaFont="smallSystem"/>
+                        <color key="textColor" red="0.99999600649999998" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+                    </textFieldCell>
+                </textField>
+            </subviews>
+            <constraints>
+                <constraint firstItem="Anw-6R-RbF" firstAttribute="top" secondItem="Hz6-mo-xeY" secondAttribute="top" constant="5" id="I9x-u0-py7"/>
+                <constraint firstItem="Anw-6R-RbF" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" constant="5" id="TC0-WL-8ct"/>
+                <constraint firstAttribute="trailing" secondItem="Anw-6R-RbF" secondAttribute="trailing" constant="5" id="Vvb-Qb-5dD"/>
+                <constraint firstAttribute="bottom" secondItem="Anw-6R-RbF" secondAttribute="bottom" constant="5" id="pgE-Je-WDF"/>
+            </constraints>
+            <point key="canvasLocation" x="178.5" y="115"/>
+        </customView>
+    </objects>
+</document>

+ 57 - 8
PDF Office/PDF Master/Class/PDFTools/AddPassword/VC/KMBatchOperateAddPasswordViewController.swift

@@ -312,20 +312,69 @@ class KMBatchOperateAddPasswordViewController: KMBatchOperateBaseViewController,
         }
     }
     
-    @IBAction func buttonAction_ForbidPrint(_ sender: Any) {
-        
+    @IBAction func buttonAction_ForbidPrint(_ sender: NSButton) {
+        if (sender.state == .on){
+            self.passwordObject?.canPrint = false;
+        }else{
+            self.passwordObject?.canPrint = true;
+        }
+        self.encryptButtonEnabled()
     }
     
-    @IBAction func buttonAction_ForbidCopy(_ sender: Any) {
-        
+    @IBAction func buttonAction_ForbidCopy(_ sender: NSButton) {
+        if (sender.state == .on){
+            self.passwordObject?.canCopy = false;
+        }else{
+            self.passwordObject?.canCopy = true;
+        }
+        self.encryptButtonEnabled()
     }
     
-    @IBAction func buttonAction_AddPassword(_ sender: Any) {
-        
+    @IBAction func buttonAction_AddPassword(_ sender: NSButton) {
+        if !self.haveFiles { return } 
+        if !self.isAction { return }
+        // 点击开始
+        if sender.tag == 1 {
+            if openPasswordButton.state == .off && ownerPasswordButton.state == .off {
+                let alert = NSAlert()
+                alert.alertStyle = .critical
+                alert.messageText = String(format: NSLocalizedString("Please select at least one encryption level.", comment: ""))
+                alert.runModal()
+                return
+            }
+            if ownerPasswordButton.state == .on && openPasswordButton.state == .on && openPasswordTextField.stringValue == ownerPasswordTextField.stringValue {
+                let alert = NSAlert()
+                alert.alertStyle = .critical
+                alert.messageText = String(format: NSLocalizedString("The Open and Owner passwords cannot be the same. Please change either the Open or the Owner Password.", comment: ""))
+                alert.runModal()
+                return
+            }
+            
+            if openPasswordButton.state == .on && openPasswordTextField.stringValue.count < 1 {
+                NSSound.beep()
+                return
+            }
+            
+            self.beginBatchOperation()
+        } else if sender.tag == 0 {
+            self.cancelBatchOperation()
+        }
     }
     
-    @IBAction func buttonClickedHelp(_ sender: Any) {
-        
+    @IBAction func buttonClickedHelp(_ sender: NSButton) {
+        var tag: Int = sender.tag 
+        let popViewController = KMToolbarItemPopViewController(nibName: "KMToolbarItemPopViewController", bundle: nil)
+        self.popOver = NSPopover()
+        self.popOver?.contentViewController = popViewController
+        self.popOver?.animates = false
+        self.popOver?.behavior = .transient
+        self.popOver?.contentSize = popViewController.view.frame.size
+        if tag == 0 {
+            popViewController.updateWithHelpTip(helpTip: KMLocalizedString("Require a password to open the document.", nil))
+        } else if tag == 1 {
+            popViewController.updateWithHelpTip(helpTip: KMLocalizedString("Restrict printing and copying of the document. A password will be required in order to change these permission settings.", nil))
+        }
+        self.popOver?.show(relativeTo: sender.frame, of: self.view, preferredEdge: .maxY)
     }
     
     func controlTextDidChange(_ obj: Notification) {

+ 32 - 32
PDF Office/PDF Master/Class/PDFTools/AddPassword/VC/KMBatchOperateAddPasswordViewController.xib

@@ -8,29 +8,29 @@
     <objects>
         <customObject id="-2" userLabel="File's Owner" customClass="KMBatchOperateAddPasswordViewController" customModule="PDF_Master" customModuleProvider="target">
             <connections>
-                <outlet property="actionButton" destination="6pu-SN-0Ge" id="eXg-cP-jCf"/>
-                <outlet property="fileAuthorLabel" destination="5Ia-uJ-1zk" id="MML-jo-eiQ"/>
-                <outlet property="fileAuthorTextField" destination="Knr-KG-HzN" id="2fp-YZ-KKQ"/>
-                <outlet property="fileDecriptionLabel" destination="0TH-K7-3B0" id="Vjx-kv-9eP"/>
-                <outlet property="fileKeywordLabel" destination="yxH-ic-i9s" id="u0F-Zd-0qt"/>
-                <outlet property="fileKeywordTextField" destination="QQz-ZP-vnb" id="5tU-eo-bvg"/>
-                <outlet property="fileThemeLabel" destination="53H-47-woj" id="Soh-iv-JXk"/>
-                <outlet property="fileThemeTextField" destination="0db-BN-jf9" id="MhQ-Zi-gdE"/>
-                <outlet property="fileTitleLabel" destination="gMK-hN-4n6" id="YUc-RZ-Zkb"/>
-                <outlet property="fileTitleTextField" destination="3Ld-O7-I8s" id="XDK-2a-nDp"/>
-                <outlet property="forbidCopyButton" destination="1rb-ti-m6k" id="v89-uZ-g6a"/>
-                <outlet property="forbidCopyLabel" destination="vSh-Gt-ruS" id="8ad-Hb-nkh"/>
-                <outlet property="forbidPrintButton" destination="wJg-Pz-iES" id="TqG-6t-nbl"/>
-                <outlet property="forbidPrintLabel" destination="njT-1c-KYv" id="2VX-yk-yos"/>
-                <outlet property="openPasswordButton" destination="zcv-1e-IOd" id="Z4Y-Mt-YmO"/>
-                <outlet property="openPasswordHelpButton" destination="TgC-xP-uhJ" id="65i-yt-eCf"/>
-                <outlet property="openPasswordLabel" destination="ejq-fj-BBb" id="MT2-1K-IyP"/>
-                <outlet property="openPasswordTextField" destination="Wnl-ub-aCR" id="hbv-6u-bpG"/>
-                <outlet property="ownerPasswordButton" destination="cdX-ec-fUT" id="nMN-QV-Wuu"/>
-                <outlet property="ownerPasswordHelpButton" destination="Izf-13-UPi" id="dxL-YN-now"/>
-                <outlet property="ownerPasswordTF" destination="DhJ-5m-2ap" id="XeN-lu-bxY"/>
-                <outlet property="ownerPasswordTextField" destination="k7w-MX-pe3" id="qxH-tN-cEb"/>
-                <outlet property="titleLabel" destination="WH9-YI-qOJ" id="1PC-93-aky"/>
+                <outlet property="actionButton" destination="6pu-SN-0Ge" id="yB9-Xh-Yoi"/>
+                <outlet property="fileAuthorLabel" destination="5Ia-uJ-1zk" id="rYR-7F-PxF"/>
+                <outlet property="fileAuthorTextField" destination="Knr-KG-HzN" id="9Iw-Gg-U53"/>
+                <outlet property="fileDecriptionLabel" destination="0TH-K7-3B0" id="iSK-1c-Zrp"/>
+                <outlet property="fileKeywordLabel" destination="yxH-ic-i9s" id="4az-a6-QXe"/>
+                <outlet property="fileKeywordTextField" destination="QQz-ZP-vnb" id="xre-0v-mfr"/>
+                <outlet property="fileThemeLabel" destination="53H-47-woj" id="JQe-WV-2GF"/>
+                <outlet property="fileThemeTextField" destination="0db-BN-jf9" id="7DN-yl-zXO"/>
+                <outlet property="fileTitleLabel" destination="gMK-hN-4n6" id="88n-m5-1tP"/>
+                <outlet property="fileTitleTextField" destination="3Ld-O7-I8s" id="42G-bJ-uVL"/>
+                <outlet property="forbidCopyButton" destination="1rb-ti-m6k" id="R45-Ub-vna"/>
+                <outlet property="forbidCopyLabel" destination="vSh-Gt-ruS" id="mJy-2f-awo"/>
+                <outlet property="forbidPrintButton" destination="wJg-Pz-iES" id="r3j-d5-u9B"/>
+                <outlet property="forbidPrintLabel" destination="njT-1c-KYv" id="fDa-ZH-on9"/>
+                <outlet property="openPasswordButton" destination="zcv-1e-IOd" id="InZ-bP-Ym7"/>
+                <outlet property="openPasswordHelpButton" destination="TgC-xP-uhJ" id="cKl-Yc-qpH"/>
+                <outlet property="openPasswordLabel" destination="ejq-fj-BBb" id="Aco-LZ-PNN"/>
+                <outlet property="openPasswordTextField" destination="Wnl-ub-aCR" id="Go6-g3-ljl"/>
+                <outlet property="ownerPasswordButton" destination="cdX-ec-fUT" id="pOV-l4-kwz"/>
+                <outlet property="ownerPasswordHelpButton" destination="Izf-13-UPi" id="Sqx-rU-YNG"/>
+                <outlet property="ownerPasswordTF" destination="DhJ-5m-2ap" id="c78-bi-wQ0"/>
+                <outlet property="ownerPasswordTextField" destination="k7w-MX-pe3" id="s6V-KA-Ddj"/>
+                <outlet property="titleLabel" destination="WH9-YI-qOJ" id="3eJ-G2-uon"/>
                 <outlet property="view" destination="Hz6-mo-xeY" id="0bl-1N-x8E"/>
             </connections>
         </customObject>
@@ -72,10 +72,10 @@
                         <constraint firstAttribute="height" constant="18" id="QA3-bf-off"/>
                     </constraints>
                     <connections>
-                        <action selector="buttonAction_NeedOwnerPassword:" target="-2" id="IVn-TD-urF"/>
+                        <action selector="buttonAction_NeedOwnerPassword:" target="-2" id="xDg-9d-QCS"/>
                     </connections>
                 </button>
-                <textField focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Wnl-ub-aCR" customClass="NSSecureTextField" customModule="PDF_Master" customModuleProvider="target">
+                <textField focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Wnl-ub-aCR" customClass="NSSecureTextField">
                     <rect key="frame" x="33" y="505" width="176" height="24"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="24" id="AUi-Ff-HBA"/>
@@ -87,7 +87,7 @@
                         <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                     </textFieldCell>
                 </textField>
-                <textField focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="k7w-MX-pe3" customClass="NSSecureTextField" customModule="PDF_Master" customModuleProvider="target">
+                <textField focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="k7w-MX-pe3" customClass="NSSecureTextField">
                     <rect key="frame" x="33" y="437" width="176" height="24"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="24" id="NBw-0c-qhR"/>
@@ -105,7 +105,7 @@
                         <font key="font" metaFont="system"/>
                     </buttonCell>
                     <connections>
-                        <action selector="buttonClickedHelp:" target="-2" id="TTq-MK-F6E"/>
+                        <action selector="buttonClickedHelp:" target="-2" id="bYR-z0-fAk"/>
                     </connections>
                 </button>
                 <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="njT-1c-KYv">
@@ -123,7 +123,7 @@
                         <font key="font" metaFont="cellTitle"/>
                     </buttonCell>
                     <connections>
-                        <action selector="buttonAction_ForbidPrint:" target="-2" id="IEi-DW-hm8"/>
+                        <action selector="buttonAction_ForbidPrint:" target="-2" id="fhT-XJ-Af4"/>
                     </connections>
                 </button>
                 <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="vSh-Gt-ruS">
@@ -141,7 +141,7 @@
                         <font key="font" metaFont="cellTitle"/>
                     </buttonCell>
                     <connections>
-                        <action selector="buttonAction_ForbidCopy:" target="-2" id="q34-jk-cC4"/>
+                        <action selector="buttonAction_ForbidCopy:" target="-2" id="3Ih-xU-ieg"/>
                     </connections>
                 </button>
                 <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="0TH-K7-3B0">
@@ -250,7 +250,7 @@
                         <constraint firstAttribute="height" constant="32" id="O2D-z7-Imx"/>
                     </constraints>
                     <connections>
-                        <action selector="buttonAction_AddPassword:" target="-2" id="fdK-eb-tjl"/>
+                        <action selector="buttonAction_AddPassword:" target="-2" id="DRL-ld-zed"/>
                     </connections>
                 </button>
                 <button tag="1" horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Izf-13-UPi">
@@ -260,7 +260,7 @@
                         <font key="font" metaFont="system"/>
                     </buttonCell>
                     <connections>
-                        <action selector="buttonClickedHelp:" target="-2" id="TMw-Ff-Iuv"/>
+                        <action selector="buttonClickedHelp:" target="-2" id="lK8-g3-IgU"/>
                     </connections>
                 </button>
                 <textField focusRingType="none" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="ejq-fj-BBb">
@@ -278,7 +278,7 @@
                         <font key="font" metaFont="cellTitle"/>
                     </buttonCell>
                     <connections>
-                        <action selector="buttonAction_NeedOpenPassword:" target="-2" id="Bnt-rl-i52"/>
+                        <action selector="buttonAction_NeedOpenPassword:" target="-2" id="3rn-4K-wFy"/>
                     </connections>
                 </button>
             </subviews>

+ 9 - 0
PDF Office/PDF Master/Class/PDFTools/Merge/OCPart/KMBlankView.swift

@@ -145,6 +145,15 @@ class KMBlankView: NSView {
         }
     }
     
+    override func mouseDown(with event: NSEvent) {
+        super.mouseDown(with: event)
+        var point = event.locationInWindow
+        point = self.convert(point, to: self.imageView)
+        if let mouseActionCallBack = self.mouseActionCallBack, self.imageView.bounds.contains(point) {
+            mouseActionCallBack(.mouseDown)
+        }
+    }
+    
     override func mouseUp(with event: NSEvent) {
         super.mouseUp(with: event)
         let point = event.locationInWindow