Explorar el Código

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

tangchao hace 1 año
padre
commit
048d1a015c

+ 56 - 8
PDF Office/PDF Master.xcodeproj/project.pbxproj

@@ -1072,6 +1072,15 @@
 		AD015FB729AB484400A57062 /* KMLightMemberConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD015FB629AB484400A57062 /* KMLightMemberConfig.swift */; };
 		AD015FB829AB484400A57062 /* KMLightMemberConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD015FB629AB484400A57062 /* KMLightMemberConfig.swift */; };
 		AD015FB929AB484400A57062 /* KMLightMemberConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD015FB629AB484400A57062 /* KMLightMemberConfig.swift */; };
+		AD0E8AB02A31B76300DBFD3C /* KMInAppPurchaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD0E8AAF2A31B76300DBFD3C /* KMInAppPurchaseManager.swift */; };
+		AD0E8AB12A31B76300DBFD3C /* KMInAppPurchaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD0E8AAF2A31B76300DBFD3C /* KMInAppPurchaseManager.swift */; };
+		AD0E8AB22A31B76300DBFD3C /* KMInAppPurchaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD0E8AAF2A31B76300DBFD3C /* KMInAppPurchaseManager.swift */; };
+		AD0E8AB42A31B78900DBFD3C /* KMDMGPurchaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD0E8AB32A31B78900DBFD3C /* KMDMGPurchaseManager.swift */; };
+		AD0E8AB52A31B78900DBFD3C /* KMDMGPurchaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD0E8AB32A31B78900DBFD3C /* KMDMGPurchaseManager.swift */; };
+		AD0E8AB62A31B78900DBFD3C /* KMDMGPurchaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD0E8AB32A31B78900DBFD3C /* KMDMGPurchaseManager.swift */; };
+		AD0E8AB92A31BDDD00DBFD3C /* KMProduct.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD0E8AB82A31BDDD00DBFD3C /* KMProduct.swift */; };
+		AD0E8ABA2A31BDDD00DBFD3C /* KMProduct.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD0E8AB82A31BDDD00DBFD3C /* KMProduct.swift */; };
+		AD0E8ABB2A31BDDD00DBFD3C /* KMProduct.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD0E8AB82A31BDDD00DBFD3C /* KMProduct.swift */; };
 		AD0FA4F029A8580D00EDEB50 /* KMComparativeTableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD0FA4EF29A8580D00EDEB50 /* KMComparativeTableView.swift */; };
 		AD0FA4F129A8580D00EDEB50 /* KMComparativeTableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD0FA4EF29A8580D00EDEB50 /* KMComparativeTableView.swift */; };
 		AD0FA4F229A8580D00EDEB50 /* KMComparativeTableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD0FA4EF29A8580D00EDEB50 /* KMComparativeTableView.swift */; };
@@ -1435,9 +1444,9 @@
 		ADBA0464292CB90B00BF9184 /* KMBatchProcessingTableRowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADBA0463292CB90B00BF9184 /* KMBatchProcessingTableRowView.swift */; };
 		ADBA0465292CB90B00BF9184 /* KMBatchProcessingTableRowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADBA0463292CB90B00BF9184 /* KMBatchProcessingTableRowView.swift */; };
 		ADBA0466292CB90B00BF9184 /* KMBatchProcessingTableRowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADBA0463292CB90B00BF9184 /* KMBatchProcessingTableRowView.swift */; };
-		ADBC174F2A2991F700959CEE /* KMInAppPurchaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADBC174E2A2991F700959CEE /* KMInAppPurchaseManager.swift */; };
-		ADBC17502A2991F700959CEE /* KMInAppPurchaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADBC174E2A2991F700959CEE /* KMInAppPurchaseManager.swift */; };
-		ADBC17512A2991F700959CEE /* KMInAppPurchaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADBC174E2A2991F700959CEE /* KMInAppPurchaseManager.swift */; };
+		ADBC174F2A2991F700959CEE /* KMPurchaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADBC174E2A2991F700959CEE /* KMPurchaseManager.swift */; };
+		ADBC17502A2991F700959CEE /* KMPurchaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADBC174E2A2991F700959CEE /* KMPurchaseManager.swift */; };
+		ADBC17512A2991F700959CEE /* KMPurchaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADBC174E2A2991F700959CEE /* KMPurchaseManager.swift */; };
 		ADBC2CF5299C7B3E006280C8 /* Print.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = ADBC2CF4299C7B3E006280C8 /* Print.xcassets */; };
 		ADBC2CF6299C7B3E006280C8 /* Print.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = ADBC2CF4299C7B3E006280C8 /* Print.xcassets */; };
 		ADBC2CF7299C7B3E006280C8 /* Print.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = ADBC2CF4299C7B3E006280C8 /* Print.xcassets */; };
@@ -3852,6 +3861,9 @@
 		9FF94F1829A770B500B1EF69 /* KMFillSignShapePanel.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMFillSignShapePanel.xib; sourceTree = "<group>"; };
 		AD015FB129AB45D200A57062 /* KMSubscriptionManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMSubscriptionManager.swift; sourceTree = "<group>"; };
 		AD015FB629AB484400A57062 /* KMLightMemberConfig.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMLightMemberConfig.swift; sourceTree = "<group>"; };
+		AD0E8AAF2A31B76300DBFD3C /* KMInAppPurchaseManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMInAppPurchaseManager.swift; sourceTree = "<group>"; };
+		AD0E8AB32A31B78900DBFD3C /* KMDMGPurchaseManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMDMGPurchaseManager.swift; sourceTree = "<group>"; };
+		AD0E8AB82A31BDDD00DBFD3C /* KMProduct.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMProduct.swift; sourceTree = "<group>"; };
 		AD0FA4EF29A8580D00EDEB50 /* KMComparativeTableView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMComparativeTableView.swift; sourceTree = "<group>"; };
 		AD0FA4F429A8582C00EDEB50 /* KMComparativeTableView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMComparativeTableView.xib; sourceTree = "<group>"; };
 		AD0FA4F829A8DD6F00EDEB50 /* KMRegisterSuccessView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMRegisterSuccessView.swift; sourceTree = "<group>"; };
@@ -3974,7 +3986,7 @@
 		ADB2D6F8294882AE0029D2B3 /* KMTextFieldStepperView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMTextFieldStepperView.swift; sourceTree = "<group>"; };
 		ADB2D6FC294882B70029D2B3 /* KMTextFieldStepperView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMTextFieldStepperView.xib; sourceTree = "<group>"; };
 		ADBA0463292CB90B00BF9184 /* KMBatchProcessingTableRowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMBatchProcessingTableRowView.swift; sourceTree = "<group>"; };
-		ADBC174E2A2991F700959CEE /* KMInAppPurchaseManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KMInAppPurchaseManager.swift; sourceTree = "<group>"; };
+		ADBC174E2A2991F700959CEE /* KMPurchaseManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KMPurchaseManager.swift; sourceTree = "<group>"; };
 		ADBC2CF4299C7B3E006280C8 /* Print.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Print.xcassets; sourceTree = "<group>"; };
 		ADBC2CF9299CA6B9006280C8 /* KMPrintDuplexPrintingSetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPrintDuplexPrintingSetView.swift; sourceTree = "<group>"; };
 		ADBC2CFD299CA6C7006280C8 /* KMPrintDuplexPrintingSetView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMPrintDuplexPrintingSetView.xib; sourceTree = "<group>"; };
@@ -5840,6 +5852,30 @@
 			path = Config;
 			sourceTree = "<group>";
 		};
+		AD0E8AAD2A31B6F300DBFD3C /* Appstore */ = {
+			isa = PBXGroup;
+			children = (
+				AD0E8AAF2A31B76300DBFD3C /* KMInAppPurchaseManager.swift */,
+			);
+			path = Appstore;
+			sourceTree = "<group>";
+		};
+		AD0E8AAE2A31B6FD00DBFD3C /* DMG */ = {
+			isa = PBXGroup;
+			children = (
+				AD0E8AB32A31B78900DBFD3C /* KMDMGPurchaseManager.swift */,
+			);
+			path = DMG;
+			sourceTree = "<group>";
+		};
+		AD0E8AB72A31BDCE00DBFD3C /* Model */ = {
+			isa = PBXGroup;
+			children = (
+				AD0E8AB82A31BDDD00DBFD3C /* KMProduct.swift */,
+			);
+			path = Model;
+			sourceTree = "<group>";
+		};
 		AD0FA4EE29A857E900EDEB50 /* View */ = {
 			isa = PBXGroup;
 			children = (
@@ -6419,7 +6455,10 @@
 		ADBC174D2A2991F700959CEE /* InAppPurchase */ = {
 			isa = PBXGroup;
 			children = (
-				ADBC174E2A2991F700959CEE /* KMInAppPurchaseManager.swift */,
+				AD0E8AB72A31BDCE00DBFD3C /* Model */,
+				AD0E8AAE2A31B6FD00DBFD3C /* DMG */,
+				AD0E8AAD2A31B6F300DBFD3C /* Appstore */,
+				ADBC174E2A2991F700959CEE /* KMPurchaseManager.swift */,
 			);
 			path = InAppPurchase;
 			sourceTree = "<group>";
@@ -10501,6 +10540,7 @@
 				BB6B4C08292F53CE0071CA06 /* KMMergeFileModel.swift in Sources */,
 				ADB1FE7E29752F2900ED072D /* KMBatchSecurityView.swift in Sources */,
 				89E93EC82999CEB200F10F66 /* KMNoteOutlineFilterViewController.m in Sources */,
+				AD0E8AB42A31B78900DBFD3C /* KMDMGPurchaseManager.swift in Sources */,
 				9FDD0FB229534FEA000C4DAD /* KMGlobal.swift in Sources */,
 				9F1FE49329406E4700E952CA /* common.m in Sources */,
 				BB14700E299DC0D100784A6A /* OIDScopes.m in Sources */,
@@ -10567,7 +10607,7 @@
 				9FAAA339290F72CC0046FFCE /* KMHistoryFileCollectionView.swift in Sources */,
 				BB2F18462A0C7E250003F65E /* KMConvertBaseView.swift in Sources */,
 				BB99ACCA292DEE6E0048AFD9 /* KMMergeTitleBar.swift in Sources */,
-				ADBC174F2A2991F700959CEE /* KMInAppPurchaseManager.swift in Sources */,
+				ADBC174F2A2991F700959CEE /* KMPurchaseManager.swift in Sources */,
 				BB4DD043299B291A00E80DF6 /* KMCloudNoNetworkView.swift in Sources */,
 				BB49ECF6293F44DC00C82CA2 /* KMConvertExcelWindowController.swift in Sources */,
 				BBC348432956A638008D2CD1 /* KMEditBackgroundController.swift in Sources */,
@@ -10831,6 +10871,7 @@
 				BB147011299DC0D100784A6A /* OIDError.m in Sources */,
 				89752DEA293875FC003FF08E /* KMMainToolbarController.swift in Sources */,
 				BBA93D2D29BEBAA60044E0DD /* KMPreferenceEnum.swift in Sources */,
+				AD0E8AB02A31B76300DBFD3C /* KMInAppPurchaseManager.swift in Sources */,
 				BB89DD7E2953F863007C3FFA /* KMWatermarkFileOutsideView.swift in Sources */,
 				ADE8BC3E29F9458700570F89 /* KMRecommondInfo.m in Sources */,
 				AD9527C6295295110039D2BC /* KMPrintPrinterModel.swift in Sources */,
@@ -10857,6 +10898,7 @@
 				BB89726D294DB67D0045787C /* KMWatermarkAdjectiveBaseView.swift in Sources */,
 				9F1FE4FF29406E4700E952CA /* CTTabStripModel.m in Sources */,
 				BBEC00CC295C31F900A26C98 /* KMBatesModel.swift in Sources */,
+				AD0E8AB92A31BDDD00DBFD3C /* KMProduct.swift in Sources */,
 				9F1FE4C929406E4700E952CA /* CTTabContents.m in Sources */,
 				BB89725E294C5DDA0045787C /* KMWatermarkPropertyInfoController.swift in Sources */,
 				BB146FAB299DC0D000784A6A /* GTLRBatchQuery.m in Sources */,
@@ -11101,6 +11143,7 @@
 				ADBC372A29CA950500D93208 /* KMComparativeOutlineView.swift in Sources */,
 				9FDD0FA729533494000C4DAD /* KMJSONParser.swift in Sources */,
 				9FDD0F70294AD13C000C4DAD /* KMMainViewController+Action.swift in Sources */,
+				AD0E8AB12A31B76300DBFD3C /* KMInAppPurchaseManager.swift in Sources */,
 				BBB9B314299A5D6D004F3235 /* DropboxModel.m in Sources */,
 				BBB9B323299A5D6D004F3235 /* KMServicesCloudFile.m in Sources */,
 				ADE614A82977954000F62ED7 /* KMBatchConvertPDFViewPresenter.swift in Sources */,
@@ -11191,7 +11234,7 @@
 				89E4E751296427C8002DBA6F /* NSURL_SKExtensions.m in Sources */,
 				9F221ED829A9EC0900978A59 /* KMFillSignTextPanel.swift in Sources */,
 				BBF38A5F294F42FF0086D025 /* KMWatermarkAdjectiveStepper.swift in Sources */,
-				ADBC17502A2991F700959CEE /* KMInAppPurchaseManager.swift in Sources */,
+				ADBC17502A2991F700959CEE /* KMPurchaseManager.swift in Sources */,
 				BB003027298CF7EC002DD1A0 /* KMPreferenceDisplayController.swift in Sources */,
 				F36AD77829642FE80015AD53 /* CPDFListView+UndoManager.m in Sources */,
 				BB89726A294DB41D0045787C /* KMWatermarkAdjectivePositionView.swift in Sources */,
@@ -11661,6 +11704,7 @@
 				BB86C20B28F5569F005AD968 /* NSGeometry_SKExtensions.m in Sources */,
 				BB49ECDE293EED6100C82CA2 /* KMConvertWordWindowController.swift in Sources */,
 				BB6B4C09292F53CE0071CA06 /* KMMergeFileModel.swift in Sources */,
+				AD0E8AB52A31B78900DBFD3C /* KMDMGPurchaseManager.swift in Sources */,
 				ADC075F92987EB9E006C752F /* KMBatchCompressViewModel.swift in Sources */,
 				BBEC00B8295C2C1600A26C98 /* KMBatesPropertyHomeController.swift in Sources */,
 				9F1F82B5292DEF370092C4B4 /* KMCloudDocumentsViewController.swift in Sources */,
@@ -11699,6 +11743,7 @@
 				9F0CB4DA2986553600007028 /* KMDesignToken+VerticalPadding.swift in Sources */,
 				9FF94F1A29A770B500B1EF69 /* KMFillSignShapePanel.swift in Sources */,
 				9F8539C729430AC400DF644E /* KMToolbarRightView.swift in Sources */,
+				AD0E8ABA2A31BDDD00DBFD3C /* KMProduct.swift in Sources */,
 				BB35C4A02975362900D46EE2 /* KMRedactTopToolBar.swift in Sources */,
 				BB49ECEE293F3B0D00C82CA2 /* KMConvertOCRSettingItemView.swift in Sources */,
 				89D2D309295A83B500BFF5FE /* KMEditPDFTextPropertyViewController.swift in Sources */,
@@ -11859,7 +11904,7 @@
 				F3B7DF9C2948565000333201 /* CPDFListHoverAnnotationViewController.m in Sources */,
 				9FDD0FB429534FEA000C4DAD /* KMGlobal.swift in Sources */,
 				BB2EDF78296ECE17003BCF58 /* KMPageEditInsertPageSizeItemView.swift in Sources */,
-				ADBC17512A2991F700959CEE /* KMInAppPurchaseManager.swift in Sources */,
+				ADBC17512A2991F700959CEE /* KMPurchaseManager.swift in Sources */,
 				BB6DD823293497B6001F0544 /* KMSecureEncryptModel.swift in Sources */,
 				89D2D2E0294C451400BFF5FE /* KMThumbnailViewController.swift in Sources */,
 				9FAAA334290BD0A20046FFCE /* KMHistoryFileCollectionViewItem.swift in Sources */,
@@ -12317,6 +12362,7 @@
 				AD1CA41B2A061CE10070541F /* KMAnnotationScreenTypeViewItem.swift in Sources */,
 				AD8810A229A8459000178CA1 /* KMComparativeTableViewController.swift in Sources */,
 				9F0CB4A129683E2600007028 /* KMPropertiesPanelSizeSubVC.swift in Sources */,
+				AD0E8AB62A31B78900DBFD3C /* KMDMGPurchaseManager.swift in Sources */,
 				BBEC00E7295C4D3C00A26C98 /* KMBatesPageInfoView.swift in Sources */,
 				BB003030298D315E002DD1A0 /* KMPreferenceMarkupController.swift in Sources */,
 				894A00F42976314C0070ED83 /* KMPDFViewPanelSetViewController.swift in Sources */,
@@ -12364,6 +12410,7 @@
 				BBEC00A6295BD42D00A26C98 /* KMHeaderFooterPageInfoView.swift in Sources */,
 				BBC348552958465C008D2CD1 /* KMBackgroundFilePropertyInfoController.swift in Sources */,
 				AD867F9E29D9853200F00440 /* KMBOTAOutlineRowView.swift in Sources */,
+				AD0E8AB22A31B76300DBFD3C /* KMInAppPurchaseManager.swift in Sources */,
 				BBC3482B29559B22008D2CD1 /* KMBackgroundListCell.swift in Sources */,
 				F34BF93729530708002C25A2 /* NSImage+PDFListView.m in Sources */,
 				9FAAA32C290BD01D0046FFCE /* KMHomeHistoryFileViewController.swift in Sources */,
@@ -12413,6 +12460,7 @@
 				9F080B11298A55A300FC27DA /* KMConvertURLToPDF.m in Sources */,
 				F359916B29261F0E000D25DE /* CPDFListView+Tool.m in Sources */,
 				89752DEC293875FC003FF08E /* KMMainToolbarController.swift in Sources */,
+				AD0E8ABB2A31BDDD00DBFD3C /* KMProduct.swift in Sources */,
 				BBC2BCC8295DA8F30036B983 /* KMCropPreviewController.swift in Sources */,
 				F34BF94B295310AB002C25A2 /* NSUserDefaults+PDFListView.m in Sources */,
 				9F1FE50F29407B2B00E952CA /* KMUploadFilePanel.swift in Sources */,

+ 138 - 0
PDF Office/PDF Master.xcodeproj/xcuserdata/lizhe.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -4375,6 +4375,21 @@
                   endingLineNumber = "750"
                   offsetFromSymbolStart = "1168">
                </Location>
+               <Location
+                  uuid = "18B2AE70-9733-466E-83BA-36FD4726B700 - fcbaf7727200cca0"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "-[CPDFListView(Event) validateMenuItem:]"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/PDFListView/CPDFListViewExtension/CPDFListView+Event.m"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "751"
+                  endingLineNumber = "751"
+                  offsetFromSymbolStart = "940">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -5636,6 +5651,21 @@
                   endingLineNumber = "2160"
                   offsetFromSymbolStart = "6560">
                </Location>
+               <Location
+                  uuid = "E6C993FB-0842-4F52-AE53-E75F3AD220CC - a1d4d1cb41d7210"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "-[CPDFListView(Event) doDragAddAnnotationWithEvent:]"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/PDFListView/CPDFListViewExtension/CPDFListView+Event.m"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "2160"
+                  endingLineNumber = "2160"
+                  offsetFromSymbolStart = "6532">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -5684,6 +5714,21 @@
                   endingLineNumber = "2246"
                   offsetFromSymbolStart = "488">
                </Location>
+               <Location
+                  uuid = "8DF43700-9AFC-4D93-AA00-E6A6AF35DC2E - b8845c68496e6dcb"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "-[CPDFListView(Event) doResizeLineAnnotationWithEvent:fromPoint:originalStartPoint:originalEndPoint:resizeHandle:]"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/PDFListView/CPDFListViewExtension/CPDFListView+Event.m"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "2246"
+                  endingLineNumber = "2246"
+                  offsetFromSymbolStart = "1128">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -5747,6 +5792,36 @@
                   endingLineNumber = "2333"
                   offsetFromSymbolStart = "2984">
                </Location>
+               <Location
+                  uuid = "31E2802F-4470-4A8B-AA9C-72955A42BC77 - 8dc592bd4f8b95ad"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "-[CPDFListView(Event) doResizeAnnotationWithEvent:fromPoint:originalBounds:resizeHandle:]"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/PDFListView/CPDFListViewExtension/CPDFListView+Event.m"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "2333"
+                  endingLineNumber = "2333"
+                  offsetFromSymbolStart = "2272">
+               </Location>
+               <Location
+                  uuid = "31E2802F-4470-4A8B-AA9C-72955A42BC77 - 8dc592bd4f8b95ad"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "-[CPDFListView(Event) doResizeAnnotationWithEvent:fromPoint:originalBounds:resizeHandle:]"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/PDFListView/CPDFListViewExtension/CPDFListView+Event.m"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "2333"
+                  endingLineNumber = "2333"
+                  offsetFromSymbolStart = "2356">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -5795,6 +5870,21 @@
                   endingLineNumber = "2342"
                   offsetFromSymbolStart = "3400">
                </Location>
+               <Location
+                  uuid = "45AC1B80-85C6-4653-8A68-F7B5D967D61C - 8dc592bd4f8b94f4"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "-[CPDFListView(Event) doResizeAnnotationWithEvent:fromPoint:originalBounds:resizeHandle:]"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/PDFListView/CPDFListViewExtension/CPDFListView+Event.m"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "2342"
+                  endingLineNumber = "2342"
+                  offsetFromSymbolStart = "2704">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -6068,6 +6158,38 @@
             endingLineNumber = "2196"
             landmarkName = "-updateTextPresupposition:needChangeListView:"
             landmarkType = "7">
+            <Locations>
+               <Location
+                  uuid = "DF7AD405-5534-4718-B54C-30482373DF26 - de67518e8685b25b"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "-[KMGeneralAnnotationViewController(Font) updateTextTextPresuppositionState:size:]"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/Side/RightSide/AnnotationProperty/KMGeneralAnnotationViewController.m"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "2196"
+                  endingLineNumber = "2196"
+                  offsetFromSymbolStart = "468">
+               </Location>
+               <Location
+                  uuid = "DF7AD405-5534-4718-B54C-30482373DF26 - de67518e8685b25b"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "-[KMGeneralAnnotationViewController(Font) updateTextTextPresuppositionState:size:]"
+                  moduleName = "PDF Master"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/Side/RightSide/AnnotationProperty/KMGeneralAnnotationViewController.m"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "2196"
+                  endingLineNumber = "2196"
+                  offsetFromSymbolStart = "512">
+               </Location>
+            </Locations>
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
@@ -6310,5 +6432,21 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "5C324E3B-E42D-47D2-BD08-4850D4C0159A"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "PDF Master/Class/KMLightMember/Controller/Login&amp;Register/KMLoginWindowController.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "88"
+            endingLineNumber = "88"
+            landmarkName = "setup()"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
    </Breakpoints>
 </Bucket>

+ 16 - 0
PDF Office/PDF Master/Class/KMLightMember/Controller/ComparativeTable/KMComparativeTableViewController.swift

@@ -9,6 +9,7 @@ import Cocoa
 
 typealias KMComparativeTableViewControllerLoginAction = (_ controller: KMComparativeTableViewController) -> Void
 typealias KMComparativeTableViewControllerSignUpAction = (_ controller: KMComparativeTableViewController) -> Void
+typealias KMComparativeTableViewControllerSubscriptionAction = (_ controller: KMComparativeTableViewController) -> Void
 
 var comparativeController: KMComparativeTableViewController?
 var comparativeMainWindow: NSWindow?
@@ -33,6 +34,7 @@ class KMComparativeTableViewController: NSWindowController {
     
     var loginAction: KMComparativeTableViewControllerLoginAction?
     var signUpAction: KMComparativeTableViewControllerSignUpAction?
+    var subscriptionAction: KMComparativeTableViewControllerSubscriptionAction?
     
     deinit {
         print("KMComparativeTableViewController 释放")
@@ -65,6 +67,13 @@ class KMComparativeTableViewController: NSWindowController {
 
             KMLoginWindowController.show(window: NSApp.mainWindow!, .Batch, .register)
         }
+        
+        controller.subscriptionAction = { controller in
+            
+
+            
+        }
+        
         window.beginSheet(controller.window!)
         comparativeController = controller
         comparativeMainWindow = window
@@ -101,6 +110,13 @@ class KMComparativeTableViewController: NSWindowController {
 
             callBack(self!)
         }
+        
+        self.comparativeTableView.subscriptionAction = { [weak self] view in
+            print("订阅")
+            guard let callBack = self?.loginAction else { return }
+
+            callBack(self!)
+        }
     }
     
 }

+ 8 - 0
PDF Office/PDF Master/Class/KMLightMember/Controller/ComparativeTable/View/KMComparativeTableView.swift

@@ -10,6 +10,7 @@ import Cocoa
 typealias KMComparativeTableViewCloseAction = (_ view: KMComparativeTableView) -> Void
 typealias KMComparativeTableViewLoginAction = (_ view: KMComparativeTableView) -> Void
 typealias KMComparativeTableViewSignUpAction = (_ view: KMComparativeTableView) -> Void
+typealias KMComparativeTableViewSubscriptionAction = (_ view: KMComparativeTableView) -> Void
 
 class KMComparativeTableView: KMBaseXibView {
 
@@ -22,6 +23,7 @@ class KMComparativeTableView: KMBaseXibView {
     var closeAction: KMComparativeTableViewCloseAction?
     var loginAction: KMComparativeTableViewLoginAction?
     var signUpAction: KMComparativeTableViewSignUpAction?
+    var subscriptionAction: KMComparativeTableViewSubscriptionAction?
     
     override func draw(_ dirtyRect: NSRect) {
         super.draw(dirtyRect)
@@ -85,4 +87,10 @@ extension KMComparativeTableView: KMComparativeTableViewAction {
         
         callBack(self)
     }
+    
+    @IBAction func subscriptionButtonAction(_ sender: Any) {
+        guard let callBack = subscriptionAction else { return }
+        
+        callBack(self)
+    }
 }

+ 16 - 0
PDF Office/PDF Master/Class/KMLightMember/Controller/ComparativeTable/View/KMComparativeTableView.xib

@@ -102,6 +102,20 @@
                                 <action selector="signUpButtonAction:" target="-2" id="Ita-WR-WQ6"/>
                             </connections>
                         </button>
+                        <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Cip-dW-2mZ">
+                            <rect key="frame" x="762" y="48" width="58" height="24"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="24" id="cGv-k2-ROw"/>
+                            </constraints>
+                            <buttonCell key="cell" type="bevel" title="免费试用" bezelStyle="rounded" alignment="center" imageScaling="proportionallyDown" inset="2" id="baR-fT-SZ9">
+                                <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                                <font key="font" metaFont="system"/>
+                            </buttonCell>
+                            <color key="contentTintColor" name="systemRedColor" catalog="System" colorSpace="catalog"/>
+                            <connections>
+                                <action selector="subscriptionButtonAction:" target="-2" id="pih-Pt-3Qj"/>
+                            </connections>
+                        </button>
                     </subviews>
                     <constraints>
                         <constraint firstAttribute="bottom" secondItem="hvx-14-OVC" secondAttribute="bottom" constant="22" id="EXk-h2-DK8"/>
@@ -113,6 +127,8 @@
                         <constraint firstItem="adY-Q0-Zuk" firstAttribute="leading" secondItem="uVY-kS-Rql" secondAttribute="leading" id="UoO-9M-ij4"/>
                         <constraint firstItem="hvx-14-OVC" firstAttribute="top" secondItem="fi1-h8-mNt" secondAttribute="bottom" constant="8" id="WDd-cy-gRk"/>
                         <constraint firstItem="fi1-h8-mNt" firstAttribute="centerX" secondItem="uVY-kS-Rql" secondAttribute="centerX" id="lek-Ly-yJ3"/>
+                        <constraint firstItem="Cip-dW-2mZ" firstAttribute="centerY" secondItem="uVY-kS-Rql" secondAttribute="centerY" id="qur-XV-XlU"/>
+                        <constraint firstAttribute="trailing" secondItem="Cip-dW-2mZ" secondAttribute="trailing" constant="16" id="znD-2V-jLI"/>
                     </constraints>
                 </customView>
             </subviews>

+ 17 - 7
PDF Office/PDF Master/Class/KMLightMember/Controller/Login&Register/KMLoginWindowController.swift

@@ -72,7 +72,7 @@ class KMLoginWindowController: NSWindowController {
     }
     
     func setup() {
-
+        self.window?.contentView?.backgroundColor(NSColor(hex: "#FFFFFF"))
         KMRequestServer.requestServer.reachabilityStatusChange { [weak self] status in
             if status == .notReachable {
                 print("无网络")
@@ -83,7 +83,7 @@ class KMLoginWindowController: NSWindowController {
             }
         }
         
-        self.window?.contentView?.backgroundColor(NSColor(hex: "#FFFFFF"))
+        //MARK: - 左侧订阅相关
         self.leftView.cancelAction = { view in
             loginMainWindow?.endSheet(view.window!)
             view.window!.close()
@@ -91,7 +91,17 @@ class KMLoginWindowController: NSWindowController {
             loginMainWindow = nil
         }
         
-        //loginView
+        self.leftView.subscriptionAction = { view in
+            loginMainWindow?.endSheet(view.window!)
+            view.window!.close()
+            loginWindowController = nil
+            loginMainWindow = nil
+            
+            //跳转订阅比较表
+            let _ = KMComparativeTableViewController.show(window: NSApp.mainWindow ?? NSWindow())
+        }
+        
+        //MARK: - 登录界面
         //登录界面点击注册按钮
         self.loginView.registerAction = { [weak self] (view, data) in
             self?.logType = .register
@@ -110,7 +120,7 @@ class KMLoginWindowController: NSWindowController {
             }
         }
         
-        //registerView
+        //MARK: - 注册界面
         //注册界面点击登录按钮
         self.registerView.loginAction = { [unowned self] (view, data) in
             self.logType = .login
@@ -142,7 +152,7 @@ class KMLoginWindowController: NSWindowController {
             print("注册成功")
         }
         
-        //verificationCodeView
+        //MARK: - 验证码界面
         //验证码界面点击取消按钮
         self.verificationCodeView.cancelAction = { [unowned self] view in
             self.logType = view.inputType
@@ -231,7 +241,7 @@ class KMLoginWindowController: NSWindowController {
         }
         
         
-        //loginInputPasswordView
+        //MARK: - 输入密码界面
         //登录输入密码界面点击登录按钮
         self.loginInputPasswordView.loginAction = { [unowned self] (view, data, sender) in
             KMRequestServerManager.manager.login(email: data.email, password: data.password) { [weak self] success, requestData, result in
@@ -271,7 +281,7 @@ class KMLoginWindowController: NSWindowController {
             self.logType = .login
         }
         
-        //resetPasswordView
+        //MARK: - 重置密码界面
         //重置密码界面点击完成按钮
         self.resetPasswordView.doneAction = { [unowned self] (view, data, sender) in
             KMRequestServerManager.manager.resetPassword(account: data.email, firstPassword: data.password, secondPassword: data.rePassword, verifyCode: data.verifyCode) {[weak self] (success, result) in

+ 15 - 0
PDF Office/PDF Master/Class/KMLightMember/Controller/Login&Register/View/KMLoginLeftImageView.swift

@@ -13,7 +13,9 @@ class KMLoginLeftImageView: KMBaseXibView {
 
     @IBOutlet weak var closeButton: NSButton!
     @IBOutlet weak var closeBox: KMBox!
+    @IBOutlet weak var subscriptionButton: NSButton!
     var cancelAction: KMLoginLeftImageViewCancelAction?
+    var subscriptionAction: KMLoginLeftImageViewSubscriptionAction?
     override func draw(_ dirtyRect: NSRect) {
         super.draw(dirtyRect)
         // Drawing code here.
@@ -29,6 +31,19 @@ class KMLoginLeftImageView: KMBaseXibView {
                 self?.closeButton.image = NSImage(named: "control_btn_icon_close")
             }
         }
+        
+        Task { @MainActor in
+            self.subscriptionButton.isHidden = true
+            if await (KMLightMemberManager.manager.canUseAdvanced() == false) {
+                self.subscriptionButton.isHidden = false
+            }
+        }
+    }
+    
+    @IBAction func subscriptionButtonAction(_ sender: Any) {
+        guard let callBack = self.subscriptionAction else { return }
+        
+        callBack(self)
     }
     
     @IBAction func cancelButtonAction(_ sender: Any) {

+ 6 - 2
PDF Office/PDF Master/Class/KMLightMember/Controller/Login&Register/View/KMLoginLeftImageView.xib

@@ -9,6 +9,7 @@
             <connections>
                 <outlet property="closeBox" destination="Uab-7J-HuO" id="qkF-rU-TPN"/>
                 <outlet property="closeButton" destination="gel-gM-vw7" id="Ep0-Dd-YU9"/>
+                <outlet property="subscriptionButton" destination="XyW-Vk-S88" id="NQd-TV-fw3"/>
             </connections>
         </customObject>
         <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
@@ -32,9 +33,12 @@
                             </constraints>
                             <buttonCell key="cell" type="square" title="订阅" bezelStyle="shadowlessSquare" alignment="center" imageScaling="proportionallyDown" inset="2" id="jSq-9I-9tm">
                                 <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                                <font key="font" size="13" name=".PingFangSC-Regular"/>
+                                <font key="font" metaFont="system"/>
                             </buttonCell>
                             <color key="contentTintColor" name="systemRedColor" catalog="System" colorSpace="catalog"/>
+                            <connections>
+                                <action selector="subscriptionButtonAction:" target="-2" id="ZTn-AI-8tg"/>
+                            </connections>
                         </button>
                     </subviews>
                     <constraints>
@@ -82,7 +86,7 @@
                 <constraint firstItem="gel-gM-vw7" firstAttribute="top" secondItem="c22-O7-iKe" secondAttribute="top" constant="8" id="YKz-t4-sa0"/>
                 <constraint firstItem="Uab-7J-HuO" firstAttribute="top" secondItem="c22-O7-iKe" secondAttribute="top" constant="8" id="fOK-Jo-nSG"/>
             </constraints>
-            <point key="canvasLocation" x="40" y="248"/>
+            <point key="canvasLocation" x="61" y="176"/>
         </customView>
     </objects>
     <resources>

+ 5 - 2
PDF Office/PDF Master/Class/KMLightMember/InAppPurchase/KMInAppPurchaseManager.swift

@@ -2,7 +2,7 @@
 //  KMInAppPurchaseManager.swift
 //  PDF Master
 //
-//  Created by lizhe on 2023/6/1.
+//  Created by lizhe on 2023/6/8.
 //
 
 import Cocoa
@@ -15,7 +15,6 @@ let receiptDataLabel = "receiptData"
 
 class KMInAppPurchaseManager: NSObject {
     public static let manager = KMInAppPurchaseManager()
-    
     var availableProducts: [SKProduct] = []
     
     override init() {
@@ -148,6 +147,9 @@ extension KMInAppPurchaseManager: SKPaymentTransactionObserver {
         }
     }
     
+//https://sandbox.itunes.apple.com/verifyReceipt
+//"https://buy.itunes.apple.com/verifyReceipt"
+    
 //    func validatePurchase(transaction: SKPaymentTransaction) {
 //        // 获取购买凭证
 //        if let receiptURL = Bundle.main.appStoreReceiptURL,
@@ -214,3 +216,4 @@ extension KMInAppPurchaseManager: SKPaymentTransactionObserver {
         return receipt
     }
 }
+

+ 17 - 0
PDF Office/PDF Master/Class/KMLightMember/InAppPurchase/DMG/KMDMGPurchaseManager.swift

@@ -0,0 +1,17 @@
+//
+//  KMDMGPurchaseManager.swift
+//  PDF Master
+//
+//  Created by lizhe on 2023/6/8.
+//
+
+import Cocoa
+
+class KMDMGPurchaseManager: NSObject {
+    public static let manager = KMDMGPurchaseManager()
+    var availableProducts: [KMProduct] = []
+    
+    func purchaseProduct(productIdentifier: String) {
+
+    }
+}

+ 26 - 0
PDF Office/PDF Master/Class/KMLightMember/InAppPurchase/KMPurchaseManager.swift

@@ -0,0 +1,26 @@
+//
+//  KMPurchaseManager.swift
+//  PDF Master
+//
+//  Created by lizhe on 2023/6/1.
+//
+
+import Cocoa
+
+class KMPurchaseManager: NSObject {
+    public static let manager = KMPurchaseManager()
+    var availableProducts: [KMProduct] = []
+    
+    
+    func purchaseProduct(productIdentifier: String) {
+#if VERSION_FREE
+        KMInAppPurchaseManager.manager.purchaseProduct(productIdentifier: "")
+#else
+        
+#if VERSION_DMG
+        KMDMGPurchaseManager.manager.purchaseProduct(productIdentifier: "")
+#endif
+        
+#endif
+    }
+}

+ 12 - 0
PDF Office/PDF Master/Class/KMLightMember/InAppPurchase/Model/KMProduct.swift

@@ -0,0 +1,12 @@
+//
+//  KMProduct.swift
+//  PDF Master
+//
+//  Created by lizhe on 2023/6/8.
+//
+
+import Cocoa
+
+class KMProduct: NSObject {
+
+}