diff --git a/ChangeLog b/ChangeLog index 70bf02d7e..24108235a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2006-08-13 16:18-EDT Gregory John Casamento + + * Source/NSCell.m: Conditionally encode the formatter in + encodeWithCoder:. + * Source/NSMenu.m: Change in encodeWithCoder: to add NSName to the + menu with "_NSMainMenu" as the value so that IB will display the menu + properly when loading. + * Source/NSTableView.m: Conditionally encode datasource, delegate, + target and action in encodeWithCoder: + 2006-08-13 13:05-EDT Gregory John Casamento * Source/NSControl.m: Rolling back previous change to mouseDown: diff --git a/Source/NSCell.m b/Source/NSCell.m index 516e503b1..4a46ef730 100644 --- a/Source/NSCell.m +++ b/Source/NSCell.m @@ -2215,7 +2215,11 @@ static NSColor *shadowCol; // font and formatter. [aCoder encodeObject: [self font] forKey: @"NSSupport"]; - [aCoder encodeObject: [self formatter] forKey: @"NSFormatter"]; + + if([self formatter]) + { + [aCoder encodeObject: [self formatter] forKey: @"NSFormatter"]; + } } else { diff --git a/Source/NSMenu.m b/Source/NSMenu.m index 0cb8c2389..64ee5dc0f 100644 --- a/Source/NSMenu.m +++ b/Source/NSMenu.m @@ -1217,6 +1217,12 @@ static NSNotificationCenter *nc; { [encoder encodeObject: _title forKey: @"NSTitle"]; [encoder encodeObject: _items forKey: @"NSMenuItems"]; + + // if there is no supermenu, make it the main menu. + if([self supermenu] == nil) + { + [encoder encodeObject: @"_NSMainMenu" forKey: @"NSName"]; + } } else { diff --git a/Source/NSTableView.m b/Source/NSTableView.m index e07536037..ed3df2bd8 100644 --- a/Source/NSTableView.m +++ b/Source/NSTableView.m @@ -5129,18 +5129,39 @@ static inline float computePeriod(NSPoint mouseLocationWin, // make sure the corner view is properly encoded... [super encodeWithCoder: aCoder]; - [aCoder encodeObject: [self dataSource] forKey: @"NSDataSource"]; - [aCoder encodeObject: [self delegate] forKey: @"NSDelegate"]; - [aCoder encodeObject: [self target] forKey: @"NSTarget"]; - [aCoder encodeObject: NSStringFromSelector([self action]) forKey: @"NSAction"]; + + if([self dataSource]) + { + [aCoder encodeObject: [self dataSource] forKey: @"NSDataSource"]; + } + if([self delegate]) + { + [aCoder encodeObject: [self delegate] forKey: @"NSDelegate"]; + } + if([self target]) + { + [aCoder encodeObject: [self target] forKey: @"NSTarget"]; + } + if([self action]) + { + [aCoder encodeObject: NSStringFromSelector([self action]) forKey: @"NSAction"]; + } + [aCoder encodeObject: [self backgroundColor] forKey: @"NSBackgroundColor"]; [aCoder encodeObject: [self gridColor] forKey: @"NSGridColor"]; [aCoder encodeFloat: intercellSpacing.height forKey: @"NSIntercellSpacingHeight"]; [aCoder encodeFloat: intercellSpacing.width forKey: @"NSIntercellSpacingWidth"]; [aCoder encodeFloat: [self rowHeight] forKey: @"NSRowHeight"]; [aCoder encodeObject: [self tableColumns] forKey: @"NSTableColumns"]; - [aCoder encodeObject: _headerView forKey: @"NSHeaderView"]; - [aCoder encodeObject: _cornerView forKey: @"NSCornerView"]; + + if(_headerView) + { + [aCoder encodeObject: _headerView forKey: @"NSHeaderView"]; + } + if(_cornerView) + { + [aCoder encodeObject: _cornerView forKey: @"NSCornerView"]; + } tableViewFlags.columnSelection = [self allowsColumnSelection]; tableViewFlags.multipleSelection = [self allowsMultipleSelection];