Changeset 3452

Show
Ignore:
Timestamp:
12/13/06 01:11:56 (2 years ago)
Author:
timothy
Message:

Colloquy now remembers the collapsed state of the member list for each room. So if you have the list expanded and quit, the next time you join it will be exapnded again. Also improves how we remember if the drawer is open in tabbed mode, it is now remembered per room and not per window. This lets you open it for a room and keep it closed for the rest. If a room has never had the drawer opened or closed while it is active, the drawer will stay in the state of the previous room.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/Controllers/JVChatWindowController.m

    r3418 r3452  
    494494 
    495495- (IBAction) toggleViewsDrawer:(id) sender { 
    496         if( [viewsDrawer state] == NSDrawerClosedState || [viewsDrawer state] == NSDrawerClosingState ) { 
     496        if( [viewsDrawer state] == NSDrawerClosedState || [viewsDrawer state] == NSDrawerClosingState ) 
    497497                [self openViewsDrawer:sender]; 
    498                 [self setPreference:[NSNumber numberWithBool:YES] forKey:@"drawer open"]; 
    499         } else if( [viewsDrawer state] == NSDrawerOpenState || [viewsDrawer state] == NSDrawerOpeningState ) { 
     498        else if( [viewsDrawer state] == NSDrawerOpenState || [viewsDrawer state] == NSDrawerOpeningState ) 
    500499                [self closeViewsDrawer:sender]; 
    501                 [self setPreference:[NSNumber numberWithBool:NO] forKey:@"drawer open"]; 
    502         } 
    503500} 
    504501 
     
    824821        [chatViewsOutlineView performSelector:@selector( sizeLastColumnToFit ) withObject:nil afterDelay:0.]; 
    825822        [chatViewsOutlineView performSelector:@selector( display ) withObject:nil afterDelay:0.]; 
     823        id item = [[notification userInfo] objectForKey:@"NSObject"]; 
     824        if( [item respondsToSelector:@selector( setPreference:forKey: )] ) 
     825                [(id)item setPreference:[NSNumber numberWithBool:NO] forKey:@"expanded"]; 
    826826} 
    827827 
    828828- (void) outlineViewItemDidExpand:(NSNotification *) notification { 
    829829        [chatViewsOutlineView performSelector:@selector( sizeLastColumnToFit ) withObject:nil afterDelay:0.]; 
     830        id item = [[notification userInfo] objectForKey:@"NSObject"]; 
     831        if( [item respondsToSelector:@selector( setPreference:forKey: )] ) 
     832                [(id)item setPreference:[NSNumber numberWithBool:YES] forKey:@"expanded"]; 
    830833} 
    831834@end 
  • trunk/Controllers/JVTabbedChatWindowController.m

    r3442 r3452  
    138138} 
    139139 
     140- (IBAction) openViewsDrawer:(id) sender { 
     141        [super openViewsDrawer:sender]; 
     142 
     143        if( [_activeViewController respondsToSelector:@selector( setPreference:forKey: )] ) 
     144                [(id)_activeViewController setPreference:[NSNumber numberWithBool:YES] forKey:@"expanded"]; 
     145} 
     146 
     147- (IBAction) closeViewsDrawer:(id) sender { 
     148        [super closeViewsDrawer:sender]; 
     149 
     150        if( [_activeViewController respondsToSelector:@selector( setPreference:forKey: )] ) 
     151                [(id)_activeViewController setPreference:[NSNumber numberWithBool:NO] forKey:@"expanded"]; 
     152} 
     153 
    140154#pragma mark - 
    141155 
     
    188202 
    189203                id controller = [(JVChatTabItem *)tabViewItem chatViewController]; 
    190                 if( [[self preferenceForKey:@"drawer open"] boolValue] && 
    191                         [controller respondsToSelector:@selector( numberOfChildren )] && [controller numberOfChildren] ) { 
    192                         [viewsDrawer open:nil]; 
    193                 } else if( ! [controller respondsToSelector:@selector( numberOfChildren )] ) [viewsDrawer close:nil]; 
     204                if( [controller respondsToSelector:@selector( preferenceForKey: )] && [controller preferenceForKey:@"expanded"] ) { 
     205                        BOOL expanded = [[controller preferenceForKey:@"expanded"] boolValue]; 
     206                        if( expanded ) [self openViewsDrawer:nil]; 
     207                        else [self closeViewsDrawer:nil]; 
     208                } 
    194209        } 
    195210} 
  • trunk/Panels/JVChatRoomPanel.m

    r3418 r3452  
    102102#pragma mark - 
    103103#pragma mark Chat View Protocol Support 
     104 
     105- (void) setWindowController:(JVChatWindowController *) controller { 
     106        [super setWindowController:controller]; 
     107        if( [[self preferenceForKey:@"expanded"] boolValue] ) 
     108                [controller performSelector:@selector( expandListItem: ) withObject:self afterDelay:0.]; 
     109} 
    104110 
    105111- (void) willDispose {