Browse Source

【页面编辑】代码检查

tangchao 11 months ago
parent
commit
d829d2dccc

+ 7 - 7
PDF Office/PDF Master/Class/PDFTools/PageEdit/Base/KMPageEditSettingBaseModel.swift

@@ -8,21 +8,21 @@
 import Cocoa
 
 class KMPageEditSettingBaseModel: NSObject {
-    var documentURL: URL!
+    var documentURL: URL?
     var password: String = ""
     
-    var fileName: String!
-    var pathExtension: String!
+    var fileName: String?
+    var pathExtension: String?
     var outputFileNameDeletePathExtension: String!
     var outputFileName: String {
         get {
-            if (fileName == nil || fileName.isEmpty) {
+            guard let data = self.fileName, data.isEmpty == false else {
                 return ""
             }
             
             var result: String = ""
-            let pathExtension = fileName.components(separatedBy: ".").last
-            let files = fileName.split(separator: ".")
+            let pathExtension = data.components(separatedBy: ".").last
+            let files = data.split(separator: ".")
             for i in 0 ..< files.count-1 {
                 let file: String = String(files[i])
                 result.append(file)
@@ -31,7 +31,7 @@ class KMPageEditSettingBaseModel: NSObject {
                 }
             }
             
-            return fileName
+            return data
         }
     }
     

+ 2 - 2
PDF Office/PDF Master/Class/PDFTools/PageEdit/Controller/KMPDFEditViewController.swift

@@ -651,8 +651,8 @@ class KMPDFEditViewController: KMPDFThumbViewBaseController {
             model.pageCount = Int(pagecnt)
         }
         
-        model.fileName = model.documentURL.lastPathComponent
-        model.pathExtension = model.fileName.components(separatedBy: ".").last
+        model.fileName = model.documentURL?.lastPathComponent ?? ""
+        model.pathExtension = model.fileName?.components(separatedBy: ".").last
         
         if (self.isEmptySelection() == false) {
             model.type = 2

+ 1 - 4
PDF Office/PDF Master/Class/PDFTools/PageEdit/Model/KMPageEditSplitSettingModel.swift

@@ -67,9 +67,6 @@ class KMPageEditSplitSettingModel: KMPageEditSettingBaseModel {
                 
                 var avgNumberPage = (pageCount / fileCount)
                 let pageOffset = pageCount % fileCount
-//                if (pageCount % fileCount != 0) {
-//                    avgNumberPage += 1
-//                }
                 var files: Array<IndexSet> = []
                 for i in 0 ..< fileCount {
                     var indexs: IndexSet = []
@@ -179,7 +176,7 @@ class KMPageEditSplitSettingModel: KMPageEditSettingBaseModel {
             self.outputFileNameDeletePathExtension = result
             
             result.append(".")
-            result.append(self.pathExtension)
+            result.append(self.pathExtension ?? "pdf")
             
             return result
         }

+ 3 - 1
PDF Office/PDF Master/Class/PDFTools/PageEdit/View/KMPDFEditToolbar.swift

@@ -261,7 +261,9 @@ class KMPDFEditToolbar: NSView {
         popover.animates = true
         popover.behavior = .semitransient
         popover.setValue(true, forKey: "shouldHideAnchor")
-        popover.show(relativeTo: CGRect(x: sender!.bounds.origin.x, y: 10, width: sender!.bounds.size.width, height: sender!.bounds.size.height), of: sender!, preferredEdge: .maxY)
+        if let data = sender {
+            popover.show(relativeTo: CGRect(x: sender?.bounds.origin.x ?? 0, y: 10, width: sender?.bounds.size.width ?? 0, height: sender?.bounds.size.height ?? 0), of: data, preferredEdge: .maxY)
+        }
         vc.downCallback = { [weak self] downEntered, count in
             self?.popover?.close()
             self?.popover = nil

+ 5 - 5
PDF Office/PDF Master/Class/PDFTools/PageEdit/View/KMPageEditInsertTypeItemView.swift

@@ -16,7 +16,7 @@ private class KMPageEditInsertTypeSubItemView: NSView {
     var button = NSButton()
     
     var itemID: Int = 0
-    var itemClick: KMPageEditInsertTypeSubItemViewItemClick!
+    var itemClick: KMPageEditInsertTypeSubItemViewItemClick?
     
     override var isFlipped: Bool {
         return true
@@ -133,7 +133,7 @@ class KMPageEditInsertTypeItemView: KMPageEditBaseItemView {
             }
             
             /// 默认选中第一个
-            self.selectItem(self.itemViews.first!.itemID)
+            self.selectItem(self.itemViews.first?.itemID ?? 0)
             
             self.layoutSubtreeIfNeeded()
         }
@@ -153,10 +153,10 @@ class KMPageEditInsertTypeItemView: KMPageEditBaseItemView {
         let itemY: CGFloat = 8
         var preItemView: KMPageEditInsertTypeSubItemView?
         for itemView in self.itemViews {
-            if (preItemView == nil) {
-                itemView.frame = NSMakeRect(margin, itemY, itemSize.width, itemSize.height)
+            if let data = preItemView {
+                itemView.frame = NSMakeRect((data.frame.maxX)+space, itemY, itemSize.width, itemSize.height)
             } else {
-                itemView.frame = NSMakeRect((preItemView?.frame.maxX)!+space, itemY, itemSize.width, itemSize.height)
+                itemView.frame = NSMakeRect(margin, itemY, itemSize.width, itemSize.height)
             }
             
             preItemView = itemView

+ 0 - 51
PDF Office/PDF Master/Class/PDFWindowController/Side/LeftSide/Thumbnail/Base/KMPDFThumbViewBaseController.swift

@@ -336,57 +336,6 @@ class KMPDFThumbViewBaseController: KMBaseViewController {
     
     // 提取 指定的item
     public func extractActionIndexpaths(indexpaths: Set<IndexPath>) {
-//        Task { @MainActor in
-//            if await (KMLightMemberManager.manager.canPayFunction() == false) {
-//                let _ = KMSubscribeWaterMarkWindowController.show(window: self.view.window!, type: .extract) { isSubscribeSuccess, isWaterMarkExport, isClose in
-//                    if (isClose) {
-//                        return
-//                    }
-//                    if (isSubscribeSuccess) {
-//                        self.showExtractWindow_success(indexpaths: indexpaths) { [unowned self] oneDocumentPerPage, extractAfterDelete in
-//                            self._extractPages(indexpaths: indexpaths, oneDocumentPerPage: oneDocumentPerPage) { [unowned self] result, params in
-//                                if (result == .failure || result == .cancel) {
-//                                    return
-//                                }
-//
-//                                if (extractAfterDelete) {
-//                                    self.deleteIndexPaths(indexpaths: indexpaths)
-//                                }
-//                            }
-//                        }
-//                        return
-//                    }
-//                    if (isWaterMarkExport) {
-//                        self.showExtractWindow_success(indexpaths: indexpaths) { [unowned self] oneDocumentPerPage, extractAfterDelete in
-//                            self._extractPages(indexpaths: indexpaths, oneDocumentPerPage: oneDocumentPerPage, limit: true) { [unowned self] result, params in
-//                                if (result == .failure || result == .cancel) {
-//                                    return
-//                                }
-//
-//                                if (extractAfterDelete) {
-//                                    self.deleteIndexPaths(indexpaths: indexpaths)
-//                                }
-//                            }
-//                        }
-//                        return
-//                    }
-//
-//                }
-//                return
-//            }
-//
-//            self.showExtractWindow_success(indexpaths: indexpaths) { [unowned self] oneDocumentPerPage, extractAfterDelete in
-//                self._extractPages(indexpaths: indexpaths, oneDocumentPerPage: oneDocumentPerPage) { [unowned self] result, params in
-//                    if (result == .failure || result == .cancel) {
-//                        return
-//                    }
-//
-//                    if (extractAfterDelete) {
-//                        self.deleteIndexPaths(indexpaths: indexpaths)
-//                    }
-//                }
-//            }
-//        }
 //        let pageIndexs = self.indexpathsToIndexs(indexpaths: indexpaths)
 //        var fileName = self.thumbnailView.document?.documentURL.deletingPathExtension().lastPathComponent
 //        fileName?.append(KMPageRangeTools.newParseSelectedIndexs(selectedIndex: pageIndexs.sorted()))

+ 29 - 21
PDF Office/PDF Master/Class/PDFWindowController/Side/LeftSide/Thumbnail/KMPDFThumbnailView.swift

@@ -66,10 +66,12 @@ extension KMPDFThumbnailView {
             return size_
         }
         
-        let page = self.document?.page(at: UInt(indexPath.item))
-        let height = KMPDFThumbnailItem.sizeToFit(size: self.thumbnailSzie, page: page!, isShow: self.isShowPageSize)
+        var height: CGFloat = 0
+        if let page = self.document?.page(at: UInt(indexPath.item)) {
+            height = KMPDFThumbnailItem.sizeToFit(size: self.thumbnailSzie, page: page, isShow: self.isShowPageSize)
+        }
         
-        return NSMakeSize(collectionView.frame.size.width - 20, CGFloat(height))
+        return NSMakeSize(collectionView.frame.size.width - 20, height)
     }
     
     override func collectionView(_ collectionView: NSCollectionView, numberOfItemsInSection section: Int) -> Int {
@@ -107,14 +109,14 @@ extension KMPDFThumbnailView {
         cellView.hoverCallBack = { [unowned self] view, mouseEntered in
             if let _ = self.collectionView.item(at: hoverIndex)?.view {
                 let tempCell = self.collectionView.item(at: hoverIndex) as? KMPDFThumbnailItem
-                tempCell!.hover = false
+                tempCell?.hover = false
             }
             
             if mouseEntered {
                 hoverIndex = indexPath.item
                 if let _ = self.collectionView.item(at: hoverIndex)?.view {
                     let tempCell = self.collectionView.item(at: hoverIndex) as? KMPDFThumbnailItem
-                    tempCell!.hover = true
+                    tempCell?.hover = true
                 }
             } else {
                 hoverIndex = -1
@@ -153,7 +155,7 @@ extension KMPDFThumbnailView {
             
             if let data = self.dragTempFilePath {
                 if (self.limit) {
-                    let _ = KMTools.saveWatermarkDocument(document: document!, to: URL(fileURLWithPath: data))
+//                    let _ = KMTools.saveWatermarkDocument(document: document!, to: URL(fileURLWithPath: data))
                 } else {
                     document?.write(to: URL(fileURLWithPath: data))
                 }
@@ -208,16 +210,18 @@ extension KMPDFThumbnailView {
         
         let pboard = draggingInfo.draggingPasteboard
         if (pboard.availableType(from: [self.localForDraggedTypes]) != nil) {
-            let dragIndexPath = self.dragedIndexPaths.first
-            if (dragIndexPath == nil) {
+            guard let dragIndexPath = self.dragedIndexPaths.first else {
+                return false
+            }
+            guard let document = self.document else {
                 return false
             }
-            let dragIndex = dragIndexPath!.item
+            let dragIndex = dragIndexPath.item
             let toIndex = max(0, indexPath.item)
-            if dragIndex < 0 || dragIndex > self.document!.pageCount {
+            if dragIndex < 0 || dragIndex > document.pageCount {
                 return false
             }
-            if (toIndex >= self.document!.pageCount) {
+            if (toIndex >= document.pageCount) {
                 return false
             }
 
@@ -282,12 +286,14 @@ extension KMPDFThumbnailView {
         // 创建数据提供者
         let fileExtension = "pdf"
         if #available(macOS 11.0, *) {
-            let typeIdentifier = UTType(filenameExtension: fileExtension)
-            provider = KMFilePromiseProvider(fileType: typeIdentifier!.identifier, delegate: self)
+            if let typeIdentifier = UTType(filenameExtension: fileExtension) {
+                provider = KMFilePromiseProvider(fileType: typeIdentifier.identifier, delegate: self)
+            }
         } else {
-            let typeIdentifier =
-                  UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, fileExtension as CFString, nil)
-            provider = KMFilePromiseProvider(fileType: typeIdentifier!.takeRetainedValue() as String, delegate: self)
+            if let typeIdentifier =
+                UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, fileExtension as CFString, nil) {
+                provider = KMFilePromiseProvider(fileType: typeIdentifier.takeRetainedValue() as String, delegate: self)
+            }
         }
         
         // 记录拖拽索引
@@ -295,11 +301,11 @@ extension KMPDFThumbnailView {
         do {
             if let _url = self.document?.documentURL {
                 let data = try NSKeyedArchiver.archivedData(withRootObject: indexPath, requiringSecureCoding: false)
-                provider!.userInfo = [KMFilePromiseProvider.UserInfoKeys.urlKey: _url,
+                provider?.userInfo = [KMFilePromiseProvider.UserInfoKeys.urlKey: _url,
                                       KMFilePromiseProvider.UserInfoKeys.indexPathKey: data]
             } else {
                 let data = try NSKeyedArchiver.archivedData(withRootObject: indexPath, requiringSecureCoding: false)
-                provider!.userInfo = [KMFilePromiseProvider.UserInfoKeys.indexPathKey: data]
+                provider?.userInfo = [KMFilePromiseProvider.UserInfoKeys.indexPathKey: data]
             }
         } catch {
             fatalError("failed to archive indexPath to pasteboard")
@@ -350,7 +356,7 @@ extension KMPDFThumbnailView {
 extension KMPDFThumbnailView {
     var dragTempFloderPath: String? {
         get {
-            return NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.applicationSupportDirectory, FileManager.SearchPathDomainMask.userDomainMask, true).last?.stringByAppendingPathComponent(Bundle.main.bundleIdentifier!).stringByAppendingPathComponent("KMPDFThumbnailView_Drag_Temp")
+            return NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.applicationSupportDirectory, FileManager.SearchPathDomainMask.userDomainMask, true).last?.stringByAppendingPathComponent(Bundle.main.bundleIdentifier ?? "").stringByAppendingPathComponent("KMPDFThumbnailView_Drag_Temp")
         }
     }
     var dragTempFilePath: String? {
@@ -400,8 +406,10 @@ extension KMPDFThumbnailView: NSFilePromiseProviderDelegate {
             completionHandler(nil)
         } catch let error {
             OperationQueue.main.addOperation {
-                self.presentError(error, modalFor: self.window!,
-                                  delegate: nil, didPresent: nil, contextInfo: nil)
+                if let win = self.window {
+                    self.presentError(error, modalFor: win,
+                                      delegate: nil, didPresent: nil, contextInfo: nil)
+                }
             }
             completionHandler(error)
         }

+ 8 - 8
PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj

@@ -3781,6 +3781,9 @@
 		BB8115FF2992682F0008F536 /* KMSecureLimitAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB8115FE2992682F0008F536 /* KMSecureLimitAlertView.swift */; };
 		BB8116002992682F0008F536 /* KMSecureLimitAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB8115FE2992682F0008F536 /* KMSecureLimitAlertView.swift */; };
 		BB8116012992682F0008F536 /* KMSecureLimitAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB8115FE2992682F0008F536 /* KMSecureLimitAlertView.swift */; };
+		BB83B8EC2BA8415A00EFF584 /* KMPageEditExtractWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB83B8EB2BA8415900EFF584 /* KMPageEditExtractWindowController.swift */; };
+		BB83B8ED2BA8415A00EFF584 /* KMPageEditExtractWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB83B8EB2BA8415900EFF584 /* KMPageEditExtractWindowController.swift */; };
+		BB83B8EE2BA8415A00EFF584 /* KMPageEditExtractWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB83B8EB2BA8415900EFF584 /* KMPageEditExtractWindowController.swift */; };
 		BB853C632AF87425009C20C1 /* KMBatchOperateRemoveWatermarkViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB853C622AF87425009C20C1 /* KMBatchOperateRemoveWatermarkViewController.swift */; };
 		BB853C642AF87428009C20C1 /* KMBatchOperateRemoveWatermarkViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB853C622AF87425009C20C1 /* KMBatchOperateRemoveWatermarkViewController.swift */; };
 		BB853C652AF8742A009C20C1 /* KMBatchOperateRemoveWatermarkViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB853C622AF87425009C20C1 /* KMBatchOperateRemoveWatermarkViewController.swift */; };
@@ -4627,9 +4630,6 @@
 		BBD1F77F296F9BE000343885 /* KMPageEditSettingBaseWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBD1F77B296F9BE000343885 /* KMPageEditSettingBaseWindowController.xib */; };
 		BBD1F780296F9BE000343885 /* KMPageEditSettingBaseWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBD1F77B296F9BE000343885 /* KMPageEditSettingBaseWindowController.xib */; };
 		BBD1F781296F9BE000343885 /* KMPageEditSettingBaseWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBD1F77B296F9BE000343885 /* KMPageEditSettingBaseWindowController.xib */; };
-		BBD1F783296F9DB500343885 /* KMPageEditExtractWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBD1F782296F9DB500343885 /* KMPageEditExtractWindowController.swift */; };
-		BBD1F784296F9DB500343885 /* KMPageEditExtractWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBD1F782296F9DB500343885 /* KMPageEditExtractWindowController.swift */; };
-		BBD1F785296F9DB500343885 /* KMPageEditExtractWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBD1F782296F9DB500343885 /* KMPageEditExtractWindowController.swift */; };
 		BBD1F787296FAC7C00343885 /* KMPageEditSettingBaseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBD1F786296FAC7C00343885 /* KMPageEditSettingBaseView.swift */; };
 		BBD1F788296FAC7C00343885 /* KMPageEditSettingBaseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBD1F786296FAC7C00343885 /* KMPageEditSettingBaseView.swift */; };
 		BBD1F789296FAC7C00343885 /* KMPageEditSettingBaseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBD1F786296FAC7C00343885 /* KMPageEditSettingBaseView.swift */; };
@@ -6682,6 +6682,7 @@
 		BB7FF5062A60E84400901C2D /* KMEnumExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMEnumExtensions.swift; sourceTree = "<group>"; };
 		BB8115FA29924A5F0008F536 /* KMSecureEncryptCheckCellView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMSecureEncryptCheckCellView.swift; sourceTree = "<group>"; };
 		BB8115FE2992682F0008F536 /* KMSecureLimitAlertView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMSecureLimitAlertView.swift; sourceTree = "<group>"; };
+		BB83B8EB2BA8415900EFF584 /* KMPageEditExtractWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KMPageEditExtractWindowController.swift; sourceTree = "<group>"; };
 		BB853C622AF87425009C20C1 /* KMBatchOperateRemoveWatermarkViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMBatchOperateRemoveWatermarkViewController.swift; sourceTree = "<group>"; };
 		BB853C662AF87502009C20C1 /* KMBatchOperateRemoveWatermarkViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KMBatchOperateRemoveWatermarkViewController.xib; sourceTree = "<group>"; };
 		BB853C6A2AF8782A009C20C1 /* KMRemoveWatermarkOperationQueue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMRemoveWatermarkOperationQueue.swift; sourceTree = "<group>"; };
@@ -7017,7 +7018,6 @@
 		BBCE57172A72723600508EFC /* NSResponder+KMExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSResponder+KMExtension.swift"; sourceTree = "<group>"; };
 		BBD1F77A296F9BE000343885 /* KMPageEditSettingBaseWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPageEditSettingBaseWindowController.swift; sourceTree = "<group>"; };
 		BBD1F77B296F9BE000343885 /* KMPageEditSettingBaseWindowController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMPageEditSettingBaseWindowController.xib; sourceTree = "<group>"; };
-		BBD1F782296F9DB500343885 /* KMPageEditExtractWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPageEditExtractWindowController.swift; sourceTree = "<group>"; };
 		BBD1F786296FAC7C00343885 /* KMPageEditSettingBaseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPageEditSettingBaseView.swift; sourceTree = "<group>"; };
 		BBD1F78A296FACA300343885 /* KMPageEditExtractSettingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPageEditExtractSettingView.swift; sourceTree = "<group>"; };
 		BBD1F78E296FE6A500343885 /* KMPageEditSplitWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPageEditSplitWindowController.swift; sourceTree = "<group>"; };
@@ -11247,6 +11247,7 @@
 		BB2EDF49296E6373003BCF58 /* Window */ = {
 			isa = PBXGroup;
 			children = (
+				BB83B8EB2BA8415900EFF584 /* KMPageEditExtractWindowController.swift */,
 				BB1969D02B2833FE00922736 /* KMProgressWindowController.xib */,
 				BBF62C732B0347D0007B7E86 /* SplitWindowController.xib */,
 				BBF62C6B2B033B5A007B7E86 /* KMPDFEditExtractWindow.xib */,
@@ -11254,7 +11255,6 @@
 				BB10FAE82AFE03CC00F18D65 /* KMPDFEditPageRangeWindowController.xib */,
 				BB2EDF4A296E63E5003BCF58 /* KMPageEditInsertCustomPageWindowController.swift */,
 				BB2EDF4B296E63E5003BCF58 /* KMPageEditInsertCustomPageWindowController.xib */,
-				BBD1F782296F9DB500343885 /* KMPageEditExtractWindowController.swift */,
 				BBD1F78E296FE6A500343885 /* KMPageEditSplitWindowController.swift */,
 				BB10FAE42AFE039E00F18D65 /* KMPDFEditPageRangeWindowController.swift */,
 				BB03D68B2B01C782008C9976 /* KMPDFEditInsertBlankPageWindow.swift */,
@@ -15240,6 +15240,7 @@
 				BB003021298CEBED002DD1A0 /* KMPreferenceStepper.swift in Sources */,
 				9FB220D72B0F4ED400A5B208 /* KMAnnotationSelectLinkViewController.swift in Sources */,
 				9FDD0FA629533494000C4DAD /* KMJSONParser.swift in Sources */,
+				BB83B8EC2BA8415A00EFF584 /* KMPageEditExtractWindowController.swift in Sources */,
 				BBFE6E7F2930EBD400142C01 /* KMCompressWindowController.swift in Sources */,
 				AD1CA4302A0640F20070541F /* KMAnnotationScreenHeadView.swift in Sources */,
 				BB3A66A32B0783BD00575343 /* KMTocTableCellView.swift in Sources */,
@@ -15594,7 +15595,6 @@
 				BB2EDF6D296ECE17003BCF58 /* KMPageEditInsertDirectionItemView.swift in Sources */,
 				BB570ADF2B513A66005E7E4A /* KMLeftSideViewController+Snapshot.swift in Sources */,
 				BB30D4822B90249D00702541 /* KMStatusBar.m in Sources */,
-				BBD1F783296F9DB500343885 /* KMPageEditExtractWindowController.swift in Sources */,
 				BB146FB1299DC0D100784A6A /* GTLRErrorObject.m in Sources */,
 				ADAFDA482AEA7F1300F084BC /* KMAdvertisementShowView.swift in Sources */,
 				BB03D6942B021124008C9976 /* NSSegmentedControl+KMExtension.swift in Sources */,
@@ -16550,6 +16550,7 @@
 				BB671A022AD2D2A0003D44D5 /* CPDFStampAnnotation+PDFListView.swift in Sources */,
 				BB8810D12B4F980E00AFA63E /* NSNULL+Filtration.m in Sources */,
 				AD58F4202B1DC29100299EE0 /* KMPrintViewModel.swift in Sources */,
+				BB83B8ED2BA8415A00EFF584 /* KMPageEditExtractWindowController.swift in Sources */,
 				BB65A0552AF8B90F003A27A0 /* KMDisplayPreferences.swift in Sources */,
 				BB74DA7C2AC41DE9006EDFE7 /* NSString+KMExtension.swift in Sources */,
 				BB0FE0382B734DD1001E0F88 /* AIConfigWindowController.swift in Sources */,
@@ -16784,7 +16785,6 @@
 				9F1FE4B229406E4700E952CA /* CTTabWindowController.m in Sources */,
 				BB2EDF6E296ECE17003BCF58 /* KMPageEditInsertDirectionItemView.swift in Sources */,
 				BB6013912AD3AFF000A76FB2 /* NSPopover+KMExtension.swift in Sources */,
-				BBD1F784296F9DB500343885 /* KMPageEditExtractWindowController.swift in Sources */,
 				BB146FB2299DC0D100784A6A /* GTLRErrorObject.m in Sources */,
 				BB1BFF722AEA0AFE003EB179 /* KMBatchOperateLeftViewController.swift in Sources */,
 				BBB9B31A299A5D6D004F3235 /* KMCloudServer.m in Sources */,
@@ -17582,6 +17582,7 @@
 				AD055E832B88294F0035F824 /* SKBookmarkController.m in Sources */,
 				BBAC26A62AFE134300563A08 /* KMToolbarItemPopViewController.swift in Sources */,
 				BB93CDEB2AE7B6E100B29C57 /* KMToolbarView.swift in Sources */,
+				BB83B8EE2BA8415A00EFF584 /* KMPageEditExtractWindowController.swift in Sources */,
 				AD1D48232AFB6BBA007AC1F0 /* KMMergeView.swift in Sources */,
 				BB403BAC2B15CA6E00B3106D /* KMBatchConvertOperation.swift in Sources */,
 				BB1EC8002967B26700EC0BC3 /* KMPDFEditViewController.swift in Sources */,
@@ -17852,7 +17853,6 @@
 				BB2F9AB12AFCAE1F00F9DD93 /* KMProfileTitleCellView.swift in Sources */,
 				BB2F615A2966B69D001CB369 /* KMWatermarkPropertyHomeController.swift in Sources */,
 				89752E1F2942CB04003FF08E /* KMSearchMode.swift in Sources */,
-				BBD1F785296F9DB500343885 /* KMPageEditExtractWindowController.swift in Sources */,
 				BB147049299DC0D200784A6A /* OIDServiceConfiguration.m in Sources */,
 				ADE3C1C329A4C13700793B13 /* KMPrintAccessoryController_OC.m in Sources */,
 				BB5DF1EB2959C5CB0025CDA1 /* KMHeaderFooterPreviewController.swift in Sources */,