From ca846bc6eb40240fab0e17bce0e26dbc3ffb981a Mon Sep 17 00:00:00 2001 From: Nathan Kinsinger Date: Fri, 19 Feb 2010 18:20:47 -0700 Subject: [PATCH] Have the preferences window remember the last view --- DBPrefsWindowController.h | 1 + DBPrefsWindowController.m | 18 +++++++++++++++--- PBPrefsWindowController.m | 18 ++++++++++++++++++ 3 files changed, 34 insertions(+), 3 deletions(-) diff --git a/DBPrefsWindowController.h b/DBPrefsWindowController.h index cc208de..5cb711e 100644 --- a/DBPrefsWindowController.h +++ b/DBPrefsWindowController.h @@ -71,5 +71,6 @@ - (void)crossFadeView:(NSView *)oldView withView:(NSView *)newView; - (NSRect)frameForView:(NSView *)view; +- (NSString *)defaultViewIdentifier; @end diff --git a/DBPrefsWindowController.m b/DBPrefsWindowController.m index 3988a99..58b4d6b 100644 --- a/DBPrefsWindowController.m +++ b/DBPrefsWindowController.m @@ -211,9 +211,9 @@ static DBPrefsWindowController *_sharedPrefsWindowController = nil; [toolbar release]; } - NSString *firstIdentifier = [toolbarIdentifiers objectAtIndex:0]; - [[[self window] toolbar] setSelectedItemIdentifier:firstIdentifier]; - [self displayViewForIdentifier:firstIdentifier animate:NO]; + NSString *identifier = [self defaultViewIdentifier]; + [[[self window] toolbar] setSelectedItemIdentifier:identifier]; + [self displayViewForIdentifier:identifier animate:NO]; [[self window] center]; @@ -406,4 +406,16 @@ static DBPrefsWindowController *_sharedPrefsWindowController = nil; +#pragma mark - +#pragma mark Default View + + +- (NSString *)defaultViewIdentifier +{ + return [toolbarIdentifiers objectAtIndex:0]; +} + + + + @end diff --git a/PBPrefsWindowController.m b/PBPrefsWindowController.m index 254adc4..418f5f0 100644 --- a/PBPrefsWindowController.m +++ b/PBPrefsWindowController.m @@ -9,6 +9,8 @@ #import "PBPrefsWindowController.h" #import "PBGitRepository.h" +#define kPreferenceViewIdentifier @"PBGitXPreferenceViewIdentifier" + @implementation PBPrefsWindowController # pragma mark DBPrefsWindowController overrides @@ -23,6 +25,22 @@ [self addView:updatesPrefsView label:@"Updates"]; } +- (void)displayViewForIdentifier:(NSString *)identifier animate:(BOOL)animate +{ + [super displayViewForIdentifier:identifier animate:animate]; + + [[NSUserDefaults standardUserDefaults] setObject:identifier forKey:kPreferenceViewIdentifier]; +} + +- (NSString *)defaultViewIdentifier +{ + NSString *identifier = [[NSUserDefaults standardUserDefaults] objectForKey:kPreferenceViewIdentifier]; + if (identifier) + return identifier; + + return [super defaultViewIdentifier]; +} + #pragma mark - #pragma mark Delegate methods