Browse Source

【KMMailHelper】KMCoverButton替换为Swift

wanjun 1 year ago
parent
commit
2abe10dafe

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

@@ -1003,6 +1003,9 @@
 		9FCFEC942AD12EE800EAD2CB /* KMCoverButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FCFEC932AD12EE800EAD2CB /* KMCoverButton.swift */; };
 		9FCFEC952AD12EE800EAD2CB /* KMCoverButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FCFEC932AD12EE800EAD2CB /* KMCoverButton.swift */; };
 		9FCFEC962AD12EE800EAD2CB /* KMCoverButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FCFEC932AD12EE800EAD2CB /* KMCoverButton.swift */; };
+		9FCFEC982AD14EEF00EAD2CB /* KMMailHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FCFEC972AD14EEF00EAD2CB /* KMMailHelper.swift */; };
+		9FCFEC992AD14EEF00EAD2CB /* KMMailHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FCFEC972AD14EEF00EAD2CB /* KMMailHelper.swift */; };
+		9FCFEC9A2AD14EEF00EAD2CB /* KMMailHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FCFEC972AD14EEF00EAD2CB /* KMMailHelper.swift */; };
 		9FD0FA2929CD3ED400F2AB0D /* KMRightSideEmptyVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FD0FA2729CD3ED400F2AB0D /* KMRightSideEmptyVC.swift */; };
 		9FD0FA2A29CD3ED400F2AB0D /* KMRightSideEmptyVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FD0FA2729CD3ED400F2AB0D /* KMRightSideEmptyVC.swift */; };
 		9FD0FA2B29CD3ED400F2AB0D /* KMRightSideEmptyVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FD0FA2729CD3ED400F2AB0D /* KMRightSideEmptyVC.swift */; };
@@ -1228,9 +1231,6 @@
 		AD53B6FE29AC5FCD00D61E81 /* KMLightMemberToken.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD53B6FD29AC5FCD00D61E81 /* KMLightMemberToken.swift */; };
 		AD53B6FF29AC5FCD00D61E81 /* KMLightMemberToken.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD53B6FD29AC5FCD00D61E81 /* KMLightMemberToken.swift */; };
 		AD53B70029AC5FCD00D61E81 /* KMLightMemberToken.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD53B6FD29AC5FCD00D61E81 /* KMLightMemberToken.swift */; };
-		AD53B70529ACC65500D61E81 /* KMMailHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = AD53B70429ACC65500D61E81 /* KMMailHelper.m */; };
-		AD53B70629ACC65500D61E81 /* KMMailHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = AD53B70429ACC65500D61E81 /* KMMailHelper.m */; };
-		AD53B70729ACC65500D61E81 /* KMMailHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = AD53B70429ACC65500D61E81 /* KMMailHelper.m */; };
 		AD61B7AD2A9DC6F600D346C1 /* KMResourceDownloadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD61B7AA2A9DC6F500D346C1 /* KMResourceDownloadManager.swift */; };
 		AD61B7AE2A9DD06C00D346C1 /* libDocumentAI.3.2.2.dylib in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = AD8DD2922A972486007CC9D0 /* libDocumentAI.3.2.2.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 		AD61B7AF2A9DD06F00D346C1 /* libonnxruntime.1.14.1.dylib in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = AD8DD2962A97248E007CC9D0 /* libonnxruntime.1.14.1.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
@@ -3933,6 +3933,7 @@
 		9FCFEC8B2AD10A4400EAD2CB /* KMTextFieldSheetController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMTextFieldSheetController.swift; sourceTree = "<group>"; };
 		9FCFEC8F2AD11E5F00EAD2CB /* KMSplitView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMSplitView.swift; sourceTree = "<group>"; };
 		9FCFEC932AD12EE800EAD2CB /* KMCoverButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMCoverButton.swift; sourceTree = "<group>"; };
+		9FCFEC972AD14EEF00EAD2CB /* KMMailHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMMailHelper.swift; sourceTree = "<group>"; };
 		9FD0FA2729CD3ED400F2AB0D /* KMRightSideEmptyVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMRightSideEmptyVC.swift; sourceTree = "<group>"; };
 		9FD0FA2829CD3ED400F2AB0D /* KMRightSideEmptyVC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMRightSideEmptyVC.xib; sourceTree = "<group>"; };
 		9FD0FA2F29CD947000F2AB0D /* KMOpacityPanel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMOpacityPanel.swift; sourceTree = "<group>"; };
@@ -4009,8 +4010,6 @@
 		AD4B456B294092160076FA14 /* KMOCRChooseView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMOCRChooseView.xib; sourceTree = "<group>"; };
 		AD4B45702940B0000076FA14 /* KMOCRModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMOCRModel.swift; sourceTree = "<group>"; };
 		AD53B6FD29AC5FCD00D61E81 /* KMLightMemberToken.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMLightMemberToken.swift; sourceTree = "<group>"; };
-		AD53B70329ACC65500D61E81 /* KMMailHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KMMailHelper.h; sourceTree = "<group>"; };
-		AD53B70429ACC65500D61E81 /* KMMailHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KMMailHelper.m; sourceTree = "<group>"; };
 		AD61B7AA2A9DC6F500D346C1 /* KMResourceDownloadManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KMResourceDownloadManager.swift; sourceTree = "<group>"; };
 		AD6218D32A7D29F40088475C /* KMComparativeGradientView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KMComparativeGradientView.swift; sourceTree = "<group>"; };
 		AD62606D2A9D968A006C6413 /* KMEditPDFAssets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = KMEditPDFAssets.xcassets; sourceTree = "<group>"; };
@@ -6214,8 +6213,7 @@
 		AD53B70229ACC64300D61E81 /* Email */ = {
 			isa = PBXGroup;
 			children = (
-				AD53B70329ACC65500D61E81 /* KMMailHelper.h */,
-				AD53B70429ACC65500D61E81 /* KMMailHelper.m */,
+				9FCFEC972AD14EEF00EAD2CB /* KMMailHelper.swift */,
 			);
 			path = Email;
 			sourceTree = "<group>";
@@ -10857,6 +10855,7 @@
 				ADB1FE31297008E800ED072D /* KMBatchCollectionView.swift in Sources */,
 				BBA4C8AB29D59CA500AD825B /* TCPageIndicator.m in Sources */,
 				ADBC2D11299CCD05006280C8 /* KMTextfieldButton.swift in Sources */,
+				9FCFEC982AD14EEF00EAD2CB /* KMMailHelper.swift in Sources */,
 				9FAAA325290A69920046FFCE /* KMToolSetScroller.swift in Sources */,
 				AD0FA51229A9FA8600EDEB50 /* KMResetPasswordView.swift in Sources */,
 				9FDD0F882952FCC6000C4DAD /* KMCompLightParser.swift in Sources */,
@@ -10873,7 +10872,6 @@
 				BB0A551D2A30793F00B6E84B /* KMDesignTextField.swift in Sources */,
 				BBD1F798296FF78C00343885 /* KMPageEditSettingBaseModel.swift in Sources */,
 				9FAAA33E290FECA70046FFCE /* NSImage+QuickLook.swift in Sources */,
-				AD53B70529ACC65500D61E81 /* KMMailHelper.m in Sources */,
 				ADE3C1E429A5ABC200793B13 /* KMLoginWindowController.swift in Sources */,
 				9F0CB4D52986551600007028 /* KMDesignToken+Spacing.swift in Sources */,
 				BBBB6CCA2AD109F30035AA66 /* CPDFAnnotation+PDFListView.swift in Sources */,
@@ -11539,6 +11537,7 @@
 				BB51074029A61B4100978662 /* SKProgressController.m in Sources */,
 				BBEC00C0295C306400A26C98 /* KMBatesPropertyController.swift in Sources */,
 				BB0A55222A30968900B6E84B /* KMDesignBaseView.swift in Sources */,
+				9FCFEC992AD14EEF00EAD2CB /* KMMailHelper.swift in Sources */,
 				89E4E6ED2963D1B7002DBA6F /* KMColorPickerViewController.m in Sources */,
 				ADCB98EA2924778C00B51A03 /* KMBatchProcessingStateTableCell.swift in Sources */,
 				89752E1E2942CB04003FF08E /* KMSearchMode.swift in Sources */,
@@ -11683,7 +11682,6 @@
 				9F1FE4C729406E4700E952CA /* CTUtil.m in Sources */,
 				BBD1F799296FF78C00343885 /* KMPageEditSettingBaseModel.swift in Sources */,
 				9FAAA33F290FECA70046FFCE /* NSImage+QuickLook.swift in Sources */,
-				AD53B70629ACC65500D61E81 /* KMMailHelper.m in Sources */,
 				ADE3C1E529A5ABC200793B13 /* KMLoginWindowController.swift in Sources */,
 				9F0CB4D62986551600007028 /* KMDesignToken+Spacing.swift in Sources */,
 				89E4E70F2963D62C002DBA6F /* KMAnnotationFontWindowController.m in Sources */,
@@ -12606,6 +12604,7 @@
 				89E4E77B2967B370002DBA6F /* KMDynamicStampViewController.m in Sources */,
 				BB8115FD29924A5F0008F536 /* KMSecureEncryptCheckCellView.swift in Sources */,
 				9F78EFBD28F7C1CC001E66F4 /* KMHomeViewController.swift in Sources */,
+				9FCFEC9A2AD14EEF00EAD2CB /* KMMailHelper.swift in Sources */,
 				BBC745EC295F067B0072C2ED /* KMCropSettingWindowController.swift in Sources */,
 				ADE8BC2729F7CCA600570F89 /* KMPageNumberDisplayView.swift in Sources */,
 				ADB5E50E2A3703E6007110A8 /* KMInAppPurchaseManager.swift in Sources */,
@@ -12902,7 +12901,6 @@
 				BB6DD8272934D056001F0544 /* KMSecureEncryptSuccessTipView.swift in Sources */,
 				9F0201902A1DDAA500C9B673 /* KMAITranslationWindowController.swift in Sources */,
 				BBEC00C1295C306400A26C98 /* KMBatesPropertyController.swift in Sources */,
-				AD53B70729ACC65500D61E81 /* KMMailHelper.m in Sources */,
 				89E4E7242963FB23002DBA6F /* KMGeneralButton.m in Sources */,
 				BB003023298CEBED002DD1A0 /* KMPreferenceStepper.swift in Sources */,
 				ADC075DB29876612006C752F /* KMBatchConverPDFPPTView.swift in Sources */,

+ 48 - 0
PDF Office/PDF Master.xcodeproj/xcuserdata/kdanwj.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -404,5 +404,53 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "11E0ACA8-701F-42B9-954C-50AC702FB2D7"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "PDF Master/Class/Common/Tools/KMTools.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "334"
+            endingLineNumber = "334"
+            landmarkName = "feekback()"
+            landmarkType = "7">
+            <Locations>
+               <Location
+                  uuid = "11E0ACA8-701F-42B9-954C-50AC702FB2D7 - 41f3e2fd374839bd"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "static PDF_Master.KMTools.feekback() -&gt; ()"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/kdanwj/Git/Mac/PDF%20Office/PDF%20Office/PDF%20Master/Class/Common/Tools/KMTools.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "334"
+                  endingLineNumber = "334"
+                  offsetFromSymbolStart = "1488">
+               </Location>
+               <Location
+                  uuid = "11E0ACA8-701F-42B9-954C-50AC702FB2D7 - 41f3e2fd374839bd"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "static PDF_Master.KMTools.feekback() -&gt; ()"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/kdanwj/Git/Mac/PDF%20Office/PDF%20Office/PDF%20Master/Class/Common/Tools/KMTools.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "334"
+                  endingLineNumber = "334"
+                  offsetFromSymbolStart = "1492">
+               </Location>
+            </Locations>
+         </BreakpointContent>
+      </BreakpointProxy>
    </Breakpoints>
 </Bucket>

+ 0 - 15
PDF Office/PDF Master/Class/KMLightMember/Tools/Email/KMMailHelper.h

@@ -1,15 +0,0 @@
-//
-//  KMMailHelper.h
-//  PDF Reader
-//
-//  Created by HuFeng on 13-3-13.
-//  Copyright (c) 2013年 zhangjie. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-#import <AppKit/AppKit.h>
-
-@interface KMMailHelper : NSObject
-+ (void)sendFileWithPaths:(NSArray *)paths;
-+ (void)newEmailWithContacts:(NSString*)contact andSubjects:(NSString*)subjects;
-@end

+ 0 - 71
PDF Office/PDF Master/Class/KMLightMember/Tools/Email/KMMailHelper.m

@@ -1,71 +0,0 @@
-//
-//  KMMailHelper.m
-//  PDF Reader
-//
-//  Created by HuFeng on 13-3-13.
-//  Copyright (c) 2013年 zhangjie. All rights reserved.
-//
-
-#import "KMMailHelper.h"
-
-@implementation KMMailHelper
-
-+ (void)sendFileWithPaths:(NSArray *)paths {
-    
-    NSString *totalFileString = nil;
-    for (int i = 0; i < [paths count]; i++) {
-        NSString* filePath = [[paths objectAtIndex:i] lastPathComponent];
-        if (i == 0) {
-            totalFileString = [NSString stringWithFormat:@"%@",filePath];
-        }else{
-            totalFileString = [totalFileString stringByAppendingFormat:@"   %@",filePath];
-        }
-    }
-    NSString *emailString = [NSString stringWithFormat:@"\
-                             tell application \"Mail\"\n\
-                             set newMessage to make new outgoing message with properties {subject:\"%@\" & return} \n\
-                             tell newMessage\n\
-                             set visible to true\n\
-                             tell content\n\
-                             ",totalFileString];
-    //add attachments to script
-    for (NSString *file in paths) {
-        emailString = [emailString stringByAppendingFormat:@"make new attachment with properties {file name:\"%@\"} at before the first paragraph\n", file];
-    }
-    
-    NSDictionary *errorDictionary;
-    emailString = [emailString stringByAppendingFormat:@"end tell\n activate\n end tell\n end tell"];
-    NSAppleScript *emailScript = [[NSAppleScript alloc] initWithSource:emailString];
-    NSAppleEventDescriptor *eventDescriptor = [emailScript executeAndReturnError:&errorDictionary];
-    if (!eventDescriptor)
-    {
-        NSURL *url = [NSURL URLWithString:@"https://www.pdfreaderpro.com/contact"];
-        if(![[NSWorkspace sharedWorkspace] openURL:url])
-            NSLog(@"Failed to open url: %@",[url description]);
-    }
-}
-
-+ (void)newEmailWithContacts:(NSString*)contact andSubjects:(NSString*)subjects
-{
-    NSString *emailString = [NSString stringWithFormat:@"\
-                             tell application \"Mail\"\n\
-                             set newMessage to make new outgoing message with properties {subject:\"%@\" & return} \n\
-                             tell newMessage\n\
-                             set visible to true\n\
-                             make new to recipient at end of to recipients with properties {address:\"%@\"}\n\
-                             tell content\n\
-                             ",subjects,contact];
-    
-    NSDictionary *errorDictionary;
-    emailString = [emailString stringByAppendingFormat:@"end tell\n activate\n end tell\n end tell"];
-    NSAppleScript *emailScript = [[NSAppleScript alloc] initWithSource:emailString];
-    NSAppleEventDescriptor *eventDescriptor = [emailScript executeAndReturnError:&errorDictionary];
-    if (!eventDescriptor)
-    {
-        NSURL *url = [NSURL URLWithString:@"https://www.pdfreaderpro.com/contact"];
-        if(![[NSWorkspace sharedWorkspace] openURL:url])
-            NSLog(@"Failed to open url: %@",[url description]);
-    }
-}
-
-@end

+ 71 - 0
PDF Office/PDF Master/Class/KMLightMember/Tools/Email/KMMailHelper.swift

@@ -0,0 +1,71 @@
+//
+//  KMMailHelper.swift
+//  PDF Master
+//
+//  Created by wanjun on 2023/10/7.
+//
+
+import Cocoa
+
+@objc
+class KMMailHelper: NSObject {
+    static func sendFile(withPaths paths: [String]) {
+        var totalFileString: String?
+        for (index, path) in paths.enumerated() {
+            let filePath = URL(fileURLWithPath: path).lastPathComponent
+            if index == 0 {
+                totalFileString = filePath
+            } else {
+                totalFileString?.append("   \(filePath)")
+            }
+        }
+        
+        guard let totalFileString = totalFileString else {
+            return
+        }
+        
+        let emailString = """
+            tell application "Mail"
+                set newMessage to make new outgoing message with properties {subject:"\(totalFileString)" & return}
+                tell newMessage
+                    set visible to true
+                    tell content
+            """
+        
+        var attachmentScript = ""
+        for file in paths {
+            attachmentScript.append("make new attachment with properties {file name:\"\(file)\"} at before the first paragraph\n")
+        }
+        
+        let errorDictionary: AutoreleasingUnsafeMutablePointer<NSDictionary?>? = nil
+        let emailScript = NSAppleScript(source: emailString + attachmentScript + "end tell\nactivate\nend tell\nend tell")
+        let eventDescriptor = emailScript?.executeAndReturnError(errorDictionary)
+        
+        if eventDescriptor == nil {
+            if let url = URL(string: "https://www.pdfreaderpro.com/contact"), !NSWorkspace.shared.open(url) {
+                NSLog("Failed to open url: \(url)")
+            }
+        }
+    }
+    
+    static func newEmail(withContacts contact: String, andSubjects subjects: String) {
+        let emailString = """
+            tell application "Mail"
+                set newMessage to make new outgoing message with properties {subject:"\(subjects)" & return}
+                tell newMessage
+                    set visible to true
+                    make new to recipient at end of to recipients with properties {address:"\(contact)"}
+                    tell content
+            """
+        
+        let errorDictionary: AutoreleasingUnsafeMutablePointer<NSDictionary?>? = nil
+        let emailScript = NSAppleScript(source: emailString + "end tell\nactivate\nend tell\nend tell")
+        let eventDescriptor = emailScript?.executeAndReturnError(errorDictionary)
+        
+        if eventDescriptor == nil {
+            if let url = URL(string: "https://www.pdfreaderpro.com/contact"), !NSWorkspace.shared.open(url) {
+                NSLog("Failed to open url: \(url)")
+            }
+        }
+    }
+}

+ 0 - 1
PDF Office/PDF Master/PDF_Master DMG-Bridging-Header.h

@@ -44,7 +44,6 @@
 #import "KMSecondaryViewController.h"
 //
 #import "KMPrintAccessoryController_OC.h"
-#import "KMMailHelper.h"
 //
 #import "SKProgressController.h"
 #import "KMSelfSignAnnotationFreeText.h"

+ 0 - 1
PDF Office/PDF Master/PDF_Master Pro-Bridging-Header.h

@@ -31,7 +31,6 @@
 #import "KMCloudOperation.h"
 //
 #import "KMPrintAccessoryController_OC.h"
-#import "KMMailHelper.h"
 //
 #import "SKProgressController.h"
 

+ 0 - 1
PDF Office/PDF Master/PDF_Master-Bridging-Header.h

@@ -44,7 +44,6 @@
 #import "KMSecondaryViewController.h"
 //
 #import "KMPrintAccessoryController_OC.h"
-#import "KMMailHelper.h"
 //
 #import "SKProgressController.h"
 #import "KMSelfSignAnnotationFreeText.h"