|
@@ -196,7 +196,7 @@ extension KMLeftSideViewController {
|
|
|
guard let model = self.fetchAnnoModel(for: row) else {
|
|
|
return
|
|
|
}
|
|
|
- var isFold = model.isFold()
|
|
|
+ let isFold = model.isFold()
|
|
|
item = menu.addItem(title: KMLocalizedString("Expand", nil), action: #selector(unfoldNoteAction), target: self)
|
|
|
item?.state = isFold ? .off : .on
|
|
|
item?.representedObject = items
|
|
@@ -285,8 +285,9 @@ extension KMLeftSideViewController {
|
|
|
expandAllItem?.representedObject = self.noteOutlineView
|
|
|
let foldAllItem = menu.addItem(title: KMLocalizedString("Collapse All", nil), action: #selector(note_foldAllComments), target: self)
|
|
|
foldAllItem?.representedObject = self.noteOutlineView
|
|
|
- expandAllItem?.state = self.foldType == .unfold ? .on : .off
|
|
|
- foldAllItem?.state = self.foldType == .fold ? .on : .off
|
|
|
+ let type = self.annoListModel?.foldType ?? .none
|
|
|
+ expandAllItem?.state = type == .unfold ? .on : .off
|
|
|
+ foldAllItem?.state = type == .fold ? .on : .off
|
|
|
|
|
|
let showItem = menu.addItem(title: KMLocalizedString("Show Note", nil), action: nil, target: self)
|
|
|
let subMenu = NSMenu()
|
|
@@ -351,24 +352,24 @@ extension KMLeftSideViewController {
|
|
|
}
|
|
|
|
|
|
@IBAction func note_expandAllComments(_ sender: AnyObject?) {
|
|
|
- if (self.foldType == .unfold) { // 已全部展开
|
|
|
+ guard let model = self.annoListModel else {
|
|
|
return
|
|
|
}
|
|
|
- // 设置全部展开的标识
|
|
|
- self.foldType = .unfold
|
|
|
- // 加载数据
|
|
|
- self.loadUnfoldDate(.none)
|
|
|
- // 刷新UI
|
|
|
+ if (model.foldType == .unfold) { // 已全部展开
|
|
|
+ return
|
|
|
+ }
|
|
|
+ model.foldType = .unfold
|
|
|
self.noteOutlineView.reloadData()
|
|
|
}
|
|
|
|
|
|
@IBAction func note_foldAllComments(_ sender: AnyObject?) {
|
|
|
- if (self.foldType == .fold) {
|
|
|
+ guard let model = self.annoListModel else {
|
|
|
return
|
|
|
}
|
|
|
- self.foldType = .fold
|
|
|
- self.loadUnfoldDate(.none)
|
|
|
-
|
|
|
+ if (model.foldType == .fold) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ model.foldType = .fold
|
|
|
self.noteOutlineView.reloadData()
|
|
|
}
|
|
|
|
|
@@ -409,11 +410,6 @@ extension KMLeftSideViewController {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-// if self.allFoldNotes.count == self.canFoldNotes.count {
|
|
|
-// self.foldType = .unfold
|
|
|
-// } else {
|
|
|
-// self.foldType = .none
|
|
|
-// }
|
|
|
model.foldType = .unfold
|
|
|
let viewS = self.noteOutlineView.view(atColumn: 0, row: row, makeIfNecessary: true)
|
|
|
(viewS as? KMNoteTableViewCell)?.isFold = false
|
|
@@ -429,12 +425,6 @@ extension KMLeftSideViewController {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-// if (self.allFoldNotes.count == 0) {
|
|
|
-// self.foldType = .fold
|
|
|
-// } else {
|
|
|
-// self.foldType = .none
|
|
|
-// }
|
|
|
-
|
|
|
model.foldType = .fold
|
|
|
let viewS = self.noteOutlineView.view(atColumn: 0, row: row, makeIfNecessary: true)
|
|
|
(viewS as? KMNoteTableViewCell)?.isFold = true
|
|
@@ -491,7 +481,26 @@ extension KMLeftSideViewController {
|
|
|
}
|
|
|
|
|
|
@objc func editNoteFromTable(_ sender: AnyObject?) {
|
|
|
- KMPrint("editNoteFromTable ...")
|
|
|
+ guard let annotation = (sender as? NSMenuItem)?.representedObject as? CPDFAnnotation else {
|
|
|
+ NSSound.beep()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ let model = fetchAnnoModel(for: annotation)
|
|
|
+ let row = self.noteOutlineView.row(forItem: model)
|
|
|
+ self.noteOutlineView.km_safe_selectRowIndexes(.init(integer: row), byExtendingSelection: false)
|
|
|
+ let noteIndex = self.noteOutlineView.column(withIdentifier: .init("note"))
|
|
|
+ if (noteIndex >= 0) {
|
|
|
+ self.noteOutlineView.scrollColumnToVisible(noteIndex)
|
|
|
+//
|
|
|
+ self.isRenameNoteOutline = true
|
|
|
+// self.renamePDFOutline = [rightSideController.noteOutlineView itemAtRow:rightSideController.noteOutlineView.clickedRow];
|
|
|
+ let viewS = self.noteOutlineView.view(atColumn: 0, row: row, makeIfNecessary: true) as? KMNoteTableViewCell
|
|
|
+ let targrtTextField = viewS?.noteContentLabel
|
|
|
+ self.renamePDFOutlineTextField = targrtTextField
|
|
|
+ targrtTextField?.delegate = self
|
|
|
+ targrtTextField?.isEditable = true
|
|
|
+ targrtTextField?.becomeFirstResponder()
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@IBAction func noteSortAction(_ sender: AnyObject?) {
|
|
@@ -528,14 +537,6 @@ extension KMLeftSideViewController {
|
|
|
filterViewController.listView = self.listView
|
|
|
filterViewController.view.layer?.backgroundColor = .clear
|
|
|
|
|
|
- var notes = NSMutableArray()
|
|
|
-// for section in self._annotations {
|
|
|
-// if section.annotations?.count != 0 {
|
|
|
-// for item in section.annotations! {
|
|
|
-// notes.add(item.annotation!)
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
filterViewController.setNotesArray(self.allAnnotations as NSArray)
|
|
|
filterViewController.applyFilterCallback = { [weak self] typeArr, colorArr, authorArr, isEmpty in
|
|
|
menu.cancelTracking()
|
|
@@ -572,6 +573,23 @@ extension KMLeftSideViewController {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ func fetchAnnoModel(for anno: CPDFAnnotation) -> KMBotaAnnotationModel? {
|
|
|
+ if self.noteSearchMode { // 搜索模式
|
|
|
+ for model in self.noteSearchArray {
|
|
|
+ if anno.isEqual(to: model.anno) {
|
|
|
+ return model
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else { // 常规模式(非搜索)
|
|
|
+ for model in self.annoListModel?.datas ?? [] {
|
|
|
+ if anno.isEqual(to: model.anno) {
|
|
|
+ return model
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+
|
|
|
@IBAction @objc func sortTypeAction(_ sender: NSMenuItem) {
|
|
|
let item = sender
|
|
|
let tag = item.tag
|
|
@@ -884,27 +902,4 @@ extension KMLeftSideViewController {
|
|
|
userDefaults.synchronize()
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- func loadUnfoldDate(_ foldType: KMFoldType) {
|
|
|
- var mutableArray: [CPDFAnnotation] = []
|
|
|
- if self.noteSearchMode {
|
|
|
- for model in self.noteSearchArray {
|
|
|
- if let note = model.anno as? CPDFMarkupAnnotation {
|
|
|
- mutableArray.append(note)
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- for model in self.annoListModel?.datas ?? [] {
|
|
|
- if let note = model.anno, note is CPDFMarkupAnnotation {
|
|
|
- mutableArray.append(note)
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-// for note in self.notes {
|
|
|
-// if note is CPDFMarkupAnnotation {
|
|
|
-// mutableArray.append(note)
|
|
|
-// }
|
|
|
-// }
|
|
|
- self.canFoldNotes = mutableArray
|
|
|
- }
|
|
|
}
|