|
@@ -219,11 +219,11 @@ class KMPDFEditViewController: KMPDFThumbViewBaseController {
|
|
// MARK: Private Methods
|
|
// MARK: Private Methods
|
|
|
|
|
|
private func getSelecteIndex() -> Int {
|
|
private func getSelecteIndex() -> Int {
|
|
- var index: Int = 0
|
|
|
|
- for indexpath in self.thumbnailView.selectionIndexPaths {
|
|
|
|
- index = indexpath.item
|
|
|
|
|
|
+ let index = self.getPasteIndex()
|
|
|
|
+ if (index != NSNotFound) {
|
|
|
|
+ return index
|
|
}
|
|
}
|
|
- return index
|
|
|
|
|
|
+ return 0
|
|
}
|
|
}
|
|
|
|
|
|
private func getSelectedPage() -> CPDFPage {
|
|
private func getSelectedPage() -> CPDFPage {
|
|
@@ -312,6 +312,12 @@ class KMPDFEditViewController: KMPDFThumbViewBaseController {
|
|
self.dealPdfDocumentDidEditCallback()
|
|
self.dealPdfDocumentDidEditCallback()
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ override func insertPages(pages: Array<CPDFPage>, at indexs: IndexSet) {
|
|
|
|
+ super.insertPages(pages: pages, at: indexs)
|
|
|
|
+
|
|
|
|
+ self.selectPages(indexs: indexs)
|
|
|
|
+ }
|
|
|
|
+
|
|
override func pasteAction() {
|
|
override func pasteAction() {
|
|
if (self.canPaste()) {
|
|
if (self.canPaste()) {
|
|
super.pasteAction()
|
|
super.pasteAction()
|
|
@@ -320,6 +326,27 @@ class KMPDFEditViewController: KMPDFThumbViewBaseController {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ override func insertBlankPage(size: NSSize, at index: Int) {
|
|
|
|
+ super.insertBlankPage(size: size, at: index)
|
|
|
|
+
|
|
|
|
+ self.selectPages(indexs: IndexSet(integer: index))
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ override func getInsertIndex() -> Int {
|
|
|
|
+ var index = 0
|
|
|
|
+ if let pageCount = self.thumbnailView.document?.pageCount, pageCount > 0 {
|
|
|
|
+ // 默认为最后一页
|
|
|
|
+ index = Int(pageCount-1)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 在当前选中item之后插入
|
|
|
|
+ // 多选时,则取最后一页
|
|
|
|
+ for indexpath in self.thumbnailView.selectionIndexPaths {
|
|
|
|
+ index = indexpath.item
|
|
|
|
+ }
|
|
|
|
+ return index
|
|
|
|
+ }
|
|
|
|
+
|
|
// MARK: Undo / Redo
|
|
// MARK: Undo / Redo
|
|
|
|
|
|
@objc private func reversePages(indexs: IndexSet) {
|
|
@objc private func reversePages(indexs: IndexSet) {
|
|
@@ -464,38 +491,11 @@ class KMPDFEditViewController: KMPDFThumbViewBaseController {
|
|
// MARK: menu 菜单事件
|
|
// MARK: menu 菜单事件
|
|
|
|
|
|
@objc func item_insertFile(sender: NSMenuItem?) {
|
|
@objc func item_insertFile(sender: NSMenuItem?) {
|
|
- self.km_open_pdf_multi { index, params in
|
|
|
|
- KMPrint("")
|
|
|
|
- } completionBlock: { [unowned self] documents in
|
|
|
|
- /// 处理page
|
|
|
|
- var insertIndex: Int = self.getSelecteIndex()
|
|
|
|
- var pages: Array<CPDFPage> = []
|
|
|
|
- self.documentCaches.removeAll()
|
|
|
|
- var indexs = IndexSet()
|
|
|
|
- for document in documents {
|
|
|
|
- self.documentCaches.append(document)
|
|
|
|
- for i in 0 ..< document.pageCount {
|
|
|
|
- let page = document.page(at: i)
|
|
|
|
- pages.append(page!)
|
|
|
|
- insertIndex += 1
|
|
|
|
- indexs.insert(insertIndex)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- self.insertPagesForDescSort(pages: pages, indexs: indexs)
|
|
|
|
- }
|
|
|
|
|
|
+ self.insertFileAction()
|
|
}
|
|
}
|
|
|
|
|
|
@objc func item_insertBlankPage(sender: NSMenuItem?) {
|
|
@objc func item_insertBlankPage(sender: NSMenuItem?) {
|
|
- let index = self.getSelecteIndex()
|
|
|
|
- let page = self.listView?.document.page(at: UInt(index))
|
|
|
|
-
|
|
|
|
- self.documentCaches.removeAll()
|
|
|
|
- let document = CPDFDocument()
|
|
|
|
- document?.insertPage((page?.bounds.size)!, at: 0)
|
|
|
|
- self.documentCaches.append(document!)
|
|
|
|
- let newPage: CPDFPage = (document?.page(at: 0))!
|
|
|
|
- self.insertPagesForDescSort(pages: [newPage], indexs: IndexSet(integer: index+1))
|
|
|
|
|
|
+ self.insertBlankPageAction()
|
|
}
|
|
}
|
|
|
|
|
|
@objc func item_insertCustomPage(sender: NSMenuItem?) {
|
|
@objc func item_insertCustomPage(sender: NSMenuItem?) {
|