Revision: 3889
http://skim-app.svn.sourceforge.net/skim-app/?rev=3889&view=rev
Author: hofman
Date: 2008-05-17 10:53:30 -0700 (Sat, 17 May 2008)
Log Message:
-----------
Revert an earlier commit. KVO should use a context to distinguish our
observations.
Modified Paths:
--------------
trunk/SKBookmarkController.m
trunk/SKMainWindowController.m
trunk/SKNoteWindowController.m
trunk/SKPDFDocument.m
trunk/SKPDFView.m
trunk/SKPreferenceController.m
trunk/SKSnapshotWindowController.m
Modified: trunk/SKBookmarkController.m
===================================================================
--- trunk/SKBookmarkController.m 2008-05-17 17:31:54 UTC (rev 3888)
+++ trunk/SKBookmarkController.m 2008-05-17 17:53:30 UTC (rev 3889)
@@ -71,6 +71,8 @@
static NSString *SKRecentDocumentAliasDataKey = @"_BDAlias";
static NSString *SKRecentDocumentSnapshotsKey = @"snapshots";
+static NSString *SKBookmarkDefaultsObservationContext =
@"SKBookmarkDefaultsObservationContext";
+
@implementation SKBookmarkController
static unsigned int maxRecentDocumentsCount = 0;
@@ -776,21 +778,19 @@
NSNumber *fontSize = [[NSUserDefaults standardUserDefaults]
objectForKey:SKTableFontSizeKey];
if (fontSize)
[self setFont:[NSFont systemFontOfSize:[fontSize floatValue]]];
- [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self
forKey:SKTableFontSizeKey context:NULL];
+ [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self
forKey:SKTableFontSizeKey context:(void *)SKBookmarkDefaultsObservationContext];
}
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary *)change context:(void *)context {
- if (object == [NSUserDefaultsController sharedUserDefaultsController]) {
- if ([keyPath hasPrefix:@"values."]) {
- NSString *key = [keyPath substringFromIndex:7];
- if ([key isEqualToString:SKTableFontSizeKey]) {
- NSFont *font = [NSFont systemFontOfSize:[[NSUserDefaults
standardUserDefaults] floatForKey:SKTableFontSizeKey]];
- [self setFont:font];
- return;
- }
+ if (context == SKBookmarkDefaultsObservationContext) {
+ NSString *key = [keyPath substringFromIndex:7];
+ if ([key isEqualToString:SKTableFontSizeKey]) {
+ NSFont *font = [NSFont systemFontOfSize:[[NSUserDefaults
standardUserDefaults] floatForKey:SKTableFontSizeKey]];
+ [self setFont:font];
}
+ } else {
+ [super observeValueForKeyPath:keyPath ofObject:object change:change
context:context];
}
- [super observeValueForKeyPath:keyPath ofObject:object change:change
context:context];
}
@end
Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m 2008-05-17 17:31:54 UTC (rev 3888)
+++ trunk/SKMainWindowController.m 2008-05-17 17:53:30 UTC (rev 3889)
@@ -130,6 +130,8 @@
static NSString *SKPDFAnnotationPropertiesObservationContext =
@"SKPDFAnnotationPropertiesObservationContext";
+static NSString *SKMainWindowDefaultsObservationContext =
@"SKMainWindowDefaultsObservationContext";
+
NSString *SKLeftSidePaneWidthKey = @"SKLeftSidePaneWidth";
NSString *SKRightSidePaneWidthKey = @"SKRightSidePaneWidth";
@@ -3260,7 +3262,7 @@
SKThumbnailSizeKey,
SKSnapshotThumbnailSizeKey,
SKShouldAntiAliasKey,
SKGreekingThresholdKey,
SKTableFontSizeKey, nil]
- context:NULL];
+ context:(void *)SKMainWindowDefaultsObservationContext];
}
- (void)unregisterAsObserver {
@@ -3323,10 +3325,10 @@
#pragma mark KVO
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary *)change context:(void *)context {
- if (object == [NSUserDefaultsController sharedUserDefaultsController]) {
+ if (context == SKMainWindowDefaultsObservationContext) {
// A default value that we are observing has changed
- NSString *key = [keyPath hasPrefix:@"values."] ? [keyPath
substringFromIndex:7] : nil;
+ NSString *key = [keyPath substringFromIndex:7];
if ([key isEqualToString:SKBackgroundColorKey]) {
if ([self isFullScreen] == NO && [self isPresentation] == NO)
[pdfView setBackgroundColor:[[NSUserDefaults
standardUserDefaults] colorForKey:SKBackgroundColorKey]];
@@ -3378,8 +3380,6 @@
[findTableView setFont:font];
[groupedFindTableView setFont:font];
[self updatePageColumnWidthForTableView:outlineView];
- } else {
- [super observeValueForKeyPath:keyPath ofObject:object
change:change context:context];
}
} else if (context == SKPDFAnnotationPropertiesObservationContext) {
Modified: trunk/SKNoteWindowController.m
===================================================================
--- trunk/SKNoteWindowController.m 2008-05-17 17:31:54 UTC (rev 3888)
+++ trunk/SKNoteWindowController.m 2008-05-17 17:53:30 UTC (rev 3889)
@@ -54,6 +54,7 @@
static NSString *SKNoteWindowPageObservationContext =
@"SKNoteWindowPageObservationContext";
static NSString *SKNoteWindowBoundsObservationContext =
@"SKNoteWindowBoundsObservationContext";
+static NSString *SKNoteWindowDefaultsObservationContext =
@"SKNoteWindowDefaultsObservationContext";
@implementation SKNoteWindowController
@@ -99,7 +100,7 @@
[note addObserver:self forKeyPath:SKPDFAnnotationPageKey options:0
context:SKNoteWindowPageObservationContext];
[note addObserver:self forKeyPath:SKPDFAnnotationBoundsKey options:0
context:SKNoteWindowBoundsObservationContext];
- [[NSUserDefaultsController sharedUserDefaultsController]
addObserver:self forKeys:[NSArray arrayWithObjects:SKAnchoredNoteFontNameKey,
SKAnchoredNoteFontSizeKey, nil] context:NULL];
+ [[NSUserDefaultsController sharedUserDefaultsController]
addObserver:self forKeys:[NSArray arrayWithObjects:SKAnchoredNoteFontNameKey,
SKAnchoredNoteFontSizeKey, nil] context:(void
*)SKNoteWindowDefaultsObservationContext];
}
return self;
}
@@ -292,22 +293,19 @@
}
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary *)change context:(void *)context {
- if (object == [NSUserDefaultsController sharedUserDefaultsController]) {
- if ([keyPath hasPrefix:@"values."]) {
- NSString *key = [keyPath substringFromIndex:7];
- if (([key isEqualToString:SKAnchoredNoteFontNameKey] || [key
isEqualToString:SKAnchoredNoteFontSizeKey]) && [self isNoteType] && [[textView
string] length] == 0) {
- NSString *fontName = [[NSUserDefaults standardUserDefaults]
stringForKey:SKAnchoredNoteFontNameKey];
- float fontSize = [[NSUserDefaults standardUserDefaults]
floatForKey:SKAnchoredNoteFontSizeKey];
- NSFont *font = fontName ? [NSFont fontWithName:fontName
size:fontSize] : nil;
- if (font)
- [textView setFont:font];
- }
- return;
+ if (context == SKNoteWindowDefaultsObservationContext) {
+ NSString *key = [keyPath substringFromIndex:7];
+ if (([key isEqualToString:SKAnchoredNoteFontNameKey] || [key
isEqualToString:SKAnchoredNoteFontSizeKey]) && [self isNoteType] && [[textView
string] length] == 0) {
+ NSString *fontName = [[NSUserDefaults standardUserDefaults]
stringForKey:SKAnchoredNoteFontNameKey];
+ float fontSize = [[NSUserDefaults standardUserDefaults]
floatForKey:SKAnchoredNoteFontSizeKey];
+ NSFont *font = fontName ? [NSFont fontWithName:fontName
size:fontSize] : nil;
+ if (font)
+ [textView setFont:font];
}
} else if (context == SKNoteWindowBoundsObservationContext || context ==
SKNoteWindowPageObservationContext) {
[self updateStatusMessage];
- return;
+ } else {
+ [super observeValueForKeyPath:keyPath ofObject:object change:change
context:context];
}
- [super observeValueForKeyPath:keyPath ofObject:object change:change
context:context];
}
@end
Modified: trunk/SKPDFDocument.m
===================================================================
--- trunk/SKPDFDocument.m 2008-05-17 17:31:54 UTC (rev 3888)
+++ trunk/SKPDFDocument.m 2008-05-17 17:53:30 UTC (rev 3889)
@@ -83,6 +83,8 @@
static NSString *SKAutoRotatePrintedPagesKey = @"SKAutoRotatePrintedPages";
static NSString *SKDisableReloadAlertKey = @"SKDisableReloadAlert";
+static NSString *SKPDFDocumentDefaultsObservationContext =
@"SKPDFDocumentDefaultsObservationContext";
+
@interface NSFileManager (SKPDFDocumentExtensions)
- (NSString *)subfileWithExtension:(NSString *)extensions
inPDFBundleAtPath:(NSString *)path;
@end
@@ -164,7 +166,7 @@
[mainController setAnnotationsFromDictionaries:noteDicts undoable:NO];
[self setNoteDicts:nil];
- [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self
forKey:SKAutoCheckFileUpdateKey context:NULL];
+ [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self
forKey:SKAutoCheckFileUpdateKey context:(void
*)SKPDFDocumentDefaultsObservationContext];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleWindowWillCloseNotification:)
name:NSWindowWillCloseNotification object:[mainController window]];
}
@@ -1280,13 +1282,10 @@
#pragma mark Notification observation
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary *)change context:(void *)context {
- if (object == [NSUserDefaultsController sharedUserDefaultsController]) {
- if ([keyPath hasPrefix:@"values."]) {
- NSString *key = [keyPath substringFromIndex:7];
- if ([key isEqualToString:SKAutoCheckFileUpdateKey]) {
- [self checkFileUpdatesIfNeeded];
- return;
- }
+ if (context == SKPDFDocumentDefaultsObservationContext) {
+ NSString *key = [keyPath substringFromIndex:7];
+ if ([key isEqualToString:SKAutoCheckFileUpdateKey]) {
+ [self checkFileUpdatesIfNeeded];
}
} else {
[super observeValueForKeyPath:keyPath ofObject:object change:change
context:context];
Modified: trunk/SKPDFView.m
===================================================================
--- trunk/SKPDFView.m 2008-05-17 17:31:54 UTC (rev 3888)
+++ trunk/SKPDFView.m 2008-05-17 17:53:30 UTC (rev 3889)
@@ -105,6 +105,8 @@
static NSString *SKDefaultFreeTextNoteContentsKey =
@"SKDefaultFreeTextNoteContents";
static NSString *SKDefaultAnchoredNoteContentsKey =
@"SKDefaultAnchoredNoteContents";
+static NSString *SKPDFViewDefaultsObservationContext =
@"SKPDFViewDefaultsObservationContext";
+
static unsigned int moveReadingBarModifiers = NSAlternateKeyMask;
static unsigned int resizeReadingBarModifiers = NSAlternateKeyMask |
NSShiftKeyMask;
@@ -249,7 +251,7 @@
name:PDFViewScaleChangedNotification object:self];
[[NSUserDefaultsController sharedUserDefaultsController] addObserver:self
forKeys:
[NSArray arrayWithObjects:SKReadingBarColorKey, SKReadingBarInvertKey,
nil]
- context:NULL];
+ context:(void *)SKPDFViewDefaultsObservationContext];
}
- (id)initWithFrame:(NSRect)frameRect {
@@ -2316,20 +2318,18 @@
#pragma mark KVO
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary *)change context:(void *)context {
- if (object == [NSUserDefaultsController sharedUserDefaultsController]) {
- if ([keyPath hasPrefix:@"values."]) {
- NSString *key = [keyPath substringFromIndex:7];
- if ([key isEqualToString:SKReadingBarColorKey] || [key
isEqualToString:SKReadingBarInvertKey]) {
- if (readingBar) {
- [self setNeedsDisplay:YES];
- [[NSNotificationCenter defaultCenter]
postNotificationName:SKPDFViewReadingBarDidChangeNotification
- object:self userInfo:[NSDictionary
dictionaryWithObjectsAndKeys:[readingBar page], SKPDFViewOldPageKey,
[readingBar page], SKPDFViewNewPageKey, nil]];
- }
- return;
+ if (context == SKPDFViewDefaultsObservationContext) {
+ NSString *key = [keyPath substringFromIndex:7];
+ if ([key isEqualToString:SKReadingBarColorKey] || [key
isEqualToString:SKReadingBarInvertKey]) {
+ if (readingBar) {
+ [self setNeedsDisplay:YES];
+ [[NSNotificationCenter defaultCenter]
postNotificationName:SKPDFViewReadingBarDidChangeNotification
+ object:self userInfo:[NSDictionary
dictionaryWithObjectsAndKeys:[readingBar page], SKPDFViewOldPageKey,
[readingBar page], SKPDFViewNewPageKey, nil]];
}
}
+ } else {
+ [super observeValueForKeyPath:keyPath ofObject:object change:change
context:context];
}
- [super observeValueForKeyPath:keyPath ofObject:object change:change
context:context];
}
- (void)transformCGContext:(CGContextRef)context forPage:(PDFPage *)page {
Modified: trunk/SKPreferenceController.m
===================================================================
--- trunk/SKPreferenceController.m 2008-05-17 17:31:54 UTC (rev 3888)
+++ trunk/SKPreferenceController.m 2008-05-17 17:53:30 UTC (rev 3889)
@@ -55,6 +55,8 @@
static NSString *SKPreferenceWindowFrameAutosaveName = @"SKPreferenceWindow";
+static NSString *SKPreferenceWindowDefaultsObservationContext =
@"SKPreferenceWindowDefaultsObservationContext";
+
@implementation SKPreferenceController
+ (id)sharedPrefenceController {
@@ -71,8 +73,8 @@
sud = [NSUserDefaults standardUserDefaults];
sudc = [NSUserDefaultsController sharedUserDefaultsController];
- [sudc addObserver:self forKey:SKDefaultPDFDisplaySettingsKey
context:NULL];
- [sudc addObserver:self forKey:SKDefaultFullScreenPDFDisplaySettingsKey
context:NULL];
+ [sudc addObserver:self forKey:SKDefaultPDFDisplaySettingsKey
context:(void *)SKPreferenceWindowDefaultsObservationContext];
+ [sudc addObserver:self forKey:SKDefaultFullScreenPDFDisplaySettingsKey
context:(void *)SKPreferenceWindowDefaultsObservationContext];
}
return self;
}
@@ -265,16 +267,14 @@
#pragma mark KVO
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary *)change context:(void *)context {
- if (object == [NSUserDefaultsController sharedUserDefaultsController]) {
- if ([keyPath hasPrefix:@"values."]) {
- NSString *key = [keyPath substringFromIndex:7];
- if ([key isEqualToString:SKDefaultPDFDisplaySettingsKey] || [key
isEqualToString:SKDefaultFullScreenPDFDisplaySettingsKey]) {
- [self updateRevertButtons];
- return;
- }
+ if (context == SKPreferenceWindowDefaultsObservationContext) {
+ NSString *key = [keyPath substringFromIndex:7];
+ if ([key isEqualToString:SKDefaultPDFDisplaySettingsKey] || [key
isEqualToString:SKDefaultFullScreenPDFDisplaySettingsKey]) {
+ [self updateRevertButtons];
}
+ } else {
+ [super observeValueForKeyPath:keyPath ofObject:object change:change
context:context];
}
- [super observeValueForKeyPath:keyPath ofObject:object change:change
context:context];
}
@end
Modified: trunk/SKSnapshotWindowController.m
===================================================================
--- trunk/SKSnapshotWindowController.m 2008-05-17 17:31:54 UTC (rev 3888)
+++ trunk/SKSnapshotWindowController.m 2008-05-17 17:53:30 UTC (rev 3889)
@@ -66,10 +66,11 @@
static NSString *SKSnapshotWindowFrameAutosaveName = @"SKSnapshotWindow";
static NSString *SKSnapshotViewChangedNotification =
@"SKSnapshotViewChangedNotification";
+static NSString *SKSnaphotWindowDefaultsObservationContext =
@"SKSnaphotWindowDefaultsObservationContext";
+
@implementation SKSnapshotWindowController
- (void)dealloc {
- [[NSUserDefaultsController sharedUserDefaultsController]
removeObserver:self forKey:SKSnapshotsOnTopKey];
[[NSNotificationCenter defaultCenter] removeObserver: self];
[thumbnail release];
[super dealloc];
@@ -83,7 +84,7 @@
BOOL keepOnTop = [[NSUserDefaults standardUserDefaults]
boolForKey:SKSnapshotsOnTopKey];
[[self window] setLevel:keepOnTop || forceOnTop ? NSFloatingWindowLevel :
NSNormalWindowLevel];
[[self window] setHidesOnDeactivate:keepOnTop || forceOnTop];
- [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self
forKey:SKSnapshotsOnTopKey context:NULL];
+ [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self
forKey:SKSnapshotsOnTopKey context:(void
*)SKSnaphotWindowDefaultsObservationContext];
}
- (NSString *)windowTitleForDocumentDisplayName:(NSString *)displayName {
@@ -166,6 +167,7 @@
}
- (void)windowWillClose:(NSNotification *)notification {
+ [[NSUserDefaultsController sharedUserDefaultsController]
removeObserver:self forKey:SKSnapshotsOnTopKey];
if (miniaturizing == NO && [[self delegate]
respondsToSelector:@selector(snapshotControllerWindowWillClose:)])
[[self delegate] snapshotControllerWindowWillClose:self];
}
@@ -531,18 +533,16 @@
#pragma mark KVO
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary *)change context:(void *)context {
- if (object == [NSUserDefaultsController sharedUserDefaultsController]) {
- if ([keyPath hasPrefix:@"values."]) {
- NSString *key = [keyPath substringFromIndex:7];
- if ([key isEqualToString:SKSnapshotsOnTopKey]) {
- BOOL keepOnTop = [[NSUserDefaults standardUserDefaults]
boolForKey:SKSnapshotsOnTopKey];
- [[self window] setLevel:keepOnTop || forceOnTop ?
NSFloatingWindowLevel : NSNormalWindowLevel];
- [[self window] setHidesOnDeactivate:keepOnTop || forceOnTop];
- return;
- }
+ if (context == SKSnaphotWindowDefaultsObservationContext) {
+ NSString *key = [keyPath substringFromIndex:7];
+ if ([key isEqualToString:SKSnapshotsOnTopKey]) {
+ BOOL keepOnTop = [[NSUserDefaults standardUserDefaults]
boolForKey:SKSnapshotsOnTopKey];
+ [[self window] setLevel:keepOnTop || forceOnTop ?
NSFloatingWindowLevel : NSNormalWindowLevel];
+ [[self window] setHidesOnDeactivate:keepOnTop || forceOnTop];
}
+ } else {
+ [super observeValueForKeyPath:keyPath ofObject:object change:change
context:context];
}
- [super observeValueForKeyPath:keyPath ofObject:object change:change
context:context];
}
@end
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit