Browse Source

Merge branch 'develop' of git.kdan.cc:Mac_PDF/PDF_Office into develop

tangchao 1 year ago
parent
commit
3b96f7ec92

+ 32 - 6
PDF Office/PDF Master/Class/PDFWindowController/Side/LeftSide/BookMarks/KMBookMarkViewController.swift

@@ -98,6 +98,8 @@ class KMBookMarkViewController: NSViewController, NSTextFieldDelegate {
         
         self.dataSource.sort(){$0.bookMark.pageIndex < $1.bookMark.pageIndex}
         self.bookTableView.reloadData()
+        
+        self.updateAddBookMarkState()
     }
     
     func addBookMarkAndEdit(newBookMark: KMBookMarkItem) {
@@ -239,6 +241,7 @@ class KMBookMarkViewController: NSViewController, NSTextFieldDelegate {
             }
             isLocalEvent = false
         }
+        self.updateAddBookMarkState()
     }
     
     @objc func documentPageCountChangedNotification(notification: NSNotification) {
@@ -295,7 +298,11 @@ extension KMBookMarkViewController : NSTableViewDelegate,NSTableViewDataSource {
                     self.selectItems.count == 1 {
                     self.selectIndex(index: row)
                 }
-                self.addMenuTitle(view: view, event: event)
+                
+                if self.bookTableView.rowView(atRow: row, makeIfNecessary: false) != nil {
+                    let tempView = self.bookTableView.rowView(atRow: row, makeIfNecessary: false)
+                    self.addMenuTitle(view: tempView!, event: event)
+                }
             }
         }
         return rowView
@@ -391,6 +398,21 @@ extension KMBookMarkViewController : NSTableViewDelegate,NSTableViewDataSource {
             }
         }
     }
+    
+    func updateAddBookMarkState() {
+        self.addBookButton.isEnabled = self.canAddBorkMark()
+    }
+    
+    func canAddBorkMark() -> Bool {
+        if self.listView.document.bookmarks() != nil && self.listView.document.bookmarks()?.count != 0 {
+            for bookMark in self.listView.document.bookmarks() {
+                if bookMark.pageIndex == self.listView.currentPageIndex {
+                    return false
+                }
+            }
+        }
+        return true
+    }
 }
 
 //MARK: undoRedo
@@ -455,11 +477,15 @@ extension KMBookMarkViewController {
         self.reloadData()
         
         if bookMarks.count == 1 {
-            let item = KMBookMarkItem()
-            item.bookMark = self.listView.document.bookmark(forPageIndex: UInt(bookMarks.first!.index))
-            item.label = item.bookMark.label
-            item.index = UInt(item.bookMark.pageIndex)
-            self.addBookMarkAndEdit(newBookMark: item)
+            DispatchQueue.main.async {
+                if self.listView.document.bookmark(forPageIndex: UInt(bookMarks.first!.index)) != nil {
+                    let item = KMBookMarkItem()
+                    item.bookMark = self.listView.document.bookmark(forPageIndex: UInt(bookMarks.first!.index))
+                    item.label = item.bookMark.label
+                    item.index = UInt(item.bookMark.pageIndex)
+                    self.addBookMarkAndEdit(newBookMark: item)
+                }
+            }
         }
         
         //undo redo

+ 1 - 1
PDF Office/PDF Master/Class/PDFWindowController/ViewController/KMMainViewController+UI.swift

@@ -492,7 +492,7 @@ extension KMMainViewController {
     }
     
     @objc func closeReadModel() {
-        if self.listView?.toolMode == .textToolMode {
+        if self.isReadMode {
             self.isShowBOTA = false
             self.readModelView.isHidden = true
             self.isReadMode = false