adium 2216:32be8318402c: Add an "Add Group" option to the info i...

commits at adium.im commits at adium.im
Sun May 17 01:54:29 UTC 2009


details:	http://hg.adium.im/adium/rev/32be8318402c
revision:	2216:32be8318402c
author:		Zachary West <zacw at adium.im>
date:		Sat May 16 21:54:22 2009 -0400

Add an "Add Group" option to the info inspector's group add menu.

diffstat:

 Source/AIAdvancedInspectorPane.m |  38 +++++++++++++++++++++++++++++++++++++-
 1 files changed, 37 insertions(+), 1 deletions(-)

diffs (69 lines):

diff -r 947a81387af5 -r 32be8318402c Source/AIAdvancedInspectorPane.m
--- a/Source/AIAdvancedInspectorPane.m	Sat May 16 21:35:10 2009 -0400
+++ b/Source/AIAdvancedInspectorPane.m	Sat May 16 21:54:22 2009 -0400
@@ -7,6 +7,7 @@
 //
 
 #import "AIAdvancedInspectorPane.h"
+#import "AINewGroupWindowController.h"
 #import <AIUtilities/AIParagraphStyleAdditions.h>
 #import <Adium/AIListObject.h>
 #import <Adium/AIListContact.h>
@@ -24,6 +25,7 @@
 #import <AIUtilities/AIMenuAdditions.h>
 #import <AIUtilities/AIPopUpButtonAdditions.h>
 #import <AIUtilities/AIStringFormatter.h>
+#import <AIUtilities/AIStringAdditions.h>
 
 #import <Adium/AIAccountMenu.h>
 #import <Adium/AIContactMenu.h>
@@ -154,7 +156,16 @@
 	
 	[accountMenu rebuildMenu];
 	
-	[button_addGroup setMenu:[adium.contactController groupMenuWithTarget:self]];
+	NSMenu *groupMenu = [adium.contactController groupMenuWithTarget:self];
+	
+	[groupMenu addItem:[NSMenuItem separatorItem]];
+	
+	[groupMenu addItemWithTitle:[AILocalizedString(@"New Group", nil) stringByAppendingEllipsis]
+						 target:self
+						 action:@selector(addNewGroup:)
+				  keyEquivalent:@""];
+	
+	[button_addGroup setMenu:groupMenu];
 	
 	[self configureControlDimming];
 }
@@ -235,6 +246,31 @@
 }
 
 #pragma mark Group control
+- (void)addNewGroup:(id)sender
+{
+	AINewGroupWindowController *newGroupController = [AINewGroupWindowController promptForNewGroupOnWindow:inspectorContentView.window];
+	
+	[[NSNotificationCenter defaultCenter] addObserver:self
+											 selector:@selector(newGroupControllerDidEnd:)
+												 name:@"NewGroupWindowControllerDidEnd"
+											   object:newGroupController.window];
+}
+
+- (void)newGroupControllerDidEnd:(NSNotification *)notification
+{
+	NSParameterAssert([notification.object isKindOfClass:[NSWindow class]]);
+	NSParameterAssert([((NSWindow *)notification.object).windowController isKindOfClass:[AINewGroupWindowController class]]);
+	
+	AINewGroupWindowController *windowController = ((NSWindow *)notification.object).windowController;
+	
+	if (windowController.group) {
+		[currentSelectedAccount addContact:currentSelectedContact toGroup:windowController.group];
+		
+		[tableView_groups deselectAll:nil];
+		[tableView_groups reloadData];
+	}
+}
+
 - (void)selectGroup:(id)sender
 {
 	AIListGroup *group = [sender representedObject];




More information about the commits mailing list