Ver Fonte

【2025】【综合】代码规范,整理多余类

niehaoyu há 1 mês atrás
pai
commit
4eb0557e7c
26 ficheiros alterados com 40 adições e 605 exclusões
  1. 1 1
      PDF Office/PDF Master/Class/PDFTools/AddPassword/KMSecurityWindowController.swift
  2. 1 1
      PDF Office/PDF Master/Class/PDFTools/Compare/KMCompareWindowController.swift
  3. 1 1
      PDF Office/PDF Master/Class/PDFTools/Compare/View/KMCompareView.swift
  4. 1 1
      PDF Office/PDF Master/Class/PDFTools/Compress/Controller/KMCompressSettingViewController.swift
  5. 2 2
      PDF Office/PDF Master/Class/PDFTools/Compress/Controller/KMCompressWindowController.swift
  6. 1 1
      PDF Office/PDF Master/Class/PDFTools/Insert/KMPDFInsertWindowController.swift
  7. 1 1
      PDF Office/PDF Master/Class/PDFTools/Merge/MergeNew/KMMergeWindowController.swift
  8. 1 1
      PDF Office/PDF Master/Class/PDFTools/Merge/MergeNew/View/KMMergeView.swift
  9. 1 1
      PDF Office/PDF Master/Class/PDFTools/OCRNew/Controller/KMOCRPDFWindowController.swift
  10. 9 7
      PDF Office/PDF Master/Class/PDFTools/PageEdit/Base/KMPageEditSettingBaseWindowController.swift
  11. 2 2
      PDF Office/PDF Master/Class/PDFTools/PageEdit/Window/KMPDFEditInsertPageWindow.swift
  12. 2 6
      PDF Office/PDF Master/Class/PDFTools/PageEdit/Window/SplitWindowController.swift
  13. 2 2
      PDF Office/PDF Master/Class/PDFTools/Print/KMPrintWindowController.swift
  14. 1 1
      PDF Office/PDF Master/Class/PDFTools/RemovePassword/New/KMRemovePasswordWindowController.swift
  15. 2 9
      PDF Office/PDF Master/Class/PDFTools/SelfSign/Window/KMProfileInfoWindowController.swift
  16. 1 1
      PDF Office/PDF Master/Class/PDFTools/Snapshot/Window/KMSnapshotWindowController.swift
  17. 4 3
      PDF Office/PDF Master/Class/PDFWindowController/MainWindowController/SKPresentationOptionsSheetController.swift
  18. 1 1
      PDF Office/PDF Master/KMClass/ImageToPDF/Base/KMBatchOperateLeftViewController.swift
  19. 1 1
      PDF Office/PDF Master/KMClass/ImageToPDF/Controller/KMBatchOperateImageToPDFViewController.swift
  20. 1 1
      PDF Office/PDF Master/KMClass/KMHomeViewController/KMNHomeViewController.swift
  21. 2 2
      PDF Office/PDF Master/KMClass/KMPDFViewController/KMMainViewController.swift
  22. 1 1
      PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/Edit/Window/KMOCRSettingWindowController.swift
  23. 1 1
      PDF Office/PDF Master/KMClass/NewBatch/View/Setting/ImageToPDF/KMBatchImageToPDFView.swift
  24. 0 477
      PDF Office/PDF Master/KMClass/Tools/CustomViews/Base/KMBaseViewController.swift
  25. 0 64
      PDF Office/PDF Master/KMClass/Tools/CustomViews/Base/KMBaseWindowController.swift
  26. 0 16
      PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj

+ 1 - 1
PDF Office/PDF Master/Class/PDFTools/AddPassword/KMSecurityWindowController.swift

@@ -9,7 +9,7 @@ import Cocoa
 
 typealias KMSecurityWindowControllerDoneAction = (_ controller: NSWindowController, _ option: [CPDFDocumentWriteOption : Any], _ attribute: [CPDFDocumentAttribute: Any]) -> Void
 
-class KMSecurityWindowController: KMBaseWindowController {
+class KMSecurityWindowController: KMNBaseWindowController {
     @IBOutlet weak var securityView: KMSecurityView!
     
     var batchAction: KMBatchActionBlock?

+ 1 - 1
PDF Office/PDF Master/Class/PDFTools/Compare/KMCompareWindowController.swift

@@ -10,7 +10,7 @@ import Cocoa
 typealias KMCompareWindowControllerContentComplete = (_ controller: KMCompareWindowController, _ pdfCompareContent: CPDFCompareContent, _ results: [CPDFCompareResults]  ,_ oldDocument: CPDFDocument, _ document: CPDFDocument) -> Void
 typealias KMCompareWindowControllerCoveringComplete = (_ controller: KMCompareWindowController, _ document: CPDFDocument) -> Void
 
-class KMCompareWindowController: KMBaseWindowController {
+class KMCompareWindowController: KMNBaseWindowController {
     
     @IBOutlet weak var compareView: KMCompareView!
     

+ 1 - 1
PDF Office/PDF Master/Class/PDFTools/Compare/View/KMCompareView.swift

@@ -484,7 +484,7 @@ extension KMCompareView {
                 completion(nil)
                 return
             } else {
-                KMBaseWindowController.checkPassword(url: NSURL(fileURLWithPath: filePath) as URL, type: .owner) { success, resultPassword in
+                NSWindowController.checkPassword(url: NSURL(fileURLWithPath: filePath) as URL, type: .owner) { success, resultPassword in
                     if success {
                         let file = KMFileAttribute()
                         file.pdfDocument = pdfDocument

+ 1 - 1
PDF Office/PDF Master/Class/PDFTools/Compress/Controller/KMCompressSettingViewController.swift

@@ -12,7 +12,7 @@ typealias KMCompressSettingViewControllerCancelAction = (_ controller: KMCompres
 typealias KMCompressSettingViewControllerDoneAction = (_ controller: KMCompressSettingViewController) -> Void
 typealias KMCompressSettingViewControllerModelChangeAction = (_ controller: KMCompressSettingViewController, _ model: KMCompressSettingModel) -> Void
 
-class KMCompressSettingViewController: KMBaseViewController {
+class KMCompressSettingViewController: KMNBaseViewController {
     @IBOutlet weak var doneButton: ComponentButton!
     @IBOutlet weak var cancelButton: ComponentButton!
     @IBOutlet weak var settingView: KMCompressSettingTableView!

+ 2 - 2
PDF Office/PDF Master/Class/PDFTools/Compress/Controller/KMCompressWindowController.swift

@@ -11,7 +11,7 @@ typealias KMCompressWindowControllerBatchAction = (_ view: KMCompressWindowContr
 typealias KMCompressWindowControllerItemClick = () -> Void
 typealias KMCompressWindowControllerResultCallback = (_ result: Bool,_ openDocuemt: Bool, _ fileURL: URL, _ error: String)->()
 
-class KMCompressWindowController: KMBaseWindowController {
+class KMCompressWindowController: KMNBaseWindowController {
     @IBOutlet weak var compressView: KMCompressView!
     
     var resultCallback: KMCompressWindowControllerResultCallback!
@@ -23,7 +23,7 @@ class KMCompressWindowController: KMBaseWindowController {
             if self.password.count != 0 {
                 self.compressView?.documentURL = self.documentURL
             } else {
-                KMBaseWindowController.checkPassword(url: documentURL, type: .owner) { [unowned self] success, paasswordString in
+                NSWindowController.checkPassword(url: documentURL, type: .owner) { [unowned self] success, paasswordString in
                     if success {
                         self.password = paasswordString
                         self.compressView?.documentURL = self.documentURL

+ 1 - 1
PDF Office/PDF Master/Class/PDFTools/Insert/KMPDFInsertWindowController.swift

@@ -7,7 +7,7 @@
 
 import Cocoa
 
-class KMPDFInsertWindowController: KMBaseWindowController {
+class KMPDFInsertWindowController: KMNBaseWindowController {
     @IBOutlet weak var progress: NSProgressIndicator!
     @IBOutlet weak var pageCountLabel: NSTextField!
     @IBOutlet weak var insertTypeLabel: NSTextField!

+ 1 - 1
PDF Office/PDF Master/Class/PDFTools/Merge/MergeNew/KMMergeWindowController.swift

@@ -12,7 +12,7 @@ typealias KMMergeWindowControllerAddFilesAction = (_ controller: KMMergeWindowCo
 typealias KMMergeWindowControllerMergeAction = (_ controller: KMMergeWindowController, _ filePath: String) -> Void
 typealias KMMergeWindowControllerClearAction = (_ controller: KMMergeWindowController) -> Void
 
-class KMMergeWindowController: KMBaseWindowController {
+class KMMergeWindowController: KMNBaseWindowController {
     
     @IBOutlet weak var mergeView: KMMergeView!
      

+ 1 - 1
PDF Office/PDF Master/Class/PDFTools/Merge/MergeNew/View/KMMergeView.swift

@@ -449,7 +449,7 @@ extension KMMergeView {
     func openPasswordFile(completion: @escaping ((_ success: Bool, _ resultPassword: String) -> Void)) {
         if lockFiles.count != 0 {
             let file = lockFiles[lockFilesIndex]
-            KMBaseWindowController.checkPassword(url: URL(fileURLWithPath: file.filePath), type: .owner) { [unowned self] success, resultPassword in
+            NSWindowController.checkPassword(url: URL(fileURLWithPath: file.filePath), type: .owner) { [unowned self] success, resultPassword in
                 if success {
                     file.password = resultPassword
                     lockFilesIndex = lockFilesIndex + 1

+ 1 - 1
PDF Office/PDF Master/Class/PDFTools/OCRNew/Controller/KMOCRPDFWindowController.swift

@@ -217,7 +217,7 @@ class KMOCRPDFWindowController: NSWindowController, NSWindowDelegate, KMGOCRMana
             
         } else {
             if let docUrl = self.pdfDocument?.documentURL {
-                KMBaseWindowController.checkPassword(url: self.pdfDocument!.documentURL, type: .owner) { success, pwd in
+                NSWindowController.checkPassword(url: self.pdfDocument!.documentURL, type: .owner) { success, pwd in
                     if success {
                         self.pdfDocument?.unlock(withPassword: pwd)
                         self.password = pwd

+ 9 - 7
PDF Office/PDF Master/Class/PDFTools/PageEdit/Base/KMPageEditSettingBaseWindowController.swift

@@ -6,7 +6,7 @@
 //
 
 // 页面编辑 [窗口基类]
-class KMPageEditSettingBaseWindowController: KMBaseWindowController {
+class KMPageEditSettingBaseWindowController: KMNBaseWindowController {
     @IBOutlet weak var contentWidthConst: NSLayoutConstraint!
     @IBOutlet weak var contentHeightConst: NSLayoutConstraint!
     
@@ -38,10 +38,13 @@ class KMPageEditSettingBaseWindowController: KMBaseWindowController {
         self.init(windowNibName: "KMPageEditSettingBaseWindowController")
         
         self.model_ = model
+        
+        self.initSubViews()
+        
+        self.initDefaultValue()
     }
     
-    override func initSubViews() {
-        super.initSubViews()
+    func initSubViews() {
         
         self.cancelVC_ = KMDesignButton(withType: .Text)
         self.cancelButton.addSubview(self.cancelVC_!.view)
@@ -54,8 +57,7 @@ class KMPageEditSettingBaseWindowController: KMBaseWindowController {
         self.funcVC_?.view.autoresizingMask = [.width, .height]
     }
     
-    override func initDefaultValue() {
-        super.initDefaultValue()
+    func initDefaultValue() {
         
         self.cancelButton.title = ""
         self.funcButton.title = ""
@@ -65,12 +67,12 @@ class KMPageEditSettingBaseWindowController: KMBaseWindowController {
         self.cancelVC_?.target = self
         self.cancelVC_?.action = #selector(cancelButtonAction)
         self.cancelVC_?.stringValue = NSLocalizedString("Cancel", comment: "")
-      
+        
         self.cancelVC_?.button.keyEquivalent = KMKeyEquivalent.esc.string()
         
         self.funcVC_?.target = self
         self.funcVC_?.action = #selector(funcButtonAction)
- 
+        
         self.funcVC_?.button.keyEquivalent = KMKeyEquivalent.enter
     }
     

+ 2 - 2
PDF Office/PDF Master/Class/PDFTools/PageEdit/Window/KMPDFEditInsertPageWindow.swift

@@ -140,7 +140,7 @@ class KMPDFEditInsertPageWindow: NSWindowController {
         
         if let data = self.pdfDocument?.isLocked, data {
             DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
-                KMBaseWindowController.checkPassword(url: self.pdfDocument!.documentURL, type: .owner) { success, resultPassword in
+                NSWindowController.checkPassword(url: self.pdfDocument!.documentURL, type: .owner) { success, resultPassword in
                     if (resultPassword.isEmpty == false) {
                         self.pdfDocument?.unlock(withPassword: resultPassword)
                         self._password = resultPassword
@@ -325,7 +325,7 @@ class KMPDFEditInsertPageWindow: NSWindowController {
                     let pdfDoc = CPDFDocument(url: fileURL)
                     if let data = pdfDoc?.isLocked, data {
                         DispatchQueue.main.asyncAfter(deadline: .now()+0.5) {
-                            KMBaseWindowController.checkPassword(url: fileURL, type: .owner) { result, pwd in
+                            NSWindowController.checkPassword(url: fileURL, type: .owner) { result, pwd in
                                 if (pwd.isEmpty == false) {
                                     self._password = pwd
                                     self.fromFilePath = fileURL

+ 2 - 6
PDF Office/PDF Master/Class/PDFTools/PageEdit/Window/SplitWindowController.swift

@@ -7,7 +7,7 @@
 
 import Cocoa
 
-class SplitWindowController: KMBaseWindowController {
+class SplitWindowController: KMNBaseWindowController {
     /*
      @protocol SplitDelegate <NSObject>
      @optional
@@ -105,11 +105,7 @@ class SplitWindowController: KMBaseWindowController {
         self._setInputRange()
         self._configuViews()
     }
-    
-    override func interfaceThemeDidChanged(_ appearance: NSAppearance.Name) {
-//        KMPrint("appearance")
-    }
-    
+     
     @IBAction func byPageStepperAction(_ sender: AnyObject) {
         self.byPageText.stringValue = String(format: "%ld", self.byPageStepper.integerValue)
     }

+ 2 - 2
PDF Office/PDF Master/Class/PDFTools/Print/KMPrintWindowController.swift

@@ -14,7 +14,7 @@ var posterPrintWindowController: KMPDFPosterPrintWindowController?
 
 typealias KMPrintWindowControllerPrintTypeChange = (_ controller: KMPrintWindowController, _ type: KMPrintModelType) -> Void
 
-class KMPrintWindowController: KMBaseWindowController, NetServiceBrowserDelegate {
+class KMPrintWindowController: KMNBaseWindowController, NetServiceBrowserDelegate {
     @IBOutlet weak var titleLabel: NSTextField!
     @IBOutlet weak var preview: KMPrintPreviewView!
     @IBOutlet weak var chooseView: KMPrintChooseView!
@@ -98,7 +98,7 @@ class KMPrintWindowController: KMBaseWindowController, NetServiceBrowserDelegate
         self.reloadData()
     }
     
-    override func interfaceThemeDidChanged(_ appearance: NSAppearance.Name) {
+   func interfaceThemeDidChanged(_ appearance: NSAppearance.Name) {
         if  appearance == .darkAqua {
             self.window?.contentView?.layer?.backgroundColor = NSColor.init(hex: "#26282B").cgColor
         } else {

+ 1 - 1
PDF Office/PDF Master/Class/PDFTools/RemovePassword/New/KMRemovePasswordWindowController.swift

@@ -9,7 +9,7 @@ import Cocoa
 
 typealias KMRemovePasswordWindowControllerDoneAction = (_ controller: KMRemovePasswordWindowController) -> Void
 
-class KMRemovePasswordWindowController: KMBaseWindowController {
+class KMRemovePasswordWindowController: KMNBaseWindowController {
     @IBOutlet weak var removePasswordView: KMRemovePasswordView!
     
     var batchAction: KMBatchActionBlock?

+ 2 - 9
PDF Office/PDF Master/Class/PDFTools/SelfSign/Window/KMProfileInfoWindowController.swift

@@ -7,7 +7,7 @@
 
 import Cocoa
 
-class KMProfileInfoWindowController: KMBaseWindowController {
+class KMProfileInfoWindowController: KMNBaseWindowController {
     var callBack: ((String) -> Void)?
     
     @IBOutlet var titleLabel: NSTextField!
@@ -172,14 +172,7 @@ class KMProfileInfoWindowController: KMBaseWindowController {
         self.tableView.reloadData()
     }
     
-    override func interfaceThemeDidChanged(_ appearance: NSAppearance.Name) {
-        super.interfaceThemeDidChanged(appearance)
-        
-        DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
-            self._updateViewColor()
-        }
-    }
-}
+ }
 
 // MARK: - Private Methods
 

+ 1 - 1
PDF Office/PDF Master/Class/PDFTools/Snapshot/Window/KMSnapshotWindowController.swift

@@ -14,7 +14,7 @@ import Cocoa
     @objc optional func snapshotController(_ controller: KMSnapshotWindowController, miniaturizedRect isMiniaturize: Bool) -> NSRect
 }
 
-class KMSnapshotWindowController: KMBaseWindowController {
+class KMSnapshotWindowController: KMNBaseWindowController {
     
     @IBOutlet var pdfView: KMSnapshotPDFView!
     

+ 4 - 3
PDF Office/PDF Master/Class/PDFWindowController/MainWindowController/SKPresentationOptionsSheetController.swift

@@ -23,7 +23,7 @@ let TABLE_OFFSET: CGFloat = 8.0
 //var SKTransitionPropertiesObservationContext = UnsafeMutableRawPointer(mutating: "SKTransitionPropertiesObservationContext")
 var SKPDFViewTransitionsObservationContext: CChar?
 
-class SKPresentationOptionsSheetController: KMBaseWindowController {
+class SKPresentationOptionsSheetController: KMNBaseWindowController {
     @IBOutlet var notesDocumentPopUpButton: NSPopUpButton!
     @IBOutlet var tableView: KMBotaTableView!
     @IBOutlet var separateCheckButton: NSButton!
@@ -166,12 +166,13 @@ class SKPresentationOptionsSheetController: KMBaseWindowController {
         let docIndex = self.notesDocumentPopUpButton.indexOfItem(withRepresentedObject: self.controller?.myDocument/*presentationNotesDocument*/)
         self.notesDocumentPopUpButton.selectItem(at: docIndex > 0 ? docIndex : 0)
         
+        self.initDefaultValue()
+        
         NotificationCenter.default.addObserver(self, selector: #selector(handleDocumentsDidChangeNotification(notification:)), name: NSNotification.Name("SKDocumentDidShowNotification"), object: nil)
         NotificationCenter.default.addObserver(self, selector: #selector(handleDocumentsDidChangeNotification(notification:)), name: NSNotification.Name("SKDocumentControllerDidRemoveDocumentNotification"), object: nil)
     }
     
-    override func initDefaultValue() {
-        super.initDefaultValue()
+    func initDefaultValue() {
         
         self.effectPopUpButton.target = self
         self.effectPopUpButton.action = #selector(effectButtonAction)

+ 1 - 1
PDF Office/PDF Master/KMClass/ImageToPDF/Base/KMBatchOperateLeftViewController.swift

@@ -421,7 +421,7 @@ class KMBatchOperateLeftViewController: KMNBaseViewController {
     func openPasswordWindow() {
         if lockFilePathArr!.count > lockFileIndex {
             let filePath = lockFilePathArr![lockFileIndex] as! String
-            KMBaseWindowController.checkPassword(url: URL(fileURLWithPath: filePath), type: .owner) { [unowned self] success, resultPassword in
+            NSWindowController.checkPassword(url: URL(fileURLWithPath: filePath), type: .owner) { [unowned self] success, resultPassword in
                 self.closePwd()
                 if !resultPassword.isEmpty {
                     let file = KMBatchOperateFile(filePath: filePath, type: self.type!)

+ 1 - 1
PDF Office/PDF Master/KMClass/ImageToPDF/Controller/KMBatchOperateImageToPDFViewController.swift

@@ -689,7 +689,7 @@ class KMBatchOperateImageToPDFViewController: KMBatchOperateBaseViewController {
                 }
                 
                 if document.isLocked {
-                    KMBaseWindowController.checkPassword(url: url, type: .owner) { [weak self] success, resultPassword in
+                    NSWindowController.checkPassword(url: url, type: .owner) { [weak self] success, resultPassword in
                         if success {
                             self?.password = resultPassword
                             

+ 1 - 1
PDF Office/PDF Master/KMClass/KMHomeViewController/KMNHomeViewController.swift

@@ -643,7 +643,7 @@ extension KMNHomeViewController {
                 return
             }
             
-            KMBaseWindowController.checkPassword(url: URL(fileURLWithPath: openPanel.url!.path), type: .owner) { [unowned self] success, resultPassword in
+            NSWindowController.checkPassword(url: URL(fileURLWithPath: openPanel.url!.path), type: .owner) { [unowned self] success, resultPassword in
                 if success {
                     DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) {
                         let controller = KMCompareWindowController(windowNibName: "KMCompareWindowController")

+ 2 - 2
PDF Office/PDF Master/KMClass/KMPDFViewController/KMMainViewController.swift

@@ -1694,7 +1694,7 @@ struct KMNMWCFlags {
                 self.view.window?.endSheet((self.currentWindowController.window)!)
                 self.currentWindowController = nil
                 
-                KMBaseWindowController.checkPassword(url: self.document!.documentURL!, type: .owner, password: self.document?.password ?? "") { [unowned self] success, resultPassword in
+                NSWindowController.checkPassword(url: self.document!.documentURL!, type: .owner, password: self.document?.password ?? "") { [unowned self] success, resultPassword in
                     if success {
                         
                         let savePanel = NSSavePanel()
@@ -1734,7 +1734,7 @@ struct KMNMWCFlags {
     
     //MARK: - Unlock Document
     func unlockPDFDocument() {
-        KMBaseWindowController.checkPassword(url: self.document!.documentURL!, type: .owner, password: self.document?.password ?? "") { [unowned self] success, resultPassword in
+        NSWindowController.checkPassword(url: self.document!.documentURL!, type: .owner, password: self.document?.password ?? "") { [unowned self] success, resultPassword in
             self.listView.document.unlock(withPassword: resultPassword)
         }
     }

+ 1 - 1
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/OCR/Edit/Window/KMOCRSettingWindowController.swift

@@ -9,7 +9,7 @@ import Cocoa
 
 typealias KMOCRSettingWindowControllerOCRAction = (_ controller: KMOCRSettingWindowController, _ model: KMOCRModel) -> Void
 
-class KMOCRSettingWindowController: KMBaseWindowController {
+class KMOCRSettingWindowController: KMNBaseWindowController {
 
     @IBOutlet weak var OCRSettingView: KMOCRSettingView!
     

+ 1 - 1
PDF Office/PDF Master/KMClass/NewBatch/View/Setting/ImageToPDF/KMBatchImageToPDFView.swift

@@ -308,7 +308,7 @@ extension KMBatchImageToPDFView {
                 }
                 
                 if document.isLocked {
-                    KMBaseWindowController.checkPassword(url: url, type: .owner) { [weak self] success, resultPassword in
+                    NSWindowController.checkPassword(url: url, type: .owner) { [weak self] success, resultPassword in
                         if success {
                             self?.password = resultPassword
                             

+ 0 - 477
PDF Office/PDF Master/KMClass/Tools/CustomViews/Base/KMBaseViewController.swift

@@ -1,477 +0,0 @@
-//
-//  KMBaseViewController.swift
-//  PDF Reader Pro
-//
-//  Created by tangchao on 2023/5/5.
-//
-
-import Cocoa
-
-// 基类 [抽象类]
-class KMBaseViewController: NSViewController {
-    // 是否需要菜单
-    var needMenu = false {
-        didSet {
-            if (self.needMenu) {
-                self.addMenu(to: self.view)
-            } else {
-                self.removeMenu(to: self.view)
-            }
-        }
-    }
-    
-    deinit {
-        Swift.debugPrint(self.className + " 已释放")
-        
-        self.removeNotifations()
-    }
-
-    override func viewDidLoad() {
-        super.viewDidLoad()
-        
-        if (self.needMenu) {
-            self.addMenu(to: self.view)
-        } else {
-            self.removeMenu(to: self.view)
-        }
-        
-        self.addNotifations()
-    }
-    
-    // Noti
-    
-    func addNotifations() { }
-    
-    func removeNotifations() {
-        NotificationCenter.default.removeObserver(self)
-    }
-    
-    func km_add_office_multi(fileUrls: [URL], completionBlock:@escaping ([String])->Void) -> Void {
-        var fileUrlStrings: [String] = []
-        
-        let dispatchGroup = Dispatch.DispatchGroup()
-        for (index, fileUrl) in fileUrls.enumerated() {
-            let filePath = fileUrl.path
-            let folderPath = "convertToPDF_\(index).pdf"
-            let savePath: String? = folderPath.kUrlToPDFFolderPath() as String
-            if (savePath == nil) {
-                continue
-            }
-            
-            dispatchGroup.enter()
-            KMConvertPDFManager.convertFile(filePath, savePath: savePath!) { success, errorDic in
-                if errorDic != nil || !success || !FileManager.default.fileExists(atPath: savePath!) {
-                    dispatchGroup.leave()
-                    
-                    if FileManager.default.fileExists(atPath: savePath!) {
-                        try?FileManager.default.removeItem(atPath: savePath!)
-                    }
-                    let alert = NSAlert.init()
-                    alert.alertStyle = .critical
-                    var infoString = ""
-                    if errorDic != nil {
-                        for key in (errorDic! as Dictionary).keys {
-                            infoString = infoString.appendingFormat("%@\n", errorDic![key] as! CVarArg)
-                        }
-                    }
-                    alert.informativeText = NSLocalizedString("Please install Microsoft Office to create PDFs from Office files", comment: "")
-                    alert.messageText = NSLocalizedString("Failed to Create PDF", comment: "")
-                    alert.addButton(withTitle: NSLocalizedString("OK", comment: ""))
-                    alert.runModal()
-                    return
-                }
-                
-                if !savePath!.isPDFValid() {
-                    dispatchGroup.leave()
-                    
-                    let alert = NSAlert()
-                    alert.alertStyle = .critical
-                    alert.messageText = NSLocalizedString("An error occurred while opening this document. The file is damaged and could not be repaired.", comment: "")
-                    alert.runModal()
-                    return
-                }
-                
-                fileUrlStrings.append(savePath!)
-                dispatchGroup.leave()
-            }
-        }
-        
-        dispatchGroup.notify(queue: DispatchQueue.main) {
-            completionBlock(fileUrlStrings)
-        }
-    }
-    
-    // MARK: - Open Password Files
-    
-    private var lockedFiles: [URL] = []
-    func km_open_pdf_multi(type: KMPasswordInputWindowType = .open, progressBlock: ((_ index: Int, _ params: Any...)->Void)? = nil, completionBlock:@escaping ([CPDFDocument])->Void) {
-        NSPanel.km_open_pdf_multi_success(self.view.window!, panel: nil) { urls in
-            self.km_add_pdf_multi(fileUrls: urls, type: type, progressBlock: progressBlock, completionBlock: completionBlock)
-        }
-    }
-    
-    func km_open_file_multi(type: KMPasswordInputWindowType = .open, progressBlock: ((_ index: Int, _ params: Any...)->Void)? = nil, completionBlock:@escaping ([CPDFDocument])->Void) {
-        NSPanel.km_open_multi_success(self.view.window!) { panel in
-            var array: [String] = []
-            for fileType in KMConvertPDFManager.supportFileType() {
-                array.append(fileType)
-            }
-            panel.allowedFileTypes = KMTools.pdfExtensions + array
-        } completion: { urls in
-            self.km_add_file_multi(fileUrls: urls, type: type, progressBlock: progressBlock, completionBlock: completionBlock)
-        }
-    }
-    
-    func km_add_pdf_multi(fileUrlStrings: [String] ,type: KMPasswordInputWindowType = .open, progressBlock: ((_ index: Int, _ params: Any...)->Void)? = nil, completionBlock:@escaping ([CPDFDocument])->Void) {
-        var urls: [URL] = []
-        for string in fileUrlStrings {
-            urls.append(URL(fileURLWithPath: string))
-        }
-        self.km_add_pdf_multi(fileUrls: urls, type: type, progressBlock: progressBlock, completionBlock: completionBlock)
-    }
-    
-    func km_add_pdf_multi(fileUrls: [URL] ,type: KMPasswordInputWindowType = .open, progressBlock: ((_ index: Int, _ params: Any...)->Void)? = nil, completionBlock:@escaping ([CPDFDocument])->Void) {
-        var results: [CPDFDocument] = []
-        
-        self.lockedFiles.removeAll()
-        var index = 0
-        for url in fileUrls {
-            let document = CPDFDocument(url: url)
-            if (document!.isLocked) {
-                self.lockedFiles.append(url)
-                continue
-            }
-            
-            if let _document = document {
-                results.append(_document)
-            }
-            
-            index += 1
-            if let _callback = progressBlock {
-                _callback(index, ((document != nil) ? document : CPDFDocument()) as Any, url)
-            }
-        }
-        
-        if (self.lockedFiles.count == 0) {
-            completionBlock(results)
-            return
-        }
-        
-//        if let _callback = progressBlock {
-//            _callback(0, results)
-//        }
-        
-        self._openPasswordWindow_loop(fileUrl: self.lockedFiles.first!, type: type) { params in
-            index += 1
-            if (params.count <= 2) { // 参数错误
-                if let _callback = progressBlock { // 回调进度
-                    _callback(index)
-                }
-                return
-            }
-            
-            let fileUrl     = params[0] as! URL
-            let result      = params[1] as! KMPasswordInputWindowResult
-            let password    = params[2] as? String
-            if (result == .cancel) {
-                if let _callback = progressBlock { // 回调进度
-                    _callback(index, CPDFDocument() as Any, fileUrl, result)
-                }
-                return
-            }
-            
-            let document = CPDFDocument(url: fileUrl)
-            if let _password = password { // 将文档进行解密
-                document?.unlock(withPassword: _password)
-            }
-            if let _callback = progressBlock { // 回调进度
-                _callback(index, document as Any, fileUrl, result, password as Any)
-            }
-            // 将文档加入返回数据
-            if let _document = document {
-                results.append(_document)
-            }
-        } completionBlock: {
-            completionBlock(results)
-        }
-    }
-    
-    func km_add_file_multi(fileUrls: [URL] ,type: KMPasswordInputWindowType = .open, progressBlock: ((_ index: Int, _ params: Any...)->Void)? = nil, completionBlock:@escaping ([CPDFDocument])->Void) {
-            var pdfUrls: [URL] = []
-            var imageUrls: [URL] = []
-            var officeUrls: [URL] = []
-            for url in fileUrls {
-                let type = url.pathExtension.lowercased()
-                if (KMTools.isPDFType(type)) {
-                    pdfUrls.append(url)
-                }
-                if (KMTools.isImageType(type)) {
-                    imageUrls.append(url)
-                }
-                if (KMTools.isOfficeType(type)) {
-                    officeUrls.append(url)
-                }
-            }
-            
-            if (officeUrls.count == 0) {
-                self.km_add_pdf_multi(fileUrls: pdfUrls, type: type, progressBlock: progressBlock) { documents in
-                    var index = documents.count
-                    var _documents: [CPDFDocument] = []
-                    for imageUrl in imageUrls {
-                        index += 1
-                        let document = CPDFDocument()
-                        let image = NSImage(contentsOfFile: imageUrl.path)
-//                        document?.insertPage(image!.size, withImage: imageUrl.path, at: 0)
-                        document?.km_insertPage(image?.size ?? .zero, withImage: imageUrl.path, at: 0)
-                        _documents.append(document!)
-                        
-                        if let _callback = progressBlock { // 回调进度
-                            _callback(index, document as Any, imageUrl)
-                        }
-                    }
-                    
-                    completionBlock(documents + _documents)
-                }
-                return
-            }
-            
-            self.km_add_office_multi(fileUrls: officeUrls) { [unowned self] fileUrlStrings in
-                var officeDocuments: [CPDFDocument] = []
-                var index = 0
-                for fileUrlString in fileUrlStrings {
-                    index += 1
-                    let document = CPDFDocument(url: URL(fileURLWithPath: fileUrlString))
-                    officeDocuments.append(document!)
-                    
-                    if let _callback = progressBlock { // 回调进度
-                        _callback(index, document as Any, URL(fileURLWithPath: fileUrlString))
-                    }
-                }
-                
-                self.km_add_pdf_multi(fileUrls: pdfUrls) { documents in
-                    var index = documents.count + officeDocuments.count
-                    var _documents: [CPDFDocument] = []
-                    for imageUrl in imageUrls {
-                        index += 1
-                        let document = CPDFDocument()
-                        let image = NSImage(contentsOfFile: imageUrl.path)
-//                        document?.insertPage(image!.size, withImage: imageUrl.path, at: 0)
-                        document?.km_insertPage(image!.size, withImage: imageUrl.path, at: 0)
-                        _documents.append(document!)
-                        
-                        if let _callback = progressBlock { // 回调进度
-                            _callback(index, document as Any, imageUrl)
-                        }
-                    }
-
-                    completionBlock(officeDocuments + documents + _documents)
-                }
-            }
-    }
-    
-    // MARK: - ProgressBlock Params Fetch
-    
-    func fetchProgressBlockParamsForDocument(params: Any...) -> CPDFDocument? {
-        return params.first as? CPDFDocument
-    }
-    func fetchProgressBlockParamsForFileUrl(params: Any...) -> URL? {
-        if (params.count < 2) {
-            return nil
-        }
-        return params[1] as? URL
-    }
-    
-    func fetchProgressBlockParamsForResult(params: Any...) -> KMPasswordInputWindowResult? {
-        if (params.count <= 2) {
-            return nil
-        }
-        return params[2] as? KMPasswordInputWindowResult
-    }
-    func fetchProgressBlockParamsForPassword(params: Any...) -> String? {
-        if (params.count <= 2) {
-            return nil
-        }
-        return params.last as? String
-    }
-    func fetchProgressBlockParamsIsPasswordFile(params: Any...) -> Bool {
-        if (params.count <= 2) {
-            return false
-        }
-        return true
-    }
-    
-    // MARK: - Open Password Window
-    // 留意:
-    // -会直接弹密码弹窗,不会判断文档是否加密
-    // -在使用前最好判断下文件是否已加密
-    
-    func openPasswordWindow(fileUrlString: String, type: KMPasswordInputWindowType = .open, completionBlock:@escaping (KMPasswordInputWindowResult, String?)->Void) {
-        self.openPasswordWindow(fileUrl: URL(fileURLWithPath: fileUrlString), type: type, completionBlock: completionBlock)
-    }
-    
-    func openPasswordWindow(fileUrl: URL, type: KMPasswordInputWindowType = .open, completionBlock:@escaping (KMPasswordInputWindowResult, String?)->Void) {
-        KMPasswordInputWindow.openWindow(window: self.view.window!, type: type, url: fileUrl, callback: completionBlock)
-    }
-    
-    func openPasswordWindow_success(fileUrlString: String, type: KMPasswordInputWindowType = .open, completionBlock:@escaping (String)->Void) {
-        self.openPasswordWindow_success(fileUrl: URL(fileURLWithPath: fileUrlString), type: type, completionBlock: completionBlock)
-    }
-    
-    func openPasswordWindow_success(fileUrl: URL, type: KMPasswordInputWindowType = .open, completionBlock:@escaping (String)->Void) {
-        KMPasswordInputWindow.success_openWindow(window: self.view.window!, url: fileUrl, callback: completionBlock)
-    }
-    
-    
-    fileprivate func _openPasswordWindow_loop(fileUrl: URL, type: KMPasswordInputWindowType, progressBlock: ((_ params: Any...)->Void)?, completionBlock:@escaping ()->Void) {
-        KMPasswordInputWindow.openWindow(window: self.view.window!, type: type, url: fileUrl) { [weak self] result, password in
-            // 将结果返回
-            if let _callback = progressBlock {
-                _callback(fileUrl, result, password as Any)
-            }
-            
-            // 进行下一个
-            self?.lockedFiles.removeFirst()
-            if let _fileUrl = self?.lockedFiles.first {
-                self?._openPasswordWindow_loop(fileUrl: _fileUrl, type: type, progressBlock: progressBlock, completionBlock: completionBlock)
-            } else {
-                completionBlock()
-            }
-        }
-    }
-    
-    // MARK: - Progress Window
-    
-    var progressC: SKProgressController?
-    func showProgressWindow(message: String = "") {
-        if (self.progressC != nil) {
-            self.hiddenProgressWindow()
-        }
-        
-        let progressC = SKProgressController()
-        progressC.window?.backgroundColor = NSColor.km_init(hex: "#36383B")
-        progressC.window?.contentView?.wantsLayer = true
-        progressC.window?.contentView?.layer?.backgroundColor = NSColor.km_init(hex: "#36383B").cgColor
-        progressC.progressField.textColor = NSColor.white
-        progressC.showClose = false
-        progressC.message = message
-
-        self.progressC = progressC
-        self.view.window?.beginSheet(progressC.window!)
-    }
-    
-    func hiddenProgressWindow() {
-        if let _progressC = self.progressC {
-            if let _window = _progressC.window {
-                self.view.window?.endSheet(_window)
-            }
-            self.progressC = nil
-        }
-    }
-    
-    // MARK: - Menu Add & Remove
-    
-    public func addMenu(to view: NSView?) {
-        if let menuView = view {
-            self.addMenu(to: menuView)
-            return
-        }
-        self.addMenu(to: self.view)
-    }
-    
-    public func removeMenu(to view: NSView?) {
-        if let menuView = view {
-            self.removeMenu(to: menuView)
-            return
-        }
-        self.removeMenu(to: self.view)
-    }
-    
-    private func addMenu(to view: NSView) {
-        // 先移除
-        self.removeMenu(to: view)
-        
-        let menu = NSMenu()
-        menu.delegate = self
-        view.menu = menu
-    }
-    private func removeMenu(to view: NSView) {
-        view.menu?.delegate = nil
-        view.menu = nil
-    }
-    
-    // MARK: - Document isDocumentEdited
-    
-    public func setDocumentEditedState(window: NSWindow? = nil) {
-        var _win = window
-        if (_win == nil) {
-            _win = self.view.window
-        }
-        guard let _window = _win else {
-            return
-        }
-        guard let _document = NSDocumentController.shared.document(for: _window) else {
-            return
-        }
-        self.setDocumentEditedState(document: _document)
-    }
-    
-    public func setDocumentEditedState(url: URL? = nil) {
-        if let _url = url {
-            KMTools.setDocumentEditedState(url: _url)
-        } else {
-            self.setDocumentEditedState(window: self.view.window)
-        }
-    }
-    
-    public func setDocumentEditedState(document: NSDocument) {
-        km_synchronized(document) {
-            if let _document = document as? KMMainDocument {
-                _document.km_updateChangeCount(.changeDone)
-            } else {
-                document.updateChangeCount(.changeDone)
-            }
-        }
-    }
-    
-    public func clearDocumentEditedState(window: NSWindow? = nil) {
-        var _win = window
-        if (_win == nil) {
-            _win = self.view.window
-        }
-        guard let _window = _win else {
-            return
-        }
-        guard let _document = NSDocumentController.shared.document(for: _window) else {
-            return
-        }
-        self.clearDocumentEditedState(document: _document)
-    }
-    
-    public func clearDocumentEditedState(url: URL? = nil) {
-        if let _url = url {
-            KMTools.clearDocumentEditedState(url: _url)
-        } else {
-            self.clearDocumentEditedState(window: self.view.window)
-        }
-    }
-    
-    public func clearDocumentEditedState(document: NSDocument) {
-        km_synchronized(document) {
-            if let _document = document as? KMMainDocument {
-                _document.km_updateChangeCount(.changeCleared)
-            } else {
-                document.updateChangeCount(.changeCleared)
-            }
-        }
-    }
-}
-
-extension KMBaseViewController: NSMenuDelegate, NSMenuItemValidation {
-    func validateMenuItem(_ menuItem: NSMenuItem) -> Bool {
-        return true
-    }
-    
-    func menuNeedsUpdate(_ menu: NSMenu) {
-        menu.removeAllItems()
-    }
-}

+ 0 - 64
PDF Office/PDF Master/KMClass/Tools/CustomViews/Base/KMBaseWindowController.swift

@@ -1,64 +0,0 @@
-//
-//  KMBaseWindowController.swift
-//  PDF Reader Pro
-//
-//  Created by tangchao on 2023/5/11.
-//
-
-import Cocoa
-
-class KMBaseWindowController: NSWindowController {
-    
-//    var cancelAction: KMCommonBlock?
-//    var pdfDocument: CPDFDocument?
-//    var isBates: Bool = false
-//    var isBatch: Bool = false  //是否批量模块进入
-    deinit {
-        Swift.debugPrint(self.className + "已释放")
-        
-        self.removeNotification()
-    }
-    
-    override func windowDidLoad() {
-        super.windowDidLoad()
-    
-        // Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
-        self.initSubViews()
-        self.initDefaultValue()
-        self.initNotification()
-    }
-    
-    func initSubViews() {}
-    func initDefaultValue() {
-        self.window?.appearance = NSApp.appearance
-    }
-    
-    func initNotification() {
-        DistributedNotificationCenter.default().addObserver(self, selector: #selector(_themeChanged), name: NSApplication.interfaceThemeChangedNotification, object: nil)
-    }
-    
-    func removeNotification() {
-        DistributedNotificationCenter.default().removeObserver(self)
-    }
-    
-    func interfaceThemeDidChanged(_ appearance: NSAppearance.Name) {
-        
-    }
-}
-
-// MARK: - Private Methods
-
-extension KMBaseWindowController {
-    @objc private func _themeChanged(_ sender: Notification) {
-        let isDarkModel = KMAdvertisementConfig.isDarkModel()
-        if isDarkModel {
-            self.window?.appearance = .init(named: .darkAqua)
-        } else {
-            self.window?.appearance = .init(named: .aqua)
-        }
-        
-        Task { @MainActor in
-            self.interfaceThemeDidChanged(self.window?.appearance?.name ?? .aqua)
-        }
-    }
-}

+ 0 - 16
PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj

@@ -2626,9 +2626,6 @@
 		BB2F18462A0C7E250003F65E /* KMConvertBaseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB2F18452A0C7E250003F65E /* KMConvertBaseView.swift */; };
 		BB2F18472A0C7E250003F65E /* KMConvertBaseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB2F18452A0C7E250003F65E /* KMConvertBaseView.swift */; };
 		BB2F18482A0C7E250003F65E /* KMConvertBaseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB2F18452A0C7E250003F65E /* KMConvertBaseView.swift */; };
-		BB2F184A2A0C911B0003F65E /* KMBaseWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB2F18492A0C911B0003F65E /* KMBaseWindowController.swift */; };
-		BB2F184B2A0C911B0003F65E /* KMBaseWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB2F18492A0C911B0003F65E /* KMBaseWindowController.swift */; };
-		BB2F184C2A0C911B0003F65E /* KMBaseWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB2F18492A0C911B0003F65E /* KMBaseWindowController.swift */; };
 		BB2F78A62D01F9EF00F6B636 /* KMCreateSignWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB2F78A42D01F9EF00F6B636 /* KMCreateSignWindowController.swift */; };
 		BB2F78A72D01F9EF00F6B636 /* KMCreateSignWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB2F78A42D01F9EF00F6B636 /* KMCreateSignWindowController.swift */; };
 		BB2F78A82D01F9EF00F6B636 /* KMCreateSignWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB2F78A42D01F9EF00F6B636 /* KMCreateSignWindowController.swift */; };
@@ -3078,9 +3075,6 @@
 		BB69C962299116FD0001A9B1 /* horizontal_line.pdf in Resources */ = {isa = PBXBuildFile; fileRef = BB69C95B299116FD0001A9B1 /* horizontal_line.pdf */; };
 		BB69C963299116FD0001A9B1 /* horizontal_line.pdf in Resources */ = {isa = PBXBuildFile; fileRef = BB69C95B299116FD0001A9B1 /* horizontal_line.pdf */; };
 		BB69C964299116FD0001A9B1 /* horizontal_line.pdf in Resources */ = {isa = PBXBuildFile; fileRef = BB69C95B299116FD0001A9B1 /* horizontal_line.pdf */; };
-		BB6B43662A04919200E02B54 /* KMBaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB6B43652A04919200E02B54 /* KMBaseViewController.swift */; };
-		BB6B43672A04919200E02B54 /* KMBaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB6B43652A04919200E02B54 /* KMBaseViewController.swift */; };
-		BB6B43682A04919200E02B54 /* KMBaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB6B43652A04919200E02B54 /* KMBaseViewController.swift */; };
 		BB6B49A52D02A072003ECD26 /* KMPDFSignatureDrawView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB6B49A42D02A072003ECD26 /* KMPDFSignatureDrawView.swift */; };
 		BB6B49A62D02A072003ECD26 /* KMPDFSignatureDrawView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB6B49A42D02A072003ECD26 /* KMPDFSignatureDrawView.swift */; };
 		BB6B49A72D02A072003ECD26 /* KMPDFSignatureDrawView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB6B49A42D02A072003ECD26 /* KMPDFSignatureDrawView.swift */; };
@@ -5686,7 +5680,6 @@
 		BB2EDF67296ECE17003BCF58 /* KMPageEditThumbnailItem.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KMPageEditThumbnailItem.xib; sourceTree = "<group>"; };
 		BB2EDF69296ECE17003BCF58 /* KMPageEditThumbnailItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KMPageEditThumbnailItem.swift; sourceTree = "<group>"; };
 		BB2F18452A0C7E250003F65E /* KMConvertBaseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMConvertBaseView.swift; sourceTree = "<group>"; };
-		BB2F18492A0C911B0003F65E /* KMBaseWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMBaseWindowController.swift; sourceTree = "<group>"; };
 		BB2F78A42D01F9EF00F6B636 /* KMCreateSignWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMCreateSignWindowController.swift; sourceTree = "<group>"; };
 		BB2F78A52D01F9EF00F6B636 /* KMCreateSignWindowController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMCreateSignWindowController.xib; sourceTree = "<group>"; };
 		BB2F78B22D01FD6600F6B636 /* KMPDFSignatureImageView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMPDFSignatureImageView.xib; sourceTree = "<group>"; };
@@ -5866,7 +5859,6 @@
 		BB69C959299116FD0001A9B1 /* five_line_score.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = five_line_score.pdf; sourceTree = "<group>"; };
 		BB69C95A299116FD0001A9B1 /* plaid.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = plaid.pdf; sourceTree = "<group>"; };
 		BB69C95B299116FD0001A9B1 /* horizontal_line.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = horizontal_line.pdf; sourceTree = "<group>"; };
-		BB6B43652A04919200E02B54 /* KMBaseViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMBaseViewController.swift; sourceTree = "<group>"; };
 		BB6B49A42D02A072003ECD26 /* KMPDFSignatureDrawView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPDFSignatureDrawView.swift; sourceTree = "<group>"; };
 		BB6B49A82D02A07B003ECD26 /* KMPDFSignatureDrawView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMPDFSignatureDrawView.xib; sourceTree = "<group>"; };
 		BB6B49AE2D02D054003ECD26 /* KMPDFSignatureInputView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPDFSignatureInputView.swift; sourceTree = "<group>"; };
@@ -12593,8 +12585,6 @@
 				BB8B173B2907CDD8001C5EA5 /* NibLoadable.swift */,
 				F3DB85E92CCA209600D0AFDE /* KMNBaseViewController.swift */,
 				F3DB85EB2CCA209600D0AFDE /* KMNBaseWindowController.swift */,
-				BB6B43652A04919200E02B54 /* KMBaseViewController.swift */,
-				BB2F18492A0C911B0003F65E /* KMBaseWindowController.swift */,
 			);
 			path = Base;
 			sourceTree = "<group>";
@@ -14631,7 +14621,6 @@
 				9F9461842BD644BF0076574B /* KMTableDataManager.m in Sources */,
 				651675D92CE3312000019A20 /* KMBOTAOutlineView.swift in Sources */,
 				BBD1F77C296F9BE000343885 /* KMPageEditSettingBaseWindowController.swift in Sources */,
-				BB2F184A2A0C911B0003F65E /* KMBaseWindowController.swift in Sources */,
 				BBB3FF982B567D0300145C4A /* KMApplication.swift in Sources */,
 				BB0353C82B2987C40048A16C /* KMSnapshotWindow.swift in Sources */,
 				BBB7B4912A03AD2A00B58A5A /* KMPDFEditToolbar.swift in Sources */,
@@ -15408,7 +15397,6 @@
 				9FF371C32C69A6BB005F9CC5 /* CPerimeterMeasureInfoWindowController.swift in Sources */,
 				BBB789A82BE8BF2400F7E09C /* AIChatFileInfoItem.swift in Sources */,
 				BB74DA772AC41182006EDFE7 /* NSFont+KMExtension.swift in Sources */,
-				BB6B43662A04919200E02B54 /* KMBaseViewController.swift in Sources */,
 				AD3AAD412B0B7B6C00DE5FE7 /* KMCompareManager.swift in Sources */,
 				AD055EB92B8843FD0035F824 /* SKToolbarItem.m in Sources */,
 				651A59832C8EA210005A35FB /* KMPurchaseEmbeddedWindowController.swift in Sources */,
@@ -15694,7 +15682,6 @@
 				BB0A55112A302DB700B6E84B /* KMTextField.swift in Sources */,
 				F3EF17982CD5FE330007D364 /* KMNThumnailViewController.swift in Sources */,
 				F325FD1F2D2795B300832097 /* KMNoteFooterCellView.swift in Sources */,
-				BB2F184B2A0C911B0003F65E /* KMBaseWindowController.swift in Sources */,
 				BBB7B4922A03AD2A00B58A5A /* KMPDFEditToolbar.swift in Sources */,
 				6554450F2C88483C00BD9010 /* KMDiscountToSaveWindowController.m in Sources */,
 				BB2CC5632AF1239800D7A796 /* KMBatchBaseParameter.swift in Sources */,
@@ -16443,7 +16430,6 @@
 				9FF371CE2C69B8B3005F9CC5 /* CPerimeterMeasureInfoWindowController.swift in Sources */,
 				BBE789122CBD2464008086E2 /* NotiVC.swift in Sources */,
 				BB49ECE6293EF54800C82CA2 /* KMCustomPDFView.swift in Sources */,
-				BB6B43672A04919200E02B54 /* KMBaseViewController.swift in Sources */,
 				BB1A91742AFB8D95005E5FD8 /* KMBookletMaskView.swift in Sources */,
 				AD055E262B70B3C10035F824 /* KMBookmarkController.swift in Sources */,
 				BB11B1F32D23BC370071D599 /* KMPasswordInputWindowController.swift in Sources */,
@@ -16792,7 +16778,6 @@
 				AD8E489F2D1542510055D3E6 /* KMOCRAreaView.swift in Sources */,
 				BB14136A2C69E6CA00BB8E35 /* KMURLConfigManager.swift in Sources */,
 				AD199DF12B23121000D56FEE /* KMPrintPamphletView.swift in Sources */,
-				BB2F184C2A0C911B0003F65E /* KMBaseWindowController.swift in Sources */,
 				BBE0688C2CDDF116000512BC /* KMBatesController.swift in Sources */,
 				BB0FE05A2B734DD1001E0F88 /* KMAIRequestServerManager.swift in Sources */,
 				AD1D48112AFB1907007AC1F0 /* KMCompressView.swift in Sources */,
@@ -17140,7 +17125,6 @@
 				BB1B0AD92B4FC6E900889528 /* KMOpenFileGuideProperty.swift in Sources */,
 				BB0FE0452B734DD1001E0F88 /* AITypeChooseView.swift in Sources */,
 				656C1E602CD0DFE900295F82 /* KMConvertJsonSettingView.swift in Sources */,
-				BB6B43682A04919200E02B54 /* KMBaseViewController.swift in Sources */,
 				9F1FE4E329406E4700E952CA /* GTMNSAnimation+Duration.m in Sources */,
 				ADE86A7A2B0221E100414DFA /* KMSecurityWindowController.swift in Sources */,
 				BBBF68822A3BF17F0058E14E /* KMFilePromiseProvider.swift in Sources */,