Revision: 7328
http://skim-app.svn.sourceforge.net/skim-app/?rev=7328&view=rev
Author: hofman
Date: 2011-07-06 00:36:39 +0000 (Wed, 06 Jul 2011)
Log Message:
-----------
remember last selected pref pane, as prescribed by the HIG
Modified Paths:
--------------
trunk/SKPreferenceController.m
Modified: trunk/SKPreferenceController.m
===================================================================
--- trunk/SKPreferenceController.m 2011-07-05 20:43:30 UTC (rev 7327)
+++ trunk/SKPreferenceController.m 2011-07-06 00:36:39 UTC (rev 7328)
@@ -54,6 +54,8 @@
#define SKPreferenceWindowFrameAutosaveName @"SKPreferenceWindow"
+#define SKLastSelectedPreferencePaneKey @"SKLastSelectedPreferencePane"
+
#define NIBNAME_KEY @"nibName"
@implementation SKPreferenceController
@@ -99,6 +101,42 @@
[super dealloc];
}
+- (SKPreferencePane *)preferencePaneForItemIdentifier:(NSString *)itemIdent {
+ for (SKPreferencePane *pane in preferencePanes)
+ if ([[pane nibName] isEqualToString:itemIdent])
+ return pane;
+ return nil;
+}
+
+- (void)selectPane:(SKPreferencePane *)pane {
+ if ([pane isEqual:currentPane] == NO) {
+
+ [[self window] setTitle:[pane title]];
+
+ // make sure edits are committed
+ [currentPane commitEditing];
+ [[NSUserDefaultsController sharedUserDefaultsController]
commitEditing];
+
+ NSView *view = [pane view];
+ NSRect frame = [view frame];
+ CGFloat dh = NSHeight([contentView frame]) - NSHeight(frame);
+ CGFloat dw = NSWidth([contentView frame]) - NSWidth(frame);
+
+ [view setFrameOrigin:NSMakePoint(0.0, dh)];
+ [contentView replaceSubview:[currentPane view] with:view];
+
+ currentPane = pane;
+
+ frame = [[self window] frame];
+ frame.origin.y += dh;
+ frame.size.height -= dh;
+ frame.size.width -= dw;
+ [[self window] setFrame:frame display:YES animate:YES];
+
+ [[NSUserDefaults standardUserDefaults] setObject:[currentPane nibName]
forKey:SKLastSelectedPreferencePaneKey];
+ }
+}
+
- (void)windowDidLoad {
NSWindow *window = [self window];
NSToolbar *toolbar = [[[NSToolbar alloc]
initWithIdentifier:SKPreferencesToolbarIdentifier] autorelease];
@@ -114,7 +152,7 @@
SKAutoSizeButtons(resetButtons, NO);
- currentPane = [preferencePanes objectAtIndex:0];
+ currentPane = [self preferencePaneForItemIdentifier:[[NSUserDefaults
standardUserDefaults] stringForKey:SKLastSelectedPreferencePaneKey]] ?:
[preferencePanes objectAtIndex:0];
[toolbar setSelectedItemIdentifier:[currentPane nibName]];
[window setTitle:[currentPane title]];
@@ -138,42 +176,6 @@
[[NSUserDefaultsController sharedUserDefaultsController] commitEditing];
}
-#pragma mark Preference panes
-
-- (SKPreferencePane *)preferencePaneForItemIdentifier:(NSString *)itemIdent {
- for (SKPreferencePane *pane in preferencePanes)
- if ([[pane nibName] isEqualToString:itemIdent])
- return pane;
- return nil;
-}
-
-- (void)selectPane:(SKPreferencePane *)pane {
- if ([pane isEqual:currentPane] == NO) {
-
- [[self window] setTitle:[pane title]];
-
- // make sure edits are committed
- [currentPane commitEditing];
- [[NSUserDefaultsController sharedUserDefaultsController]
commitEditing];
-
- NSView *view = [pane view];
- NSRect frame = [view frame];
- CGFloat dh = NSHeight([contentView frame]) - NSHeight(frame);
- CGFloat dw = NSWidth([contentView frame]) - NSWidth(frame);
-
- [view setFrameOrigin:NSMakePoint(0.0, dh)];
- [contentView replaceSubview:[currentPane view] with:view];
-
- currentPane = pane;
-
- frame = [[self window] frame];
- frame.origin.y += dh;
- frame.size.height -= dh;
- frame.size.width -= dw;
- [[self window] setFrame:frame display:YES animate:YES];
- }
-}
-
#pragma mark Actions
- (void)selectPaneAction:(id)sender {
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security
threats, fraudulent activity, and more. Splunk takes this data and makes
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2d-c2
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit