|
@@ -434,34 +434,88 @@ struct KMNMWCFlags {
|
|
|
applyLeftSideWidth(0, rightSideWidth: 0) //初始打开左边栏
|
|
|
|
|
|
//初始化侧边栏打开内容
|
|
|
-// if SettingsManager.sharedInstance.leftPanelType == .defaultOpen {
|
|
|
-// if SettingsManager.sharedInstance.defaultOpen == .thumbnail {
|
|
|
-// viewManager.pdfSideBarType = .thumbnail
|
|
|
-// } else if SettingsManager.sharedInstance.defaultOpen == .outline {
|
|
|
-// viewManager.pdfSideBarType = .outline
|
|
|
-// } else if SettingsManager.sharedInstance.defaultOpen == .bookmark {
|
|
|
-// viewManager.pdfSideBarType = .bookmark
|
|
|
-// } else if SettingsManager.sharedInstance.defaultOpen == .annotation {
|
|
|
-// viewManager.pdfSideBarType = .annotation
|
|
|
-// }
|
|
|
-// } else if SettingsManager.sharedInstance.leftPanelType == .sameAsLastOpen {
|
|
|
-// if let value = UserDefaults.standard.value(forKey: "KMPDFSidebarTypeKey"), let data = value as? Int {
|
|
|
-// let pdfSideBarType: KMPDFSidebarType = KMPDFSidebarType(rawValue: data) ?? .none
|
|
|
-// viewManager.pdfSideBarType = pdfSideBarType
|
|
|
-// }
|
|
|
-// } else if SettingsManager.sharedInstance.leftPanelType == .hideLeftSide {
|
|
|
-// viewManager.pdfSideBarType = .none
|
|
|
-// } else if SettingsManager.sharedInstance.leftPanelType == .prioritizeOutline {
|
|
|
-//
|
|
|
-// }
|
|
|
-// if viewManager.pdfSideBarType == .none {
|
|
|
-// toggleCloseLeftSide()
|
|
|
-// } else {
|
|
|
-// toggleOpenLeftSide(pdfSideBarType: viewManager.pdfSideBarType)
|
|
|
-// }
|
|
|
+ if SettingsManager.sharedInstance.leftPanelType == .defaultOpen {
|
|
|
+ if SettingsManager.sharedInstance.defaultOpen == .thumbnail {
|
|
|
+ viewManager.pdfSideBarType = .thumbnail
|
|
|
+ } else if SettingsManager.sharedInstance.defaultOpen == .outline {
|
|
|
+ viewManager.pdfSideBarType = .outline
|
|
|
+ } else if SettingsManager.sharedInstance.defaultOpen == .bookmark {
|
|
|
+ viewManager.pdfSideBarType = .bookmark
|
|
|
+ } else if SettingsManager.sharedInstance.defaultOpen == .annotation {
|
|
|
+ viewManager.pdfSideBarType = .annotation
|
|
|
+ }
|
|
|
+ } else if SettingsManager.sharedInstance.leftPanelType == .sameAsLastOpen {
|
|
|
+ if let value = UserDefaults.standard.value(forKey: "KMPDFSidebarTypeKey"), let data = value as? Int {
|
|
|
+ let pdfSideBarType: KMPDFSidebarType = KMPDFSidebarType(rawValue: data) ?? .none
|
|
|
+ viewManager.pdfSideBarType = pdfSideBarType
|
|
|
+ }
|
|
|
+ } else if SettingsManager.sharedInstance.leftPanelType == .hideLeftSide {
|
|
|
+ viewManager.pdfSideBarType = .none
|
|
|
+ } else if SettingsManager.sharedInstance.leftPanelType == .prioritizeOutline {
|
|
|
+
|
|
|
+ }
|
|
|
+ if viewManager.pdfSideBarType == .none {
|
|
|
+ toggleCloseLeftSide()
|
|
|
+ } else {
|
|
|
+ DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.15) {
|
|
|
+ self.toggleCloseLeftSide()
|
|
|
+ self.toggleOpenLeftSide(pdfSideBarType: self.viewManager.pdfSideBarType)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //Layout & Zoom
|
|
|
+ let layoutType = SettingsManager.sharedInstance.layoutType
|
|
|
+ if layoutType == .singlePage {
|
|
|
+ self.updatePDFViewDisplayMode(viewMode: .singlePage)
|
|
|
+ } else if layoutType == .singlePageContinue {
|
|
|
+ self.updatePDFViewDisplayMode(viewMode: .singlePageContinuous)
|
|
|
+ } else if layoutType == .twoPage {
|
|
|
+ self.updatePDFViewDisplayMode(viewMode: .twoUp)
|
|
|
+ } else if layoutType == .twoPageContinue {
|
|
|
+ self.updatePDFViewDisplayMode(viewMode: .twoUpContinuous)
|
|
|
+ } else if layoutType == .bookMode {
|
|
|
+ self.updatePDFViewDisplayMode(isbookMode: true, direction: .horizontal)
|
|
|
+ } else if layoutType == .bookModeContinue {
|
|
|
+ self.updatePDFViewDisplayMode(isbookMode: true, direction: .vertical)
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|
|
|
+ func refreshPDFViewZoomInfo(_ zoomType: zoomInfoType) {
|
|
|
+ if zoomType == .adaptationWidth {
|
|
|
+ listView.autoScales = true
|
|
|
+ } else if zoomType == .adapPage {
|
|
|
+ let pageHeight = listView.currentPage().size.height
|
|
|
+ let pdfviewHeight = listView.bounds.size.height
|
|
|
+ listView.scaleFactor = pdfviewHeight/pageHeight
|
|
|
+ listView.autoScales = false
|
|
|
+ } else if zoomType == .actualSize {
|
|
|
+ if listView.scaleFactor != 1.0 {
|
|
|
+ listView.scaleFactor = 1.0
|
|
|
+ listView.autoScales = false
|
|
|
+ }
|
|
|
+ } else if zoomType == .percent_10 {
|
|
|
+ listView.scaleFactor = 0.1
|
|
|
+ } else if zoomType == .percent_25 {
|
|
|
+ listView.scaleFactor = 0.25
|
|
|
+ } else if zoomType == .percent_50 {
|
|
|
+ listView.scaleFactor = 0.5
|
|
|
+ } else if zoomType == .percent_75 {
|
|
|
+ listView.scaleFactor = 0.75
|
|
|
+ } else if zoomType == .percent_100 {
|
|
|
+ listView.scaleFactor = 1.0
|
|
|
+ } else if zoomType == .percent_150 {
|
|
|
+ listView.scaleFactor = 1.5
|
|
|
+ } else if zoomType == .percent_200 {
|
|
|
+ listView.scaleFactor = 2.0
|
|
|
+ } else if zoomType == .percent_400 {
|
|
|
+ listView.scaleFactor = 4.0
|
|
|
+ } else if zoomType == .percent_800 {
|
|
|
+ listView.scaleFactor = 8.0
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
func applyLeftSideWidth(_ leftSideWidth: CGFloat, rightSideWidth: CGFloat) -> Void {
|
|
|
infoContendSplitView.setPosition(infoContendSplitView.maxPossiblePositionOfDivider(at: 1) - infoContendSplitView.dividerThickness - rightSideWidth, ofDividerAt: 1)
|
|
|
infoContendSplitView.setPosition(leftSideWidth, ofDividerAt: 0)
|
|
@@ -476,6 +530,11 @@ struct KMNMWCFlags {
|
|
|
listView.document = self.document
|
|
|
listView.pageBreakMargins = NSEdgeInsetsMake(10, 0, 10, 10)
|
|
|
reloadPDFSplitInfo()
|
|
|
+
|
|
|
+ DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.15) {
|
|
|
+ let zoomType = SettingsManager.sharedInstance.zoomType
|
|
|
+ self.refreshPDFViewZoomInfo(zoomType)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
func updatePDFViewAnnotationMode() {
|
|
@@ -2967,10 +3026,15 @@ struct KMNMWCFlags {
|
|
|
NSWorkspace.shared.activateFileViewerSelecting([self.listView.document.documentURL])
|
|
|
}
|
|
|
//MARK: - DisplayViewMode
|
|
|
- func updatePDFViewDisplayMode(viewMode mode: CPDFDisplayViewMode = .singlePage, isbookMode bookMode: Bool = false) {
|
|
|
+ func updatePDFViewDisplayMode(viewMode mode: CPDFDisplayViewMode = .singlePage, isbookMode bookMode: Bool = false, direction directionValue: CPDFDisplayDirection? = nil) {
|
|
|
if bookMode == true {
|
|
|
+ //书本模式
|
|
|
listView.displaysAsBook = true
|
|
|
listView.displayTwoUp = true
|
|
|
+
|
|
|
+ if let value = directionValue {
|
|
|
+ listView.displayDirection = value
|
|
|
+ }
|
|
|
} else {
|
|
|
listView.setDisplay(mode)
|
|
|
}
|