Have the preferences window remember the last view

This commit is contained in:
Nathan Kinsinger
2010-02-19 18:20:47 -07:00
parent 27d4b22122
commit ca846bc6eb
3 changed files with 34 additions and 3 deletions
+1
View File
@@ -71,5 +71,6 @@
- (void)crossFadeView:(NSView *)oldView withView:(NSView *)newView;
- (NSRect)frameForView:(NSView *)view;
- (NSString *)defaultViewIdentifier;
@end
+15 -3
View File
@@ -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
+18
View File
@@ -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