Added methods to implement autosaving of expanded items.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@13292 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Gregory John Casamento 2002-04-02 05:04:57 +00:00
parent 9d14f1ebe7
commit 3f3732a32f
2 changed files with 85 additions and 2 deletions

View file

@ -1,3 +1,8 @@
2002-04-01 Gregory Casamento <greg_casamento@yahoo.com>
* Source/NSOutlineView.m
Added methods to implement autosaving of expandedItems.
2002-04-01 Adam Fedor <fedor@gnu.org>
* Source/NSApplication.m (-init): Retain the server

View file

@ -86,8 +86,8 @@ static NSImage *unexpandable = nil;
column: (int)column;
- (BOOL) _editPreviousEditableCellBeforeRow: (int)row
column: (int)column;
- (void) _autosaveTableColumns;
- (void) _autoloadTableColumns;
- (void) _autosaveExpandedItems;
- (void) _autoloadExpandedItems;
- (void) _openItem: (id)item;
- (void) _closeItem: (id)item;
@end
@ -565,7 +565,39 @@ static NSImage *unexpandable = nil;
- (void)setAutosaveExpandedItems: (BOOL)flag
{
if(flag == _autosaveExpandedItems)
{
return;
}
_autosaveExpandedItems = flag;
if(flag)
{
[self _autoloadExpandedItems];
// notify when an item expands...
[nc addObserver: self
selector: @selector(_autosaveExpandedItems)
name: NSOutlineViewItemDidExpandNotification
object: self];
// notify when an item collapses...
[nc addObserver: self
selector: @selector(_autosaveExpandedItems)
name: NSOutlineViewItemDidCollapseNotification
object: self];
}
else
{
// notify when an item expands...
[nc removeObserver: self
name: NSOutlineViewItemDidExpandNotification
object: self];
// notify when an item collapses...
[nc removeObserver: self
name: NSOutlineViewItemDidCollapseNotification
object: self];
}
}
- (void)setIndentationMarkerFollowsCell: (BOOL)followsCell
@ -1454,5 +1486,51 @@ static NSImage *unexpandable = nil;
return YES;
}
// Autosave methods...
- (void) setAutosaveName: (NSString *)name
{
[super setAutosaveName: name];
[self _autoloadExpandedItems];
}
- (void) _autosaveExpandedItems
{
if (_autosaveExpandedItems && _autosaveName != nil)
{
NSUserDefaults *defaults;
NSString *tableKey;
defaults = [NSUserDefaults standardUserDefaults];
tableKey = [NSString stringWithFormat: @"NSOutlineView Expanded Items %@",
_autosaveName];
[defaults setObject: _expandedItems forKey: tableKey];
[defaults synchronize];
}
}
- (void) _autoloadExpandedItems
{
if (_autosaveExpandedItems && _autosaveName != nil)
{
NSUserDefaults *defaults;
id config;
NSString *tableKey;
defaults = [NSUserDefaults standardUserDefaults];
tableKey = [NSString stringWithFormat: @"NSOutlineView Expanded Items %@",
_autosaveName];
config = [defaults objectForKey: tableKey];
if (config != nil)
{
NSEnumerator *en = [config objectEnumerator];
id item = nil;
while ((item = [en nextObject]) != nil)
{
[self expandItem: item];
}
}
}
}
@end /* implementation of NSOutlineView */