Forráskód Böngészése

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

# Conflicts:
#	PDF Office/PDF Reader Pro.xcodeproj/xcuserdata/kdanmobile.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
niehaoyu 1 éve
szülő
commit
e4b0f4e520
28 módosított fájl, 466 hozzáadás és 292 törlés
  1. 19 2
      PDF Office/PDF Master/AppDelegate.swift
  2. 6 2
      PDF Office/PDF Master/Base.lproj/Main.storyboard
  3. 0 2
      PDF Office/PDF Master/Class/AIInfo/AIConfigWindowController/AIConfigWindowController.xib
  4. 2 2
      PDF Office/PDF Master/Class/Batch/WindowController/KMAlertWindowController.swift
  5. 2 0
      PDF Office/PDF Master/Class/Common/Category/NSString+KMExtension.swift
  6. 5 5
      PDF Office/PDF Master/Class/Common/Category/NSUserDefaults_KMExtension.swift
  7. 71 0
      PDF Office/PDF Master/Class/Common/OC/VersionNumber/SKVersionNumber.h
  8. 243 0
      PDF Office/PDF Master/Class/Common/OC/VersionNumber/SKVersionNumber.m
  9. 1 1
      PDF Office/PDF Master/Class/PDFTools/KMBookmark/Controller/KMBookmarkController.swift
  10. 6 1
      PDF Office/PDF Master/Class/PDFTools/Merge/OCPart/KMSavePanelAccessoryController.swift
  11. 6 11
      PDF Office/PDF Master/Class/PDFTools/Redact/Tools/KMPDFAnnotationRedactConfig.swift
  12. 1 1
      PDF Office/PDF Master/Class/PDFTools/Redact/View/KMRedactPDFView.swift
  13. 14 8
      PDF Office/PDF Master/Class/PDFTools/Snapshot/View/KMSnapshotPDFView.swift
  14. 1 2
      PDF Office/PDF Master/Class/PDFWindowController/PDFListView/CPDFListViewExtension/CPDFListView+Extension.m
  15. 16 2
      PDF Office/PDF Master/Class/PDFWindowController/PDFListView/Split/View/KMSecondaryPDFView.swift
  16. 1 1
      PDF Office/PDF Master/Class/PDFWindowController/Side/LeftSide/KMImageToolTipContext.swift
  17. 1 1
      PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/AnnotationProperty/KMGeneralAnnotationViewController.swift
  18. 13 13
      PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/AnnotationProperty/NSObject/KMAnnotationPropertiesColorManager.swift
  19. 4 4
      PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/AnnotationProperty/ViewController/FormProperties/KMAnnotationButtonWidgetAppearanceViewController.swift
  20. 6 6
      PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/AnnotationProperty/ViewController/FormProperties/KMAnnotationChoiceWidgetAppearanceViewController.swift
  21. 6 6
      PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/AnnotationProperty/ViewController/FormProperties/KMAnnotationFromViewController.swift
  22. 20 18
      PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/AnnotationProperty/ViewController/FormProperties/KMAnnotationGeneralViewController.swift
  23. 1 1
      PDF Office/PDF Master/Class/ToolsLibrary/NSView/KMSplitView.swift
  24. 1 0
      PDF Office/PDF Master/PDF_Reader_Pro DMG-Bridging-Header.h
  25. 1 0
      PDF Office/PDF Master/PDF_Reader_Pro Edition-Bridging-Header.h
  26. 1 0
      PDF Office/PDF Master/PDF_Reader_Pro-Bridging-Header.h
  27. 18 0
      PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj
  28. 0 203
      PDF Office/PDF Reader Pro.xcodeproj/xcuserdata/kdanmobile.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

+ 19 - 2
PDF Office/PDF Master/AppDelegate.swift

@@ -36,8 +36,8 @@ class AppDelegate: NSObject, NSApplicationDelegate, iRateDelegate{
         
 #if VERSION_DMG
         let updater = SUUpdater.shared()
-        updater!.delegate = self
-        updater!.automaticallyChecksForUpdates = true
+        updater?.delegate = self
+        updater?.automaticallyChecksForUpdates = true
 #else
 #endif
 
@@ -47,6 +47,23 @@ class AppDelegate: NSObject, NSApplicationDelegate, iRateDelegate{
             
         }
 #endif
+        
+        let versionString = MainBundle.infoDictionary?[kCFBundleVersionKey as String] as? String ?? ""
+        let lastVersionString = KMDataManager.ud_string(forKey: SKLastVersionLaunchedKey)
+        if lastVersionString == nil || SKVersionNumber.compareVersionString(lastVersionString, toVersionString: versionString) == .orderedAscending {
+            let sud = UserDefaults.standard
+            if versionString.isEmpty == false {
+                sud.set(versionString, forKey: SKLastVersionLaunchedKey)
+            }
+//            [sud setBool:NO forKey:@"kShowRecentGuideKey"];
+//            [sud removeObjectForKey:@"kToolbarTipIsShow"];
+//            [sud removeObjectForKey:@"kShowNoPermissionAlertKey"];
+//            [sud removeObjectForKey:@"KMTabbingHintShowFlag"];
+//            [sud removeObjectForKey:@"KMConverthHaveOpenConvertDetails"];
+            sud.synchronize()
+        }
+        UserDefaults.standard.register(defaults: ["NSApplicationCrashOnExceptions" : true])
+        
         NSApp.servicesProvider = self
         
         KMKdanRemoteConfig.remoteConfig().fetchWithRemoteConfigCompletionHandler { status, error in

+ 6 - 2
PDF Office/PDF Master/Base.lproj/Main.storyboard

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="22155" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
+<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
     <dependencies>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22155"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <scenes>
@@ -1997,6 +1997,9 @@ CA
                                             </connections>
                                         </menuItem>
                                     </items>
+                                    <connections>
+                                        <outlet property="delegate" destination="3CC-3Q-SAk" id="eZ5-0q-BcV"/>
+                                    </connections>
                                 </menu>
                             </menuItem>
                             <menuItem title="Window" id="aUF-d1-5bR">
@@ -2163,6 +2166,7 @@ CA
                 <customObject id="86N-QX-1VH" userLabel="KMDocumentController" customClass="KMDocumentController" customModule="PDF_Reader_Pro" customModuleProvider="target"/>
                 <customObject id="YLy-65-1bz" customClass="NSFontManager"/>
                 <customObject id="Ady-hI-5gd" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
+                <customObject id="3CC-3Q-SAk" customClass="KMBookmarkController" customModule="PDF_Reader_Pro" customModuleProvider="target"/>
             </objects>
             <point key="canvasLocation" x="75" y="0.0"/>
         </scene>

+ 0 - 2
PDF Office/PDF Master/Class/AIInfo/AIConfigWindowController/AIConfigWindowController.xib

@@ -310,7 +310,6 @@
                                                                 <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                                                                 <size key="minSize" width="348" height="276"/>
                                                                 <size key="maxSize" width="348" height="10000000"/>
-                                                                <color key="insertionPointColor" name="textInsertionPointColor" catalog="System" colorSpace="catalog"/>
                                                             </textView>
                                                         </subviews>
                                                     </clipView>
@@ -499,7 +498,6 @@
                                                                 <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                                                                 <size key="minSize" width="350" height="324"/>
                                                                 <size key="maxSize" width="355" height="10000000"/>
-                                                                <color key="insertionPointColor" name="textInsertionPointColor" catalog="System" colorSpace="catalog"/>
                                                             </textView>
                                                         </subviews>
                                                     </clipView>

+ 2 - 2
PDF Office/PDF Master/Class/Batch/WindowController/KMAlertWindowController.swift

@@ -23,10 +23,10 @@ class KMAlertWindowController: NSWindowController{
     @IBOutlet var actionButton: NSButton!
     
     @objc class func swiftLoad() {
-        let dict: NSDictionary = UserDefaults().dictionaryRepresentation() as NSDictionary
+        let dict: NSDictionary = UserDefaults.standard.dictionaryRepresentation() as NSDictionary
         var X = false
         for  key  in dict.allKeys {
-            if key as! String == kShowRemoveAllFilesHintinterfaceKey{
+            if let data = key as? String, data == kShowRemoveAllFilesHintinterfaceKey{
                 X = true
             }
         }

+ 2 - 0
PDF Office/PDF Master/Class/Common/Category/NSString+KMExtension.swift

@@ -141,6 +141,8 @@ let SKAnnotationSelfSignCircleLineWidthKey = "CAnnotationSelfSignCircleLineWidth
 let SKAnnotationSelfSignTureLineWidthKey = "CAnnotationSelfSignTureLineWidth"
 let SKAnnotationSelfSignFalseLineWidthKey = "CAnnotationSelfSignFalseLineWidth"
 
+let SKLastVersionLaunchedKey            = "SKLastVersionLaunched"
+
 //OCR
 let KMOCRPlanNumber = "KMOCRPlanNumber"
 

+ 5 - 5
PDF Office/PDF Master/Class/Common/Category/NSUserDefaults_KMExtension.swift

@@ -48,11 +48,11 @@ extension UserDefaults {
     }
     
     @objc func setColor(_ color: NSColor, forKey key: String) {
-//        let data = color.map { NSArchiver.archivedData(withRootObject: $0) }
-//        set(data, forKey: key)
-        let colorString = color.toHex(alpha: true)
-        self.set(colorString, forKey: key)
-        self.synchronize()
+//        let colorString = color.toHex(alpha: true)
+//        self.set(colorString, forKey: key)
+//        self.synchronize()
+        let data = NSArchiver.archivedData(withRootObject: color)
+        self.set(data, forKey: key)
     }
     
     @objc func safe_setColor(_ color: NSColor?, forKey key: String) {

+ 71 - 0
PDF Office/PDF Master/Class/Common/OC/VersionNumber/SKVersionNumber.h

@@ -0,0 +1,71 @@
+//
+//  SKVersionNumber.h
+//  Skim
+//
+//  Created by Christiaan Hofman on 2/15/07.
+/*
+ This software is Copyright (c) 2007-2018
+ Christiaan Hofman. All rights reserved.
+ 
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 
+ - Neither the name of Christiaan Hofman nor the names of any
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+ 
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <Foundation/Foundation.h>
+
+enum {
+    SKReleaseVersionType = 0,
+    SKReleaseCandidateVersionType = -1,
+    SKBetaVersionType = -2,
+    SKDevelopmentVersionType = -3,
+    SKAlphaVersionType = -4
+};
+
+@interface SKVersionNumber : NSObject <NSCopying>
+{
+    NSString *originalVersionString;
+    NSString *cleanVersionString;
+    
+    NSUInteger componentCount;
+    NSInteger *components;
+    NSInteger releaseType;
+}
+
+@property (nonatomic, readonly) NSString *originalVersionString, *cleanVersionString;
+@property (nonatomic, readonly) NSUInteger componentCount;
+@property (nonatomic, readonly) NSInteger releaseType;
+
++ (NSComparisonResult)compareVersionString:(NSString *)versionString toVersionString:(NSString *)otherVersionString;
+
+- (id)initWithVersionString:(NSString *)versionString;
+
+- (NSInteger)componentAtIndex:(NSUInteger)componentIndex;
+
+- (NSComparisonResult)compare:(SKVersionNumber *)otherVersion;
+
+@end

+ 243 - 0
PDF Office/PDF Master/Class/Common/OC/VersionNumber/SKVersionNumber.m

@@ -0,0 +1,243 @@
+//
+//  SKVersionNumber.h
+//  Skim
+//
+//  Created by Christiaan Hofman on 2/15/07.
+/*
+ This software is Copyright (c) 2007-2018
+ Christiaan Hofman. All rights reserved.
+ 
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 
+ - Neither the name of Christiaan Hofman nor the names of any
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+ 
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "SKVersionNumber.h"
+
+#define VERSION_LONG            @"version"
+#define VERSION_SHORT           @"v"
+#define ALPHA_LONG              @"alpha"
+#define ALPHA_SHORT             @"a"
+#define BETA_LONG               @"beta"
+#define BETA_SHORT              @"b"
+#define DEVELOPMENT_LONG        @"development"
+#define DEVELOPMENT_SHORT       @"d"
+#define FINAL_LONG              @"final"
+#define FINAL_SHORT             @"f"
+#define RELEASE_CANDIDATE_LONG  @"release candidate"
+#define RELEASE_CANDIDATE_SHORT @"rc"
+#define SEPARATOR               @"."
+#define DASH                    @"-"
+#define EMPTY                   @""
+
+@implementation SKVersionNumber
+
+@synthesize originalVersionString, cleanVersionString, componentCount, releaseType;
+
++ (NSComparisonResult)compareVersionString:(NSString *)versionString toVersionString:(NSString *)otherVersionString;
+{   
+    SKVersionNumber *versionNumber = [[self alloc] initWithVersionString:versionString];
+    SKVersionNumber *otherVersionNumber = [[self alloc] initWithVersionString:otherVersionString];
+    NSComparisonResult result = [versionNumber compare:otherVersionNumber];
+//    [versionNumber release];
+//    [otherVersionNumber release];
+    return result;
+}
+
+// Initializes the receiver from a string representation of a version number.  The input string may have an optional leading 'v' or 'V' followed by a sequence of positive integers separated by '.'s.  Any trailing component of the input string that doesn't match this pattern is ignored.  If no portion of this string matches the pattern, nil is returned.
+- (id)initWithVersionString:(NSString *)versionString;
+{
+    
+    self = [super init];
+    if (self) {
+        // Input might be from a NSBundle info dictionary that could be misconfigured, so check at runtime too
+        if (versionString == nil || [versionString isKindOfClass:[NSString class]] == NO) {
+//            [self release];
+            return nil;
+        }
+        
+        originalVersionString = [versionString copy];
+        releaseType = SKReleaseVersionType;
+        
+        NSMutableString *mutableVersionString = [[NSMutableString alloc] init];
+        NSScanner *scanner = [[NSScanner alloc] initWithString:versionString];
+        NSString *sep = EMPTY;
+        
+        [scanner setCharactersToBeSkipped:[NSCharacterSet whitespaceCharacterSet]];
+        
+        // ignore a leading "version" or "v", possibly followed by "-"
+        if ([scanner scanString:VERSION_LONG intoString:NULL] || [scanner scanString:VERSION_SHORT intoString:NULL])
+            [scanner scanString:DASH intoString:NULL];
+        
+        while ([scanner isAtEnd] == NO && sep != nil) {
+            NSInteger component;
+            
+            if ([scanner scanInteger:&component] && component >= 0) {
+            
+                [mutableVersionString appendFormat:@"%@%ld", sep, (long)component];
+                
+                componentCount++;
+                components = (NSInteger *)NSZoneRealloc(NSDefaultMallocZone(), components, sizeof(NSInteger) * componentCount);
+                components[componentCount - 1] = component;
+            
+                if ([scanner isAtEnd] == NO) {
+                    sep = nil;
+                    if ([scanner scanString:SEPARATOR intoString:NULL] || [scanner scanString:DASH intoString:NULL] || [scanner scanString:VERSION_LONG intoString:NULL] || [scanner scanString:VERSION_SHORT intoString:NULL]) {
+                        sep = SEPARATOR;
+                    }
+                    if (releaseType == SKReleaseVersionType) {
+                        if ([scanner scanString:ALPHA_LONG intoString:NULL] || [scanner scanString:ALPHA_SHORT intoString:NULL]) {
+                            releaseType = SKAlphaVersionType;
+                            [mutableVersionString appendString:ALPHA_SHORT];
+                        } else if ([scanner scanString:BETA_LONG intoString:NULL] || [scanner scanString:BETA_SHORT intoString:NULL]) {
+                            releaseType = SKBetaVersionType;
+                            [mutableVersionString appendString:BETA_SHORT];
+                        } else if ([scanner scanString:DEVELOPMENT_LONG intoString:NULL] || [scanner scanString:DEVELOPMENT_SHORT intoString:NULL]) {
+                            releaseType = SKDevelopmentVersionType;
+                            [mutableVersionString appendString:DEVELOPMENT_SHORT];
+                        } else if ([scanner scanString:FINAL_LONG intoString:NULL] || [scanner scanString:FINAL_SHORT intoString:NULL]) {
+                            releaseType = SKReleaseCandidateVersionType;
+                            [mutableVersionString appendString:FINAL_SHORT];
+                        } else if ([scanner scanString:RELEASE_CANDIDATE_LONG intoString:NULL] || [scanner scanString:RELEASE_CANDIDATE_SHORT intoString:NULL]) {
+                            releaseType = SKReleaseCandidateVersionType;
+                            [mutableVersionString appendString:RELEASE_CANDIDATE_SHORT];
+                        }
+                        
+                        if (releaseType != SKReleaseVersionType) {
+                            // we scanned an "a", "b", "d", "f", or "rc"
+                            componentCount++;
+                            components = (NSInteger *)NSZoneRealloc(NSDefaultMallocZone(), components, sizeof(NSInteger) * componentCount);
+                            components[componentCount - 1] = releaseType;
+                            
+                            sep = EMPTY;
+                            
+                            // ignore a "." or "-"
+                            if ([scanner scanString:SEPARATOR intoString:NULL] == NO)
+                                [scanner scanString:DASH intoString:NULL];
+                        }
+                    }
+                }
+            } else
+                sep = nil;
+        }
+        
+        if ([mutableVersionString isEqualToString:originalVersionString])
+//            cleanVersionString = [originalVersionString retain];
+            cleanVersionString = originalVersionString;
+        else
+            cleanVersionString = [mutableVersionString copy];
+        
+//        [mutableVersionString release];
+//        [scanner release];
+        
+        if (componentCount == 0) {
+            // Failed to parse anything and we don't allow empty version strings.  For now, we'll not assert on this, since people might want to use this to detect if a string begins with a valid version number.
+//            [self release];
+            return nil;
+        }
+    }
+    return self;
+}
+
+- (void)dealloc;
+{
+//    SKDESTROY(originalVersionString);
+//    SKDESTROY(cleanVersionString);
+//    SKZONEDESTROY(components);
+//    [super dealloc];
+}
+
+- (NSString *)description {
+    return [NSString stringWithFormat:@"<%@: %@>", [self class], [self originalVersionString]];
+}
+
+#pragma mark API
+
+- (NSInteger)componentAtIndex:(NSUInteger)componentIndex;
+{
+    // This treats the version as a infinite sequence ending in "...0.0.0.0", making comparison easier
+    if (componentIndex < componentCount)
+        return components[componentIndex];
+    return 0;
+}
+
+#pragma mark NSCopying
+
+//- (id)copyWithZone:(NSZone *)zone;
+//{
+//    if (NSShouldRetainWithZone(self, zone))
+//        return [self retain];
+//    else
+//        return [[[self class] allocWithZone:zone] initWithVersionString:originalVersionString];
+//}
+
+#pragma mark Comparison
+
+- (NSUInteger)hash;
+{
+    return [cleanVersionString hash];
+}
+
+- (BOOL)isEqual:(id)otherObject;
+{
+    if ([otherObject isMemberOfClass:[self class]] == NO)
+        return NO;
+    return [self compare:(SKVersionNumber *)otherObject] == NSOrderedSame;
+}
+
+- (NSComparisonResult)compare:(SKVersionNumber *)otherVersion;
+{
+    if (otherVersion == nil)
+        return NSOrderedAscending;
+    
+    NSUInteger idx = 0, otherIdx = 0, otherCount = [otherVersion componentCount];
+    while (idx < componentCount || otherIdx < otherCount) {
+        NSInteger component = [self componentAtIndex:idx];
+        NSInteger otherComponent = [otherVersion componentAtIndex:otherIdx];
+        
+        // insert zeros before matching possible a/d/b/rc components, e.g. to get 1b1 > 1.0a1
+        if (component < 0 && otherComponent >= 0 && otherIdx < otherCount) {
+            component = 0;
+            otherIdx++;
+        } else if (component >= 0 && otherComponent < 0 && idx < componentCount) {
+            otherComponent = 0;
+            idx++;
+        } else {
+            idx++;
+            otherIdx++;
+        }
+        
+        if (component < otherComponent)
+            return NSOrderedAscending;
+        else if (component > otherComponent)
+            return NSOrderedDescending;
+    }
+    
+    return NSOrderedSame;
+}
+
+@end

+ 1 - 1
PDF Office/PDF Master/Class/PDFTools/KMBookmark/Controller/KMBookmarkController.swift

@@ -807,7 +807,7 @@ extension KMBookmarkController: NSMenuDelegate, NSMenuItemValidation {
     }
 //
     func menuNeedsUpdate(_ menu: NSMenu) {
-        if menu == bookmarkOutlineView.outlineView.menu {
+        if bookmarkOutlineView != nil && menu == bookmarkOutlineView.outlineView.menu {
             let row = bookmarkOutlineView.outlineView.clickedRow
             menu.removeAllItems()
             if row != -1 {

+ 6 - 1
PDF Office/PDF Master/Class/PDFTools/Merge/OCPart/KMSavePanelAccessoryController.swift

@@ -7,6 +7,8 @@
 
 import Cocoa
 
+private let KMAutoOpenDocumentKey = "KMAutoOpenDocumentKey"
+
 @objcMembers
 class KMSavePanelAccessoryController: NSViewController {
 
@@ -25,11 +27,14 @@ class KMSavePanelAccessoryController: NSViewController {
         super.awakeFromNib()
         
         openAutomaticButton.title = NSLocalizedString("Open the document after saving", comment: "")
-        openAutomaticButton.state = NSControl.StateValue.off
+        let autoOpen = KMDataManager.ud_bool(forKey: KMAutoOpenDocumentKey)
+        openAutomaticButton.state = autoOpen ? .on : .off
     }
 
     @IBAction func buttonClickedOpenAutomatic(_ sender: NSButton) {
         _needOpen = sender.state == NSControl.StateValue.on
+        
+        KMDataManager.ud_set(_needOpen, forKey: KMAutoOpenDocumentKey)
     }
     
     //MARK: Get、Set

+ 6 - 11
PDF Office/PDF Master/Class/PDFTools/Redact/Tools/KMPDFAnnotationRedactConfig.swift

@@ -74,8 +74,7 @@ class KMPDFAnnotationRedactConfig: NSObject {
             return UserDefaults.standard.bool(forKey: KMPDFAnnotationRedactUseOverlayText)
         }
         set {
-            UserDefaults.standard.setValue(newValue, forKey: KMPDFAnnotationRedactUseOverlayText)
-            UserDefaults.standard.synchronize()
+            KMDataManager.ud_set(newValue, forKey: KMPDFAnnotationRedactUseOverlayText)
         }
     }
     
@@ -84,7 +83,7 @@ class KMPDFAnnotationRedactConfig: NSObject {
             return UserDefaults.standard.string(forKey: KMPDFAnnotationRedactOverlayTextString) ?? ""
         }
         set {
-            UserDefaults.standard.setValue(newValue, forKey: KMPDFAnnotationRedactOverlayTextString)
+            UserDefaults.standard.set(newValue, forKey: KMPDFAnnotationRedactOverlayTextString)
             UserDefaults.standard.synchronize()
         }
     }
@@ -94,8 +93,7 @@ class KMPDFAnnotationRedactConfig: NSObject {
             return UserDefaults.standard.bool(forKey: KMPDFAnnotationRedactRepeatText)
         }
         set {
-            UserDefaults.standard.setValue(newValue, forKey: KMPDFAnnotationRedactRepeatText)
-            UserDefaults.standard.synchronize()
+            KMDataManager.ud_set(newValue, forKey: KMPDFAnnotationRedactRepeatText)
         }
     }
     
@@ -104,8 +102,7 @@ class KMPDFAnnotationRedactConfig: NSObject {
             return UserDefaults.standard.bool(forKey: KMPDFAnnotationRedactAutoSizeText)
         }
         set {
-            UserDefaults.standard.setValue(newValue, forKey: KMPDFAnnotationRedactAutoSizeText)
-            UserDefaults.standard.synchronize()
+            KMDataManager.ud_set(newValue, forKey: KMPDFAnnotationRedactAutoSizeText)
         }
     }
     
@@ -118,8 +115,7 @@ class KMPDFAnnotationRedactConfig: NSObject {
             return fontSize
         }
         set {
-            UserDefaults.standard.setValue(newValue, forKey: KMPDFAnnotationRedactFontSize)
-            UserDefaults.standard.synchronize()
+            KMDataManager.ud_set(newValue, forKey: KMPDFAnnotationRedactFontSize)
         }
     }
     
@@ -128,8 +124,7 @@ class KMPDFAnnotationRedactConfig: NSObject {
             return UserDefaults.standard.integer(forKey: KMPDFAnnotationRedactTextAlignment)
         }
         set {
-            UserDefaults.standard.setValue(newValue, forKey: KMPDFAnnotationRedactTextAlignment)
-            UserDefaults.standard.synchronize()
+            KMDataManager.ud_set(newValue, forKey: KMPDFAnnotationRedactTextAlignment)
         }
     }
 }

+ 1 - 1
PDF Office/PDF Master/Class/PDFTools/Redact/View/KMRedactPDFView.swift

@@ -285,7 +285,7 @@ private let KMPDFViewRedactAnnotationAcross = "KMPDFViewRedactAnnotationAcross"
                     let annotation = self.addRedactPDFSelection(self.currentSelection)
                     annotation?.setModificationDate(Date())
                     let userName = KMPreference.shared.author
-                    annotation?.setUserName(userName ?? NSFullUserName())
+                    annotation?.setUserName(userName)
                     
                     annotation?.borderWidth = 10
                     annotation?.setBorderColor(KMPDFAnnotationRedactConfig.shared.redactOutlineColor)

+ 14 - 8
PDF Office/PDF Master/Class/PDFTools/Snapshot/View/KMSnapshotPDFView.swift

@@ -287,6 +287,19 @@ class KMSnapshotPDFView: CPDFListView {
 //        [self setPhysicalScaleFactor:1.0];
     }
     
+    override func magnify(with event: NSEvent) {
+        if KMDataManager.ud_bool(forKey: SKDisablePinchZoomKey) == false && event.responds(to: NSSelectorFromString("magnification")) {
+            if event.phase == .began {
+                self.startScale = self.scaleFactor
+            }
+            let magnifyFactor = (1.0 + fmax(-0.5, fmin(1.0 , event.magnification)))
+            super.scaleFactor = magnification * self.scaleFactor
+            if event.phase == .ended || event.phase == .cancelled && (fabs(self.startScale-self.scaleFactor) > 0.001) {
+                self._setScaleFactor(fmax(self.scaleFactor, _SKMinDefaultScaleMenuFactor), adjustPopup: true)
+            }
+        }
+    }
+    
     /*
 
      - (BOOL)canGoBack {
@@ -319,14 +332,7 @@ class KMSnapshotPDFView: CPDFListView {
      }
 
      - (void)magnifyWithEvent:(NSEvent *)theEvent {
-         if ([[NSUserDefaults standardUserDefaults] boolForKey:SKDisablePinchZoomKey] == NO && [theEvent respondsToSelector:@selector(magnification)]) {
-             if ([theEvent respondsToSelector:@selector(phase)] && [theEvent phase] == NSEventPhaseBegan)
-                 startScale = [self scaleFactor];
-             CGFloat magnifyFactor = (1.0 + fmax(-0.5, fmin(1.0 , [theEvent magnification])));
-             [super setScaleFactor:magnifyFactor * [self scaleFactor]];
-             if ([theEvent respondsToSelector:@selector(phase)] && ([theEvent phase] == NSEventPhaseEnded || [theEvent phase] == NSEventPhaseCancelled) && fabs(startScale - [self scaleFactor]) > 0.001)
-                 [self setScaleFactor:fmax([self scaleFactor], SKMinDefaultScaleMenuFactor) adjustPopup:YES];
-         }
+
      }
 
      #pragma mark Dragging

+ 1 - 2
PDF Office/PDF Master/Class/PDFWindowController/PDFListView/CPDFListViewExtension/CPDFListView+Extension.m

@@ -993,8 +993,7 @@ CGFloat DEFAULT_SNAPSHOT_HEIGHT = 200.0;
 
 - (void)applyDefaultInterpolationQuality {
     if ([self respondsToSelector:@selector(setInterpolationQuality:)]) {
-//        NSImageInterpolation interpolation = [[NSUserDefaults standardUserDefaults] integerForKey:SKImageInterpolationKey];
-        NSImageInterpolation interpolation = NSImageInterpolationDefault;
+        NSImageInterpolation interpolation = [[NSUserDefaults standardUserDefaults] integerForKey:@"SKImageInterpolation"];
         // smooth graphics when anti-aliasing
         if (interpolation == NSImageInterpolationDefault) {
             interpolation = [self shouldAntiAlias] ? NSImageInterpolationHigh : NSImageInterpolationNone;

+ 16 - 2
PDF Office/PDF Master/Class/PDFWindowController/PDFListView/Split/View/KMSecondaryPDFView.swift

@@ -53,7 +53,7 @@ class KMSecondaryPDFView: CPDFView {
                     self.currentSelection = CPDFSelection(document: self.document)
                 }
                 self.toolModeButton?.state = self.selectsText ? .on : .off
-//                [[NSUserDefaults standardUserDefaults] setBool:selectsText forKey:SKLastSecondarySelectsTextKey];
+                KMDataManager.ud_set(newValue, forKey: SKLastSecondarySelectsTextKey)
             }
         }
     }
@@ -104,7 +104,7 @@ class KMSecondaryPDFView: CPDFView {
         self.pagePopUpButton = nil
         self.synchronizedPDFView = nil
         self.synchronizeZoom = false
-//        self.selectsText = [[NSUserDefaults standardUserDefaults] boolForKey:SKLastSecondarySelectsTextKey];
+        self.selectsText = KMDataManager.ud_bool(forKey: SKLastSecondarySelectsTextKey)
         
         NotificationCenter.default.addObserver(self, selector: #selector(handlePageChangedNotification), name: NSNotification.Name.CPDFViewPageChanged, object: self)
 //        if ([PDFView instancesRespondToSelector:@selector(magnifyWithEvent:)] == NO || [PDFView instanceMethodForSelector:@selector(magnifyWithEvent:)] == [NSView instanceMethodForSelector:@selector(magnifyWithEvent:)])
@@ -469,6 +469,20 @@ class KMSecondaryPDFView: CPDFView {
         return menu
     }
     
+    override func magnify(with event: NSEvent) {
+        if KMDataManager.ud_bool(forKey: SKDisablePinchZoomKey) == false && event.responds(to: NSSelectorFromString("magnification")) {
+            if event.responds(to: NSSelectorFromString("phase")) && event.phase == .began {
+                self.startScale = self.scaleFactor
+            }
+            
+            let magnifyFactor = (1.0 + fmax(-0.5, fmin(1.0 , event.magnification)))
+            super.scaleFactor = magnifyFactor * self.scaleFactor
+            if event.responds(to: NSSelectorFromString("phase")) && event.phase == .ended || event.phase == .cancelled && (fabs(self.startScale-self.scaleFactor) > 0.001) {
+                self.setScaleFactor(fmax(self.scaleFactor, SKMinDefaultScaleMenuFactor), adjustPopup: true)
+            }
+        }
+    }
+    
     /*
 
      // we don't want to steal the printDocument: action from the responder chain

+ 1 - 1
PDF Office/PDF Master/Class/PDFWindowController/Side/LeftSide/KMImageToolTipContext.swift

@@ -56,7 +56,7 @@ extension CPDFDestination: KMImageToolTipContext {
         let transform = page.km_affineTransform(for: .cropBox)
 
         //        sourceRect.size.width = [[NSUserDefaults standardUserDefaults] doubleForKey:SKToolTipWidthKey];
-        sourceRect.size.width = 260
+        sourceRect.size.width = 400
         //        sourceRect.size.height = [[NSUserDefaults standardUserDefaults] doubleForKey:SKToolTipHeightKey];
         sourceRect.size.height = 120
         sourceRect.origin = KMAddPoints(transform.transform(self.point), offset)

+ 1 - 1
PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/AnnotationProperty/KMGeneralAnnotationViewController.swift

@@ -616,7 +616,7 @@ let KMColorPickerViewHeight: CGFloat = 64
             defaults.set((annotation as! CPDFSquareAnnotation).borderStyle().rawValue, forKey: CSquareNoteLineStyleKey)
             defaults.set((annotation as! CPDFSquareAnnotation).dashPattern(), forKey: CSquareNoteDashPatternKey)
         } else if annotationType == .highlight {
-            defaults.safe_setColor(annotation.color, forKey: KMHighlightNoteColorKey)
+            defaults.safe_setColor(annotation.color, forKey: CHighlightNoteColorKey)
         } else if annotationType == .underline {
             defaults.safe_setColor(annotation.color, forKey: CUnderlineNoteColorKey)
         } else if annotationType == .strikeOut {

+ 13 - 13
PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/AnnotationProperty/NSObject/KMAnnotationPropertiesColorManager.swift

@@ -7,19 +7,19 @@
 
 import Cocoa
 
-let KMMarkupTypeHighlightColors = "CPDFMarkupTypeHighlightColors"
-let KMMarkupTypeOtherColors = "CPDFMarkupTypeOtherColors"
-let KMLinePropertColors = "CPDFLinePropertColors"
-let KMLineFillPropertColors = "CPDFLineFillPropertColors"
-let KMInkPropertColors = "CPDFInkPropertColors"
-let KMInkFillPropertColors = "CPDFInkFillPropertColors"
-let KMFreeTextPropertColors = "CPDFFreeTextPropertColors"
-let KMFreeTextFillPropertColors = "CPDFFreeTextFillPropertColors"
-let KMOtherColorsPropertColors = "CPDFOtherColorsPropertColors"
-let KMAnchoredNoteColorsPropertColors = "CPDFAnchoredNoteColorsPropertColors"
-let KMFromColorsPropertColors = "CPDFFromColorsPropertColors"
-let KMFromFillColorsPropertColors = "CPDFFromFillColorsPropertColors"
-let KMSelfSignPropertColors = "CPDFSelfSignPropertColors"
+let KMMarkupTypeHighlightColors = "KMMarkupTypeHighlightColors"
+let KMMarkupTypeOtherColors = "KMMarkupTypeOtherColors"
+let KMLinePropertColors = "KMLinePropertColors"
+let KMLineFillPropertColors = "KMLineFillPropertColors"
+let KMInkPropertColors = "KMInkPropertColors"
+let KMInkFillPropertColors = "KMInkFillPropertColors"
+let KMFreeTextPropertColors = "KMFreeTextPropertColors"
+let KMFreeTextFillPropertColors = "KMFreeTextFillPropertColors"
+let KMOtherColorsPropertColors = "KMOtherColorsPropertColors"
+let KMAnchoredNoteColorsPropertColors = "KMAnchoredNoteColorsPropertColors"
+let KMFromColorsPropertColors = "KMFromColorsPropertColors"
+let KMFromFillColorsPropertColors = "KMFromFillColorsPropertColors"
+let KMSelfSignPropertColors = "KMSelfSignPropertColors"
 
 @objcMembers class KMAnnotationPropertiesColorManager: NSObject {
 

+ 4 - 4
PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/AnnotationProperty/ViewController/FormProperties/KMAnnotationButtonWidgetAppearanceViewController.swift

@@ -276,9 +276,9 @@ import Cocoa
         let annotationMode = self.formMode
         
         if annotationMode == .radioButton {
-            defaults.setColor(annotationModel.backgroundColor(), forKey: SKAnnotationRadioButtonWidgetBackgroundColorKey)
+            defaults.safe_setColor(annotationModel.backgroundColor(), forKey: SKAnnotationRadioButtonWidgetBackgroundColorKey)
         } else if annotationMode == .checkBox {
-            defaults.setColor(annotationModel.backgroundColor(), forKey: SKAnnotationCheckBoxWidgetBackgroundColorKey)
+            defaults.safe_setColor(annotationModel.backgroundColor(), forKey: SKAnnotationCheckBoxWidgetBackgroundColorKey)
         }
     }
 
@@ -366,9 +366,9 @@ import Cocoa
         
         let userDefaults = UserDefaults.standard
         if formMode == .radioButton {
-            userDefaults.setColor(textColorPickerView.color!, forKey: SKAnnotationRadioButtonWidgetFontColorKey)
+            userDefaults.safe_setColor(textColorPickerView.color!, forKey: SKAnnotationRadioButtonWidgetFontColorKey)
         } else if formMode == .checkBox {
-            userDefaults.setColor(textColorPickerView.color!, forKey: SKAnnotationCheckBoxWidgetFontColorKey)
+            userDefaults.safe_setColor(textColorPickerView.color!, forKey: SKAnnotationCheckBoxWidgetFontColorKey)
         }
         self.annotationFreeText?.fontColor = self.textColorPickerView.color
         updateAnnotation()

+ 6 - 6
PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/AnnotationProperty/ViewController/FormProperties/KMAnnotationChoiceWidgetAppearanceViewController.swift

@@ -212,18 +212,18 @@ private enum KMPDFAnnotationFontWeightType: Int {
         
         switch annotationMode {
         case .actionButton:
-            userDefaults.setColor(annotationModel.backgroundColor(), forKey: SKAnnotationActionButtonWidgetBackgroundColorKey)
-            userDefaults.setColor(annotationModel.fontColor(), forKey: SKAnnotationActionButtonWidgetFontColorKey)
+            userDefaults.safe_setColor(annotationModel.backgroundColor(), forKey: SKAnnotationActionButtonWidgetBackgroundColorKey)
+            userDefaults.safe_setColor(annotationModel.fontColor(), forKey: SKAnnotationActionButtonWidgetFontColorKey)
             userDefaults.set(annotationModel.fontName(), forKey: SKAnnotationActionButtonWidgetFontNameKey)
             userDefaults.set(annotationModel.fontSize(), forKey: SKAnnotationActionButtonWidgetFontSizeKey)
         case .comboBox:
-            userDefaults.setColor(annotationModel.backgroundColor(), forKey: SKAnnotationChoiceWidgetBackgroundColorKey)
-            userDefaults.setColor(annotationModel.fontColor(), forKey: SKAnnotationChoiceWidgetFontColorKey)
+            userDefaults.safe_setColor(annotationModel.backgroundColor(), forKey: SKAnnotationChoiceWidgetBackgroundColorKey)
+            userDefaults.safe_setColor(annotationModel.fontColor(), forKey: SKAnnotationChoiceWidgetFontColorKey)
             userDefaults.set(annotationModel.fontName(), forKey: SKAnnotationChoiceWidgetFontNameKey)
             userDefaults.set(annotationModel.fontSize(), forKey: SKAnnotationChoiceWidgetFontSizeKey)
         case .listMenu:
-            userDefaults.setColor(annotationModel.backgroundColor(), forKey: SKAnnotationChoiceListWidgetBackgroundColorKey)
-            userDefaults.setColor(annotationModel.fontColor(), forKey: SKAnnotationChoiceListWidgetFontColorKey)
+            userDefaults.safe_setColor(annotationModel.backgroundColor(), forKey: SKAnnotationChoiceListWidgetBackgroundColorKey)
+            userDefaults.safe_setColor(annotationModel.fontColor(), forKey: SKAnnotationChoiceListWidgetFontColorKey)
             userDefaults.set(annotationModel.fontName(), forKey: SKAnnotationChoiceListWidgetFontNameKey)
             userDefaults.set(annotationModel.fontSize(), forKey: SKAnnotationChoiceListWidgetFontSizeKey)
         default:

+ 6 - 6
PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/AnnotationProperty/ViewController/FormProperties/KMAnnotationFromViewController.swift

@@ -278,20 +278,20 @@ import Cocoa
     func updateAnnotationMode() {
         let userDefaults = UserDefaults.standard
         if formMode == .textField {
-            userDefaults.setColor(annotationModel.backgroundColor(), forKey: SKAnnotationTextWidgetBackgroundColorKey)
-            userDefaults.setColor(annotationModel.fontColor(), forKey: SKAnnotationTextWidgetFontColorKey)
+            userDefaults.safe_setColor(annotationModel.backgroundColor(), forKey: SKAnnotationTextWidgetBackgroundColorKey)
+            userDefaults.safe_setColor(annotationModel.fontColor(), forKey: SKAnnotationTextWidgetFontColorKey)
             userDefaults.set(annotationModel.alignment().rawValue, forKey: SKAnnotationTextWidgetAlignmenKey)
             userDefaults.set(annotationModel.fontName(), forKey: SKAnnotationTextWidgetFontNameKey)
             userDefaults.set(annotationModel.fontSize(), forKey: SKAnnotationTextWidgetFontSizeKey)
             userDefaults.set(annotationModel.isMultiline(), forKey: SKAnnotationTextMultilineKey)
         } else if formMode == .comboBox {
-            userDefaults.setColor(annotationModel.backgroundColor(), forKey: SKAnnotationChoiceWidgetBackgroundColorKey)
-            userDefaults.setColor(annotationModel.fontColor(), forKey: SKAnnotationChoiceWidgetFontColorKey)
+            userDefaults.safe_setColor(annotationModel.backgroundColor(), forKey: SKAnnotationChoiceWidgetBackgroundColorKey)
+            userDefaults.safe_setColor(annotationModel.fontColor(), forKey: SKAnnotationChoiceWidgetFontColorKey)
             userDefaults.set(annotationModel.fontName(), forKey: SKAnnotationChoiceWidgetFontNameKey)
             userDefaults.set(annotationModel.fontSize(), forKey: SKAnnotationChoiceWidgetFontSizeKey)
         } else if formMode == .listMenu {
-            userDefaults.setColor(annotationModel.backgroundColor(), forKey: SKAnnotationChoiceListWidgetBackgroundColorKey)
-            userDefaults.setColor(annotationModel.fontColor(), forKey: SKAnnotationChoiceListWidgetFontColorKey)
+            userDefaults.safe_setColor(annotationModel.backgroundColor(), forKey: SKAnnotationChoiceListWidgetBackgroundColorKey)
+            userDefaults.safe_setColor(annotationModel.fontColor(), forKey: SKAnnotationChoiceListWidgetFontColorKey)
             userDefaults.set(annotationModel.fontName(), forKey: SKAnnotationChoiceListWidgetFontNameKey)
             userDefaults.set(annotationModel.fontSize(), forKey: SKAnnotationChoiceListWidgetFontSizeKey)
         }

+ 20 - 18
PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/AnnotationProperty/ViewController/FormProperties/KMAnnotationGeneralViewController.swift

@@ -242,30 +242,32 @@ import Cocoa
     func updateAnnotationMode() {
         let sud = UserDefaults.standard
         
+        let shouldDisplay = self.annotation?.shouldDisplay() ?? false
+        let shouldPrint = self.annotation?.shouldPrint() ?? false
         if formMode == .textField {
-            sud.setValue((annotation as! CPDFWidgetAnnotation).fieldName, forKey: "SKAnnotationTextWidgetFieldNameKey")
-            sud.set(annotation?.shouldDisplay, forKey: "SKAnnotationTextWidgetDisplayKey")
-            sud.set(annotation?.shouldPrint, forKey: "SKAnnotationTextWidgetPrintKey")
+            sud.setValue((annotation as! CPDFWidgetAnnotation).fieldName(), forKey: "SKAnnotationTextWidgetFieldNameKey")
+            sud.set(shouldDisplay, forKey: "SKAnnotationTextWidgetDisplayKey")
+            sud.set(shouldPrint, forKey: "SKAnnotationTextWidgetPrintKey")
         } else if formMode == .radioButton {
-            sud.setValue((annotation as! CPDFWidgetAnnotation).fieldName, forKey: "SKAnnotationRadioButtonWidgetFieldNameKey")
-            sud.set(annotation?.shouldDisplay, forKey: "SKAnnotationRadioButtonWidgetDisplayKey")
-            sud.set(annotation?.shouldPrint, forKey: "SKAnnotationRadioButtonWidgetPrintKey")
+            sud.setValue((annotation as! CPDFWidgetAnnotation).fieldName(), forKey: "SKAnnotationRadioButtonWidgetFieldNameKey")
+            sud.set(shouldDisplay, forKey: "SKAnnotationRadioButtonWidgetDisplayKey")
+            sud.set(shouldPrint, forKey: "SKAnnotationRadioButtonWidgetPrintKey")
         } else if formMode == .checkBox {
-            sud.setValue((annotation as! CPDFWidgetAnnotation).fieldName, forKey: "SKAnnotationCheckBoxWidgetFieldNameKey")
-            sud.set(annotation?.shouldDisplay, forKey: "SKAnnotationCheckBoxWidgetDisplayKey")
-            sud.set(annotation?.shouldPrint, forKey: "SKAnnotationCheckBoxWidgetPrintKey")
+            sud.setValue((annotation as! CPDFWidgetAnnotation).fieldName(), forKey: "SKAnnotationCheckBoxWidgetFieldNameKey")
+            sud.set(shouldDisplay, forKey: "SKAnnotationCheckBoxWidgetDisplayKey")
+            sud.set(shouldPrint, forKey: "SKAnnotationCheckBoxWidgetPrintKey")
         } else if formMode == .listMenu {
-            sud.setValue((annotation as! CPDFWidgetAnnotation).fieldName, forKey: "SKAnnotationChoiceListWidgetFieldNameKey")
-            sud.set(annotation?.shouldDisplay, forKey: "SKAnnotationChoiceListWidgetDisplayKey")
-            sud.set(annotation?.shouldPrint, forKey: "SKAnnotationChoiceListWidgetPrintKey")
+            sud.setValue((annotation as! CPDFWidgetAnnotation).fieldName(), forKey: "SKAnnotationChoiceListWidgetFieldNameKey")
+            sud.set(shouldDisplay, forKey: "SKAnnotationChoiceListWidgetDisplayKey")
+            sud.set(shouldPrint, forKey: "SKAnnotationChoiceListWidgetPrintKey")
         } else if formMode == .comboBox {
-            sud.setValue((annotation as! CPDFWidgetAnnotation).fieldName, forKey: "SKAnnotationChoiceWidgetFieldNameKey")
-            sud.set(annotation?.shouldDisplay, forKey: "SKAnnotationChoiceWidgetDisplayKey")
-            sud.set(annotation?.shouldPrint, forKey: "SKAnnotationChoiceWidgetPrintKey")
+            sud.setValue((annotation as! CPDFWidgetAnnotation).fieldName(), forKey: "SKAnnotationChoiceWidgetFieldNameKey")
+            sud.set(shouldDisplay, forKey: "SKAnnotationChoiceWidgetDisplayKey")
+            sud.set(shouldPrint, forKey: "SKAnnotationChoiceWidgetPrintKey")
         } else if formMode == .actionButton {
-            sud.setValue((annotation as! CPDFWidgetAnnotation).fieldName, forKey: "SKAnnotationActionButtonWidgetFieldNameKey")
-            sud.set(annotation?.shouldDisplay, forKey: "SKAnnotationActionButtonWidgetDisplayKey")
-            sud.set(annotation?.shouldPrint, forKey: "SKAnnotationActionButtonWidgetPrintKey")
+            sud.setValue((annotation as! CPDFWidgetAnnotation).fieldName(), forKey: "SKAnnotationActionButtonWidgetFieldNameKey")
+            sud.set(shouldDisplay, forKey: "SKAnnotationActionButtonWidgetDisplayKey")
+            sud.set(shouldPrint, forKey: "SKAnnotationActionButtonWidgetPrintKey")
         }
     }
     

+ 1 - 1
PDF Office/PDF Master/Class/ToolsLibrary/NSView/KMSplitView.swift

@@ -65,7 +65,7 @@ class KMSplitView: NSSplitView {
 
 
     func setPosition(_ position: CGFloat, ofDividerAt dividerIndex: Int, animate: Bool = false) {
-        if UserDefaults.standard.bool(forKey: CPDFOfficeDisableAnimationsKey) || dividerIndex > 1 {
+        if UserDefaults.standard.bool(forKey: SKDisableAnimationsKey) || dividerIndex > 1 {
             return
         }
 

+ 1 - 0
PDF Office/PDF Master/PDF_Reader_Pro DMG-Bridging-Header.h

@@ -110,3 +110,4 @@
 #import "synctex_parser.h"
 #import "KMStatusBar.h"
 #import "SKPDFSynchronizer.h"
+#import "SKVersionNumber.h"

+ 1 - 0
PDF Office/PDF Master/PDF_Reader_Pro Edition-Bridging-Header.h

@@ -106,3 +106,4 @@
 #import "synctex_parser.h"
 #import "KMStatusBar.h"
 #import "SKPDFSynchronizer.h"
+#import "SKVersionNumber.h"

+ 1 - 0
PDF Office/PDF Master/PDF_Reader_Pro-Bridging-Header.h

@@ -106,3 +106,4 @@
 #import "synctex_parser.h"
 #import "KMStatusBar.h"
 #import "SKPDFSynchronizer.h"
+#import "SKVersionNumber.h"

+ 18 - 0
PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj

@@ -3998,6 +3998,9 @@
 		BB8B9A012B355EFB00A066EC /* KMLeftSideViewController+Outline.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB8B9A002B355EFB00A066EC /* KMLeftSideViewController+Outline.swift */; };
 		BB8B9A022B355EFB00A066EC /* KMLeftSideViewController+Outline.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB8B9A002B355EFB00A066EC /* KMLeftSideViewController+Outline.swift */; };
 		BB8B9A032B355EFB00A066EC /* KMLeftSideViewController+Outline.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB8B9A002B355EFB00A066EC /* KMLeftSideViewController+Outline.swift */; };
+		BB8D52A52BA29A5C00D5CB31 /* SKVersionNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = BB8D52A32BA29A5C00D5CB31 /* SKVersionNumber.m */; };
+		BB8D52A62BA29A5C00D5CB31 /* SKVersionNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = BB8D52A32BA29A5C00D5CB31 /* SKVersionNumber.m */; };
+		BB8D52A72BA29A5C00D5CB31 /* SKVersionNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = BB8D52A32BA29A5C00D5CB31 /* SKVersionNumber.m */; };
 		BB8F453F295A98960037EA22 /* KMHeaderFooterPropertyController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB8F453D295A98960037EA22 /* KMHeaderFooterPropertyController.swift */; };
 		BB8F4540295A98960037EA22 /* KMHeaderFooterPropertyController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB8F453D295A98960037EA22 /* KMHeaderFooterPropertyController.swift */; };
 		BB8F4541295A98960037EA22 /* KMHeaderFooterPropertyController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB8F453D295A98960037EA22 /* KMHeaderFooterPropertyController.swift */; };
@@ -6760,6 +6763,8 @@
 		BB8B173B2907CDD8001C5EA5 /* NibLoadable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NibLoadable.swift; sourceTree = "<group>"; };
 		BB8B99FC2B355E7600A066EC /* KMLeftSideViewController+Action.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "KMLeftSideViewController+Action.swift"; sourceTree = "<group>"; };
 		BB8B9A002B355EFB00A066EC /* KMLeftSideViewController+Outline.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "KMLeftSideViewController+Outline.swift"; sourceTree = "<group>"; };
+		BB8D52A32BA29A5C00D5CB31 /* SKVersionNumber.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SKVersionNumber.m; sourceTree = "<group>"; };
+		BB8D52A42BA29A5C00D5CB31 /* SKVersionNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKVersionNumber.h; sourceTree = "<group>"; };
 		BB8F453D295A98960037EA22 /* KMHeaderFooterPropertyController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMHeaderFooterPropertyController.swift; sourceTree = "<group>"; };
 		BB8F453E295A98960037EA22 /* KMHeaderFooterPropertyController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMHeaderFooterPropertyController.xib; sourceTree = "<group>"; };
 		BB8F4545295A9CDC0037EA22 /* KMHeaderFooterListController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMHeaderFooterListController.swift; sourceTree = "<group>"; };
@@ -11688,6 +11693,7 @@
 		BB5F8A0329BB04EF00365ADB /* OC */ = {
 			isa = PBXGroup;
 			children = (
+				BB8D52A22BA29A5C00D5CB31 /* VersionNumber */,
 				BBA8B66C2B9027A900CB07B0 /* CheckFileUpdate */,
 				BB30D47F2B90249D00702541 /* StatusBar */,
 				BBD8EE892B8EC86900EB05FE /* AutoSave */,
@@ -12257,6 +12263,15 @@
 			path = NSView;
 			sourceTree = "<group>";
 		};
+		BB8D52A22BA29A5C00D5CB31 /* VersionNumber */ = {
+			isa = PBXGroup;
+			children = (
+				BB8D52A32BA29A5C00D5CB31 /* SKVersionNumber.m */,
+				BB8D52A42BA29A5C00D5CB31 /* SKVersionNumber.h */,
+			);
+			path = VersionNumber;
+			sourceTree = "<group>";
+		};
 		BB8F455D295AA2F20037EA22 /* Model */ = {
 			isa = PBXGroup;
 			children = (
@@ -15255,6 +15270,7 @@
 				BBB9B310299A5D6D004F3235 /* KMCloudDownloadOperationQueue.m in Sources */,
 				ADBC375429CAE94700D93208 /* KMComparativeOutlineSectionCell.swift in Sources */,
 				BB328B702B565EC500B382C6 /* iVersion.m in Sources */,
+				BB8D52A52BA29A5C00D5CB31 /* SKVersionNumber.m in Sources */,
 				9F1FE4C329406E4700E952CA /* CTPageTransition.c in Sources */,
 				9FA607DE28FD4C9F00B46586 /* KMHomePopViewController.swift in Sources */,
 				BBDA8A692A31B50C006A2C4E /* KMCustomStepperView.swift in Sources */,
@@ -17196,6 +17212,7 @@
 				ADDF83962B391A5D00A81A4E /* DSignDetailTypeACellView.swift in Sources */,
 				BB0B2CDD2B04B9510088FFD8 /* KMLeftSideViewSearchField.swift in Sources */,
 				BB146FB8299DC0D100784A6A /* GTLRRuntimeCommon.m in Sources */,
+				BB8D52A62BA29A5C00D5CB31 /* SKVersionNumber.m in Sources */,
 				BB328B6B2B565BEC00B382C6 /* iVersion.m in Sources */,
 				BB8B173D2907CDD9001C5EA5 /* NibLoadable.swift in Sources */,
 				BB4A94922B04926700940F8B /* KMGOCROperation.swift in Sources */,
@@ -18031,6 +18048,7 @@
 				BB3198182AC55E6D00107371 /* CPDFDocument+KMExtension.swift in Sources */,
 				BBBE20952B21B18900509C4E /* KMPDFInsertWindowController.swift in Sources */,
 				BB147037299DC0D200784A6A /* OIDRegistrationResponse.m in Sources */,
+				BB8D52A72BA29A5C00D5CB31 /* SKVersionNumber.m in Sources */,
 				9F221ED929A9EC0900978A59 /* KMFillSignTextPanel.swift in Sources */,
 				BB2A984C2B26A99A00647AF3 /* KMBatchAddWatermarkOperation.swift in Sources */,
 				9F0201742A1B488C00C9B673 /* KMAITranslationVC.swift in Sources */,

+ 0 - 203
PDF Office/PDF Reader Pro.xcodeproj/xcuserdata/kdanmobile.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -206,36 +206,6 @@
                   endingLineNumber = "239"
                   offsetFromSymbolStart = "307">
                </Location>
-               <Location
-                  uuid = "C7C5E7EB-B0DF-4235-AF65-1600A9C47C37 - a1dd9d1b8830716a"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMHomeHistoryFileTableviewCell.historyFileDeleteAction(Swift.Array&lt;Foundation.URL&gt;) -&gt; ()"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/Home/ViewController/KMHomeHistoryFileViewController.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "238"
-                  endingLineNumber = "238"
-                  offsetFromSymbolStart = "824">
-               </Location>
-               <Location
-                  uuid = "C7C5E7EB-B0DF-4235-AF65-1600A9C47C37 - 78b20d06475dc1cc"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "closure #1 @Swift.MainActor () -&gt; () in PDF_Reader_Pro.KMHomeHistoryFileTableviewCell.historyFileDeleteAction(Swift.Array&lt;Foundation.URL&gt;) -&gt; ()"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/Home/ViewController/KMHomeHistoryFileViewController.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "238"
-                  endingLineNumber = "238"
-                  offsetFromSymbolStart = "360">
-               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -253,38 +223,6 @@
             endingLineNumber = "368"
             landmarkName = "viewDidAppear()"
             landmarkType = "7">
-            <Locations>
-               <Location
-                  uuid = "04E07B7E-6311-4531-B13B-1CF089F93B9A - 32d5577e3055e387"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMHomeHistoryFileViewController.viewDidAppear() -&gt; ()"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/Home/ViewController/KMHomeHistoryFileViewController.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "368"
-                  endingLineNumber = "368"
-                  offsetFromSymbolStart = "464">
-               </Location>
-               <Location
-                  uuid = "04E07B7E-6311-4531-B13B-1CF089F93B9A - 32d5577e3055e387"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMHomeHistoryFileViewController.viewDidAppear() -&gt; ()"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/Home/ViewController/KMHomeHistoryFileViewController.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "368"
-                  endingLineNumber = "368"
-                  offsetFromSymbolStart = "692">
-               </Location>
-            </Locations>
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
@@ -301,38 +239,6 @@
             endingLineNumber = "580"
             landmarkName = "deleteAction(_:)"
             landmarkType = "7">
-            <Locations>
-               <Location
-                  uuid = "97F1A1F6-EA0A-4519-A518-F16347EBF2C5 - 44778aff718b7d0"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMHomeHistoryFileViewController.deleteAction(__C.NSButton) -&gt; ()"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/Home/ViewController/KMHomeHistoryFileViewController.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "580"
-                  endingLineNumber = "580"
-                  offsetFromSymbolStart = "396">
-               </Location>
-               <Location
-                  uuid = "97F1A1F6-EA0A-4519-A518-F16347EBF2C5 - 44778aff718b7d0"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMHomeHistoryFileViewController.deleteAction(__C.NSButton) -&gt; ()"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/Home/ViewController/KMHomeHistoryFileViewController.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "580"
-                  endingLineNumber = "580"
-                  offsetFromSymbolStart = "632">
-               </Location>
-            </Locations>
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
@@ -524,21 +430,6 @@
                   endingLineNumber = "92"
                   offsetFromSymbolStart = "653">
                </Location>
-               <Location
-                  uuid = "420D08E5-EF45-4277-8829-126645D63C25 - 655c4cef36e8ca1"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMProfileInfoWindowController.menuItemClicked_Edit(Swift.Optional&lt;Swift.AnyObject&gt;) -&gt; ()"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/PDFTools/SelfSign/Window/KMProfileInfoWindowController.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "92"
-                  endingLineNumber = "92"
-                  offsetFromSymbolStart = "280">
-               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -587,21 +478,6 @@
                   endingLineNumber = "107"
                   offsetFromSymbolStart = "523">
                </Location>
-               <Location
-                  uuid = "9D5FA5F4-0720-42EF-B7B2-1D04CEE324CD - 661d6e6c27ab6d21"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMProfileInfoWindowController.menuItemClicked_Add(Swift.Optional&lt;Swift.AnyObject&gt;) -&gt; ()"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/PDFTools/SelfSign/Window/KMProfileInfoWindowController.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "107"
-                  endingLineNumber = "107"
-                  offsetFromSymbolStart = "144">
-               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -765,69 +641,6 @@
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "44337E05-94FF-4B8A-8AB7-5A77E6B1BE81"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "PDF Master/Class/Common/Category/NSUserDefaults_KMExtension.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "53"
-            endingLineNumber = "53"
-            landmarkName = "setColor(_:forKey:)"
-            landmarkType = "7">
-            <Locations>
-               <Location
-                  uuid = "44337E05-94FF-4B8A-8AB7-5A77E6B1BE81 - a4a36b403e095cbc"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "__C.NSUserDefaults.setColor(_: __C.NSColor, forKey: Swift.String) -&gt; ()"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/work/tangchao/git/PDFOffice/PDF%20Office/PDF%20Master/Class/Common/Category/NSUserDefaults_KMExtension.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "53"
-                  endingLineNumber = "53"
-                  offsetFromSymbolStart = "121">
-               </Location>
-               <Location
-                  uuid = "44337E05-94FF-4B8A-8AB7-5A77E6B1BE81 - a4a36b403e095cbc"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "__C.NSUserDefaults.setColor(_: __C.NSColor, forKey: Swift.String) -&gt; ()"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/work/tangchao/git/PDFOffice/PDF%20Office/PDF%20Master/Class/Common/Category/NSUserDefaults_KMExtension.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "53"
-                  endingLineNumber = "53"
-                  offsetFromSymbolStart = "181">
-               </Location>
-               <Location
-                  uuid = "44337E05-94FF-4B8A-8AB7-5A77E6B1BE81 - 85181671ee2934a3"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "__C.NSUserDefaults.setColor(_: __C.NSColor, forKey: Swift.String) -&gt; ()"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/Common/Category/NSUserDefaults_KMExtension.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "53"
-                  endingLineNumber = "53"
-                  offsetFromSymbolStart = "88">
-               </Location>
-            </Locations>
-         </BreakpointContent>
-      </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
@@ -844,22 +657,6 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "67804CA5-D2E4-4EAE-B7B7-6478E95C27B2"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "PDF Master/Class/PDFWindowController/Side/RightSide/AnnotationProperty/KMGeneralAnnotationViewController.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "601"
-            endingLineNumber = "601"
-            landmarkName = "updateannotationMode()"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent