|
@@ -247,6 +247,23 @@ extension KMLeftSideViewController {
|
|
|
|
|
|
self.tocOutlineView.km_selectItem(demoteOutline, byExtendingSelection: false)
|
|
|
}
|
|
|
+
|
|
|
+ func promoteOutlineWithGrandParent(_ grandParentOutline: CPDFOutline, promoteOutline: CPDFOutline, rowIndex: Int) {
|
|
|
+// [[[self.document undoManager] prepareWithInvocationTarget:self] demoteOutlineWithGrandParent:grandParentOutline demoteOutline:promoteOutline index:rowIndex];
|
|
|
+ let index = promoteOutline.parent?.index ?? 0
|
|
|
+
|
|
|
+ if grandParentOutline.isEqual(to: promoteOutline.parent) {
|
|
|
+ promoteOutline.removeFromParent()
|
|
|
+ grandParentOutline.parent.insertChild(promoteOutline, at: index+1)
|
|
|
+ } else {
|
|
|
+ promoteOutline.removeFromParent()
|
|
|
+ grandParentOutline.insertChild(promoteOutline, at: index+1)
|
|
|
+ }
|
|
|
+
|
|
|
+ self.tocOutlineView.reloadData()
|
|
|
+
|
|
|
+ self.tocOutlineView.km_selectItem(promoteOutline, byExtendingSelection: false)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// MARK: - Menu Actions
|
|
@@ -382,4 +399,18 @@ extension KMLeftSideViewController {
|
|
|
|
|
|
self.demoteOutlineWithGrandParent(newParentOutLine!, demoteOutline: currentOutline, index: Int(currentIndex))
|
|
|
}
|
|
|
+
|
|
|
+ //升级节点
|
|
|
+
|
|
|
+ @objc func outlineContextMenuItemClicked_Promote(_ sender: AnyObject?) {
|
|
|
+ guard let currentOutline: CPDFOutline = self.tocOutlineView.km.clickedItem() else {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ let parentOutLine = currentOutline.parent
|
|
|
+
|
|
|
+ if let grandParentOutLine = parentOutLine?.parent {
|
|
|
+ self.promoteOutlineWithGrandParent(grandParentOutLine, promoteOutline: currentOutline, rowIndex:Int(currentOutline.index))
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|