mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-09-02 08:53:37 +00:00
implemented CPCoding support for CPSortDescriptor and made CPTableColumn decode it's _sortDescriptorPrototype
This commit is contained in:
@@ -396,7 +396,8 @@ var CPTableColumnIdentifierKey = @"CPTableColumnIdentifierKey",
|
||||
CPTableColumnMinWidthKey = @"CPTableColumnMinWidthKey",
|
||||
CPTableColumnMaxWidthKey = @"CPTableColumnMaxWidthKey",
|
||||
CPTableColumnResizingMaskKey = @"CPTableColumnResizingMaskKey",
|
||||
CPTableColumnIsHiddenkey = @"CPTableColumnIsHiddenKey";
|
||||
CPTableColumnIsHiddenkey = @"CPTableColumnIsHiddenKey",
|
||||
CPSortDescriptorPrototypeKey = @"CPSortDescriptorPrototypeKey";
|
||||
|
||||
@implementation CPTableColumn (CPCoding)
|
||||
|
||||
@@ -419,6 +420,8 @@ var CPTableColumnIdentifierKey = @"CPTableColumnIdentifierKey",
|
||||
|
||||
_resizingMask = [aCoder decodeBoolForKey:CPTableColumnResizingMaskKey];
|
||||
_isHidden = [aCoder decodeBoolForKey:CPTableColumnIsHiddenkey];
|
||||
|
||||
_sortDescriptorPrototype = [aCoder decodeObjectForKey:CPSortDescriptorPrototypeKey];
|
||||
}
|
||||
|
||||
return self;
|
||||
@@ -437,6 +440,8 @@ var CPTableColumnIdentifierKey = @"CPTableColumnIdentifierKey",
|
||||
|
||||
[aCoder encodeObject:_resizingMask forKey:CPTableColumnResizingMaskKey];
|
||||
[aCoder encodeBool:_isHidden forKey:CPTableColumnIsHiddenkey];
|
||||
|
||||
[aCoder encodeObject:_sortDescriptorPrototype forKey:CPSortDescriptorPrototypeKey];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -149,3 +149,31 @@ CPOrderedDescending = 1;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
var CPSortDescriptorKeyKey = @"CPSortDescriptorKeyKey", // Don't you just love naming schemes ;)
|
||||
CPSortDescriptorAscendingKey = @"CPSortDescriptorAscendingKey",
|
||||
CPSortDescriptorSelectorKey = @"CPSortDescriptorSelectorKey";
|
||||
|
||||
@implementation CPSortDescriptor (CPCoding)
|
||||
|
||||
- (id)initWithCoder:(CPCoder)aCoder
|
||||
{
|
||||
if (self = [super init])
|
||||
{
|
||||
_key = [aCoder decodeObjectForKey:CPSortDescriptorKeyKey];
|
||||
_ascending = [aCoder decodeBoolForKey:CPSortDescriptorAscendingKey];
|
||||
_selector = CPSelectorFromString([aCoder decodeObjectForKey:CPSortDescriptorSelectorKey]);
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)encodeWithCoder:(CPCoder)aCoder
|
||||
{
|
||||
[aCoder encodeObject:_key forKey:CPSortDescriptorKeyKey];
|
||||
[aCoder encodeBool:_ascending forKey:CPSortDescriptorAscendingKey];
|
||||
[aCoder encodeObject:CPStringFromSelector(_selector) forKey:CPSortDescriptorSelectorKey];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@@ -67,6 +67,7 @@
|
||||
@import "NSViewController.j"
|
||||
@import "NSWindowTemplate.j"
|
||||
@import "WebView.j"
|
||||
@import "NSSortDescriptor.j"
|
||||
|
||||
|
||||
function CP_NSMapClassName(aClassName)
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
@import <Foundation/CPSortDescriptor.j>
|
||||
|
||||
@implementation CPSortDescriptor (NSCoding)
|
||||
{
|
||||
}
|
||||
|
||||
- (id)NS_initWithCoder:(CPCoder)aCoder
|
||||
{
|
||||
if (self = [super init])
|
||||
{
|
||||
_key = [aCoder decodeObjectForKey:@"NSKey"];
|
||||
_selector = CPSelectorFromString([aCoder decodeObjectForKey:@"NSSelector"]);
|
||||
_ascending = [aCoder decodeBoolForKey:@"NSAscending"];
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation NSSortDescriptor : CPSortDescriptor
|
||||
{
|
||||
}
|
||||
|
||||
- (id)initWithCoder:(CPCoder)aCoder
|
||||
{
|
||||
return [self NS_initWithCoder:aCoder];
|
||||
}
|
||||
|
||||
- (Class)classForKeyedArchiver
|
||||
{
|
||||
return [CPSortDescriptor class];
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -53,6 +53,8 @@
|
||||
|
||||
_resizingMask = [aCoder decodeBoolForKey:@"NSIsResizeable"] ? CPTableColumnUserResizingMask : CPTableColumnAutoresizingMask;
|
||||
_isHidden = [aCoder decodeBoolForKey:@"NSHidden"];
|
||||
|
||||
_sortDescriptorPrototype = [aCoder decodeObjectForKey:@"NSSortDescriptorPrototype"];
|
||||
}
|
||||
|
||||
return self;
|
||||
|
||||
Reference in New Issue
Block a user