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