adium 4970:934acd721831: Add shortcuts for boolean properties ba...

commits at adium.im commits at adium.im
Wed Aug 8 14:24:14 UTC 2012


details:	http://hg.adium.im/adium/rev/934acd721831
revision:	4970:934acd721831
branch:		(none)
author:		Thijs Alkemade <thijsalkemade at gmail.com>
date:		Wed Aug 08 16:21:21 2012 +0200

Add shortcuts for boolean properties back to ESObjectWithProperties, thanks to Catfish_Man.

This should help speed up things like sorting the contact list.
Subject: adium 4971:d899ccda08c8: Merged adium-1.6 into default.

details:	http://hg.adium.im/adium/rev/d899ccda08c8
revision:	4971:d899ccda08c8
branch:		(none)
author:		Thijs Alkemade <thijsalkemade at gmail.com>
date:		Wed Aug 08 16:24:04 2012 +0200

Merged adium-1.6 into default.

diffs (447 lines):

diff -r 5dbed3571369 -r d899ccda08c8 ChangeLogs/Changes.txt
--- a/ChangeLogs/Changes.txt	Tue Aug 07 13:05:53 2012 -0500
+++ b/ChangeLogs/Changes.txt	Wed Aug 08 16:24:04 2012 +0200
@@ -1,11 +1,16 @@
 				Adium Version History
 				-----------------------
-Version 1.5.3 (XX/XX/XXXX)
+Version 1.5.3 (8/XX/2012)
+ * Fixed another problem with the transcript viewer causing search to fail when closing and reopening the window. (#13586, #15699)
+ * Fixed a problem with iTunes 10.6.3 on Mac OS X 10.6.8 causing the chat window's toolbar to break. (#16046)
+ * Fixed crash at startup that was meant to be fixed in 1.5.2. (#15787)
+ * Fixed a crash when receiving invalid XML on 10.8. (#16095)
+ * Fixed an issue that caused logging in to Facebook to fail when login approvals are enabled. (#15705)
  * Icons set for group chat bookmarks will now show up on the tab bar in the chat window. (Andreas Marienborg) (#14484)
- * Fixed another problem with the transcript viewer causing search to fail when closing and reopening the window. (#13586)
- * Fixed an issue that caused logging in to Facebook to fail when login approvals are enabled. (#15705)
- * Fixed a problem with iTunes 10.6.3 on Mac OS X 10.6.8 causing the chat window's toolbar to break. (#16046)
+ * Fixed tables not being declared as such via VoiceOver. (Marco Zehe) (#16085)
  * Fixed a problem with emoticons scaling disproportionately in the yMous message style when using OS X 10.8.
+ * Improved memory use slightly.
+
 
 Version 1.5.2 (7/21/2012)
  * Fixed an issue where the log indexer would never finish.
diff -r 5dbed3571369 -r d899ccda08c8 Copyright.txt
--- a/Copyright.txt	Tue Aug 07 13:05:53 2012 -0500
+++ b/Copyright.txt	Wed Aug 08 16:24:04 2012 +0200
@@ -118,6 +118,7 @@
 Jay Weatherstone
 Robby Weinberg
 Ofri Wolfus
+Marco Zehe
 Albert Zeyer
 
 If you have contributed to Adium and are not on this list, please contact us.
diff -r 5dbed3571369 -r d899ccda08c8 Frameworks/Adium Framework/Source/AIAccount.h
--- a/Frameworks/Adium Framework/Source/AIAccount.h	Tue Aug 07 13:05:53 2012 -0500
+++ b/Frameworks/Adium Framework/Source/AIAccount.h	Wed Aug 08 16:24:04 2012 +0200
@@ -186,11 +186,17 @@
 	NSString				*formattedUID;
 	
 	AIStatus				*accountStatus;
+	BOOL					isConnecting;
 	NSDate					*waitingToReconnect;
+	BOOL					isDisconnecting;
+	
+	BOOL					isWaitingForNetwork;
 	
 	NSInteger				connectionProgressPercent;
 	NSString				*connectionProgressString;
 	
+	BOOL					mustPromptForPasswordOnNextConnect;
+	
 	NSString				*currentDisplayName;
 }
 
diff -r 5dbed3571369 -r d899ccda08c8 Frameworks/Adium Framework/Source/AIAuthorizationRequestsWindowController.m
--- a/Frameworks/Adium Framework/Source/AIAuthorizationRequestsWindowController.m	Tue Aug 07 13:05:53 2012 -0500
+++ b/Frameworks/Adium Framework/Source/AIAuthorizationRequestsWindowController.m	Wed Aug 08 16:24:04 2012 +0200
@@ -108,7 +108,7 @@
 											   object:self.window];
 	
 	[tableView accessibilitySetOverrideValue:AILocalizedString(@"Authorization Requests", nil)
-								forAttribute:NSAccessibilityRoleDescriptionAttribute];
+								forAttribute:NSAccessibilityTitleAttribute];
 	[tableView selectRowIndexes:[NSIndexSet indexSetWithIndex:0] byExtendingSelection:NO];
 	
 	[self.window setTitle:AUTHORIZATION_REQUESTS];
diff -r 5dbed3571369 -r d899ccda08c8 Frameworks/Adium Framework/Source/AIChat.h
--- a/Frameworks/Adium Framework/Source/AIChat.h	Tue Aug 07 13:05:53 2012 -0500
+++ b/Frameworks/Adium Framework/Source/AIChat.h	Wed Aug 08 16:24:04 2012 +0200
@@ -133,6 +133,8 @@
 	
 	NSDictionary		*chatCreationInfo;
 	
+	BOOL				accountJoined;
+	
 	NSInteger			unviewedMention;
 	NSInteger			unviewedContent;
 	
@@ -142,6 +144,8 @@
 	
 	NSDictionary		*securityDetails;
 	
+	BOOL				secureMessagingLastEncryptedState;
+	
 	NSString			*topic;
     AIListContact		*topicSetter;
 }
diff -r 5dbed3571369 -r d899ccda08c8 Frameworks/Adium Framework/Source/AIChat.m
--- a/Frameworks/Adium Framework/Source/AIChat.m	Tue Aug 07 13:05:53 2012 -0500
+++ b/Frameworks/Adium Framework/Source/AIChat.m	Wed Aug 08 16:24:04 2012 +0200
@@ -120,6 +120,7 @@
     [chatCreationInfo release]; chatCreationInfo = nil;
     [enteredTextTimer release]; enteredTextTimer = nil;
     [securityDetails release]; securityDetails = nil;
+	[lastMessageDate release]; lastMessageDate = nil;
 	
 	[super dealloc];
 }
diff -r 5dbed3571369 -r d899ccda08c8 Frameworks/Adium Framework/Source/AIListContact.h
--- a/Frameworks/Adium Framework/Source/AIListContact.h	Tue Aug 07 13:05:53 2012 -0500
+++ b/Frameworks/Adium Framework/Source/AIListContact.h	Wed Aug 08 16:24:04 2012 +0200
@@ -34,17 +34,26 @@
 	NSColor			*labelColor;
 	
 	NSNumber		*imageOpacity;
+	BOOL			isEvent;
 	
 	NSString		*ABUniqueID;
 	
 	NSAttributedString	*textProfile;
 	
+	BOOL			isBlocked;
+	BOOL			isIdle;
 	NSInteger		idle;
 	NSDate			*idleSince;
 	NSString		*idleReadable;
 	
+	BOOL			notAStranger;
+	BOOL			isMobile;
+	
 	NSString		*serverDisplayName;
 	NSString		*formattedUID;
+	
+	BOOL			signedOff;
+	BOOL			signedOn;
 }
 
 - (id)initWithUID:(NSString *)inUID account:(AIAccount *)inAccount service:(AIService *)inService;
diff -r 5dbed3571369 -r d899ccda08c8 Frameworks/Adium Framework/Source/AIListObject.h
--- a/Frameworks/Adium Framework/Source/AIListObject.h	Tue Aug 07 13:05:53 2012 -0500
+++ b/Frameworks/Adium Framework/Source/AIListObject.h	Wed Aug 08 16:24:04 2012 +0200
@@ -102,6 +102,9 @@
 	NSImage				*listStateIcon;
 	NSImage				*listStatusIcon;
 	
+	BOOL				isOnline;
+	BOOL				alwaysVisible;
+	
 	NSInteger			unviewedContent;
 	NSInteger			unviewedMention;
 	
diff -r 5dbed3571369 -r d899ccda08c8 Frameworks/Adium Framework/Source/ESObjectWithProperties.m
--- a/Frameworks/Adium Framework/Source/ESObjectWithProperties.m	Tue Aug 07 13:05:53 2012 -0500
+++ b/Frameworks/Adium Framework/Source/ESObjectWithProperties.m	Wed Aug 08 16:24:04 2012 +0200
@@ -79,8 +79,14 @@
     }
         
     [self willChangeValueForKey:key];
-    	
-	Ivar ivar = class_getInstanceVariable([self class], [key UTF8String]);
+	
+	char property_name[256];
+	
+	NSAssert([key length] < 256, @"Too long property!");
+	
+	[key getCString:property_name maxLength:32 encoding:NSUTF8StringEncoding];
+	
+	Ivar ivar = class_getInstanceVariable([self class], property_name);
 	
 	// fall back to the dictionary
 	if (ivar == NULL) {
@@ -107,16 +113,16 @@
 			
 		} else if (strcmp(ivarType, @encode(NSInteger)) == 0) {
 			
-			NSInteger iValue;
+			NSInteger *idx = (NSInteger*)((char *)self + ivar_getOffset(ivar));
+			NSInteger iValue = [value integerValue];
 			
-			if (value) {
-				iValue = [value integerValue];
-			} else {
-				iValue = 0;
-			}
+			*idx = iValue;
+		} else if (strcmp(ivarType, @encode(BOOL)) == 0) {
 			
-			object_setIvar(self, ivar, (void *)iValue);
+			BOOL *idx = (BOOL*)((char *)self + ivar_getOffset(ivar));
+			BOOL iValue = [value boolValue];
 			
+			*idx = iValue;
 		}
 	}
     
@@ -202,7 +208,13 @@
 	id ret = nil;
 	id value = nil;
 	
-	Ivar ivar = object_getInstanceVariable(self, [key UTF8String], (void **)&value);
+	char property_name[256];
+	
+	NSAssert([key length] < 256, @"Too long property!");
+	
+	[key getCString:property_name maxLength:32 encoding:NSUTF8StringEncoding];
+	
+	Ivar ivar = object_getInstanceVariable(self, property_name, (void **)&value);
 	
 	if (ivar == NULL) {
 		
@@ -218,6 +230,9 @@
 		// attempt to wrap it, if we know how
 		if (strcmp(ivarType, @encode(NSInteger)) == 0) {
 			ret = [[[NSNumber alloc] initWithInteger:(NSInteger)value] autorelease];
+		} else if (strcmp(ivarType, @encode(BOOL)) == 0) {
+			BOOL *idx = (BOOL*)((char *)self + ivar_getOffset(ivar));
+			ret = [NSNumber numberWithBool:*idx];
 		} else if (ivarType[0] != _C_ID) {
 			AILogWithSignature(@" *** This ivar is not an object but an %s! Should not use -valueForProperty: @\"%@\" ***", ivarType, key);
 		} else {
@@ -237,7 +252,13 @@
 {
 	NSInteger ret = 0;
 	
-	Ivar ivar = class_getInstanceVariable([self class], [key UTF8String]);
+	char property_name[256];
+	
+	NSAssert([key length] < 256, @"Too long property!");
+	
+	[key getCString:property_name maxLength:32 encoding:NSUTF8StringEncoding];
+	
+	Ivar ivar = class_getInstanceVariable([self class], property_name);
 	
 	if (ivar == NULL) {
 		NSNumber *number = [self numberValueForProperty:key];
@@ -270,8 +291,27 @@
 {
 	BOOL ret = FALSE;
 	
-	NSNumber *number = [self numberValueForProperty:key];
-	ret = number ? [number boolValue] : NO;
+	char property_name[256];
+	
+	NSAssert([key length] < 256, @"Too long property!");
+	
+	[key getCString:property_name maxLength:32 encoding:NSUTF8StringEncoding];
+	
+	Ivar ivar = class_getInstanceVariable([self class], property_name);
+	
+	if (ivar == NULL) {
+		NSNumber *number = [self numberValueForProperty:key];
+		ret = number ? [number boolValue] : NO;
+	} else {
+		const char *ivarType = ivar_getTypeEncoding(ivar);
+		
+		if (strcmp(ivarType, @encode(BOOL)) != 0) {
+			AILogWithSignature(@"%@'s %@ ivar is not a BOOL but an %s! Will attempt to cast, but should not use -boolValueForProperty: @\"%@\"", self, key, ivarType, key);
+		}
+		
+		BOOL *idx = (BOOL*)((char *)self + ivar_getOffset(ivar));
+		ret = (NSInteger)(*idx);
+	}
 	
     return ret;
 }
diff -r 5dbed3571369 -r d899ccda08c8 Frameworks/libglib.framework/Versions/2.0.0/libglib
Binary file Frameworks/libglib.framework/Versions/2.0.0/libglib has changed
diff -r 5dbed3571369 -r d899ccda08c8 Frameworks/libgmodule.framework/Versions/2.0.0/libgmodule
Binary file Frameworks/libgmodule.framework/Versions/2.0.0/libgmodule has changed
diff -r 5dbed3571369 -r d899ccda08c8 Frameworks/libgobject.framework/Versions/2.0.0/libgobject
Binary file Frameworks/libgobject.framework/Versions/2.0.0/libgobject has changed
diff -r 5dbed3571369 -r d899ccda08c8 Frameworks/libgthread.framework/Versions/2.0.0/libgthread
Binary file Frameworks/libgthread.framework/Versions/2.0.0/libgthread has changed
diff -r 5dbed3571369 -r d899ccda08c8 Frameworks/libintl.framework/Versions/8/libintl
Binary file Frameworks/libintl.framework/Versions/8/libintl has changed
diff -r 5dbed3571369 -r d899ccda08c8 Frameworks/libjson-glib.framework/Versions/1.0.0/libjson-glib
Binary file Frameworks/libjson-glib.framework/Versions/1.0.0/libjson-glib has changed
diff -r 5dbed3571369 -r d899ccda08c8 Frameworks/libmeanwhile.framework/Versions/1/libmeanwhile
Binary file Frameworks/libmeanwhile.framework/Versions/1/libmeanwhile has changed
diff -r 5dbed3571369 -r d899ccda08c8 Frameworks/libpurple.framework/Versions/0.10.5/libpurple
Binary file Frameworks/libpurple.framework/Versions/0.10.5/libpurple has changed
diff -r 5dbed3571369 -r d899ccda08c8 Release/Makefile
--- a/Release/Makefile	Tue Aug 07 13:05:53 2012 -0500
+++ b/Release/Makefile	Wed Aug 08 16:24:04 2012 +0200
@@ -17,7 +17,7 @@
 # - make all
 ###########
 
-VERSION=1.6hg
+VERSION=1.6
 BUILD_IN_DEBUG_MODE?=FALSE
 BETA?=TRUE
 OFFICIAL_BUILD?=TRUE
@@ -69,9 +69,9 @@
 endif
 
 ifeq ($(BUILD_IN_DEBUG_MODE),TRUE)
-    BUILDSTYLE=Release-Debug
+	BUILDSTYLE=Release-Debug
 else
-    BUILDSTYLE=Release
+	BUILDSTYLE=Release
 endif
 
 BUILDFLAGS+="BUILDCONFIGURATION=$(BUILDSTYLE)"
@@ -194,10 +194,35 @@
 	./make-diskimage.sh $(BUILD_DIR)/$(RELEASE_NAME).dmg $(ADIUM_DIR) "Adium $(VERSION)" dmg_adium.scpt $(ART_DIR)
 
 ifeq ($(OFFICIAL_BUILD),TRUE)
-	@echo DSA for Sparkle: `ruby sign_update.rb $(BUILD_DIR)/$(RELEASE_NAME_ESCAPED).dmg ~/adium-dsa-sign/dsa_priv.pem`
+	$(eval DSA := $(shell ruby sign_update.rb $(BUILD_DIR)/$(RELEASE_NAME_ESCAPED).dmg ~/adium-dsa-sign/dsa_priv.pem))
+	@echo DSA for Sparkle: $(DSA)
 endif
 
-	@echo Build finished. `md5 $(BUILD_DIR)/$(RELEASE_NAME_ESCAPED).dmg`
+	$(eval MDFIVEHASH := $(shell md5 -q $(BUILD_DIR)/$(RELEASE_NAME_ESCAPED).dmg))
+	@echo Build finished. $(MDFIVEHASH)
+
+ifeq ($(OFFICIAL_BUILD),TRUE)
+ifeq ($(BETA),TRUE)
+	@echo Add this to beta/index.php:
+	@echo "					array("
+	@echo "					\"ver\" => \"$(VERSION)\","
+	@echo "					\"rev\" => \"`hg parent --template {node\|short}`\","
+	@echo "					\"date\" => \"`date +"%Y-%m-%d"`\","
+	@echo "					\"md5\" => \"$(MDFIVEHASH)\","
+	@echo "					\"dsa\" => \"$(DSA)\""
+	@echo "					),"
+
+	@echo
+	@echo Add this to sparkle/appcast-beta.xml:
+	@echo "	<item>"
+	@echo "	    <title>Adium $(VERSION)</title>"
+	@echo "	    <pubDate>`date +"%a, %d %b %Y %H:%M:%S %z"`</pubDate>"
+	@echo "	    <sparkle:releaseNotesLink>http://beta.adium.im/?notemplate</sparkle:releaseNotesLink>"
+	@echo "	    <sparkle:minimumSystemVersion>10.6.8</sparkle:minimumSystemVersion>"
+	@echo "	    <enclosure sparkle:dsaSignature=\"$(DSA)\" sparkle:version=\"$(VERSION)\" url=\"http://download.adium.im/Adium_$(VERSION).dmg\" length=\"`stat -f %z $(BUILD_DIR)/$(RELEASE_NAME_ESCAPED).dmg`\" type=\"application/octet-stream\"/>"
+	@echo "	</item>"
+endif
+endif
 
 #This is what nightly builds use. Does not update because buildbot does.
 nightly: version clean compile createfolder prepare-release-bundle diskimage
diff -r 5dbed3571369 -r d899ccda08c8 Resources/Credits.rtf
--- a/Resources/Credits.rtf	Tue Aug 07 13:05:53 2012 -0500
+++ b/Resources/Credits.rtf	Wed Aug 08 16:24:04 2012 +0200
@@ -46,18 +46,12 @@
 	Colin Barrett\
 	Frank Dowsett\
 	Adrian Godoroja\
-	Stephen Holt\
 	Peter Hosey\
-\pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\li100\slleading40\sb40
-\cf0 	Alan Humpherys\
-\pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li100\slleading40\sb40
-\cf0 	Matthew Needham\
+	Matthew Needham\
 \pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li100\slleading40\sb40
 
 \fs24 \cf0 	
-\fs22 Nicholas Peshek\
-	Patrick Steinhardt\
-	Robby Weinberg
+\fs22 Nicholas Peshek
 \fs24 \
 \pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li100
 \cf0 \
@@ -76,6 +70,7 @@
 	Kyle Jorgensen 
 \fs20  (Adium 1.4 help updates)
 \fs22 \
+	Shawn Khan\
 	George Lambrou  
 \fs20 (Interface Icons)
 \fs22 \
@@ -360,6 +355,10 @@
 	Elliott Harris\
 \pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\li100\slleading40\sb40
 \cf0 	Arno Hautala\
+\pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li100\slleading40\sb40
+\cf0 	Stephen Holt\
+\pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\li100\slleading40\sb40
+\cf0 	Alan Humpherys\
 	Ian Krieg\
 	Scott Lamb\
 	Keith Lea\
@@ -371,7 +370,10 @@
 \fs22 	Andreas Monitzer\
 \pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\li100\slleading40\sb40
 \cf0 	Chris Serino\
-	David Smith
+	David Smith\
+\pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li100\slleading40\sb40
+\cf0 	Patrick Steinhardt\
+	Robby Weinberg
 \fs24 \
 \pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720\li100
 \cf0 \
diff -r 5dbed3571369 -r d899ccda08c8 Source/AIAccountListPreferences.m
--- a/Source/AIAccountListPreferences.m	Tue Aug 07 13:05:53 2012 -0500
+++ b/Source/AIAccountListPreferences.m	Wed Aug 08 16:24:04 2012 +0200
@@ -141,7 +141,7 @@
 									 object:nil];
 	
 	[tableView_accountList accessibilitySetOverrideValue:AILocalizedString(@"Accounts", nil)
-											forAttribute:NSAccessibilityRoleDescriptionAttribute];
+											forAttribute:NSAccessibilityTitleAttribute];
 
 	// Start updating the reconnect time if an account is already reconnecting.	
 	[self updateReconnectTime:nil];
diff -r 5dbed3571369 -r d899ccda08c8 Source/AIGradientView.m
--- a/Source/AIGradientView.m	Tue Aug 07 13:05:53 2012 -0500
+++ b/Source/AIGradientView.m	Wed Aug 08 16:24:04 2012 +0200
@@ -41,10 +41,10 @@
 
 - (void)dealloc
 {
-	startingColor = nil;
-	middleColor = nil;
-	endingColor = nil;
-	backgroundColor = nil;
+	[startingColor release]; startingColor = nil;
+	[middleColor release]; middleColor = nil;
+	[endingColor release]; endingColor = nil;
+	[backgroundColor release]; backgroundColor = nil;
 	
 	[super dealloc];
 }
diff -r 5dbed3571369 -r d899ccda08c8 Source/AILogViewerWindowController.m
--- a/Source/AILogViewerWindowController.m	Tue Aug 07 13:05:53 2012 -0500
+++ b/Source/AILogViewerWindowController.m	Wed Aug 08 16:24:04 2012 +0200
@@ -416,9 +416,9 @@
 	[textField_resultCount setStringValue:@""];
 
 	[tableView_results accessibilitySetOverrideValue:AILocalizedString(@"Transcripts", nil)
-										forAttribute:NSAccessibilityRoleDescriptionAttribute];
+										forAttribute:NSAccessibilityTitleAttribute];
 	[outlineView_contacts accessibilitySetOverrideValue:AILocalizedString(@"Contacts", nil)
-										forAttribute:NSAccessibilityRoleDescriptionAttribute];
+										forAttribute:NSAccessibilityTitleAttribute];
 
 	//Set emoticon filtering
 	showEmoticons = [[adium.preferenceController preferenceForKey:KEY_LOG_VIEWER_EMOTICONS
diff -r 5dbed3571369 -r d899ccda08c8 Source/ESStatusPreferences.m
--- a/Source/ESStatusPreferences.m	Tue Aug 07 13:05:53 2012 -0500
+++ b/Source/ESStatusPreferences.m	Wed Aug 08 16:24:04 2012 +0200
@@ -120,7 +120,7 @@
 	[outlineView_stateList setUsesAlternatingRowBackgroundColors:YES];
 	
 	[outlineView_stateList accessibilitySetOverrideValue:AILocalizedString(@"Statuses", nil)
-											forAttribute:NSAccessibilityRoleDescriptionAttribute];
+											forAttribute:NSAccessibilityTitleAttribute];
 
 	/* Register as an observer of state array changes so we can refresh our list
 	 * in response to changes. */




More information about the commits mailing list