Browse Source

偏好设置-页面指示符显示补充交互

tangchao 2 years ago
parent
commit
0a0c48f072

BIN
PDF Office/PDF Office.xcodeproj/project.xcworkspace/xcuserdata/kdanmobile.xcuserdatad/UserInterfaceState.xcuserstate


+ 18 - 3
PDF Office/PDF Office/Class/PDFWindowController/ViewController/KMMainViewController+UI.swift

@@ -50,7 +50,19 @@ extension KMMainViewController {
     }
     
     func updatePageIndicatoreType () {
-        if KMPreferenceManager.shared.pageIndicatorType == 0 {
+        DispatchQueue.main.async {
+            if (KMPreferenceManager.shared.pageIndicatorIsShow) {
+                self.tipCurrentPageBox.isHidden = false
+                self.currentPageLabel.isHidden = false
+                self.pageCountLabel.isHidden = false
+            } else {
+                self.tipCurrentPageBox.isHidden = true
+                self.currentPageLabel.isHidden = true
+                self.pageCountLabel.isHidden = true
+            }
+        }
+        
+        if (KMPreferenceManager.shared.pageIndicatorType == .automatic) {
             self.tipCurrentPageBox.moveCallback =  {(mouseEntered: Bool, mouseBox: KMBox) -> Void in
                 if mouseEntered == false  && self.isEditPage == false {
                     self.tipCurrentPageBox.fillColor = NSColor(calibratedRed: 0, green: 0, blue: 0, alpha: 0.5)
@@ -67,17 +79,20 @@ extension KMMainViewController {
             DispatchQueue.main.async {
                 self.perform(#selector(self.delayExecution), with: nil, afterDelay: 3)
             }
-        } else if KMPreferenceManager.shared.pageIndicatorType == 1 {
+        } else if (KMPreferenceManager.shared.pageIndicatorType == .always) {
             self.tipCurrentPageBox.fillColor = NSColor(calibratedRed: 0, green: 0, blue: 0, alpha: 0.5)
             self.currentPageLabel.textColor = NSColor.white
             self.pageCountLabel.textColor = NSColor.white
             self.currentPageWidthConstraint.constant = NSString(string: self.currentPageLabel.stringValue).boundingRect(with: NSSize(width: 1000, height: 1000)).size.width + 8
-        } else {
+        } else if (KMPreferenceManager.shared.pageIndicatorType == .never) {
             self.delayExecution()
         }
     }
     
     @objc func delayExecution() {
+        if (KMPreferenceManager.shared.pageIndicatorType == .always) {
+            return
+        }
         self.tipCurrentPageBox.fillColor = NSColor.clear
         self.currentPageLabel.textColor = NSColor.clear
         self.pageCountLabel.textColor = NSColor.clear

+ 6 - 6
PDF Office/PDF Office/Class/Preference/Controller/KMPreferenceDisplayController.swift

@@ -222,11 +222,11 @@ class KMPreferenceDisplayController: NSViewController {
         }
         
         let value3 = KMPreferenceManager.shared.pageIndicatorType
-        if (value3 == 0) {
+        if (value3 == .automatic) {
             self.selectPageIndicatorRadio(self.autoDisplayRadio)
-        } else if (value3 == 1) {
+        } else if (value3 == .always) {
             self.selectPageIndicatorRadio(self.alwaysShowRadio)
-        } else if (value3 == 2) {
+        } else if (value3 == .never) {
             self.selectPageIndicatorRadio(self.neverShowRadio)
         }
         
@@ -262,15 +262,15 @@ class KMPreferenceDisplayController: NSViewController {
         } else if (self.autoDisplayRadio.isEqual(sender)) {
             self.selectPageIndicatorRadio(sender)
             
-            KMPreferenceManager.shared.pageIndicatorType = 0
+            KMPreferenceManager.shared.pageIndicatorType = .automatic
         } else if (self.alwaysShowRadio.isEqual(sender)) {
             self.selectPageIndicatorRadio(sender)
             
-            KMPreferenceManager.shared.pageIndicatorType = 1
+            KMPreferenceManager.shared.pageIndicatorType = .always
         } else if (self.neverShowRadio.isEqual(sender)) {
             self.selectPageIndicatorRadio(sender)
             
-            KMPreferenceManager.shared.pageIndicatorType = 2
+            KMPreferenceManager.shared.pageIndicatorType = .never
         }
     }
     

+ 6 - 0
PDF Office/PDF Office/Class/Preference/Tools/KMPreferenceEnum.swift

@@ -35,3 +35,9 @@ enum KMPreferencePropertyPanelExpandType: Int {
     case auto = 0
     case manual
 }
+
+enum KMPreferencePageIndicatorDisplayType: Int {
+    case automatic = 0
+    case always
+    case never
+}

+ 19 - 3
PDF Office/PDF Office/Class/Preference/Tools/KMPreferenceManager.swift

@@ -652,12 +652,22 @@ extension KMPreferenceManager {
         }
     }
 
-    var pageIndicatorType: Int {
+    var pageIndicatorType: KMPreferencePageIndicatorDisplayType {
         get {
-            return self.getData(forKey: KMPageIndicatorTypeKey) as! Int
+            let type: Int? = self.getData(forKey: KMPageIndicatorTypeKey) as? Int
+            if (type == nil || type! == 2) {
+                return .never
+            } else if (type! == 0) {
+                return .automatic
+            } else if (type! == 1) {
+                return .always
+            }
+            return .never
         }
         set {
-            let _ = self.setData(data: newValue, forKey: KMPageIndicatorTypeKey)
+            if (newValue == .automatic || newValue == .always || newValue == .never) {
+                let _ = self.setData(data: newValue.rawValue, forKey: KMPageIndicatorTypeKey)
+            }
         }
     }
     
@@ -899,4 +909,10 @@ extension KMPreferenceManager {
             return KMPreferenceManager.shared.propertyPanelExpandType == .auto
         }
     }
+    
+    var pageIndicatorIsShow: Bool {
+        get {
+            return KMPreferenceManager.shared.pageIndicatorType != .never
+        }
+    }
 }