adium 2467:eb851ce2c871: Backed out changeset b97e9e027f75

commits at adium.im commits at adium.im
Sun Jun 7 01:53:20 UTC 2009


details:	http://hg.adium.im/adium/rev/eb851ce2c871
revision:	2467:eb851ce2c871
author:		David Smith <catfish.man at gmail.com>
date:		Sat Jun 06 18:50:34 2009 -0700

Backed out changeset b97e9e027f75
Back out b97e9e027f75, since it broke something and I don't feel like debugging it.
Subject: adium 2468:bf7a967fd0f4: Merge backout. Slightly messed up my hg-fu here

details:	http://hg.adium.im/adium/rev/bf7a967fd0f4
revision:	2468:bf7a967fd0f4
author:		David Smith <catfish.man at gmail.com>
date:		Sat Jun 06 18:53:12 2009 -0700

Merge backout. Slightly messed up my hg-fu here

diffs (389 lines):

diff -r b97e9e027f75 -r bf7a967fd0f4 Adium.xcodeproj/project.pbxproj
--- a/Adium.xcodeproj/project.pbxproj	Wed Jun 03 17:27:39 2009 -0700
+++ b/Adium.xcodeproj/project.pbxproj	Sat Jun 06 18:53:12 2009 -0700
@@ -615,6 +615,7 @@
 		34A48A3F06F64665002C7C5F /* AIListThemeWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 34A48A3B06F64664002C7C5F /* AIListThemeWindowController.m */; };
 		34A48A4106F64665002C7C5F /* AIListLayoutWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 34A48A3D06F64665002C7C5F /* AIListLayoutWindowController.m */; };
 		34A48A5006F64692002C7C5F /* AITextColorPreviewView.m in Sources */ = {isa = PBXBuildFile; fileRef = 34A48A4F06F64692002C7C5F /* AITextColorPreviewView.m */; };
+		34A48A5B06F646BD002C7C5F /* AIListThemePreviewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 34A48A5906F646BD002C7C5F /* AIListThemePreviewCell.m */; };
 		34A48B3A06F64B27002C7C5F /* AIBorderlessListOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = 34A48B3806F64B27002C7C5F /* AIBorderlessListOutlineView.m */; };
 		34A663920BF66D96008637BB /* PurpleCommon.h in Headers */ = {isa = PBXBuildFile; fileRef = 340915F105C0A5DF00CDE3DD /* PurpleCommon.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		34A6F68507D65D6200972830 /* GeneralPreferences.nib in Resources */ = {isa = PBXBuildFile; fileRef = 34A6F68407D65D6200972830 /* GeneralPreferences.nib */; };
@@ -3312,6 +3313,8 @@
 		34A48A3D06F64665002C7C5F /* AIListLayoutWindowController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = AIListLayoutWindowController.m; path = Source/AIListLayoutWindowController.m; sourceTree = "<group>"; };
 		34A48A4D06F6468D002C7C5F /* AITextColorPreviewView.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = AITextColorPreviewView.h; path = Source/AITextColorPreviewView.h; sourceTree = "<group>"; };
 		34A48A4F06F64692002C7C5F /* AITextColorPreviewView.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = AITextColorPreviewView.m; path = Source/AITextColorPreviewView.m; sourceTree = "<group>"; };
+		34A48A5806F646BD002C7C5F /* AIListThemePreviewCell.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = AIListThemePreviewCell.h; path = Source/AIListThemePreviewCell.h; sourceTree = "<group>"; };
+		34A48A5906F646BD002C7C5F /* AIListThemePreviewCell.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = AIListThemePreviewCell.m; path = Source/AIListThemePreviewCell.m; sourceTree = "<group>"; };
 		34A48AD106F647FD002C7C5F /* AIListOutlineView.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = AIListOutlineView.m; path = "Frameworks/Adium Framework/Source/AIListOutlineView.m"; sourceTree = "<group>"; };
 		34A48AD206F647FD002C7C5F /* AIListOutlineView.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = AIListOutlineView.h; path = "Frameworks/Adium Framework/Source/AIListOutlineView.h"; sourceTree = "<group>"; };
 		34A48B3706F64B27002C7C5F /* AIBorderlessListOutlineView.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = AIBorderlessListOutlineView.h; path = Source/AIBorderlessListOutlineView.h; sourceTree = "<group>"; };
@@ -6998,6 +7001,8 @@
 				34A48A3B06F64664002C7C5F /* AIListThemeWindowController.m */,
 				34A48A4D06F6468D002C7C5F /* AITextColorPreviewView.h */,
 				34A48A4F06F64692002C7C5F /* AITextColorPreviewView.m */,
+				34A48A5806F646BD002C7C5F /* AIListThemePreviewCell.h */,
+				34A48A5906F646BD002C7C5F /* AIListThemePreviewCell.m */,
 				4B737B4B065D4FDC0062AB94 /* Emoticon Preferences */,
 				34C6A3BB077A8CB500EB423C /* AppearanceDefaults.plist */,
 				4BFC2E7807E357F00063D70C /* emoticonBlank.png */,
@@ -10215,6 +10220,7 @@
 				34A48A3F06F64665002C7C5F /* AIListThemeWindowController.m in Sources */,
 				34A48A4106F64665002C7C5F /* AIListLayoutWindowController.m in Sources */,
 				34A48A5006F64692002C7C5F /* AITextColorPreviewView.m in Sources */,
+				34A48A5B06F646BD002C7C5F /* AIListThemePreviewCell.m in Sources */,
 				34A48B3A06F64B27002C7C5F /* AIBorderlessListOutlineView.m in Sources */,
 				3461621606FB482D009181D8 /* ESChatUserListController.m in Sources */,
 				3429BB06070378F700EED705 /* ESFileTransferMessagesPlugin.m in Sources */,
diff -r b97e9e027f75 -r bf7a967fd0f4 ChangeLogs/Changes Between Betas.txt
--- a/ChangeLogs/Changes Between Betas.txt	Wed Jun 03 17:27:39 2009 -0700
+++ b/ChangeLogs/Changes Between Betas.txt	Sat Jun 06 18:53:12 2009 -0700
@@ -1,3 +1,6 @@
 Adium 1.4b7
  * Added an optional confirmation when closing a window which has multiple tabs, either always or when at least one has unviewed messages. (#12006)
+ * Added another ignored phrase for IRC server connection processes.
+ * Fixed the growl notification queue from making messages seem to arrive slightly later than they did, when only a handful are to be displayed. (#12327)
+ * Fixed improperly setting the Jabber connect server when registering a new account.
  * Moved Quit Confirmations to a new Confirmations advanced preference.
\ No newline at end of file
diff -r b97e9e027f75 -r bf7a967fd0f4 Copyright.txt
--- a/Copyright.txt	Wed Jun 03 17:27:39 2009 -0700
+++ b/Copyright.txt	Sat Jun 06 18:53:12 2009 -0700
@@ -11,6 +11,7 @@
 Graham Booker
 Jorge Salvador Caffarena
 Wesley Campaigne
+Ariel Chinn
 David Clark
 Felipe Contreras
 Jacobo Tarrag—n Cros
diff -r b97e9e027f75 -r bf7a967fd0f4 Frameworks/AIUtilities Framework/Source/AIImageTextCell.m
--- a/Frameworks/AIUtilities Framework/Source/AIImageTextCell.m	Wed Jun 03 17:27:39 2009 -0700
+++ b/Frameworks/AIUtilities Framework/Source/AIImageTextCell.m	Sat Jun 06 18:53:12 2009 -0700
@@ -24,6 +24,10 @@
 #define DEFAULT_MAX_IMAGE_WIDTH			24
 #define DEFAULT_IMAGE_TEXT_PADDING		6
 
+ at interface NSCell (UndocumentedHighlightDrawing)
+- (void)_drawHighlightWithFrame:(NSRect)cellFrame inView:(NSView *)controlView;
+ at end
+
 @implementation AIImageTextCell
 
 //Init
diff -r b97e9e027f75 -r bf7a967fd0f4 Frameworks/AIUtilities Framework/Source/AIVariableHeightOutlineView.m
--- a/Frameworks/AIUtilities Framework/Source/AIVariableHeightOutlineView.m	Wed Jun 03 17:27:39 2009 -0700
+++ b/Frameworks/AIUtilities Framework/Source/AIVariableHeightOutlineView.m	Sat Jun 06 18:53:12 2009 -0700
@@ -211,11 +211,7 @@
 		for (int row = 0; row < numberOfRows; row++) {
 			id 	cell = [self cellForTableColumn:tableColumn item:[self itemAtRow:row]];
 			
-			if (![self shouldResetAlternating:row]) {
-				alternateColor = !alternateColor;
-			} else {
-				alternateColor = YES;
-			}
+			alternateColor = [self shouldResetAlternating:row] ? YES : !alternateColor;
 			
 			if (alternateColor &&
 				(![cell respondsToSelector:@selector(drawGridBehindCell)] || [cell drawGridBehindCell])) {
diff -r b97e9e027f75 -r bf7a967fd0f4 Frameworks/Adium Framework/Source/AIListCell.h
--- a/Frameworks/Adium Framework/Source/AIListCell.h	Wed Jun 03 17:27:39 2009 -0700
+++ b/Frameworks/Adium Framework/Source/AIListCell.h	Sat Jun 06 18:53:12 2009 -0700
@@ -77,6 +77,7 @@
 //Drawing
 - (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView;
 - (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView;
+- (void)_drawHighlightWithFrame:(NSRect)cellFrame inView:(NSView *)controlView;
 - (void)drawSelectionWithFrame:(NSRect)rect;
 - (void)drawBackgroundWithFrame:(NSRect)rect;
 - (void)drawContentWithFrame:(NSRect)rect;
diff -r b97e9e027f75 -r bf7a967fd0f4 Frameworks/Adium Framework/Source/AIListCell.m
--- a/Frameworks/Adium Framework/Source/AIListCell.m	Wed Jun 03 17:27:39 2009 -0700
+++ b/Frameworks/Adium Framework/Source/AIListCell.m	Sat Jun 06 18:53:12 2009 -0700
@@ -204,9 +204,17 @@
 	}
 }
 
-- (NSColor *) highlightColorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
+#warning It's quite possible that we don't need to use this private method.
+//Custom highlighting (This is a private cell method we're overriding that handles selection drawing)
+- (void)_drawHighlightWithFrame:(NSRect)cellFrame inView:(NSView *)inControlView
 {
-	return nil; //we want to draw our own highlight
+	//Cell spacing
+	cellFrame.origin.y += [self topSpacing];
+	cellFrame.size.height -= [self bottomSpacing] + [self topSpacing];
+	cellFrame.origin.x += [self leftSpacing];
+	cellFrame.size.width -= [self rightSpacing] + [self leftSpacing];
+	
+	[self drawSelectionWithFrame:cellFrame];
 }
 
 //Draw Selection
@@ -218,15 +226,6 @@
 //Draw content of our cell
 - (void)drawContentWithFrame:(NSRect)rect
 {
-	if ([self cellIsSelected]) {
-		//Cell spacing
-		NSRect cellFrame = rect;
-		cellFrame.origin.y += [self topSpacing];
-		cellFrame.size.height -= [self bottomSpacing] + [self topSpacing];
-		cellFrame.origin.x += [self leftSpacing];
-		cellFrame.size.width -= [self rightSpacing] + [self leftSpacing];
-		[self drawSelectionWithFrame:cellFrame];
-	}
 	[self drawDisplayNameWithFrame:rect];
 }
 
diff -r b97e9e027f75 -r bf7a967fd0f4 Plugins/Purple Service/AIAnnoyingIRCMessagesHiderPlugin.m
--- a/Plugins/Purple Service/AIAnnoyingIRCMessagesHiderPlugin.m	Wed Jun 03 17:27:39 2009 -0700
+++ b/Plugins/Purple Service/AIAnnoyingIRCMessagesHiderPlugin.m	Sat Jun 06 18:53:12 2009 -0700
@@ -53,6 +53,7 @@
 							   @"if you see",
 							   @"please disregard them, as they are",
 							   @"for more information please visit",
+							   @"runs an open proxy monitor to prevent abuse",
 							   nil];
 	
 	if ([contentObject.source.UID rangeOfString:@"."].location != NSNotFound) {
diff -r b97e9e027f75 -r bf7a967fd0f4 Plugins/Purple Service/ESPurpleJabberAccountViewController.m
--- a/Plugins/Purple Service/ESPurpleJabberAccountViewController.m	Wed Jun 03 17:27:39 2009 -0700
+++ b/Plugins/Purple Service/ESPurpleJabberAccountViewController.m	Sat Jun 06 18:53:12 2009 -0700
@@ -322,13 +322,12 @@
 
 - (IBAction)registerRequestAccount:(id)sender {
 	[[sender window] makeFirstResponder:nil]; // apply all changes
+	
 	if([[textField_registerServerName stringValue] length] == 0) {
 		NSBeep();
 		return;
 	}
-//	[account setUID:[NSString stringWithFormat:@"unknown@%@", [textField_registerServerName stringValue]]];
-	[account setPreference:[textField_registerServerName stringValue]
-					forKey:KEY_JABBER_CONNECT_SERVER group:GROUP_ACCOUNT_STATUS];
+	
 	[account setPreference:[NSNumber numberWithInt:[textField_registerServerPort intValue]]
 					forKey:KEY_CONNECT_PORT group:GROUP_ACCOUNT_STATUS];
 
diff -r b97e9e027f75 -r bf7a967fd0f4 Source/AIListThemePreviewCell.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Source/AIListThemePreviewCell.h	Sat Jun 06 18:53:12 2009 -0700
@@ -0,0 +1,24 @@
+/* 
+ * Adium is the legal property of its developers, whose names are listed in the copyright file included
+ * with this source distribution.
+ * 
+ * This program is free software; you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License as published by the Free Software Foundation; either version 2 of the License,
+ * or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
+ * Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License along with this program; if not,
+ * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+ at interface AIListThemePreviewCell : NSCell {
+	NSArray			*colorKeyArray;
+	NSDictionary	*themeDict;
+}
+
+- (void)setThemeDict:(NSDictionary *)inDict;
+
+ at end
diff -r b97e9e027f75 -r bf7a967fd0f4 Source/AIListThemePreviewCell.m
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Source/AIListThemePreviewCell.m	Sat Jun 06 18:53:12 2009 -0700
@@ -0,0 +1,126 @@
+/* 
+ * Adium is the legal property of its developers, whose names are listed in the copyright file included
+ * with this source distribution.
+ * 
+ * This program is free software; you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License as published by the Free Software Foundation; either version 2 of the License,
+ * or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
+ * Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License along with this program; if not,
+ * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+#import "AIListThemePreviewCell.h"
+#import "AIListThemeWindowController.h"
+#import <AIUtilities/AIColorAdditions.h>
+#import <AIUtilities/AIGradientAdditions.h>
+#import <Adium/AIAbstractListController.h>
+
+ at implementation AIListThemePreviewCell
+
+//Copy
+- (id)copyWithZone:(NSZone *)zone
+{
+	AIListThemePreviewCell *newCell = [super copyWithZone:zone];
+	
+	newCell->themeDict = nil;
+	[newCell setThemeDict:themeDict];
+	
+	newCell->colorKeyArray = [colorKeyArray retain];
+	
+	return newCell;
+}
+
+- (id)init
+{
+	if ((self = [super init]))
+	{
+		themeDict = nil;
+		colorKeyArray = [[NSArray arrayWithObjects:
+			KEY_LABEL_AWAY_COLOR,
+			KEY_LABEL_IDLE_COLOR,
+			KEY_LABEL_TYPING_COLOR,
+			KEY_LABEL_SIGNED_OFF_COLOR,
+			KEY_LABEL_SIGNED_ON_COLOR,
+			KEY_LABEL_UNVIEWED_COLOR,
+			KEY_LABEL_ONLINE_COLOR,
+			KEY_LABEL_IDLE_AWAY_COLOR,
+			KEY_LABEL_OFFLINE_COLOR,
+			
+			KEY_AWAY_COLOR,
+			KEY_IDLE_COLOR,
+			KEY_TYPING_COLOR,
+			KEY_SIGNED_OFF_COLOR,
+			KEY_SIGNED_ON_COLOR,
+			KEY_UNVIEWED_COLOR,
+			KEY_ONLINE_COLOR,
+			KEY_IDLE_AWAY_COLOR,
+			KEY_OFFLINE_COLOR,
+			
+			KEY_LIST_THEME_BACKGROUND_COLOR,
+			KEY_LIST_THEME_GRID_COLOR,
+			
+			KEY_LIST_THEME_GROUP_BACKGROUND,
+			KEY_LIST_THEME_GROUP_BACKGROUND_GRADIENT,
+			nil] retain];
+	}
+			
+	return self;
+}
+
+- (void)dealloc
+{
+	[themeDict release];
+	[colorKeyArray release];
+	[super dealloc];
+}
+
+- (void)setThemeDict:(NSDictionary *)inDict
+{
+	if (inDict != themeDict) {
+		[themeDict release];
+		themeDict = [inDict retain];
+	}
+}
+
+- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
+{
+	cellFrame.origin.y += 2;
+	cellFrame.size.height -= 4;
+	
+	NSString		*key;
+	NSRect			segmentRect = NSMakeRect(cellFrame.origin.x, cellFrame.origin.y,
+											 (cellFrame.size.width / [colorKeyArray count]), cellFrame.size.height);
+	
+	[[NSColor whiteColor] set];
+	[NSBezierPath fillRect:cellFrame];
+	
+	for (key in colorKeyArray) {
+		[[[themeDict objectForKey:key] representedColor] set];
+		[NSBezierPath fillRect:segmentRect];
+		segmentRect.origin.x += segmentRect.size.width;
+	}
+
+	[[NSColor blackColor] set];
+	[NSBezierPath strokeRect:NSOffsetRect(cellFrame, .5, .5)];
+	
+}
+
+//Draw with the selected-control colours.
+- (void)_drawHighlightWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
+{
+	//Draw the gradient
+	NSGradient *gradient = [NSGradient selectedControlGradient];
+	[gradient drawInRect:cellFrame angle:90.0];
+	
+	//Draw a line at the light side, to make it look a lot cleaner
+	cellFrame.size.height = 1;
+	[[NSColor alternateSelectedControlColor] set];
+	NSRectFillUsingOperation(cellFrame,NSCompositeSourceOver);
+}
+
+ at end
diff -r b97e9e027f75 -r bf7a967fd0f4 Source/NEHGrowlPlugin.h
--- a/Source/NEHGrowlPlugin.h	Wed Jun 03 17:27:39 2009 -0700
+++ b/Source/NEHGrowlPlugin.h	Sat Jun 06 18:53:12 2009 -0700
@@ -20,6 +20,7 @@
 #define KEY_GROWL_ALERT_STICKY	@"Growl Sticky"
 #define KEY_GROWL_PRIORITY		@"Growl Priority"
 #define GROWL_QUEUE_WAIT		0.75 // Seconds to wait before clearing an event type's queue
+#define GROWL_QUEUE_POST_COUNT	5
 
 @protocol GrowlApplicationBridgeDelegate;
 
diff -r b97e9e027f75 -r bf7a967fd0f4 Source/NEHGrowlPlugin.m
--- a/Source/NEHGrowlPlugin.m	Wed Jun 03 17:27:39 2009 -0700
+++ b/Source/NEHGrowlPlugin.m	Sat Jun 06 18:53:12 2009 -0700
@@ -240,6 +240,14 @@
 	[self performSelector:@selector(clearQueue:)
 			   withObject:queueCall
 			   afterDelay:GROWL_QUEUE_WAIT];
+	
+	// If the queue has <GROWL_QUEUE_POST_COUNT entries already, post this one immediately.
+	if (events.count < GROWL_QUEUE_POST_COUNT) {
+		[self postSingleEventID:eventID
+				  forListObject:listObject
+					withDetails:details
+					   userInfo:userInfo];
+	}
 
 	return YES;
 }
@@ -289,17 +297,23 @@
 		return;
 	}
 	
-	if (events.count <= 5) {
-		// If we only have a few events, just post them individually.
+	// Remove the first GROWL_QUEUE_POST_COUNT entries, since we've already posted about them.
+	NSRange removeRange = NSMakeRange(0,
+									  (events.count > GROWL_QUEUE_POST_COUNT ? GROWL_QUEUE_POST_COUNT : events.count));
+
+	[events removeObjectsInRange:removeRange];
+	
+	if (events.count == 1) {
+		// Seeing "1 message" is just silly!
 		
-		for (NSDictionary *event in events) {
-			[self postSingleEventID:eventID
-					  forListObject:[event objectForKey:@"AIListObject"]
-						withDetails:[event objectForKey:@"Details"]
-						   userInfo:[event objectForKey:@"UserInfo"]];
-		}
+		NSDictionary *event = [events objectAtIndex:0];
 		
-	} else {
+		[self postSingleEventID:eventID
+				  forListObject:[event objectForKey:@"AIListObject"]
+					withDetails:[event objectForKey:@"Details"]
+					   userInfo:[event objectForKey:@"UserInfo"]];
+		
+	} else if(events.count) {		
 		// We have a bunch of events; let's combine them.
 		AIListObject *overallListObject = nil;
 




More information about the commits mailing list