Browse Source

【工具栏】打印入口补充

tangchao 9 months ago
parent
commit
debc7aec88

+ 49 - 30
PDF Office/PDF Master/Class/Common/DataManager/KMDataManager.swift

@@ -19,6 +19,8 @@ class KMDataManager: NSObject {
     static let `default` = KMDataManager()
     
     var isTabbingWin = false  //多页签提示页是否展示中
+    
+    var toolbarConfigDataUpdated = false
 }
 
 // MARK: - Paths
@@ -38,45 +40,62 @@ extension KMDataManager {
 // MARK: - ToolBar
 
 extension KMDataManager {
-    class func toolbar_saveData(_ model: KMToolbarConfigModel) -> Bool {
-        let dir = self.fetchAppSupportOfBundleIdentifierDirectory().appendingPathComponent("PreferenceData")
+    private static let toolbar_dirname_key_ = "PreferenceData"
+    private static let toolbar_filename_key_ = "ToolbarConfigData.plist"
+    
+    private static let toolbar_default_key_ = "default"
+    private static let toolbar_left_key_ = "left"
+    private static let toolbar_center_key_ = "center"
+    private static let toolbar_right_key_ = "right"
+    
+    // 保存数据 [清空数据时传nil]
+    class func toolbar_saveData(_ model: KMToolbarConfigModel?) -> Bool {
+        let dir = self.fetchAppSupportOfBundleIdentifierDirectory().appendingPathComponent(self.toolbar_dirname_key_)
         if FileManager.default.fileExists(atPath: dir.path) == false {
             try?FileManager.default.createDirectory(at: dir, withIntermediateDirectories: false)
         }
-        let fileUrl = dir.appendingPathComponent("ToolbarConfigData.plist")
+        let fileUrl = dir.appendingPathComponent(self.toolbar_filename_key_)
         if FileManager.default.fileExists(atPath: fileUrl.path) == false {
             try?FileManager.default.createFile(atPath: fileUrl.path, contents: nil)
         }
         
-        let defaultIdentifiers = [KMLeftControlToolbarItemIdentifier, KMDocumentZoomViewToolbarItemIdentifier,
-                                   KMDocumentPreviousPageToolbarItemIdentifier,KMDocumentHomeToolbarItemIdentifier,
-                                   KMToolbarFlexibleSpaceItemIdentifier /* 插入可变宽度 */,
-                                   KMDocumentAnnotationToolbarItemIdentifier, KMDocumentPageToolbarItemIdentifier, KMDocumentConversonToolbarItemIdentifier,KMDocumentRedactToolbarItemIdentifier,KMDocumentAIToolsToolbarItemIdentifier,KMDocumentViewDisplayToolbarItemIdentifier,KMDocumentScanOCRToolbarItemIdentifier, KMDocumentFormToolbarItemIdentifier, KMDocumentEditToolbarItemIdentifier, KMDocumentDigitalSignToolbarItemIdentifier,
-                                   KMDocumentFillSginToolbarItemIdentifier, KMDocumentToolToolbarItemIdentifier,
-                                   KMToolbarFlexibleSpaceItemIdentifier /* 插入可变宽度 */,
-                                   KMDocumentPrintToolbarItemIdentifier,KMDocumentShareToolbarItemIdentifier,
-                                   KMDocumentSearchToolbarItemIdentifier, KMRightControlToolbarItemIdentifier,
-                                   KMDocumentPreviousBackToolbarItemIdentifier, KMDocumentFirstLastToolbarItemIdentifier,
-                                   KMDocumentPageIndicatorToolbarItemIdentifier, KMDocumentPresentationToolbarItemIdentifier]
-        
-        
-        var newDict = NSMutableDictionary(dictionary: ["default" : defaultIdentifiers])
-        
-        let left = model.leftCellIdentifiers ?? []
-        newDict.setObject(left, forKey: "left" as NSCopying)
-        let center = model.centerCellIdentifiers ?? []
-        newDict.setObject(center, forKey: "center" as NSCopying)
-        let right = model.rightCellIdentifiers ?? []
-        newDict.setObject(right, forKey: "right" as NSCopying)
-        if newDict.write(to: fileUrl, atomically: true) {
-            return true
+        if let data = model {
+            let defaultIdentifiers = [KMLeftControlToolbarItemIdentifier, KMDocumentZoomViewToolbarItemIdentifier,
+                                      KMDocumentPreviousPageToolbarItemIdentifier,KMDocumentHomeToolbarItemIdentifier,
+                                      KMToolbarFlexibleSpaceItemIdentifier /* 插入可变宽度 */,
+                                      KMDocumentAnnotationToolbarItemIdentifier, KMDocumentPageToolbarItemIdentifier, KMDocumentConversonToolbarItemIdentifier,KMDocumentRedactToolbarItemIdentifier,KMDocumentAIToolsToolbarItemIdentifier,KMDocumentViewDisplayToolbarItemIdentifier,KMDocumentScanOCRToolbarItemIdentifier, KMDocumentFormToolbarItemIdentifier, KMDocumentEditToolbarItemIdentifier, KMDocumentDigitalSignToolbarItemIdentifier,
+                                      KMDocumentFillSginToolbarItemIdentifier, KMDocumentToolToolbarItemIdentifier,
+                                      KMToolbarFlexibleSpaceItemIdentifier /* 插入可变宽度 */,
+                                      KMDocumentPrintToolbarItemIdentifier,KMDocumentShareToolbarItemIdentifier,
+                                      KMDocumentSearchToolbarItemIdentifier, KMRightControlToolbarItemIdentifier,
+                                      KMDocumentPreviousBackToolbarItemIdentifier, KMDocumentFirstLastToolbarItemIdentifier,
+                                      KMDocumentPageIndicatorToolbarItemIdentifier, KMDocumentPresentationToolbarItemIdentifier]
+            
+            
+            var newDict = NSMutableDictionary(dictionary: [self.toolbar_default_key_ : defaultIdentifiers])
+            
+            let left = model?.leftCellIdentifiers ?? []
+            newDict.setObject(left, forKey: self.toolbar_left_key_ as NSCopying)
+            let center = model?.centerCellIdentifiers ?? []
+            newDict.setObject(center, forKey: self.toolbar_center_key_ as NSCopying)
+            let right = model?.rightCellIdentifiers ?? []
+            newDict.setObject(right, forKey: self.toolbar_right_key_ as NSCopying)
+            if newDict.write(to: fileUrl, atomically: true) {
+                return true
+            }
+        } else { // 清空数据
+            let newDict = NSMutableDictionary()
+            if newDict.write(to: fileUrl, atomically: true) {
+                return true
+            }
         }
         return false
     }
     
+    // 获取数据
     class func toolbar_getData() -> KMToolbarConfigModel? {
-        let dir = self.fetchAppSupportOfBundleIdentifierDirectory().appendingPathComponent("PreferenceData")
-        let fileUrl = dir.appendingPathComponent("ToolbarConfigData.plist")
+        let dir = self.fetchAppSupportOfBundleIdentifierDirectory().appendingPathComponent(self.toolbar_dirname_key_)
+        let fileUrl = dir.appendingPathComponent(self.toolbar_filename_key_)
         guard let dict = NSDictionary(contentsOfFile: fileUrl.path) else {
             return nil
         }
@@ -85,9 +104,9 @@ extension KMDataManager {
         }
         
         let model = KMToolbarConfigModel()
-        model.leftCellIdentifiers = dict["left"] as? [String]
-        model.centerCellIdentifiers = dict["center"] as? [String]
-        model.rightCellIdentifiers = dict["right"] as? [String]
+        model.leftCellIdentifiers = dict[self.toolbar_left_key_] as? [String]
+        model.centerCellIdentifiers = dict[self.toolbar_center_key_] as? [String]
+        model.rightCellIdentifiers = dict[self.toolbar_right_key_] as? [String]
         return model
     }
 }

+ 2 - 0
PDF Office/PDF Master/Class/PDFWindowController/Toolbar/KMToolbarView.swift

@@ -160,7 +160,9 @@ private let KMToolbarItemSpace = 8.0
             
             if resp == .OK {
                 DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
+                    KMDataManager.default.toolbarConfigDataUpdated = true
                     self?.reloadData()
+                    KMDataManager.default.toolbarConfigDataUpdated = false
                 }
             }
         })

+ 28 - 0
PDF Office/PDF Master/Class/PDFWindowController/Toolbar/KMToolbarViewController.swift

@@ -784,6 +784,11 @@ extension KMToolbarViewController : KMToolbarViewDelegate,NSToolbarItemValidatio
                 }
             }
         }
+        if create == false {
+            if KMDataManager.default.toolbarConfigDataUpdated {
+                create = true
+            }
+        }
         if item == nil || create {
             item = KMToolbarItemView.init(itemIdentifier: identifier)
             if isMainToolItem(identifier) {
@@ -1809,6 +1814,29 @@ extension KMToolbarViewController {
             
             menuItem.submenu = subMenu
             item?.menuFormRepresentation = menuItem
+        } else if identifier == KMDocumentPreviousBackToolbarItemIdentifier {
+            item?.titleName = NSLocalizedString("Zoom", comment: "")
+            let view = KMToolbarPreviousBackItemView()
+            item?.customizeView = view
+        } else if identifier == KMDocumentFirstLastToolbarItemIdentifier {
+            item?.titleName = NSLocalizedString("Zoom", comment: "")
+            let view = KMToolbarFirstLastItemView()
+            item?.customizeView = view
+        } else if identifier == KMDocumentPageIndicatorToolbarItemIdentifier {
+            item?.titleName = NSLocalizedString("Zoom", comment: "")
+            let view = KMToolbarPageIndicatorItemView(zoomView: nil)
+            item?.customizeView = view
+        } else if identifier == KMDocumentPresentationToolbarItemIdentifier {
+            item?.image = NSImage(named: "KMImageNameToolbarSlideshowNor")
+            item?.titleName = NSLocalizedString("Presentation", comment: "")
+            item?.selectBackgroundType = .imageBox
+            item?.boxImagePosition = .imageAbove
+        } else if identifier == KMToolbarFixedSpaceItemIdentifier {
+            let view = NSView()
+            view.frame = NSMakeRect(0, 0, 36, 36)
+            view.wantsLayer = true
+            view.layer?.borderWidth = 1
+            item?.customizeView = view
         }
                     
     }

+ 2 - 0
PDF Office/PDF Master/Class/PDFWindowController/ViewController/KMMainViewController+Action.swift

@@ -4397,6 +4397,8 @@ extension KMMainViewController : KMMainToolbarControllerDelegate {
                         FMTrackEventManager.defaultManager.trackEvent(event: "Tbr", withProperties: ["Tbr_Btn": "Btn_Tbr_DigitalSignature"])
                     }
                     self.enterDigitalSign()
+                } else if itemID == KMDocumentPrintToolbarItemIdentifier {
+                    self.showPrintWindow()
                 }
             } else {
                 if toolbarItem.itemIdentifier == KMToolbarAnnotationSettingItemIdentifier {