adium-1.4 3146:aa035c692d84: Made user icon cache clearing more ...

commits at adium.im commits at adium.im
Thu Oct 28 05:18:36 UTC 2010


details:	http://hg.adium.im/adium-1.4/rev/aa035c692d84
revision:	3146:aa035c692d84
author:		Evan Schoenberg
date:		Wed Oct 27 23:02:52 2010 -0500

Made user icon cache clearing more aggressive, including clearing a metacontact's contained contacts when we're asked to flush. This decreases the chance of unneeded icon data hanging out in the cache.
Subject: adium-1.4 3147:fcd2987ad403: When a group is collapsed, clear the icon and listproxy data that is no longer needed. This is particularly noticeable when a huge group like a Twitter account's group is present

details:	http://hg.adium.im/adium-1.4/rev/fcd2987ad403
revision:	3147:fcd2987ad403
author:		Evan Schoenberg
date:		Wed Oct 27 23:21:27 2010 -0500

When a group is collapsed, clear the icon and listproxy data that is no longer needed. This is particularly noticeable when a huge group like a Twitter account's group is present
Subject: adium-1.4 3148:fd8580a8d4b9: Clear the caches when visibility goes to NO for objects

details:	http://hg.adium.im/adium-1.4/rev/fd8580a8d4b9
revision:	3148:fd8580a8d4b9
author:		Evan Schoenberg
date:		Wed Oct 27 23:45:04 2010 -0500

Clear the caches when visibility goes to NO for objects
Subject: adium-1.4 3149:c48b7a39bb4e: Added +[AIProxyListObject existingProxyListObjectForListObject:inListObject:]

details:	http://hg.adium.im/adium-1.4/rev/c48b7a39bb4e
revision:	3149:c48b7a39bb4e
author:		Evan Schoenberg
date:		Wed Oct 27 23:45:25 2010 -0500

Added +[AIProxyListObject existingProxyListObjectForListObject:inListObject:]
Subject: adium-1.4 3150:df642138c4c8: When clearing out cached data when a group is collapsed, use the visibleContainedObjects and existingProxyListObjectForListObject: to reduce the number of calls needed

details:	http://hg.adium.im/adium-1.4/rev/df642138c4c8
revision:	3150:df642138c4c8
author:		Evan Schoenberg
date:		Wed Oct 27 23:46:10 2010 -0500

When clearing out cached data when a group is collapsed, use the visibleContainedObjects and existingProxyListObjectForListObject: to reduce the number of calls needed
Subject: adium-1.4 3151:27d6dfcbae3c: Tweak the aggressiveness of cache clearing; my previous was too far removed from the previous behavior to be comfortable, and it could create an feedback loop

details:	http://hg.adium.im/adium-1.4/rev/27d6dfcbae3c
revision:	3151:27d6dfcbae3c
author:		Evan Schoenberg
date:		Wed Oct 27 23:47:14 2010 -0500

Tweak the aggressiveness of cache clearing; my previous was too far removed from the previous behavior to be comfortable, and it could create an feedback loop
Subject: adium-1.4 3152:34f41280ba95: When removing a proxy object, be tolerant of nil

details:	http://hg.adium.im/adium-1.4/rev/34f41280ba95
revision:	3152:34f41280ba95
author:		Evan Schoenberg
date:		Wed Oct 27 23:47:32 2010 -0500

When removing a proxy object, be tolerant of nil
Subject: adium-1.4 3153:d03d36d7cecb: Fix a potential garabage value usage and a leak of data sent in Bonjour file transfers

details:	http://hg.adium.im/adium-1.4/rev/d03d36d7cecb
revision:	3153:d03d36d7cecb
author:		Evan Schoenberg
date:		Wed Oct 27 23:48:06 2010 -0500

Fix a potential garabage value usage and a leak of data sent in Bonjour file transfers
Subject: adium-1.4 3154:49190c163b12: Fixed a few problems with Dutch localization nib spacing

details:	http://hg.adium.im/adium-1.4/rev/49190c163b12
revision:	3154:49190c163b12
author:		Evan Schoenberg
date:		Thu Oct 28 00:18:28 2010 -0500

Fixed a few problems with Dutch localization nib spacing

diffs (truncated from 4118 to 1000 lines):

diff -r 43baccb79d94 -r 49190c163b12 Frameworks/Adium Framework/Source/AIAbstractListController.m
--- a/Frameworks/Adium Framework/Source/AIAbstractListController.m	Tue Oct 26 22:16:09 2010 -0500
+++ b/Frameworks/Adium Framework/Source/AIAbstractListController.m	Thu Oct 28 00:18:28 2010 -0500
@@ -34,6 +34,7 @@
 #import <Adium/AIContactList.h>
 #import <Adium/AIListOutlineView.h>
 #import <Adium/AIMenuControllerProtocol.h>
+#import <Adium/AIUserIcons.h>
 #import <Adium/AIService.h>
 #import <AIUtilities/AIAutoScrollView.h>
 #import <AIUtilities/AIColorAdditions.h>
@@ -679,7 +680,18 @@
 - (void)outlineView:(NSOutlineView *)outlineView setExpandState:(BOOL)state ofItem:(AIProxyListObject *)item
 {
 	/* XXX Should note the combination of item and item's parent for expansion tracking */
-    [(id<AIContainingObject>)(item.listObject) setExpanded:state];
+	id<AIContainingObject> containingObject = item.listObject;
+    [containingObject setExpanded:state];
+
+	if (!state) {
+		/* If the item is collapsed, clear cached data which was being used while it was displayed */
+		for (AIListObject *listObject in (containingObject.visibleContainedObjects)) {
+			[AIUserIcons flushCacheForObject:listObject];
+			
+			[listObject removeProxyObject:[AIProxyListObject existingProxyListObjectForListObject:listObject
+																					 inListObject:containingObject]];
+		}
+	}
 }
 
 - (BOOL)outlineView:(NSOutlineView *)outlineView expandStateOfItem:(AIProxyListObject *)item
diff -r 43baccb79d94 -r 49190c163b12 Frameworks/Adium Framework/Source/AICachedUserIconSource.m
--- a/Frameworks/Adium Framework/Source/AICachedUserIconSource.m	Tue Oct 26 22:16:09 2010 -0500
+++ b/Frameworks/Adium Framework/Source/AICachedUserIconSource.m	Thu Oct 28 00:18:28 2010 -0500
@@ -14,6 +14,14 @@
 
 @implementation AICachedUserIconSource
 
++ (AICachedUserIconSource  *)sharedCachedUserIconSourceInstance
+{
+	if (!sharedCachedUserIconSourceInstance)
+		sharedCachedUserIconSourceInstance = [[self alloc] init];
+	
+	return sharedCachedUserIconSourceInstance;
+}
+
 /*!
  * @brief Retrieve the path at which to cache an AIListObject's image
  */
@@ -49,7 +57,8 @@
 																 error:NULL];
 		}
 		
-		[AIUserIcons userIconSource:sharedCachedUserIconSourceInstance didChangeForObject:inObject];
+		[AIUserIcons userIconSource:[self sharedCachedUserIconSourceInstance] 
+				 didChangeForObject:inObject];
 		
 		return success;
 	}
diff -r 43baccb79d94 -r 49190c163b12 Frameworks/Adium Framework/Source/AIListGroup.m
--- a/Frameworks/Adium Framework/Source/AIListGroup.m	Tue Oct 26 22:16:09 2010 -0500
+++ b/Frameworks/Adium Framework/Source/AIListGroup.m	Thu Oct 28 00:18:28 2010 -0500
@@ -21,6 +21,8 @@
 #import <Adium/AIContactList.h>
 #import <Adium/AIListContact.h>
 #import <Adium/AIContactHidingController.h>
+#import <Adium/AIProxyListObject.h>
+#import <Adium/AIUserIcons.h>
 
 #define PREF_GROUP_CONTACT_LIST_DISPLAY		@"Contact List Display"
 
@@ -99,13 +101,27 @@
 
 - (void) rebuildVisibleCache
 {
-	[_visibleObjects removeAllObjects];
+	NSMutableArray *oldVisibleObjects = _visibleObjects;
+	
+	_visibleObjects = [[NSMutableArray alloc] init];
 	for (AIListObject *obj in self)
 	{
 		if ([[AIContactHidingController sharedController] visibilityOfListObject:obj inContainer:self])
 			[_visibleObjects addObject:obj];
 	}
+
 	[self didModifyProperties:[NSSet setWithObjects:@"VisibleObjectCount", nil] silent:NO];
+
+	/* Obtain the array of only objects which were previously visible but now are not */
+	[oldVisibleObjects removeObjectsInArray:_visibleObjects];
+	
+	for (AIListObject *obj in oldVisibleObjects) {
+		/* For each object which was previously visible but now is not, it's cache clearing time. */
+		[obj removeProxyObject:[AIProxyListObject existingProxyListObjectForListObject:obj inListObject:self]];
+		[AIUserIcons flushCacheForObject:obj];
+	}
+
+	[oldVisibleObjects release];
 }
 
 - (NSSet *)updateListObject:(AIListObject *)inObject keys:(NSSet *)inModifiedKeys silent:(BOOL)silent
@@ -138,6 +154,11 @@
 			[adium.contactController sortListObject:inObject];
 			
 			modifiedProperties = [NSSet setWithObjects:@"VisibleObjectCount", nil];
+			
+			if (!shouldBeVisible) {
+				[inObject removeProxyObject:[AIProxyListObject existingProxyListObjectForListObject:inObject inListObject:self]];
+				[AIUserIcons flushCacheForObject:inObject];
+			}
 		}
 	}
 	
diff -r 43baccb79d94 -r 49190c163b12 Frameworks/Adium Framework/Source/AIProxyListObject.h
--- a/Frameworks/Adium Framework/Source/AIProxyListObject.h	Tue Oct 26 22:16:09 2010 -0500
+++ b/Frameworks/Adium Framework/Source/AIProxyListObject.h	Thu Oct 28 00:18:28 2010 -0500
@@ -38,6 +38,9 @@
 + (AIProxyListObject *)proxyListObjectForListObject:(ESObjectWithProperties *)inListObject
 									   inListObject:(ESObjectWithProperties<AIContainingObject> *)containingObject;
 
++ (AIProxyListObject *)existingProxyListObjectForListObject:(ESObjectWithProperties *)inListObject
+											   inListObject:(ESObjectWithProperties <AIContainingObject>*)inContainingObject;
+
 /*!
  * @biref Called by ESObjectWithProperties to release its proxy object.
  *
diff -r 43baccb79d94 -r 49190c163b12 Frameworks/Adium Framework/Source/AIProxyListObject.m
--- a/Frameworks/Adium Framework/Source/AIProxyListObject.m	Tue Oct 26 22:16:09 2010 -0500
+++ b/Frameworks/Adium Framework/Source/AIProxyListObject.m	Thu Oct 28 00:18:28 2010 -0500
@@ -26,6 +26,16 @@
 		proxyDict = [[NSMutableDictionary alloc] init];
 }
 
++ (AIProxyListObject *)existingProxyListObjectForListObject:(ESObjectWithProperties *)inListObject
+											   inListObject:(ESObjectWithProperties <AIContainingObject>*)inContainingObject
+{
+	NSString *key = (inContainingObject ? 
+					 [NSString stringWithFormat:@"%@-%@", inListObject.internalObjectID, inContainingObject.internalObjectID] :
+					 inListObject.internalObjectID);
+	
+	return [proxyDict objectForKey:key];
+}
+
 + (AIProxyListObject *)proxyListObjectForListObject:(ESObjectWithProperties *)inListObject
 									   inListObject:(ESObjectWithProperties <AIContainingObject>*)inContainingObject
 {
@@ -74,9 +84,9 @@
 	[proxyDict removeObjectForKey:proxyObject.key];
 }
 
-
 - (void)dealloc
 {
+	AILogWithSignature(@"%@", self);
 	self.listObject = nil;
 	self.key = nil;
 	self.cachedDisplayName = nil;
diff -r 43baccb79d94 -r 49190c163b12 Frameworks/Adium Framework/Source/AIUserIcons.m
--- a/Frameworks/Adium Framework/Source/AIUserIcons.m	Tue Oct 26 22:16:09 2010 -0500
+++ b/Frameworks/Adium Framework/Source/AIUserIcons.m	Thu Oct 28 00:18:28 2010 -0500
@@ -47,6 +47,8 @@
 @interface AIUserIcons ()
 + (void)updateAllIcons;
 + (void)updateUserIconForObject:(AIListObject *)inObject;
++ (void)flushCacheForObjectOnly:(AIListObject *)inObject;
++ (void)flushCacheForObjectAndParentOnly:(AIListObject *)inObject;
 @end
 
 @implementation AIUserIcons
@@ -169,26 +171,40 @@
 #ifdef AIUSERICON_DEBUG
 		AILogWithSignature(@"%@ provided icon for %@", inSource, inObject);
 #endif
-		[self flushCacheForObject:inObject];
+		[inUserIcon retain];
+		[self flushCacheForObjectAndParentOnly:inObject];
 
 		[iconCache setObject:inUserIcon forKey:internalObjectID];
 		[iconCacheOwners setObject:inSource forKey:internalObjectID];
+		[inUserIcon release];
 
-	} else if (!wasAsynchronous || ([self userIconSourceForObject:inObject] == inSource)) {
-		[self flushCacheForObject:inObject];
+	} else {
+		id <AIUserIconSource> source = [self userIconSourceForObject:inObject];
+		if (!wasAsynchronous || (source == inSource)) {
+			/* Either this was a synchronous lookup  (we must take action now to prevent an infinite loop of re-lookup)
+			 *  OR
+			 * this same source is handling the icon for the object, so its new lack an icon is an important change.
+			 */
+			if (source) {
+				/* We previously had an icon but no longer have one; need to flush.
+				 */
+				[self flushCacheForObjectAndParentOnly:inObject];
+			}
+			
+#ifdef AIUSERICON_DEBUG
+			AILogWithSignature(@"Source %@ got nothing for %@; current source is %@", inSource, inObject, [self userIconSourceForObject:inObject]);
+#endif
+			
+			[iconCache setObject:[NSNull null] forKey:internalObjectID];
+			[iconCacheOwners removeObjectForKey:internalObjectID];
 
+		} else {
 #ifdef AIUSERICON_DEBUG
-		AILogWithSignature(@"Source %@ got nothing for %@; current source is %@", inSource, inObject, [self userIconSourceForObject:inObject]);
+			AILogWithSignature(@"Source %@: Ignoring information on %@ for %@", inSource, inUserIcon, inObject);
 #endif
-
-		[iconCache setObject:[NSNull null] forKey:internalObjectID];
-		[iconCacheOwners removeObjectForKey:internalObjectID];
-	} else {
-#ifdef AIUSERICON_DEBUG
-		AILogWithSignature(@"Source %@: Ignoring information on %@ for %@", inSource, inUserIcon, inObject);
-#endif
+		}
 	}
-
+		
 	if (!isQueryingIconSources) {
 		/* We determined a user icon when we weren't in the middle of an update;
 		 * this means an asynchronous icon lookup was completed.
@@ -197,7 +213,19 @@
 		 */
 	}
 	
-	[self notifyOfChangedIconForObject:inObject];
+	/* Wait until the next run loop if this was a synchronous lookup;
+	 * if a metacontact's investigation of its icon by querying contained contacts
+	 * led to a contact's icon being determined, it is necessary to wait for it to receive the return value and
+	 * update the cache (by calling +[AIUserIcons setActualUserIcon:andSource:forObject:]) so that we don't notify
+	 * prematurely.  Notifying now would lead to a potential race condition in which the wrong icon could be flickered
+	 * onto the display or an infinite loop could occur.
+	 */
+	if (wasAsynchronous)
+		[self notifyOfChangedIconForObject:inObject];
+	else
+		[self performSelector:@selector(notifyOfChangedIconForObject:)
+				   withObject:inObject
+				   afterDelay:0];
 }
 
 /*!
@@ -331,6 +359,9 @@
 	if (!userIcon) {
 		[self updateUserIconForObject:inObject];
 		userIcon = [iconCache objectForKey:internalObjectID];
+#ifdef AIUSERICON_DEBUG
+		AILogWithSignature(@"%@ (Got icon? %i)",inObject, (userIcon!=nil));
+#endif		
 		if (!userIcon) {
 			[iconCache setObject:[NSNull null] forKey:internalObjectID];
 			[iconCacheOwners removeObjectForKey:internalObjectID];
@@ -354,7 +385,8 @@
 	if (userIcon && inSource) {
 		NSString	*internalObjectID = inObject.internalObjectID;
 		
-		[self flushCacheForObject:inObject];
+		[userIcon retain];
+		[self flushCacheForObjectOnly:inObject];
 
 #ifdef AIUSERICON_DEBUG
 		AILogWithSignature(@"%@ is using %@", inObject, inSource);
@@ -364,6 +396,7 @@
 					  forKey:internalObjectID];
 		[iconCacheOwners setObject:inSource
 							forKey:internalObjectID];
+		[userIcon release];
 	}
 }
 
@@ -388,9 +421,20 @@
 													flipImage:YES
 											   proportionally:YES
 											   allowAnimation:YES];
-		if (userIcon && cache) [listIconCache setObject:userIcon forKey:inObject.internalObjectID];
+#ifdef AIUSERICON_DEBUG
+		AILogWithSignature(@"%@ regenerated (cache? %i; listIconCache was %@)",inObject, cache, listIconCache);
+#endif
+		
+		if (cache) {
+			if (userIcon) 
+				[listIconCache setObject:userIcon forKey:inObject.internalObjectID];
+			else 
+				[listIconCache setObject:[NSNull null] forKey:inObject.internalObjectID];
+		}
 	}
 	
+	if ((id)userIcon == (id)[NSNull null]) userIcon = nil;
+
 	return userIcon;
 }
 
@@ -409,10 +453,19 @@
 	//Render the icon if it's not cached
 	if (!userIcon) {
 		userIcon = [[inObject userIcon] imageByScalingForMenuItem];
-		if (userIcon) [menuIconCache setObject:userIcon
-									   forKey:inObject.internalObjectID];
+		if (userIcon) {
+			[menuIconCache setObject:userIcon
+							  forKey:inObject.internalObjectID];
+		} else {
+			[menuIconCache setObject:[NSNull null] forKey:inObject.internalObjectID];
+		}
+#ifdef AIUSERICON_DEBUG
+		AILogWithSignature(@"%@",inObject);
+#endif
 	}
 
+	if ((id)userIcon == (id)[NSNull null]) userIcon = nil;
+
 	if(!userIcon)
 		userIcon = [AIServiceIcons serviceIconForObject:inObject
 												   type:AIServiceIconSmall
@@ -428,6 +481,9 @@
  */
 + (void)flushListUserIconCache
 {
+#ifdef AIUSERICON_DEBUG
+	AILogWithSignature(@"");
+#endif
 	[listIconCache removeAllObjects];
 }
 
@@ -443,6 +499,25 @@
 	}	
 }
 
++ (void)flushCacheForObjectOnly:(AIListObject *)inObject
+{
+	NSString *internalObjectID = inObject.internalObjectID;
+	[iconCache removeObjectForKey:internalObjectID];
+	[iconCacheOwners removeObjectForKey:internalObjectID];
+	
+	[listIconCache removeObjectForKey:internalObjectID];
+	[menuIconCache removeObjectForKey:internalObjectID];
+}
+
++ (void)flushCacheForObjectAndParentOnly:(AIListObject *)inObject
+{
+	[self flushCacheForObjectOnly:inObject];
+
+	AIListContact *parentContact = [(AIListContact *)inObject parentContact];
+	if (parentContact != inObject)
+		[self flushCacheForObjectOnly:parentContact];
+}
+
 /*!
  * @brief Clear the cache for a specific object
  */
@@ -451,19 +526,28 @@
 #ifdef AIUSERICON_DEBUG
 	AILogWithSignature(@"%@",inObject);
 #endif
+	if ([inObject isKindOfClass:[AIMetaContact class]]) {
+		/* If a metacontact is cleared, the contained contacts should be, too cleared;
+		 * one or more of their icons may no longer be needed depending on what the new preferredContact is
+		 * for the metaContact. */
 
-	NSString *internalObjectID = inObject.internalObjectID;
-	[iconCache removeObjectForKey:internalObjectID];
-	[iconCacheOwners removeObjectForKey:internalObjectID];
+		for (AIListObject *containedObject in [(AIMetaContact *)inObject containedObjects]) {
+			[self flushCacheForObjectOnly:containedObject];
+		}
+		
+		[self flushCacheForObjectOnly:inObject];
 
-	[listIconCache removeObjectForKey:internalObjectID];
-	[menuIconCache removeObjectForKey:internalObjectID];
-
-	/* If a contact within a metacontact is cleared, the metacontact itself should also be cleared. */
-	if ([inObject isKindOfClass:[AIListContact class]]) {
+	} else if ([inObject isKindOfClass:[AIListContact class]]) {
+		/* If a contact within a metacontact is cleared, the metacontact itself should also be cleared, as
+		 * it may be depending upon this contact.This will clear us, too.
+		 *
+		 * If we're not in a metacontact, parentContact returns self. */
+		
 		AIListContact *parentContact = [(AIListContact *)inObject parentContact];
 		if (parentContact != inObject) {
 			[self flushCacheForObject:parentContact];	
+		} else {
+			[self flushCacheForObjectOnly:inObject];
 		}
 	}
 }
diff -r 43baccb79d94 -r 49190c163b12 Frameworks/Adium Framework/Source/ESObjectWithProperties.m
--- a/Frameworks/Adium Framework/Source/ESObjectWithProperties.m	Tue Oct 26 22:16:09 2010 -0500
+++ b/Frameworks/Adium Framework/Source/ESObjectWithProperties.m	Thu Oct 28 00:18:28 2010 -0500
@@ -333,7 +333,10 @@
  */
 - (void)removeProxyObject:(id)proxyObject
 {
-	[proxyObjects removeObject:proxyObject];
+	if (proxyObject) {
+		[AIProxyListObject releaseProxyObject:proxyObject];
+		[proxyObjects removeObject:proxyObject];
+	}
 }
 
 @end
diff -r 43baccb79d94 -r 49190c163b12 Plugins/Bonjour/libezv/Classes/EKEzvOutgoingFileTransfer.m
--- a/Plugins/Bonjour/libezv/Classes/EKEzvOutgoingFileTransfer.m	Tue Oct 26 22:16:09 2010 -0500
+++ b/Plugins/Bonjour/libezv/Classes/EKEzvOutgoingFileTransfer.m	Thu Oct 28 00:18:28 2010 -0500
@@ -451,7 +451,7 @@
 	offset += nameLength;
 	unsigned long long newSize;
 	if ([self isDirectory]) {
-		newSize = [singleSize unsignedLongLongValue];
+		newSize = (singleSize ? [singleSize unsignedLongLongValue] : 0);
 	} else {
 		newSize = [self size];
 	}
@@ -477,7 +477,7 @@
 		data = [(NSString *)[urlData valueForKey:path] retain];
 		[urlData removeObjectForKey:path];
 	}
-	return data;
+	return [data autorelease];
 }
 
 - (NSString *)posixFlagsForPath:(NSString *)filePath
diff -r 43baccb79d94 -r 49190c163b12 Resources/nl.lproj/DualWindowMessageAdvanced.nib/designable.nib
--- a/Resources/nl.lproj/DualWindowMessageAdvanced.nib/designable.nib	Tue Oct 26 22:16:09 2010 -0500
+++ b/Resources/nl.lproj/DualWindowMessageAdvanced.nib/designable.nib	Thu Oct 28 00:18:28 2010 -0500
@@ -2,21 +2,24 @@
 <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
 	<data>
 		<int key="IBDocument.SystemTarget">1050</int>
-		<string key="IBDocument.SystemVersion">10B504</string>
-		<string key="IBDocument.InterfaceBuilderVersion">732</string>
-		<string key="IBDocument.AppKitVersion">1038.22</string>
-		<string key="IBDocument.HIToolboxVersion">457.00</string>
+		<string key="IBDocument.SystemVersion">10F569</string>
+		<string key="IBDocument.InterfaceBuilderVersion">804</string>
+		<string key="IBDocument.AppKitVersion">1038.29</string>
+		<string key="IBDocument.HIToolboxVersion">461.00</string>
 		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
 			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
-			<string key="NS.object.0">732</string>
+			<string key="NS.object.0">804</string>
 		</object>
 		<array class="NSMutableArray" key="IBDocument.EditedObjectIDs">
-			<integer value="144"/>
+			<integer value="6"/>
 		</array>
 		<array key="IBDocument.PluginDependencies">
 			<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 		</array>
-		<dictionary class="NSMutableDictionary" key="IBDocument.Metadata"/>
+		<object class="NSMutableDictionary" key="IBDocument.Metadata">
+			<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
+			<integer value="1" key="NS.object.0"/>
+		</object>
 		<array class="NSMutableArray" key="IBDocument.RootObjects" id="749913828">
 			<object class="NSCustomObject" id="458879311">
 				<string key="NSClassName">ESDualWindowMessageAdvancedPreferences</string>
@@ -34,7 +37,7 @@
 					<object class="NSButton" id="501551425">
 						<reference key="NSNextResponder" ref="684276185"/>
 						<int key="NSvFlags">268</int>
-						<string key="NSFrame">{{0, 116}, {160, 18}}</string>
+						<string key="NSFrame">{{2, 156}, {160, 18}}</string>
 						<reference key="NSSuperview" ref="684276185"/>
 						<bool key="NSEnabled">YES</bool>
 						<object class="NSButtonCell" key="NSCell" id="170696536">
@@ -65,7 +68,7 @@
 					<object class="NSBox" id="102668372">
 						<reference key="NSNextResponder" ref="684276185"/>
 						<int key="NSvFlags">266</int>
-						<string key="NSFrame">{{3, 137}, {325, 5}}</string>
+						<string key="NSFrame">{{5, 177}, {325, 5}}</string>
 						<reference key="NSSuperview" ref="684276185"/>
 						<string key="NSOffsets">{0, 0}</string>
 						<object class="NSTextFieldCell" key="NSTitleCell">
@@ -99,7 +102,7 @@
 					<object class="NSTextField" id="931381967">
 						<reference key="NSNextResponder" ref="684276185"/>
 						<int key="NSvFlags">268</int>
-						<string key="NSFrame">{{0, 139}, {344, 14}}</string>
+						<string key="NSFrame">{{2, 179}, {344, 14}}</string>
 						<reference key="NSSuperview" ref="684276185"/>
 						<bool key="NSEnabled">YES</bool>
 						<object class="NSTextFieldCell" key="NSCell" id="802721229">
@@ -118,7 +121,7 @@
 								<string key="NSColorName">controlColor</string>
 								<object class="NSColor" key="NSColor">
 									<int key="NSColorSpace">3</int>
-									<bytes key="NSWhite">MC42NjY2NjY2ODY1AA</bytes>
+									<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
 								</object>
 							</object>
 							<object class="NSColor" key="NSTextColor" id="487518786">
@@ -135,7 +138,7 @@
 					<object class="NSBox" id="615511167">
 						<reference key="NSNextResponder" ref="684276185"/>
 						<int key="NSvFlags">266</int>
-						<string key="NSFrame">{{3, 74}, {325, 5}}</string>
+						<string key="NSFrame">{{5, 114}, {325, 5}}</string>
 						<reference key="NSSuperview" ref="684276185"/>
 						<string key="NSOffsets">{0, 0}</string>
 						<object class="NSTextFieldCell" key="NSTitleCell">
@@ -157,7 +160,7 @@
 					<object class="NSTextField" id="439440325">
 						<reference key="NSNextResponder" ref="684276185"/>
 						<int key="NSvFlags">268</int>
-						<string key="NSFrame">{{0, 76}, {344, 14}}</string>
+						<string key="NSFrame">{{2, 116}, {344, 14}}</string>
 						<reference key="NSSuperview" ref="684276185"/>
 						<bool key="NSEnabled">YES</bool>
 						<object class="NSTextFieldCell" key="NSCell" id="325319321">
@@ -173,7 +176,7 @@
 					<object class="NSPopUpButton" id="869969110">
 						<reference key="NSNextResponder" ref="684276185"/>
 						<int key="NSvFlags">268</int>
-						<string key="NSFrame">{{158, 5}, {163, 22}}</string>
+						<string key="NSFrame">{{160, 45}, {163, 22}}</string>
 						<reference key="NSSuperview" ref="684276185"/>
 						<bool key="NSEnabled">YES</bool>
 						<object class="NSPopUpButtonCell" key="NSCell" id="367737096">
@@ -227,7 +230,7 @@
 					<object class="NSTextField" id="1016349117">
 						<reference key="NSNextResponder" ref="684276185"/>
 						<int key="NSvFlags">268</int>
-						<string key="NSFrame">{{0, 10}, {156, 14}}</string>
+						<string key="NSFrame">{{2, 50}, {156, 14}}</string>
 						<reference key="NSSuperview" ref="684276185"/>
 						<bool key="NSEnabled">YES</bool>
 						<object class="NSTextFieldCell" key="NSCell" id="801960573">
@@ -243,7 +246,7 @@
 					<object class="NSButton" id="695598467">
 						<reference key="NSNextResponder" ref="684276185"/>
 						<int key="NSvFlags">268</int>
-						<string key="NSFrame">{{0, 52}, {304, 18}}</string>
+						<string key="NSFrame">{{2, 92}, {304, 18}}</string>
 						<reference key="NSSuperview" ref="684276185"/>
 						<bool key="NSEnabled">YES</bool>
 						<object class="NSButtonCell" key="NSCell" id="1048614015">
@@ -262,32 +265,10 @@
 							<int key="NSPeriodicInterval">25</int>
 						</object>
 					</object>
-					<object class="NSButton" id="907132751">
-						<reference key="NSNextResponder" ref="684276185"/>
-						<int key="NSvFlags">268</int>
-						<string key="NSFrame">{{0, 96}, {261, 18}}</string>
-						<reference key="NSSuperview" ref="684276185"/>
-						<bool key="NSEnabled">YES</bool>
-						<object class="NSButtonCell" key="NSCell" id="407180442">
-							<int key="NSCellFlags">67239424</int>
-							<int key="NSCellFlags2">131072</int>
-							<string key="NSContents">Toon aantal niet-gelezen berichten in tabs</string>
-							<reference key="NSSupport" ref="26"/>
-							<reference key="NSControlView" ref="907132751"/>
-							<int key="NSButtonFlags">1211912703</int>
-							<int key="NSButtonFlags2">2</int>
-							<reference key="NSNormalImage" ref="426498367"/>
-							<reference key="NSAlternateImage" ref="214029560"/>
-							<string key="NSAlternateContents"/>
-							<string key="NSKeyEquivalent"/>
-							<int key="NSPeriodicDelay">200</int>
-							<int key="NSPeriodicInterval">25</int>
-						</object>
-					</object>
 					<object class="NSButton" id="71452218">
 						<reference key="NSNextResponder" ref="684276185"/>
 						<int key="NSvFlags">268</int>
-						<string key="NSFrame">{{0, 32}, {313, 18}}</string>
+						<string key="NSFrame">{{2, 72}, {313, 18}}</string>
 						<reference key="NSSuperview" ref="684276185"/>
 						<bool key="NSEnabled">YES</bool>
 						<object class="NSButtonCell" key="NSCell" id="377567175">
@@ -500,7 +481,7 @@
 										<object class="NSButton" id="187211061">
 											<reference key="NSNextResponder" ref="732100562"/>
 											<int key="NSvFlags">268</int>
-											<string key="NSFrame">{{16, 88}, {136, 18}}</string>
+											<string key="NSFrame">{{19, 88}, {136, 18}}</string>
 											<reference key="NSSuperview" ref="732100562"/>
 											<bool key="NSEnabled">YES</bool>
 											<object class="NSButtonCell" key="NSCell" id="357689999">
@@ -522,7 +503,7 @@
 										<object class="NSTextField" id="496435950">
 											<reference key="NSNextResponder" ref="732100562"/>
 											<int key="NSvFlags">268</int>
-											<string key="NSFrame">{{0, 68}, {151, 14}}</string>
+											<string key="NSFrame">{{3, 68}, {151, 14}}</string>
 											<reference key="NSSuperview" ref="732100562"/>
 											<bool key="NSEnabled">YES</bool>
 											<object class="NSTextFieldCell" key="NSCell" id="618144508">
@@ -538,7 +519,7 @@
 										<object class="NSTextField" id="856616330">
 											<reference key="NSNextResponder" ref="732100562"/>
 											<int key="NSvFlags">268</int>
-											<string key="NSFrame">{{0, 46}, {151, 14}}</string>
+											<string key="NSFrame">{{3, 46}, {151, 14}}</string>
 											<reference key="NSSuperview" ref="732100562"/>
 											<bool key="NSEnabled">YES</bool>
 											<object class="NSTextFieldCell" key="NSCell" id="92956597">
@@ -551,6 +532,28 @@
 												<reference key="NSTextColor" ref="487518786"/>
 											</object>
 										</object>
+										<object class="NSButton" id="1018222351">
+											<reference key="NSNextResponder" ref="732100562"/>
+											<int key="NSvFlags">268</int>
+											<string key="NSFrame">{{19, 15}, {261, 18}}</string>
+											<reference key="NSSuperview" ref="732100562"/>
+											<bool key="NSEnabled">YES</bool>
+											<object class="NSButtonCell" key="NSCell" id="404558100">
+												<int key="NSCellFlags">67239424</int>
+												<int key="NSCellFlags2">131072</int>
+												<string key="NSContents">Toon aantal niet-gelezen berichten in tabs</string>
+												<reference key="NSSupport" ref="26"/>
+												<reference key="NSControlView" ref="1018222351"/>
+												<int key="NSButtonFlags">1211912703</int>
+												<int key="NSButtonFlags2">2</int>
+												<reference key="NSNormalImage" ref="426498367"/>
+												<reference key="NSAlternateImage" ref="214029560"/>
+												<string key="NSAlternateContents"/>
+												<string key="NSKeyEquivalent"/>
+												<int key="NSPeriodicDelay">200</int>
+												<int key="NSPeriodicInterval">25</int>
+											</object>
+										</object>
 									</array>
 									<string key="NSFrame">{{10, 33}, {315, 107}}</string>
 									<reference key="NSSuperview" ref="933941904"/>
@@ -568,7 +571,7 @@
 										<object class="NSButton" id="979997882">
 											<reference key="NSNextResponder" ref="935875275"/>
 											<int key="NSvFlags">268</int>
-											<string key="NSFrame">{{14, 2}, {286, 18}}</string>
+											<string key="NSFrame">{{34, 3}, {286, 18}}</string>
 											<reference key="NSSuperview" ref="935875275"/>
 											<bool key="NSEnabled">YES</bool>
 											<object class="NSButtonCell" key="NSCell" id="823630721">
@@ -587,6 +590,82 @@
 												<int key="NSPeriodicInterval">25</int>
 											</object>
 										</object>
+										<object class="NSButton" id="151575702">
+											<reference key="NSNextResponder" ref="935875275"/>
+											<int key="NSvFlags">268</int>
+											<string key="NSFrame">{{19, 89}, {136, 18}}</string>
+											<reference key="NSSuperview" ref="935875275"/>
+											<bool key="NSEnabled">YES</bool>
+											<object class="NSButtonCell" key="NSCell" id="669352452">
+												<int key="NSCellFlags">67239424</int>
+												<int key="NSCellFlags2">131072</int>
+												<string key="NSContents">Ander formaat naam:</string>
+												<reference key="NSSupport" ref="26"/>
+												<reference key="NSControlView" ref="151575702"/>
+												<int key="NSButtonFlags">1211912703</int>
+												<int key="NSButtonFlags2">2</int>
+												<reference key="NSNormalImage" ref="426498367"/>
+												<reference key="NSAlternateImage" ref="214029560"/>
+												<string key="NSAlternateContents"/>
+												<string key="NSKeyEquivalent"/>
+												<int key="NSPeriodicDelay">200</int>
+												<int key="NSPeriodicInterval">25</int>
+											</object>
+										</object>
+										<object class="NSTextField" id="1037461074">
+											<reference key="NSNextResponder" ref="935875275"/>
+											<int key="NSvFlags">268</int>
+											<string key="NSFrame">{{3, 69}, {151, 14}}</string>
+											<reference key="NSSuperview" ref="935875275"/>
+											<bool key="NSEnabled">YES</bool>
+											<object class="NSTextFieldCell" key="NSCell" id="601465">
+												<int key="NSCellFlags">67239424</int>
+												<int key="NSCellFlags2">71303168</int>
+												<string key="NSContents">Opmaak tijdmarkering:</string>
+												<reference key="NSSupport" ref="26"/>
+												<reference key="NSControlView" ref="1037461074"/>
+												<reference key="NSBackgroundColor" ref="123382552"/>
+												<reference key="NSTextColor" ref="487518786"/>
+											</object>
+										</object>
+										<object class="NSTextField" id="75016505">
+											<reference key="NSNextResponder" ref="935875275"/>
+											<int key="NSvFlags">268</int>
+											<string key="NSFrame">{{3, 47}, {151, 14}}</string>
+											<reference key="NSSuperview" ref="935875275"/>
+											<bool key="NSEnabled">YES</bool>
+											<object class="NSTextFieldCell" key="NSCell" id="976256069">
+												<int key="NSCellFlags">67239424</int>
+												<int key="NSCellFlags2">71303168</int>
+												<string key="NSContents">Minimum lettergrootte:</string>
+												<reference key="NSSupport" ref="26"/>
+												<reference key="NSControlView" ref="75016505"/>
+												<reference key="NSBackgroundColor" ref="123382552"/>
+												<reference key="NSTextColor" ref="487518786"/>
+											</object>
+										</object>
+										<object class="NSButton" id="907132751">
+											<reference key="NSNextResponder" ref="935875275"/>
+											<int key="NSvFlags">268</int>
+											<string key="NSFrame">{{19, 23}, {261, 18}}</string>
+											<reference key="NSSuperview" ref="935875275"/>
+											<bool key="NSEnabled">YES</bool>
+											<object class="NSButtonCell" key="NSCell" id="407180442">
+												<int key="NSCellFlags">67239424</int>
+												<int key="NSCellFlags2">131072</int>
+												<string key="NSContents">Toon aantal niet-gelezen berichten in tabs</string>
+												<reference key="NSSupport" ref="26"/>
+												<reference key="NSControlView" ref="907132751"/>
+												<int key="NSButtonFlags">1211912703</int>
+												<int key="NSButtonFlags2">2</int>
+												<reference key="NSNormalImage" ref="426498367"/>
+												<reference key="NSAlternateImage" ref="214029560"/>
+												<string key="NSAlternateContents"/>
+												<string key="NSKeyEquivalent"/>
+												<int key="NSPeriodicDelay">200</int>
+												<int key="NSPeriodicInterval">25</int>
+											</object>
+										</object>
 									</array>
 									<string key="NSFrame">{{10, 33}, {315, 107}}</string>
 								</object>
@@ -825,6 +904,22 @@
 					</object>
 					<int key="connectionID">210</int>
 				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">changePreference:</string>
+						<reference key="source" ref="458879311"/>
+						<reference key="destination" ref="151575702"/>
+					</object>
+					<int key="connectionID">234</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">changePreference:</string>
+						<reference key="source" ref="458879311"/>
+						<reference key="destination" ref="1018222351"/>
+					</object>
+					<int key="connectionID">237</int>
+				</object>
 			</array>
 			<object class="IBMutableOrderedSet" key="objectRecords">
 				<array key="orderedObjects">
@@ -856,20 +951,19 @@
 						<int key="objectID">6</int>
 						<reference key="object" ref="684276185"/>
 						<array class="NSMutableArray" key="children">
-							<reference ref="501551425"/>
-							<reference ref="102668372"/>
-							<reference ref="931381967"/>
-							<reference ref="615511167"/>
-							<reference ref="439440325"/>
-							<reference ref="869969110"/>
-							<reference ref="1016349117"/>
-							<reference ref="695598467"/>
-							<reference ref="907132751"/>
-							<reference ref="71452218"/>
 							<reference ref="933941904"/>
 							<reference ref="321287921"/>
 							<reference ref="848760528"/>
 							<reference ref="605835708"/>
+							<reference ref="71452218"/>
+							<reference ref="695598467"/>
+							<reference ref="1016349117"/>
+							<reference ref="869969110"/>
+							<reference ref="439440325"/>
+							<reference ref="615511167"/>
+							<reference ref="931381967"/>
+							<reference ref="102668372"/>
+							<reference ref="501551425"/>
 						</array>
 						<reference key="parent" ref="0"/>
 						<string key="objectName">Messages</string>
@@ -957,14 +1051,6 @@
 						<reference key="parent" ref="684276185"/>
 					</object>
 					<object class="IBObjectRecord">
-						<int key="objectID">95</int>
-						<reference key="object" ref="907132751"/>
-						<array class="NSMutableArray" key="children">
-							<reference ref="407180442"/>
-						</array>
-						<reference key="parent" ref="684276185"/>
-					</object>
-					<object class="IBObjectRecord">
 						<int key="objectID">119</int>
 						<reference key="object" ref="71452218"/>
 						<array class="NSMutableArray" key="children">
@@ -993,9 +1079,10 @@
 						<int key="objectID">144</int>
 						<reference key="object" ref="732100562"/>
 						<array class="NSMutableArray" key="children">
+							<reference ref="187211061"/>
+							<reference ref="496435950"/>
 							<reference ref="856616330"/>
-							<reference ref="496435950"/>
-							<reference ref="187211061"/>
+							<reference ref="1018222351"/>
 						</array>
 						<reference key="parent" ref="347716867"/>
 					</object>
@@ -1011,19 +1098,15 @@
 						<int key="objectID">143</int>
 						<reference key="object" ref="935875275"/>
 						<array class="NSMutableArray" key="children">
+							<reference ref="151575702"/>
+							<reference ref="1037461074"/>
+							<reference ref="75016505"/>
+							<reference ref="907132751"/>
 							<reference ref="979997882"/>
 						</array>
 						<reference key="parent" ref="715450966"/>
 					</object>
 					<object class="IBObjectRecord">
-						<int key="objectID">207</int>
-						<reference key="object" ref="979997882"/>
-						<array class="NSMutableArray" key="children">
-							<reference ref="823630721"/>
-						</array>
-						<reference key="parent" ref="935875275"/>
-					</object>
-					<object class="IBObjectRecord">
 						<int key="objectID">167</int>
 						<reference key="object" ref="321287921"/>
 						<array class="NSMutableArray" key="children">
@@ -1081,21 +1164,11 @@
 						<reference key="parent" ref="695598467"/>
 					</object>
 					<object class="IBObjectRecord">
-						<int key="objectID">219</int>
-						<reference key="object" ref="407180442"/>
-						<reference key="parent" ref="907132751"/>
-					</object>
-					<object class="IBObjectRecord">
 						<int key="objectID">220</int>
 						<reference key="object" ref="377567175"/>
 						<reference key="parent" ref="71452218"/>
 					</object>
 					<object class="IBObjectRecord">
-						<int key="objectID">221</int>
-						<reference key="object" ref="823630721"/>
-						<reference key="parent" ref="979997882"/>
-					</object>
-					<object class="IBObjectRecord">
 						<int key="objectID">223</int>
 						<reference key="object" ref="81862121"/>
 						<array class="NSMutableArray" key="children">
@@ -1228,6 +1301,84 @@
 						<reference key="object" ref="92956597"/>
 						<reference key="parent" ref="856616330"/>
 					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">228</int>
+						<reference key="object" ref="151575702"/>
+						<array class="NSMutableArray" key="children">
+							<reference ref="669352452"/>
+						</array>
+						<reference key="parent" ref="935875275"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">229</int>
+						<reference key="object" ref="1037461074"/>
+						<array class="NSMutableArray" key="children">
+							<reference ref="601465"/>
+						</array>
+						<reference key="parent" ref="935875275"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">230</int>
+						<reference key="object" ref="75016505"/>
+						<array class="NSMutableArray" key="children">
+							<reference ref="976256069"/>
+						</array>
+						<reference key="parent" ref="935875275"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">231</int>
+						<reference key="object" ref="976256069"/>
+						<reference key="parent" ref="75016505"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">232</int>
+						<reference key="object" ref="601465"/>
+						<reference key="parent" ref="1037461074"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">233</int>
+						<reference key="object" ref="669352452"/>
+						<reference key="parent" ref="151575702"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">207</int>
+						<reference key="object" ref="979997882"/>
+						<array class="NSMutableArray" key="children">
+							<reference ref="823630721"/>
+						</array>
+						<reference key="parent" ref="935875275"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">221</int>
+						<reference key="object" ref="823630721"/>
+						<reference key="parent" ref="979997882"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">95</int>
+						<reference key="object" ref="907132751"/>
+						<array class="NSMutableArray" key="children">
+							<reference ref="407180442"/>
+						</array>
+						<reference key="parent" ref="935875275"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">219</int>
+						<reference key="object" ref="407180442"/>
+						<reference key="parent" ref="907132751"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">235</int>
+						<reference key="object" ref="1018222351"/>
+						<array class="NSMutableArray" key="children">
+							<reference ref="404558100"/>
+						</array>
+						<reference key="parent" ref="732100562"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">236</int>
+						<reference key="object" ref="404558100"/>
+						<reference key="parent" ref="1018222351"/>
+					</object>
 				</array>
 			</object>
 			<dictionary class="NSMutableDictionary" key="flattenedProperties">
@@ -1235,6 +1386,9 @@
 				<boolean value="YES" key="-3.ImportedFromIB2"/>
 				<string key="119.CustomClassName">AILocalizationButton</string>
 				<string key="119.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+				<object class="NSAffineTransform" key="119.IBViewBoundsToFrameTransform">
+					<bytes key="NSTransformStruct">P4AAAL+AAAAAAAAAwkAAAA</bytes>
+				</object>
 				<boolean value="YES" key="119.ImportedFromIB2"/>
 				<string key="140.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
 				<boolean value="YES" key="140.ImportedFromIB2"/>
@@ -1247,6 +1401,9 @@
 				<string key="144.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
 				<boolean value="YES" key="144.ImportedFromIB2"/>
 				<string key="166.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+				<object class="NSAffineTransform" key="166.IBViewBoundsToFrameTransform">
+					<bytes key="NSTransformStruct">P4AAAL+AAABBgAAAwtAAAA</bytes>
+				</object>
 				<boolean value="YES" key="166.ImportedFromIB2"/>
 				<string key="167.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
 				<boolean value="YES" key="167.ImportedFromIB2"/>
@@ -1255,8 +1412,14 @@
 				<string key="169.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
 				<boolean value="YES" key="169.ImportedFromIB2"/>
 				<string key="170.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+				<object class="NSAffineTransform" key="170.IBViewBoundsToFrameTransform">
+					<bytes key="NSTransformStruct">P4AAAL+AAAAAAAAAwqAAAA</bytes>
+				</object>
 				<boolean value="YES" key="170.ImportedFromIB2"/>
 				<string key="171.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+				<object class="NSAffineTransform" key="171.IBViewBoundsToFrameTransform">
+					<bytes key="NSTransformStruct">P4AAAL+AAABAQAAAwmgAAA</bytes>
+				</object>
 				<boolean value="YES" key="171.ImportedFromIB2"/>
 				<string key="175.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
 				<boolean value="YES" key="175.ImportedFromIB2"/>
@@ -1277,6 +1440,9 @@
 				<string key="185.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
 				<boolean value="YES" key="185.ImportedFromIB2"/>
 				<string key="207.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+				<object class="NSAffineTransform" key="207.IBViewBoundsToFrameTransform">
+					<bytes key="NSTransformStruct">P4AAAL+AAABBYAAAwZAAAA</bytes>
+				</object>
 				<boolean value="YES" key="207.ImportedFromIB2"/>
 				<string key="213.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
 				<string key="214.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -1293,44 +1459,95 @@
 				<string key="225.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
 				<string key="226.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
 				<string key="227.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+				<string key="228.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+				<object class="NSAffineTransform" key="228.IBViewBoundsToFrameTransform">
+					<bytes key="NSTransformStruct">P4AAAL+AAABBIAAAwtIAAA</bytes>
+				</object>
+				<boolean value="YES" key="228.ImportedFromIB2"/>
+				<string key="229.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+				<object class="NSAffineTransform" key="229.IBViewBoundsToFrameTransform">
+					<bytes key="NSTransformStruct">P4AAAL+AAADAwAAAwqIAAA</bytes>
+				</object>
+				<boolean value="YES" key="229.ImportedFromIB2"/>
+				<string key="230.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+				<object class="NSAffineTransform" key="230.IBViewBoundsToFrameTransform">
+					<bytes key="NSTransformStruct">P4AAAL+AAADAwAAAwmwAAA</bytes>
+				</object>
+				<boolean value="YES" key="230.ImportedFromIB2"/>
+				<string key="231.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+				<string key="232.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+				<string key="233.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>



More information about the commits mailing list