From b8dacb1ffa6cfe507f5bd480c960f2443781fa69 Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Fri, 10 Feb 2012 19:57:00 +0000 Subject: [PATCH] Fixed with nib2cib: toolbars with default items such as NSToolbarShowColorsItem didn't convert right. --- Tools/nib2cib/NSToolbar.j | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/Tools/nib2cib/NSToolbar.j b/Tools/nib2cib/NSToolbar.j index ee0da8838..19fe08664 100644 --- a/Tools/nib2cib/NSToolbar.j +++ b/Tools/nib2cib/NSToolbar.j @@ -22,6 +22,8 @@ @import +// NS_CPToolbarItemIdentifierMap +@import "NSToolbarItem.j" @implementation CPToolbar (NSCoding) @@ -35,7 +37,20 @@ _allowsUserCustomization = [aCoder decodeBoolForKey:"NSToolbarAllowsUserCustomization"]; _isVisible = [aCoder decodeBoolForKey:"NSToolbarPrefersToBeShown"]; - _identifiedItems = [aCoder decodeObjectForKey:"NSToolbarIBIdentifiedItems"]; + _identifiedItems = [CPMutableDictionary dictionary]; + + var nsIdentifiedItems = [aCoder decodeObjectForKey:"NSToolbarIBIdentifiedItems"], + key = nil, + keyEnumerator = [nsIdentifiedItems keyEnumerator]; + + // Some of the item identifiers will be changed when loaded by NSToolbarItem, so we must change + // the map to correspond. + while (key = [keyEnumerator nextObject]) + { + var transformedKey = NS_CPToolbarItemIdentifierMap[key] || key; + [_identifiedItems setObject:[nsIdentifiedItems objectForKey:key] forKey:transformedKey]; + } + _defaultItems = [aCoder decodeObjectForKey:"NSToolbarIBDefaultItems"]; _allowedItems = [aCoder decodeObjectForKey:"NSToolbarIBAllowedItems"]; _selectableItems = [aCoder decodeObjectForKey:"NSToolbarIBSelectableItems"];