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