Browse Source

【综合】【页面显示】书本模式 + 连续滚动下,第一页没有作为单独的一页显示(已修复)

tangchao 1 year ago
parent
commit
197178a75e

+ 35 - 29
PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/AnnotationProperty/ViewController/PageDisplay/KMPageDisplayPropertiesViewController.swift

@@ -314,53 +314,51 @@ class KMPageDisplayPropertiesButton: NSButton {
     }
 
     private func reloadData() {
-        let pdf: CPDFView = CPDFView()
-        if displayType == .singlePage {
-            setDisplayMode(.singlePage)
-            continuousScrollButton.state = .off
-        } else if displayType == .singlePageContinuous {
-            setDisplayMode(.singlePage)
-            continuousScrollButton.state = .on
-            isContinuPage = true
-        } else if displayType == .twoUp {
-            if pdfView.displaysAsBook {
-                setDisplayMode(.coverPage)
+        let mode = self.pdfView?.displayMode() ?? .singlePage
+        let book = self.pdfView?.displaysAsBook ?? false
+        if mode == .singlePage {
+            self.setDisplayMode(.singlePage)
+            self.continuousScrollButton.state = .off
+        } else if mode == .singlePageContinuous {
+            self.setDisplayMode(.singlePage)
+            self.continuousScrollButton.state = .on
+            self.isContinuPage = true
+        } else if mode == .twoUp {
+            if book {
+                self.setDisplayMode(.coverPage)
             } else {
-                setDisplayMode(.twoPages)
+                self.setDisplayMode(.twoPages)
             }
-            continuousScrollButton.state = .off
-        } else if displayType == .twoUpContinuous {
-            if pdfView.displaysAsBook {
+            self.continuousScrollButton.state = .off
+        } else if mode == .twoUpContinuous {
+            if book {
                 setDisplayMode(.coverPage)
             } else {
                 setDisplayMode(.twoPages)
             }
-            continuousScrollButton.state = .on
-            isContinuPage = true
+            self.continuousScrollButton.state = .on
+            self.isContinuPage = true
         }
         
         isReaderMode = UserDefaults.standard.bool(forKey: "kKMPDFViewIsReadMode")
         if isReaderMode {
-            setDisplayMode(.readMode)
+            self.setDisplayMode(.readMode)
         }
         
-        if pdfView.displaysPageBreaks {
-            pageBreaksButton.state = .on
-        } else {
-            pageBreaksButton.state = .off
-        }
+        let `break` = self.pdfView?.displaysPageBreaks ?? false
+        self.pageBreaksButton.state = `break` ? .on : .off
         
         if !(mainController?.secondaryPdfView?.window != nil) {
-            setSplitViewType(.singleScreen)
+            self.setSplitViewType(.singleScreen)
         } else {
             if let data = mainController?.pdfSplitView.isVertical, data {
-                setSplitViewType(.verticalScreen)
+                self.setSplitViewType(.verticalScreen)
             } else {
-                setSplitViewType(.horizontalScreen)
+                self.setSplitViewType(.horizontalScreen)
             }
         }
         
-        themeCollectionView.reloadData()
+        self.themeCollectionView.reloadData()
     }
     
 //    private func setPdfView(_ pdfView: SKPDFView) {
@@ -501,13 +499,21 @@ class KMPageDisplayPropertiesButton: NSButton {
             if displayMode == KMDisplayModeType.singlePage {
                 self.mainController?.selectDisplay(display: .singlePageContinuous, viewSettingIsReload: false)
             } else {
-                self.mainController?.selectDisplay(display: .twoUpContinuous, viewSettingIsReload: false)
+                if self.displayMode == .twoPages {
+                    self.mainController?.selectDisplay(display: .twoUpContinuous, viewSettingIsReload: false)
+                } else if self.displayMode == .coverPage {
+                    self.mainController?.selectDisplay(display: .bookContinuous, viewSettingIsReload: false)
+                }
             }
         } else {
             if displayMode == KMDisplayModeType.singlePage {
                 self.mainController?.selectDisplay(display: .singlePage, viewSettingIsReload: false)
             } else {
-                self.mainController?.selectDisplay(display: .twoUp, viewSettingIsReload: false)
+                if self.displayMode == .twoPages {
+                    self.mainController?.selectDisplay(display: .twoUp, viewSettingIsReload: false)
+                } else if self.displayMode == .coverPage {
+                    self.mainController?.selectDisplay(display: .bookMode, viewSettingIsReload: false)
+                }
             }
         }
     }