| Index: chrome/browser/cocoa/cookies_window_controller.mm
|
| diff --git a/chrome/browser/cocoa/cookies_window_controller.mm b/chrome/browser/cocoa/cookies_window_controller.mm
|
| index 8325f3a6102688412ec9d9aa5737e9cfd6b0e0f9..75e5060f356fc4fb8e6434697773ef4625e5aa28 100644
|
| --- a/chrome/browser/cocoa/cookies_window_controller.mm
|
| +++ b/chrome/browser/cocoa/cookies_window_controller.mm
|
| @@ -128,6 +128,7 @@ CocoaCookieTreeNode* CookiesTreeModelObserverBridge::FindCocoaNode(
|
|
|
| @implementation CookiesWindowController
|
|
|
| +@synthesize removeButtonEnabled = removeButtonEnabled_;
|
| @synthesize treeController = treeController_;
|
|
|
| - (id)initWithProfile:(Profile*)profile {
|
| @@ -262,6 +263,33 @@ CocoaCookieTreeNode* CookiesTreeModelObserverBridge::FindCocoaNode(
|
| }
|
| }
|
|
|
| +- (void)outlineViewSelectionDidChange:(NSNotification*)notif {
|
| + // Multi-selection should be disabled in the UI, but for sanity, double-check
|
| + // that they can't do it here.
|
| + NSUInteger count = [[treeController_ selectedObjects] count];
|
| + if (count != 1U) {
|
| + DCHECK_LT(count, 1U) << "User was able to select more than one cookie node!";
|
| + [self setRemoveButtonEnabled:NO];
|
| + return;
|
| + }
|
| +
|
| + // Go through the selection's indexPath and make sure that the node that is
|
| + // being referenced actually exists in the Cocoa model.
|
| + NSIndexPath* selection = [treeController_ selectionIndexPath];
|
| + NSUInteger length = [selection length];
|
| + CocoaCookieTreeNode* node = [self cocoaTreeModel];
|
| + for (NSUInteger i = 0; i < length; ++i) {
|
| + NSUInteger childIndex = [selection indexAtPosition:i];
|
| + if (childIndex >= [[node children] count]) {
|
| + [self setRemoveButtonEnabled:NO];
|
| + return;
|
| + }
|
| + node = [[node children] objectAtIndex:childIndex];
|
| + }
|
| +
|
| + [self setRemoveButtonEnabled:YES];
|
| +}
|
| +
|
| #pragma mark Unit Testing
|
|
|
| - (CookiesTreeModelObserverBridge*)modelObserver {
|
|
|