Browse Source

【toolbar】检查代码,修正一处强引用

tangchao 11 months ago
parent
commit
bcd1ed1b62

+ 4 - 4
PDF Office/PDF Master/Class/Batch/Data/KMBackgroundObject.swift

@@ -13,9 +13,9 @@ import Cocoa
     var imagePath: String?
     
     var rotation: Int = 0
-    var opacity: CGFloat = 0
+    var opacity: Double = 0
     
-    var scale: CGFloat = 0
+    var scale: Double = 0
     
     // (Top:0 Middle:1 Bottom:2)
     var verticalMode: Int = 0
@@ -54,8 +54,8 @@ import Cocoa
         self.color = coder.decodeObject(forKey: "color") as? NSColor ?? .clear
         self.imagePath = coder.decodeObject(forKey: "imagePath") as? String ?? ""
         self.rotation = coder.decodeInteger(forKey: "rotation")
-        self.opacity = CGFloat(coder.decodeFloat(forKey: "opacity"))
-        self.scale = CGFloat(coder.decodeFloat(forKey: "scale"))
+        self.opacity = coder.decodeDouble(forKey: "opacity")
+        self.scale = coder.decodeDouble(forKey: "scale")
         self.verticalMode = coder.decodeInteger(forKey: "verticalMode")
         self.verticalSpace = coder.decodeInteger(forKey: "verticalSpace")
         self.horizontalMode = coder.decodeInteger(forKey: "horizontalMode")

+ 95 - 32
PDF Office/PDF Master/Class/PDFTools/Background/tool/KMBackgroundManager.swift

@@ -27,42 +27,43 @@ class KMBackgroundManager: NSObject, NSCoding {
                 for object in man.backgroundObjects {
                     let model = self.parseObject(object: object)
                     self.datas.append(model)
+                    self.backgroundObjects.append(object)
                 }
             }
         }
         
-        if (FileManager.default.fileExists(atPath: kBackgroundPlistPath!)) {
-            let dataDict = NSDictionary(contentsOfFile: kBackgroundPlistPath!)
-            if (dataDict == nil) {
-                return
-            }
-            var deleteKeys: Array<String> = []
-            for keyIndex in 0 ..< (dataDict?.allKeys.count)! {
-                let key: String = dataDict?.allKeys[keyIndex] as! String
-                let backgroundDict: NSDictionary = dataDict?.object(forKey: key) as! NSDictionary
-                
-                let model = parseDictionary(dict: backgroundDict)
-                /// 赋值id
-                model.backgroundID = key
-                if (model.type == .file) {
-                    if (model.image == nil) {
-                        deleteKeys.append(key)
-                    } else {
-                        self.datas.append(model)
-                    }
-                } else {
-                    self.datas.append(model)
-                }
-            }
-            
-            if (deleteKeys.count > 0) {
-                let newDict: NSMutableDictionary = NSMutableDictionary(dictionary: dataDict!)
-                for key in deleteKeys {
-                    newDict.removeObject(forKey: key)
-                }
-                newDict.write(toFile: kBackgroundPlistPath!, atomically: true)
-            }
-        }
+//        if (FileManager.default.fileExists(atPath: kBackgroundPlistPath!)) {
+//            let dataDict = NSDictionary(contentsOfFile: kBackgroundPlistPath!)
+//            if (dataDict == nil) {
+//                return
+//            }
+//            var deleteKeys: Array<String> = []
+//            for keyIndex in 0 ..< (dataDict?.allKeys.count)! {
+//                let key: String = dataDict?.allKeys[keyIndex] as! String
+//                let backgroundDict: NSDictionary = dataDict?.object(forKey: key) as! NSDictionary
+//
+//                let model = parseDictionary(dict: backgroundDict)
+//                /// 赋值id
+//                model.backgroundID = key
+//                if (model.type == .file) {
+//                    if (model.image == nil) {
+//                        deleteKeys.append(key)
+//                    } else {
+//                        self.datas.append(model)
+//                    }
+//                } else {
+//                    self.datas.append(model)
+//                }
+//            }
+//
+//            if (deleteKeys.count > 0) {
+//                let newDict: NSMutableDictionary = NSMutableDictionary(dictionary: dataDict!)
+//                for key in deleteKeys {
+//                    newDict.removeObject(forKey: key)
+//                }
+//                newDict.write(toFile: kBackgroundPlistPath!, atomically: true)
+//            }
+//        }
     }
     
     required init?(coder: NSCoder) {
@@ -119,6 +120,9 @@ class KMBackgroundManager: NSObject, NSCoding {
             }
         }
         
+        let obj = self.parseModeForObject(model)
+        self._addBackground(obj)
+        
         return result
     }
     
@@ -153,6 +157,10 @@ class KMBackgroundManager: NSObject, NSCoding {
                 self.datas.removeObject(model)
             }
         }
+        
+        let obj = self.parseModeForObject(model)
+        self._removeBackground(obj)
+        
         return result
     }
     
@@ -176,6 +184,8 @@ class KMBackgroundManager: NSObject, NSCoding {
             self.datas.removeAll()
         }
         
+        self._clearStored()
+        
         return result
     }
     
@@ -209,6 +219,8 @@ class KMBackgroundManager: NSObject, NSCoding {
             }
         }
         
+        self._clearStored()
+        
         return result
     }
     
@@ -242,6 +254,8 @@ class KMBackgroundManager: NSObject, NSCoding {
             }
         }
         
+        self._clearStored()
+        
         return result
     }
     
@@ -411,10 +425,59 @@ class KMBackgroundManager: NSObject, NSCoding {
         model.horizontalSpace = object.horizontalSpace.cgFloat
         model.pageRangeType = KMWatermarkeModelPageRangeType.init(rawValue: object.pageRangeType.rawValue) ?? .all
         model.pagesString = object.pagesString
+        model.backgroundID = object.backgroundID ?? "background0"
         
         return model
     }
     
+    private func parseModeForObject(_ mode: KMBackgroundModel) -> KMBackgroundObject {
+        let obj = KMBackgroundObject()
+        
+        obj.type = mode.type
+        if (obj.type == .file) {
+            obj.image = mode.image
+            obj.imagePath = mode.imagePath
+        } else {
+            obj.color = mode.color ?? .red
+        }
+        
+        obj.scale = mode.scale
+        obj.rotation = Int(mode.rotation)
+        obj.opacity = mode.opacity
+        obj.verticalMode = mode.verticalMode
+        obj.verticalSpace = Int(mode.verticalSpace)
+        obj.horizontalMode = mode.horizontalMode
+        obj.horizontalSpace = Int(mode.horizontalSpace)
+        obj.pageRangeType = KMBatchOperatePageChoice.init(rawValue: mode.pageRangeType.rawValue) ?? .All
+        obj.pagesString = mode.pagesString
+        obj.backgroundID = mode.backgroundID
+        
+        return obj
+    }
+    
+    private func _addBackground(_ obj: KMBackgroundObject) {
+        self.backgroundObjects.insert(obj, at: 0)
+        self._store()
+    }
+    
+    private func _removeBackground(_ obj: KMBackgroundObject) {
+        self.backgroundObjects.removeObject(obj)
+        self._store()
+    }
+    
+    private func _store() {
+        let encodedObject = NSKeyedArchiver.archivedData(withRootObject: self)
+        let defaults = UserDefaults.standard
+        defaults.set(encodedObject, forKey: "kBackgroundInfoSaveKey")
+        defaults.synchronize()
+    }
+    
+    private func _clearStored() {
+        let defaults = UserDefaults.standard
+        defaults.set(nil, forKey: "kBackgroundInfoSaveKey")
+        defaults.synchronize()
+    }
+    
     private func tagString() -> String {
         var result: String = ""
         

+ 1 - 1
PDF Office/PDF Master/Class/PDFWindowController/Toolbar/KMToolbarController.swift

@@ -62,7 +62,7 @@ class KMToolbarController: NSViewController {
     var mainToolBarView: KMToolbarViewController?
     var childToolBarView: KMToolbarViewController?
     var _toolbarType : KMToolbarViewType = KMToolbarViewType.None
-    var mainViewController: KMMainViewController?
+    weak var mainViewController: KMMainViewController?
     open weak var delegate: KMToolbarControllerDelegate?
     var toolbarItems : [NSToolbarItem.Identifier : Any] = [:]
     var listView : CPDFListView?

+ 117 - 5
PDF Office/PDF Reader Pro.xcodeproj/xcuserdata/kdanmobile.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -71,16 +71,128 @@
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "664AB72E-8C4D-476B-9EA9-45A7876BA50E"
+            uuid = "7C1F3382-B4CF-4707-B8C8-21EA61B227D7"
             shouldBeEnabled = "Yes"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "PDF Master/Class/Batch/Data/KMBackgroundObject.swift"
+            filePath = "PDF Master/Class/PDFTools/Background/tool/KMBackgroundManager.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "92"
-            endingLineNumber = "92"
-            landmarkName = "encode(with:)"
+            startingLineNumber = "187"
+            endingLineNumber = "187"
+            landmarkName = "deleteAllTemplates()"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "F7DD2FDE-9C75-4B1A-8FC1-34FB5E1A5BCF"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "PDF Master/Class/PDFTools/Background/tool/KMBackgroundManager.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "168"
+            endingLineNumber = "168"
+            landmarkName = "deleteAllTemplates()"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "A2AA2A43-A90A-48C1-A3CA-800C60ECCA83"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "PDF Master/Class/PDFTools/Background/tool/KMBackgroundManager.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "193"
+            endingLineNumber = "193"
+            landmarkName = "deleteAllColorTemplates()"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "36D5CBC8-3449-4928-B955-1B9A151F06D0"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "PDF Master/Class/PDFTools/Background/tool/KMBackgroundManager.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "228"
+            endingLineNumber = "228"
+            landmarkName = "deleteAllFileTemplates()"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "2EF02E13-4AAA-4D8B-988C-ED1A4A323F95"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "PDF Master/Class/PDFTools/Background/Controller/KMBackgroundPropertyController.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "79"
+            endingLineNumber = "79"
+            landmarkName = "deleteAllTemplateModel(in:)"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "F1534BAD-9AE9-4B9F-AA49-A2CC2C46C512"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "PDF Master/Class/PDFTools/AddHeaderFooter/VC/KMBatchOperateAddHeaderFooterViewController.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "201"
+            endingLineNumber = "201"
+            landmarkName = "buttonItemClick_CleanAll(_:)"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "6C49AA2A-33CD-43DD-8B45-B0BFEA1B641A"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "PDF Master/Class/PDFTools/Watermark/Controller/KMBatchOperateAddWatermarkViewController.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "651"
+            endingLineNumber = "651"
+            landmarkName = "_buttonItemClick_CleanAll(_:)"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "B4C39154-973C-43C3-9AA6-2A5BD02235DF"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "PDF Master/Class/PDFTools/Watermark/Controller/KMBatchOperateAddWatermarkViewController.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "749"
+            endingLineNumber = "749"
+            landmarkName = "_deleteAllWatermark()"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>