diff options
-rw-r--r-- | Source/SPPrintAccessory.h | 5 | ||||
-rw-r--r-- | Source/SPPrintAccessory.m | 15 | ||||
-rw-r--r-- | Source/TableDocument.m | 1 |
3 files changed, 18 insertions, 3 deletions
diff --git a/Source/SPPrintAccessory.h b/Source/SPPrintAccessory.h index 5bdf4343..b1975b7e 100644 --- a/Source/SPPrintAccessory.h +++ b/Source/SPPrintAccessory.h @@ -1,10 +1,15 @@ #import <Cocoa/Cocoa.h> +#import <WebKit/WebKit.h> @interface SPPrintAccessory : NSViewController <NSPrintPanelAccessorizing> { IBOutlet NSView *printAccessoryView; IBOutlet NSUserDefaultsController *defaultsController; + + WebView *printWebView; } +- (void) setPrintView:(WebView *)theWebView; + @end diff --git a/Source/SPPrintAccessory.m b/Source/SPPrintAccessory.m index 93c7ce4e..d0f3dc14 100644 --- a/Source/SPPrintAccessory.m +++ b/Source/SPPrintAccessory.m @@ -1,18 +1,17 @@ #import "SPPrintAccessory.h" -#import <WebKit/WebKit.h> @implementation SPPrintAccessory - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { defaultsController = [NSUserDefaultsController sharedUserDefaultsController]; + printWebView = nil; return [super initWithNibName:@"printAccessory" bundle:nibBundleOrNil]; } - (void)awakeFromNib { [self setView:printAccessoryView]; - [[WebPreferences standardPreferences] setShouldPrintBackgrounds:[[defaultsController valueForKeyPath:@"values.PrintBackground"] boolValue] ]; [defaultsController addObserver:self forKeyPath:@"values.PrintBackground" options:NSKeyValueObservingOptionNew context:@"PrinterSettingsChanged"]; } @@ -32,12 +31,22 @@ - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { if ([(NSString *)context isEqualToString:@"PrinterSettingsChanged"]) { - [[WebPreferences standardPreferences] setShouldPrintBackgrounds:[[defaultsController valueForKeyPath:@"values.PrintBackground"] boolValue] ]; + if (printWebView) [[printWebView preferences] setShouldPrintBackgrounds:[[defaultsController valueForKeyPath:@"values.PrintBackground"] boolValue]]; } else { [super observeValueForKeyPath:keyPath ofObject:object change:change context:context]; } } +/* + * Set the print view that the print accessory controls; set initial + * preferences based on user defaults. + */ +- (void) setPrintView:(WebView *)theWebView +{ + printWebView = theWebView; + [[printWebView preferences] setShouldPrintBackgrounds:[[defaultsController valueForKeyPath:@"values.PrintBackground"] boolValue]]; +} + - (void)dealloc { [defaultsController removeObserver:self forKeyPath:@"values.PrintBackground"]; diff --git a/Source/TableDocument.m b/Source/TableDocument.m index acd8d978..d710caa1 100644 --- a/Source/TableDocument.m +++ b/Source/TableDocument.m @@ -157,6 +157,7 @@ NSString *TableDocumentFavoritesControllerSelectionIndexDidChange = @"TableDocum SPPrintAccessory *printAccessory = [[SPPrintAccessory alloc] init]; [printAccessory initWithNibName:@"printAccessory" bundle:nil]; + [printAccessory setPrintView:printWebView]; [printPanel addAccessoryController:printAccessory]; NSPageLayout *pageLayout = [NSPageLayout pageLayout]; |