From 88b9dddd2482c7240e51a94653e8455789b40eea Mon Sep 17 00:00:00 2001 From: Daniel Weck Date: Wed, 30 Jul 2014 19:00:48 +0100 Subject: [PATCH] fixed scroll and single/double preferences dialog --- LauncherOSX/LOXPreferences.h | 7 ++-- LauncherOSX/LOXPreferences.mm | 20 ++++++----- LauncherOSX/LOXPreferencesController.h | 2 ++ LauncherOSX/LOXPreferencesController.m | 49 ++++++++++++++++++++------ LauncherOSX/PreferencesDlg.xib | 45 ++++++++++++++++------- readium-sdk | 2 +- readium-shared-js | 2 +- 7 files changed, 90 insertions(+), 37 deletions(-) diff --git a/LauncherOSX/LOXPreferences.h b/LauncherOSX/LOXPreferences.h index 854b4d9..0285ff4 100644 --- a/LauncherOSX/LOXPreferences.h +++ b/LauncherOSX/LOXPreferences.h @@ -13,7 +13,6 @@ -@property (nonatomic, strong) NSNumber *isSyntheticSpread; @property (nonatomic, strong) NSNumber *fontSize; @property (nonatomic, strong) NSNumber *columnGap; @property (nonatomic, strong) NSNumber *mediaOverlaysSkipSkippables; @@ -23,8 +22,10 @@ @property (nonatomic, strong) NSNumber *mediaOverlaysEnableClick; @property (nonatomic, strong) NSNumber *mediaOverlaysRate; @property (nonatomic, strong) NSNumber *mediaOverlaysVolume; -@property (nonatomic, strong) NSNumber *isScrollDoc; -@property (nonatomic, strong) NSNumber *isScrollContinuous; + +@property (nonatomic, strong) NSString *displayScroll; +@property (nonatomic, strong) NSString *displaySyntheticSpread; + - (void)updateMediaOverlaysSkippables:(NSString *)str; - (void)updateMediaOverlaysEscapables:(NSString *)str; diff --git a/LauncherOSX/LOXPreferences.mm b/LauncherOSX/LOXPreferences.mm index b331392..4a5d6bf 100644 --- a/LauncherOSX/LOXPreferences.mm +++ b/LauncherOSX/LOXPreferences.mm @@ -37,7 +37,6 @@ - (id)init if(self) { self.fontSize = [NSNumber numberWithInt:100]; - self.isSyntheticSpread = [NSNumber numberWithBool:YES]; self.mediaOverlaysSkipSkippables = [NSNumber numberWithBool:NO]; self.mediaOverlaysEscapeEscapables = [NSNumber numberWithBool:YES]; self.mediaOverlaysSkippables = [NSString stringWithUTF8String:""]; @@ -46,14 +45,14 @@ - (id)init self.columnGap = [NSNumber numberWithInt:20]; self.mediaOverlaysRate = [NSNumber numberWithInt:1]; self.mediaOverlaysVolume = [NSNumber numberWithInt:100]; - self.isScrollDoc = [NSNumber numberWithBool:NO]; - self.isScrollContinuous = [NSNumber numberWithBool:NO]; + + self.displaySyntheticSpread = @"auto"; + self.displayScroll = @"auto"; _doNotUpdateView = NO; _observableProperties = [NSArray arrayWithObjects: NSStringFromSelector(@selector(fontSize)), - NSStringFromSelector(@selector(isSyntheticSpread)), NSStringFromSelector(@selector(columnGap)), NSStringFromSelector(@selector(mediaOverlaysSkipSkippables)), NSStringFromSelector(@selector(mediaOverlaysEscapeEscapables)), @@ -62,8 +61,9 @@ - (id)init NSStringFromSelector(@selector(mediaOverlaysEnableClick)), NSStringFromSelector(@selector(mediaOverlaysRate)), NSStringFromSelector(@selector(mediaOverlaysVolume)), - NSStringFromSelector(@selector(isScrollDoc)), - NSStringFromSelector(@selector(isScrollContinuous)), + + NSStringFromSelector(@selector(displayScroll)), + NSStringFromSelector(@selector(displaySyntheticSpread)), nil]; } @@ -109,7 +109,6 @@ -(NSDictionary *) toDictionary { return @{ NSStringFromSelector(@selector(fontSize)): self.fontSize, - NSStringFromSelector(@selector(isSyntheticSpread)): self.isSyntheticSpread, NSStringFromSelector(@selector(mediaOverlaysSkipSkippables)): self.mediaOverlaysSkipSkippables, NSStringFromSelector(@selector(mediaOverlaysEscapeEscapables)): self.mediaOverlaysEscapeEscapables, NSStringFromSelector(@selector(mediaOverlaysSkippables)): self.mediaOverlaysSkippables, @@ -118,8 +117,11 @@ -(NSDictionary *) toDictionary NSStringFromSelector(@selector(mediaOverlaysRate)): self.mediaOverlaysRate, NSStringFromSelector(@selector(mediaOverlaysVolume)): self.mediaOverlaysVolume, NSStringFromSelector(@selector(columnGap)): self.columnGap, - NSStringFromSelector(@selector(isScrollDoc)): self.isScrollDoc, - NSStringFromSelector(@selector(isScrollContinuous)): self.isScrollContinuous, + + NSStringFromSelector(@selector(syntheticSpread)): self.displaySyntheticSpread, + NSStringFromSelector(@selector(scroll)): self.displayScroll, + + NSStringFromSelector(@selector(doNotUpdateView)): [NSNumber numberWithBool:_doNotUpdateView] }; } diff --git a/LauncherOSX/LOXPreferencesController.h b/LauncherOSX/LOXPreferencesController.h index e926be5..361a019 100644 --- a/LauncherOSX/LOXPreferencesController.h +++ b/LauncherOSX/LOXPreferencesController.h @@ -22,6 +22,7 @@ - (IBAction)applySkippables:(id)sender; - (IBAction)applyEscapables:(id)sender; - (IBAction)onViewModeChanged: (id)sender; +- (IBAction)onViewSynthChanged: (id)sender; @property (assign) IBOutlet NSButton *thiteticSpread; @property (assign) IBOutlet NSWindow *sheet; @@ -32,6 +33,7 @@ @property (assign) IBOutlet NSTextView *moEscapablesCtrl; @property (assign) IBOutlet NSMatrix *displayModeCtrl; +@property (assign) IBOutlet NSMatrix *displaySynthCtrl; @property(nonatomic, strong) LOXPreferences *preferences; @property(nonatomic, strong) LOXWebViewController *webViewController; diff --git a/LauncherOSX/LOXPreferencesController.m b/LauncherOSX/LOXPreferencesController.m index 3d7caa1..e73e8c0 100644 --- a/LauncherOSX/LOXPreferencesController.m +++ b/LauncherOSX/LOXPreferencesController.m @@ -62,25 +62,44 @@ - (IBAction)applyEscapables:(id)sender } - (IBAction)onViewModeChanged:(id)sender { - + _postponeSettingsUpdate = YES; NSButtonCell *selCell = [sender selectedCell]; switch([selCell tag]) { case 1: - self.preferences.isScrollDoc = [NSNumber numberWithBool:YES]; - self.preferences.isScrollContinuous = [NSNumber numberWithBool:NO]; + self.preferences.displayScroll = @"scroll-doc"; break; case 2: - self.preferences.isScrollDoc = [NSNumber numberWithBool:NO]; - self.preferences.isScrollContinuous = [NSNumber numberWithBool:YES]; + self.preferences.displayScroll = @"scroll-continuous"; break; default: - self.preferences.isScrollDoc = [NSNumber numberWithBool:NO]; - self.preferences.isScrollContinuous = [NSNumber numberWithBool:NO]; + self.preferences.displayScroll = @"auto"; } _postponeSettingsUpdate = NO; + + [self.preferences setDoNotUpdateView:NO]; + [self.webViewController updateSettings: self.preferences]; +} + +- (IBAction)onViewSynthChanged:(id)sender { + + _postponeSettingsUpdate = YES; + NSButtonCell *selCell = [sender selectedCell]; + switch([selCell tag]) + { + case 1: + self.preferences.displaySyntheticSpread = @"single"; + break; + case 2: + self.preferences.displaySyntheticSpread = @"double"; + break; + default: + self.preferences.displaySyntheticSpread = @"auto"; + } + _postponeSettingsUpdate = NO; + [self.preferences setDoNotUpdateView:NO]; [self.webViewController updateSettings: self.preferences]; } @@ -161,16 +180,26 @@ - (void)showPreferences:(LOXPreferences *)preferences //Make sure that in nib file "Visible at launch" property set to false //otherwise sheet il not be attached to the window [NSBundle loadNibNamed:@"PreferencesDlg" owner:self]; - - if([_preferences.isScrollDoc boolValue]) { + + if([_preferences.displayScroll isEqual: @"scroll-doc"]) { [self.displayModeCtrl selectCellWithTag: 1]; } - else if([_preferences.isScrollContinuous boolValue]) { + else if([_preferences.displayScroll isEqual: @"scroll-continuous"]) { [self.displayModeCtrl selectCellWithTag: 2]; } else { [self.displayModeCtrl selectCellWithTag: 0]; } + + if([_preferences.displaySyntheticSpread isEqual: @"single"]) { + [self.displaySynthCtrl selectCellWithTag: 1]; + } + else if([_preferences.displaySyntheticSpread isEqual: @"double"]) { + [self.displaySynthCtrl selectCellWithTag: 2]; + } + else { + [self.displaySynthCtrl selectCellWithTag: 0]; + } [NSApp beginSheet:self.sheet modalForWindow:[[NSApp delegate] window] diff --git a/LauncherOSX/PreferencesDlg.xib b/LauncherOSX/PreferencesDlg.xib index d1c58c0..77d36b7 100644 --- a/LauncherOSX/PreferencesDlg.xib +++ b/LauncherOSX/PreferencesDlg.xib @@ -1,19 +1,19 @@ - + - + + - @@ -121,10 +121,10 @@ - + - + @@ -132,15 +132,15 @@ - + - + - + @@ -150,17 +150,36 @@ - + diff --git a/readium-sdk b/readium-sdk index 602d3af..d73883b 160000 --- a/readium-sdk +++ b/readium-sdk @@ -1 +1 @@ -Subproject commit 602d3afbbaa0a31a679242b42271bf10b2297aae +Subproject commit d73883b982d9e7bd714fd2e4e279b14b75826552 diff --git a/readium-shared-js b/readium-shared-js index 56952d4..8c5017e 160000 --- a/readium-shared-js +++ b/readium-shared-js @@ -1 +1 @@ -Subproject commit 56952d44ec87c8c7d4c69c6768c2fcd1dd74565f +Subproject commit 8c5017ef6ea449806559a38d6b69c5dfdf103598