Revision: 14397
          http://sourceforge.net/p/skim-app/code/14397
Author:   hofman
Date:     2024-07-25 16:44:49 +0000 (Thu, 25 Jul 2024)
Log Message:
-----------
observe NSUserDefaults instead of NSUserDefaultsController, this should work 
already for a long time

Modified Paths:
--------------
    trunk/NSUserDefaultsController_SKExtensions.h
    trunk/NSUserDefaultsController_SKExtensions.m
    trunk/SKApplicationController.m
    trunk/SKBasePDFView.m
    trunk/SKColorList.m
    trunk/SKColorPicker.m
    trunk/SKDisplayPreferences.m
    trunk/SKFileUpdateChecker.m
    trunk/SKMainToolbarController.m
    trunk/SKMainWindowController.m
    trunk/SKNoteTextView.m
    trunk/SKNoteWindowController.m
    trunk/SKPDFView.m
    trunk/SKSnapshotWindowController.m
    trunk/SKThumbnailImageView.m

Modified: trunk/NSUserDefaultsController_SKExtensions.h
===================================================================
--- trunk/NSUserDefaultsController_SKExtensions.h       2024-07-25 15:59:38 UTC 
(rev 14396)
+++ trunk/NSUserDefaultsController_SKExtensions.h       2024-07-25 16:44:49 UTC 
(rev 14397)
@@ -41,10 +41,6 @@
 
 @interface NSUserDefaultsController (SKExtensions)
 
-- (void)addObserver:(NSObject *)anObserver forKey:(NSString *)key 
context:(void *)context;
-- (void)removeObserver:(NSObject *)anObserver forKey:(NSString *)key 
context:(void *)context;
-- (void)addObserver:(NSObject *)anObserver forKeys:(NSArray<NSString *> *)keys 
context:(void *)context;
-- (void)removeObserver:(NSObject *)anObserver forKeys:(NSArray<NSString *> 
*)keys context:(void *)context;
 - (void)revertToInitialValuesForKeys:(NSArray<NSString *> *)keys;
 
 @end

Modified: trunk/NSUserDefaultsController_SKExtensions.m
===================================================================
--- trunk/NSUserDefaultsController_SKExtensions.m       2024-07-25 15:59:38 UTC 
(rev 14396)
+++ trunk/NSUserDefaultsController_SKExtensions.m       2024-07-25 16:44:49 UTC 
(rev 14397)
@@ -42,24 +42,6 @@
 
 @implementation NSUserDefaultsController (SKExtensions)
 
-- (void)addObserver:(NSObject *)anObserver forKey:(NSString *)key 
context:(void *)context {
-    [self addObserver:anObserver forKeyPath:VALUES_KEY_PATH(key) options:0 
context:context];
-}
-
-- (void)removeObserver:(NSObject *)anObserver forKey:(NSString *)key 
context:(void *)context {
-    [self removeObserver:anObserver forKeyPath:VALUES_KEY_PATH(key) 
context:context];
-}
-
-- (void)addObserver:(NSObject *)anObserver forKeys:(NSArray *)keys 
context:(void *)context {
-    for (NSString *key in keys)
-        [self addObserver:anObserver forKey:key context:context];
-}
-
-- (void)removeObserver:(NSObject *)anObserver forKeys:(NSArray *)keys 
context:(void *)context {
-    for (NSString *key in keys)
-        [self removeObserver:anObserver forKey:key context:context];
-}
-
 - (void)revertToInitialValuesForKeys:(NSArray *)keys {
     for (NSString *key in keys)
         [[self values] setValue:[[self initialValues] objectForKey:key] 
forKey:key];

Modified: trunk/SKApplicationController.m
===================================================================
--- trunk/SKApplicationController.m     2024-07-25 15:59:38 UTC (rev 14396)
+++ trunk/SKApplicationController.m     2024-07-25 16:44:49 UTC (rev 14397)
@@ -69,7 +69,6 @@
 #import "NSValueTransformer_SKExtensions.h"
 #import "SKAnimatedBorderlessWindow.h"
 #import "NSGraphics_SKExtensions.h"
-#import "NSUserDefaultsController_SKExtensions.h"
 #import "NSColor_SKExtensions.h"
 #import "SKNoteOutlineView.h"
 #import "NSView_SKExtensions.h"
@@ -210,7 +209,7 @@
     [NSValueTransformer registerCustomTransformers];
     [[NSAppleEventManager sharedAppleEventManager] setEventHandler:self 
andSelector:@selector(handleGetURLEvent:withReplyEvent:) 
forEventClass:kInternetEventClass andEventID:kAEGetURL];
     [PDFPage setUsesSequentialPageNumbering:[[NSUserDefaults 
standardUserDefaults] boolForKey:SKSequentialPageNumberingKey]];
-    [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self 
forKey:SKSequentialPageNumberingKey 
context:&SKApplicationControllerDefaultsObservationContext];
+    [[NSUserDefaults standardUserDefaults] addObserver:self 
forKeyPath:SKSequentialPageNumberingKey options:0 
context:&SKApplicationControllerDefaultsObservationContext];
 }
 
 - (void)applicationDidFinishLaunching:(NSNotification *)aNotification{
@@ -411,7 +410,7 @@
 
 - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object 
change:(NSDictionary *)change context:(void *)context {
     if (context == &SKApplicationControllerDefaultsObservationContext) {
-        if ([[keyPath substringFromIndex:7] 
isEqualToString:SKSequentialPageNumberingKey]) {
+        if ([keyPath isEqualToString:SKSequentialPageNumberingKey]) {
             [PDFPage setUsesSequentialPageNumbering:[[NSUserDefaults 
standardUserDefaults] boolForKey:SKSequentialPageNumberingKey]];
             [[NSNotificationCenter defaultCenter] 
postNotificationName:SKPageLabelsChangedNotification object:nil];
         }

Modified: trunk/SKBasePDFView.m
===================================================================
--- trunk/SKBasePDFView.m       2024-07-25 15:59:38 UTC (rev 14396)
+++ trunk/SKBasePDFView.m       2024-07-25 16:44:49 UTC (rev 14397)
@@ -40,7 +40,6 @@
 #import "SKStringConstants.h"
 #import "NSGeometry_SKExtensions.h"
 #import "NSGraphics_SKExtensions.h"
-#import "NSUserDefaultsController_SKExtensions.h"
 #import "NSEvent_SKExtensions.h"
 #import <SkimNotes/SkimNotes.h>
 #import "PDFAnnotation_SKExtensions.h"
@@ -90,7 +89,9 @@
     
     [[self scrollView] setContentFilters:SKColorEffectFilters()];
     
-    [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self 
forKeys:defaultKeysToObserve() 
context:&SKBasePDFViewDefaultsObservationContext];
+    NSUserDefaults *sud = [NSUserDefaults standardUserDefaults];
+    for (NSString *key in defaultKeysToObserve())
+        [sud addObserver:self forKeyPath:key options:0 
context:&SKBasePDFViewDefaultsObservationContext];
 }
 
 - (instancetype)initWithFrame:(NSRect)frameRect {
@@ -110,8 +111,11 @@
 }
 
 - (void)dealloc {
-    @try { [[NSUserDefaultsController sharedUserDefaultsController] 
removeObserver:self forKeys:defaultKeysToObserve() 
context:&SKBasePDFViewDefaultsObservationContext]; }
-    @catch (id e) {}
+    NSUserDefaults *sud = [NSUserDefaults standardUserDefaults];
+    for (NSString *key in defaultKeysToObserve()) {
+        @try { [sud removeObserver:self forKeyPath:key 
context:&SKBasePDFViewDefaultsObservationContext]; }
+        @catch (id e) {}
+    }
 }
 
 - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object 
change:(NSDictionary *)change context:(void *)context {

Modified: trunk/SKColorList.m
===================================================================
--- trunk/SKColorList.m 2024-07-25 15:59:38 UTC (rev 14396)
+++ trunk/SKColorList.m 2024-07-25 16:44:49 UTC (rev 14397)
@@ -38,7 +38,6 @@
 
 #import "SKColorList.h"
 #import "SKStringConstants.h"
-#import "NSUserDefaultsController_SKExtensions.h"
 #import "NSColor_SKExtensions.h"
 
 static char SKDefaultsObservationContext;
@@ -59,7 +58,7 @@
             [colorList setColor:color forKey:key];
         }
         [(SKColorList *)colorList setEditable:NO];
-        [[NSUserDefaultsController sharedUserDefaultsController] 
addObserver:colorList forKey:SKSwatchColorsKey 
context:&SKDefaultsObservationContext];
+        [[NSUserDefaults standardUserDefaults] addObserver:colorList 
forKeyPath:SKSwatchColorsKey options:0 context:&SKDefaultsObservationContext];
     }
     return colorList;
 }

Modified: trunk/SKColorPicker.m
===================================================================
--- trunk/SKColorPicker.m       2024-07-25 15:59:38 UTC (rev 14396)
+++ trunk/SKColorPicker.m       2024-07-25 16:44:49 UTC (rev 14397)
@@ -40,7 +40,6 @@
 #import "SKColorCell.h"
 #import "SKStringConstants.h"
 #import "NSColor_SKExtensions.h"
-#import "NSUserDefaultsController_SKExtensions.h"
 
 #define COLOR_IDENTIFIER @"color"
 
@@ -74,13 +73,13 @@
         
         [self setView:view];
         
-        [[NSUserDefaultsController sharedUserDefaultsController] 
addObserver:self forKey:SKSwatchColorsKey 
context:&SKColorPickerDefaultsObservationContext];
+        [[NSUserDefaults standardUserDefaults] addObserver:self 
forKeyPath:SKSwatchColorsKey options:0 
context:&SKColorPickerDefaultsObservationContext];
     }
     return self;
 }
 
 - (void)dealloc {
-    @try { [[NSUserDefaultsController sharedUserDefaultsController] 
removeObserver:self forKey:SKSwatchColorsKey 
context:&SKColorPickerDefaultsObservationContext]; }
+    @try { [[NSUserDefaults standardUserDefaults] removeObserver:self 
forKeyPath:SKSwatchColorsKey context:&SKColorPickerDefaultsObservationContext]; 
}
     @catch (id e) {}
 }
 

Modified: trunk/SKDisplayPreferences.m
===================================================================
--- trunk/SKDisplayPreferences.m        2024-07-25 15:59:38 UTC (rev 14396)
+++ trunk/SKDisplayPreferences.m        2024-07-25 16:44:49 UTC (rev 14397)
@@ -42,7 +42,6 @@
 #import "NSGraphics_SKExtensions.h"
 #import "NSImage_SKExtensions.h"
 #import "NSUserDefaults_SKExtensions.h"
-#import "NSUserDefaultsController_SKExtensions.h"
 #import "NSColor_SKExtensions.h"
 #import "NSValueTransformer_SKExtensions.h"
 #import "SKColorSwatch.h"
@@ -64,10 +63,11 @@
 
 - (void)dealloc {
     if (@available(macOS 10.14, *)) {
-        @try {
-            [[NSUserDefaultsController sharedUserDefaultsController] 
removeObserver:self forKeys:@[SKBackgroundColorKey, 
SKFullScreenBackgroundColorKey, SKDarkBackgroundColorKey, 
SKDarkFullScreenBackgroundColorKey,] 
context:&SKDisplayPreferencesDefaultsObservationContext];
+        NSUserDefaults *sud = [NSUserDefaults standardUserDefaults];
+        for (NSString *key in @[SKBackgroundColorKey, 
SKFullScreenBackgroundColorKey, SKDarkBackgroundColorKey, 
SKDarkFullScreenBackgroundColorKey]) {
+            @try { [sud removeObserver:self forKeyPath:key 
context:&SKDisplayPreferencesDefaultsObservationContext]; }
+            @catch(id e) {}
         }
-        @catch(id e) {}
     }
     @try {
         [colorSwatch unbind:@"colors"];
@@ -102,7 +102,9 @@
         
         [self updateBackgroundColors];
         
-        [[NSUserDefaultsController sharedUserDefaultsController] 
addObserver:self forKeys:@[SKBackgroundColorKey, 
SKFullScreenBackgroundColorKey, SKDarkBackgroundColorKey, 
SKDarkFullScreenBackgroundColorKey] 
context:&SKDisplayPreferencesDefaultsObservationContext];
+        NSUserDefaults *sud = [NSUserDefaults standardUserDefaults];
+        for (NSString *key in @[SKBackgroundColorKey, 
SKFullScreenBackgroundColorKey, SKDarkBackgroundColorKey, 
SKDarkFullScreenBackgroundColorKey])
+            [sud addObserver:self forKeyPath:key options:0 
context:&SKDisplayPreferencesDefaultsObservationContext];
         [NSApp addObserver:self forKeyPath:@"effectiveAppearance" options:0 
context:&SKDisplayPreferencesDefaultsObservationContext];
     }
 }

Modified: trunk/SKFileUpdateChecker.m
===================================================================
--- trunk/SKFileUpdateChecker.m 2024-07-25 15:59:38 UTC (rev 14396)
+++ trunk/SKFileUpdateChecker.m 2024-07-25 16:44:49 UTC (rev 14397)
@@ -70,7 +70,7 @@
         // hidden pref to always auto update without first asking the user
         memset(&fucFlags, 0, sizeof(fucFlags));
         fucFlags.autoUpdate = [[NSUserDefaults standardUserDefaults] 
boolForKey:SKAutoReloadFileUpdateKey];
-        [[NSUserDefaultsController sharedUserDefaultsController] 
addObserver:self forKey:SKAutoCheckFileUpdateKey 
context:&SKFileUpdateCheckerObservationContext];
+        [[NSUserDefaults standardUserDefaults] addObserver:self 
forKeyPath:SKAutoCheckFileUpdateKey options:0 
context:&SKFileUpdateCheckerObservationContext];
         [document addObserver:self forKeyPath:@"fileURL" options:0 
context:&SKFileUpdateCheckerObservationContext];
     }
     return self;
@@ -77,7 +77,7 @@
 }
 
 - (void)dealloc {
-    @try { [[NSUserDefaultsController sharedUserDefaultsController] 
removeObserver:self forKey:SKAutoCheckFileUpdateKey 
context:&SKFileUpdateCheckerObservationContext]; }
+    @try { [[NSUserDefaults standardUserDefaults] removeObserver:self 
forKeyPath:SKAutoCheckFileUpdateKey 
context:&SKFileUpdateCheckerObservationContext]; }
     @catch (id) {}
 }
 

Modified: trunk/SKMainToolbarController.m
===================================================================
--- trunk/SKMainToolbarController.m     2024-07-25 15:59:38 UTC (rev 14396)
+++ trunk/SKMainToolbarController.m     2024-07-25 16:44:49 UTC (rev 14397)
@@ -62,7 +62,6 @@
 #import "PDFDocument_SKExtensions.h"
 #import "SKShareMenuController.h"
 #import "NSFont_SKExtensions.h"
-#import "NSUserDefaultsController_SKExtensions.h"
 
 #define SKDocumentToolbarIdentifier @"SKDocumentToolbar"
 
@@ -141,7 +140,7 @@
 @synthesize mainController, backForwardButton, pageNumberField, 
previousNextPageButton, previousPageButton, nextPageButton, 
previousNextFirstLastPageButton, zoomInOutButton, zoomInActualOutButton, 
zoomActualButton, zoomFitButton, zoomSelectionButton, autoScalesButton, 
rotateLeftButton, rotateRightButton, rotateLeftRightButton, cropButton, 
fullScreenButton, presentationButton, leftPaneButton, rightPaneButton, 
splitPDFButton, toolModeButton, textNoteButton, circleNoteButton, 
markupNoteButton, lineNoteButton, singleTwoUpButton, continuousButton, 
displayModeButton, displayDirectionButton, displaysRTLButton, bookModeButton, 
pageBreaksButton, displayBoxButton, infoButton, colorsButton, fontsButton, 
linesButton, printButton, customizeButton, scaleField, noteButton, colorSwatch, 
pacerButton, pacerSpeedField, pacerSpeedStepper, shareButton;
 
 - (void)dealloc {
-    @try { [[NSUserDefaultsController sharedUserDefaultsController] 
removeObserver:self forKey:SKSwatchColorsKey 
context:&SKDefaultsObservationContext]; }
+    @try { [[NSUserDefaults standardUserDefaults] removeObserver:self 
forKeyPath:SKSwatchColorsKey context:&SKDefaultsObservationContext]; }
     @catch (id e) {}
 }
 
@@ -176,7 +175,7 @@
     [[mainController window] setToolbar:toolbar];
     
     [self registerForNotifications];
-    [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self 
forKey:SKSwatchColorsKey context:&SKDefaultsObservationContext];
+    [[NSUserDefaults standardUserDefaults] addObserver:self 
forKeyPath:SKSwatchColorsKey options:0 context:&SKDefaultsObservationContext];
 }
 
 - (NSToolbarItem *)toolbarItemForItemIdentifier:(NSString *)identifier {

Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m      2024-07-25 15:59:38 UTC (rev 14396)
+++ trunk/SKMainWindowController.m      2024-07-25 16:44:49 UTC (rev 14397)
@@ -58,7 +58,6 @@
 #import "SKNoteText.h"
 #import "SKSplitView.h"
 #import "NSBezierPath_SKExtensions.h"
-#import "NSUserDefaultsController_SKExtensions.h"
 #import "NSUserDefaults_SKExtensions.h"
 #import "SKOutlineView.h"
 #import "SKNoteOutlineView.h"
@@ -2445,13 +2444,13 @@
 #pragma mark Observer registration
 
 - (void)registerAsObserver {
-    [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self 
forKeys:
-        @[SKBackgroundColorKey, SKFullScreenBackgroundColorKey,
-          SKDarkBackgroundColorKey, SKDarkFullScreenBackgroundColorKey,
-          SKThumbnailSizeKey, SKSnapshotThumbnailSizeKey,
-          SKInterpolationQualityKey,
-          SKTableFontSizeKey]
-        context:&SKMainWindowDefaultsObservationContext];
+    NSUserDefaults *sud = [NSUserDefaults standardUserDefaults];
+    for (NSString *key in @[SKBackgroundColorKey, 
SKFullScreenBackgroundColorKey,
+                            SKDarkBackgroundColorKey, 
SKDarkFullScreenBackgroundColorKey,
+                            SKThumbnailSizeKey, SKSnapshotThumbnailSizeKey,
+                            SKInterpolationQualityKey,
+                            SKTableFontSizeKey])
+        [sud addObserver:self forKeyPath:key options:0 
context:&SKMainWindowDefaultsObservationContext];
     if (@available(macOS 10.14, *))
         [NSApp addObserver:self forKeyPath:@"effectiveAppearance" options:0 
context:&SKMainWindowAppObservationContext];
     if (mwcFlags.fullSizeContent)
@@ -2459,16 +2458,15 @@
 }
 
 - (void)unregisterAsObserver {
-    @try {
-        [[NSUserDefaultsController sharedUserDefaultsController] 
removeObserver:self forKeys:
-         @[SKBackgroundColorKey, SKFullScreenBackgroundColorKey,
-           SKDarkBackgroundColorKey, SKDarkFullScreenBackgroundColorKey,
-           SKThumbnailSizeKey, SKSnapshotThumbnailSizeKey,
-           SKInterpolationQualityKey,
-           SKTableFontSizeKey]
-         context:&SKMainWindowDefaultsObservationContext];
+    NSUserDefaults *sud = [NSUserDefaults standardUserDefaults];
+    for (NSString *key in @[SKBackgroundColorKey, 
SKFullScreenBackgroundColorKey,
+                            SKDarkBackgroundColorKey, 
SKDarkFullScreenBackgroundColorKey,
+                            SKThumbnailSizeKey, SKSnapshotThumbnailSizeKey,
+                            SKInterpolationQualityKey,
+                            SKTableFontSizeKey]) {
+        @try { [sud removeObserver:self forKeyPath:key 
context:&SKMainWindowDefaultsObservationContext]; }
+        @catch (id e) {}
     }
-    @catch (id e) {}
     if (@available(macOS 10.14, *)) {
         @try { [NSApp removeObserver:self forKeyPath:@"effectiveAppearance" 
context:&SKMainWindowAppObservationContext]; }
         @catch (id e) {}
@@ -2533,8 +2531,7 @@
     if (context == &SKMainWindowDefaultsObservationContext) {
         
         // A default value that we are observing has changed
-        NSString *key = [keyPath substringFromIndex:7];
-        if ([key isEqualToString:SKBackgroundColorKey] || [key 
isEqualToString:SKDarkBackgroundColorKey]) {
+        if ([keyPath isEqualToString:SKBackgroundColorKey] || [keyPath 
isEqualToString:SKDarkBackgroundColorKey]) {
             NSColor *backgroundColor = nil;
             if (interactionMode == SKNormalMode)
                 backgroundColor = [PDFView defaultBackgroundColor];
@@ -2544,25 +2541,25 @@
                 [pdfView setBackgroundColor:backgroundColor];
                 [secondaryPdfView setBackgroundColor:backgroundColor];
             }
-        } else if ([key isEqualToString:SKFullScreenBackgroundColorKey] || 
[key isEqualToString:SKDarkFullScreenBackgroundColorKey]) {
+        } else if ([keyPath isEqualToString:SKFullScreenBackgroundColorKey] || 
[keyPath isEqualToString:SKDarkFullScreenBackgroundColorKey]) {
             if ([self interactionMode] == SKFullScreenMode) {
                 NSColor *color = [PDFView defaultFullScreenBackgroundColor];
                 [pdfView setBackgroundColor:color];
                 [secondaryPdfView setBackgroundColor:color];
             }
-        } else if ([key isEqualToString:SKThumbnailSizeKey]) {
+        } else if ([keyPath isEqualToString:SKThumbnailSizeKey]) {
             [self resetThumbnailSizeIfNeeded];
             [leftSideController.thumbnailTableView 
noteHeightOfRowsChangedAnimating:YES];
-        } else if ([key isEqualToString:SKSnapshotThumbnailSizeKey]) {
+        } else if ([keyPath isEqualToString:SKSnapshotThumbnailSizeKey]) {
             [self resetSnapshotSizeIfNeeded];
             [rightSideController.snapshotTableView 
noteHeightOfRowsChangedAnimating:YES];
-        } else if ([key isEqualToString:SKInterpolationQualityKey]) {
+        } else if ([keyPath isEqualToString:SKInterpolationQualityKey]) {
             [pdfView setInterpolationQuality:[[NSUserDefaults 
standardUserDefaults] integerForKey:SKInterpolationQualityKey]];
             [secondaryPdfView setInterpolationQuality:[[NSUserDefaults 
standardUserDefaults] integerForKey:SKInterpolationQualityKey]];
             [pdfView requiresDisplay];
             [secondaryPdfView requiresDisplay];
             [self allThumbnailsNeedUpdate];
-        } else if ([key isEqualToString:SKTableFontSizeKey]) {
+        } else if ([keyPath isEqualToString:SKTableFontSizeKey]) {
             [self updateTableFont];
             [self updatePageColumnWidthForTableViews:[NSArray 
arrayWithObjects:leftSideController.tocOutlineView, 
rightSideController.noteOutlineView, leftSideController.findTableView, 
leftSideController.groupedFindTableView, nil]];
         }

Modified: trunk/SKNoteTextView.m
===================================================================
--- trunk/SKNoteTextView.m      2024-07-25 15:59:38 UTC (rev 14396)
+++ trunk/SKNoteTextView.m      2024-07-25 16:44:49 UTC (rev 14397)
@@ -37,7 +37,6 @@
  */
 
 #import "SKNoteTextView.h"
-#import "NSUserDefaultsController_SKExtensions.h"
 #import "SKStringConstants.h"
 
 static char SKNoteTextViewDefaultsObservationContext;
@@ -70,7 +69,10 @@
 
 - (void)dealloc {
     if (usesDefaultFontSize)
-        SKENSURE_MAIN_THREAD( [[NSUserDefaultsController 
sharedUserDefaultsController] removeObserver:self forKey:SKNoteTextFontSizeKey 
context:&SKNoteTextViewDefaultsObservationContext]; );
+        SKENSURE_MAIN_THREAD(
+            @try { [[NSUserDefaults standardUserDefaults] removeObserver:self 
forKeyPath:SKNoteTextFontSizeKey 
context:&SKNoteTextViewDefaultsObservationContext]; }
+            @catch (id e) {}
+        );
 }
 
 - (void)setUsesDefaultFontSize:(BOOL)flag {
@@ -79,9 +81,10 @@
         if (usesDefaultFontSize) {
             CGFloat fontSize = [[NSUserDefaults standardUserDefaults] 
floatForKey:SKNoteTextFontSizeKey];
             [self setFont:[NSFont userFontOfSize:fontSize]];
-            [[NSUserDefaultsController sharedUserDefaultsController] 
addObserver:self forKey:SKNoteTextFontSizeKey 
context:&SKNoteTextViewDefaultsObservationContext];
+            [[NSUserDefaults standardUserDefaults] addObserver:self 
forKeyPath:SKNoteTextFontSizeKey options:0 
context:&SKNoteTextViewDefaultsObservationContext];
         } else {
-            [[NSUserDefaultsController sharedUserDefaultsController] 
removeObserver:self forKey:SKNoteTextFontSizeKey 
context:&SKNoteTextViewDefaultsObservationContext];
+            @try { [[NSUserDefaults standardUserDefaults] removeObserver:self 
forKeyPath:SKNoteTextFontSizeKey 
context:&SKNoteTextViewDefaultsObservationContext]; }
+            @catch(id e) {}
         }
     }
 }
@@ -97,8 +100,7 @@
 
 - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object 
change:(NSDictionary *)change context:(void *)context {
     if (context == &SKNoteTextViewDefaultsObservationContext) {
-        NSString *key = [keyPath substringFromIndex:7];
-        if ([key isEqualToString:SKNoteTextFontSizeKey] && 
usesDefaultFontSize) {
+        if ([keyPath isEqualToString:SKNoteTextFontSizeKey] && 
usesDefaultFontSize) {
             CGFloat fontSize = [[NSUserDefaults standardUserDefaults] 
floatForKey:SKNoteTextFontSizeKey];
             [self setFont:[NSFont userFontOfSize:fontSize]];
         }

Modified: trunk/SKNoteWindowController.m
===================================================================
--- trunk/SKNoteWindowController.m      2024-07-25 15:59:38 UTC (rev 14396)
+++ trunk/SKNoteWindowController.m      2024-07-25 16:44:49 UTC (rev 14397)
@@ -46,7 +46,6 @@
 #import "SKMainDocument.h"
 #import "SKPDFView.h"
 #import "NSWindowController_SKExtensions.h"
-#import "NSUserDefaultsController_SKExtensions.h"
 #import "SKStringConstants.h"
 #import "PDFPage_SKExtensions.h"
 #import "NSValueTransformer_SKExtensions.h"
@@ -152,8 +151,11 @@
         [note addObserver:self forKeyPath:SKNPDFAnnotationPageKey options:0 
context:&SKNoteWindowNoteObservationContext];
         [note addObserver:self forKeyPath:SKNPDFAnnotationBoundsKey options:0 
context:&SKNoteWindowNoteObservationContext];
         [note addObserver:self forKeyPath:SKNPDFAnnotationStringKey options:0 
context:&SKNoteWindowNoteObservationContext];
-        if ([self isNoteType])
-            [[NSUserDefaultsController sharedUserDefaultsController] 
addObserver:self forKeys:[[self class] fontKeysToObserve] 
context:&SKNoteWindowDefaultsObservationContext];
+        if ([self isNoteType]) {
+            NSUserDefaults *sud = [NSUserDefaults standardUserDefaults];
+            for (NSString *key in [[self class] fontKeysToObserve])
+                [sud addObserver:self forKeyPath:key options:0 
context:&SKNoteWindowDefaultsObservationContext];
+        }
         [[NSNotificationCenter defaultCenter] addObserver:self 
selector:@selector(handlePageLabelsChangedNotification:) 
name:SKPageLabelsChangedNotification object:nil];
     }
     return self;
@@ -243,10 +245,15 @@
     [note removeObserver:self forKeyPath:SKNPDFAnnotationPageKey 
context:&SKNoteWindowNoteObservationContext];
     [note removeObserver:self forKeyPath:SKNPDFAnnotationBoundsKey 
context:&SKNoteWindowNoteObservationContext];
     [note removeObserver:self forKeyPath:SKNPDFAnnotationStringKey 
context:&SKNoteWindowNoteObservationContext];
-    if ([self isNoteType])
-        [[NSUserDefaultsController sharedUserDefaultsController] 
removeObserver:self forKeys:[[self class] fontKeysToObserve] 
context:&SKNoteWindowDefaultsObservationContext];
-    else
+    if ([self isNoteType]) {
+        NSUserDefaults *sud = [NSUserDefaults standardUserDefaults];
+        for (NSString *key in [[self class] fontKeysToObserve]) {
+            @try { [sud removeObserver:self forKeyPath:key 
context:&SKNoteWindowDefaultsObservationContext]; }
+            @catch(id e) {}
+        }
+    } else {
         [textView setUsesDefaultFontSize:NO];
+    }
     [[self window] setDelegate:nil];
     [imageView setDelegate:nil];
     [textView setDelegate:nil];
@@ -397,8 +404,7 @@
 
 - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object 
change:(NSDictionary *)change context:(void *)context {
     if (context == &SKNoteWindowDefaultsObservationContext) {
-        NSString *key = [keyPath substringFromIndex:7];
-        if (([key isEqualToString:SKAnchoredNoteFontNameKey] || [key 
isEqualToString:SKAnchoredNoteFontSizeKey]) && [self isNoteType] && [[textView 
string] length] == 0) {
+        if (([keyPath isEqualToString:SKAnchoredNoteFontNameKey] || [keyPath 
isEqualToString:SKAnchoredNoteFontSizeKey]) && [self isNoteType] && [[textView 
string] length] == 0) {
             NSFont *font = [[NSUserDefaults standardUserDefaults] 
fontForNameKey:SKAnchoredNoteFontNameKey sizeKey:SKAnchoredNoteFontSizeKey];
             if (font)
                 [textView setFont:font];

Modified: trunk/SKPDFView.m
===================================================================
--- trunk/SKPDFView.m   2024-07-25 15:59:38 UTC (rev 14396)
+++ trunk/SKPDFView.m   2024-07-25 16:44:49 UTC (rev 14397)
@@ -48,7 +48,6 @@
 #import "NSCursor_SKExtensions.h"
 #import "SKApplication.h"
 #import "SKStringConstants.h"
-#import "NSUserDefaultsController_SKExtensions.h"
 #import "NSUserDefaults_SKExtensions.h"
 #import "SKReadingBar.h"
 #import "SKTransitionController.h"
@@ -338,7 +337,9 @@
                                                  
name:PDFViewPageChangedNotification object:self];
     [nc addObserver:self selector:@selector(handleScaleChangedNotification:)
                                                  
name:PDFViewScaleChangedNotification object:self];
-    [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self 
forKeys:[[self class] defaultKeysToObserve] 
context:&SKPDFViewDefaultsObservationContext];
+    NSUserDefaults *sud = [NSUserDefaults standardUserDefaults];
+    for (NSString *key in [[self class] defaultKeysToObserve])
+        [sud addObserver:self forKeyPath:key options:0 
context:&SKPDFViewDefaultsObservationContext];
 }
 
 - (instancetype)initWithFrame:(NSRect)frameRect {
@@ -359,7 +360,9 @@
 
 - (void)cleanup {
     [[NSSpellChecker sharedSpellChecker] 
closeSpellDocumentWithTag:spellingTag];
-    [[NSUserDefaultsController sharedUserDefaultsController] 
removeObserver:self forKeys:[[self class] defaultKeysToObserve] 
context:&SKPDFViewDefaultsObservationContext];
+    NSUserDefaults *sud = [NSUserDefaults standardUserDefaults];
+    for (NSString *key in [[self class] defaultKeysToObserve])
+        [sud removeObserver:self forKeyPath:key 
context:&SKPDFViewDefaultsObservationContext];
     [[NSNotificationCenter defaultCenter] removeObserver:self];
     [self disableNavigation];
     [[SKImageToolTipWindow sharedToolTipWindow] orderOut:self];
@@ -3439,11 +3442,10 @@
 
 - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object 
change:(NSDictionary *)change context:(void *)context {
     if (context == &SKPDFViewDefaultsObservationContext) {
-        NSString *key = [keyPath substringFromIndex:7];
-        if ([key isEqualToString:SKReadingBarColorKey] || [key 
isEqualToString:SKReadingBarInvertKey]) {
+        if ([keyPath isEqualToString:SKReadingBarColorKey] || [keyPath 
isEqualToString:SKReadingBarInvertKey]) {
             if (readingBar) {
                 PDFPage *page = [readingBar page];
-                if ([key isEqualToString:SKReadingBarInvertKey] || 
[[NSUserDefaults standardUserDefaults] boolForKey:SKReadingBarInvertKey])
+                if ([keyPath isEqualToString:SKReadingBarInvertKey] || 
[[NSUserDefaults standardUserDefaults] boolForKey:SKReadingBarInvertKey])
                     [self requiresDisplay];
                 else
                     [self setNeedsDisplayForReadingBarBounds:[readingBar 
currentBounds] onPage:page];

Modified: trunk/SKSnapshotWindowController.m
===================================================================
--- trunk/SKSnapshotWindowController.m  2024-07-25 15:59:38 UTC (rev 14396)
+++ trunk/SKSnapshotWindowController.m  2024-07-25 16:44:49 UTC (rev 14397)
@@ -46,7 +46,6 @@
 #import "SKSnapshotConfiguration.h"
 #import "NSWindowController_SKExtensions.h"
 #import "SKStringConstants.h"
-#import "NSUserDefaultsController_SKExtensions.h"
 #import "NSGeometry_SKExtensions.h"
 #import "PDFPage_SKExtensions.h"
 #import "PDFAnnotation_SKExtensions.h"
@@ -108,7 +107,9 @@
 
 - (void)windowDidLoad {
     [self updateWindowLevel];
-    [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self 
forKeys:@[SKSnapshotsOnTopKey, SKInterpolationQualityKey] 
context:&SKSnaphotWindowDefaultsObservationContext];
+    NSUserDefaults *sud = [NSUserDefaults standardUserDefaults];
+    [sud addObserver:self forKeyPath:SKSnapshotsOnTopKey options:0 
context:&SKSnaphotWindowDefaultsObservationContext];
+    [sud addObserver:self forKeyPath:SKInterpolationQualityKey options:0 
context:&SKSnaphotWindowDefaultsObservationContext];
     // the window is initialially exposed. The windowDidExpose notification is 
useless, it has nothing to do with showing the window
     [self setHasWindow:YES];
 }
@@ -212,8 +213,11 @@
 }
 
 - (void)windowWillClose:(NSNotification *)notification {
-    @try { [[NSUserDefaultsController sharedUserDefaultsController] 
removeObserver:self forKeys:@[SKSnapshotsOnTopKey, SKInterpolationQualityKey] 
context:&SKSnaphotWindowDefaultsObservationContext]; }
+    NSUserDefaults *sud = [NSUserDefaults standardUserDefaults];
+    @try { [sud removeObserver:self forKeyPath:SKSnapshotsOnTopKey 
context:&SKSnaphotWindowDefaultsObservationContext]; }
     @catch (id e) {}
+    @try { [sud removeObserver:self forKeyPath:SKInterpolationQualityKey 
context:&SKSnaphotWindowDefaultsObservationContext]; }
+    @catch (id e) {}
     if ([[self delegate] 
respondsToSelector:@selector(snapshotControllerWillClose:)])
         [[self delegate] snapshotControllerWillClose:self];
     [self setDelegate:nil];
@@ -695,12 +699,11 @@
 
 - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object 
change:(NSDictionary *)change context:(void *)context {
     if (context == &SKSnaphotWindowDefaultsObservationContext) {
-        NSString *key = [keyPath substringFromIndex:7];
-        if ([key isEqualToString:SKSnapshotsOnTopKey]) {
+        if ([keyPath isEqualToString:SKSnapshotsOnTopKey]) {
             if ([[self window] isVisible])
                 [self updateWindowLevel];
             [pdfView requiresDisplay];
-        } else if ([key isEqualToString:SKInterpolationQualityKey]) {
+        } else if ([keyPath isEqualToString:SKInterpolationQualityKey]) {
             [pdfView setInterpolationQuality:[[NSUserDefaults 
standardUserDefaults] integerForKey:SKInterpolationQualityKey]];
             [pdfView requiresDisplay];
             if ([[self delegate] 
respondsToSelector:@selector(snapshotControllerDidChange:)])

Modified: trunk/SKThumbnailImageView.m
===================================================================
--- trunk/SKThumbnailImageView.m        2024-07-25 15:59:38 UTC (rev 14396)
+++ trunk/SKThumbnailImageView.m        2024-07-25 16:44:49 UTC (rev 14397)
@@ -39,7 +39,6 @@
 #import "SKThumbnailImageView.h"
 #import "SKStringConstants.h"
 #import "NSGraphics_SKExtensions.h"
-#import "NSUserDefaultsController_SKExtensions.h"
 
 static char SKThumbnailImageViewDefaultsObservationContext;
 
@@ -55,7 +54,9 @@
 - (void)commonInit {
     [self setWantsLayer:YES];
     [self setContentFilters:SKColorEffectFilters()];
-    [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self 
forKeys:defaultKeysToObserve() 
context:&SKThumbnailImageViewDefaultsObservationContext];
+    NSUserDefaults *sud = [NSUserDefaults standardUserDefaults];
+    for (NSString *key in defaultKeysToObserve())
+        [sud addObserver:self forKeyPath:key options:0 
context:&SKThumbnailImageViewDefaultsObservationContext];
 }
 
 - (instancetype)initWithFrame:(NSRect)frameRect {
@@ -74,8 +75,11 @@
     return self;
 }
 - (void)dealloc {
-    @try { [[NSUserDefaultsController sharedUserDefaultsController] 
removeObserver:self forKeys:defaultKeysToObserve() 
context:&SKThumbnailImageViewDefaultsObservationContext]; }
-    @catch (id e) {}
+    NSUserDefaults *sud = [NSUserDefaults standardUserDefaults];
+    for (NSString *key in defaultKeysToObserve()) {
+        @try { [sud removeObserver:self forKeyPath:key 
context:&SKThumbnailImageViewDefaultsObservationContext]; }
+        @catch (id e) {}
+    }
 }
 
 - (void)viewDidChangeEffectiveAppearance {

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to