From 71939a449768cf1ebd54523a17b7d79e4555ec9b Mon Sep 17 00:00:00 2001 From: Andrew Schleifer Date: Sat, 23 Nov 2013 10:46:07 -0600 Subject: [PATCH] consolidate other validations --- MacPass/MPDocument.m | 32 +++++++++++++++++-------------- MacPass/MPEntryViewController.m | 5 ----- MacPass/MPOutlineViewController.m | 23 ---------------------- 3 files changed, 18 insertions(+), 42 deletions(-) diff --git a/MacPass/MPDocument.m b/MacPass/MPDocument.m index 017ecfe8..baf76d29 100644 --- a/MacPass/MPDocument.m +++ b/MacPass/MPDocument.m @@ -520,31 +520,35 @@ typedef NS_ENUM(NSUInteger, MPAlertType) { - (BOOL)validateUserInterfaceItem:(id)anItem { if(self.encrypted || self.isReadOnly) { return NO; } + BOOL valid = YES; switch([MPActionHelper typeForAction:[anItem action]]) { + case MPActionAddGroup: + valid &= (nil != self.selectedGroup); + // fall-through + case MPActionAddEntry: + // fall-through case MPActionDelete: { - BOOL valid = (nil != self.selectedItem); - valid &= (self.selectedItem != self.trash); + valid &= (nil != self.selectedItem); + valid &= (self.trash != self.selectedItem); valid &= ![self isItemTrashed:self.selectedItem]; - return valid; + break; } case MPActionEmptyTrash: { - BOOL hasGroups = [self.trash.groups count] > 0; - BOOL hasEntries = [self.trash.entries count] > 0; - return (hasEntries || hasGroups); + valid &= [self.trash.groups count] > 0; + valid &= [self.trash.entries count] > 0; + break; } case MPActionDatabaseSettings: case MPActionEditPassword: - return !self.encrypted; - case MPActionAddGroup: - case MPActionAddEntry: - return (nil != self.selectedGroup); + valid &= !self.encrypted; + break; case MPActionLock: - return self.compositeKey.hasPasswordOrKeyFile; + valid &= self.compositeKey.hasPasswordOrKeyFile; + break; default: - return YES; + valid = YES; } - - return [super validateUserInterfaceItem:anItem]; + return valid; } - (void)_storeKeyURL:(NSURL *)keyURL { diff --git a/MacPass/MPEntryViewController.m b/MacPass/MPEntryViewController.m index e77ef701..16dd5042 100644 --- a/MacPass/MPEntryViewController.m +++ b/MacPass/MPEntryViewController.m @@ -676,11 +676,6 @@ NSString *const _MPTAbleSecurCellView = @"PasswordCell"; // // //} -#pragma mark Validation -- (BOOL)validateMenuItem:(NSMenuItem *)menuItem { - return YES; -} - - (IBAction)_toggleFilterSpace:(id)sender { if(![sender isKindOfClass:[NSButton class]]) { return; // Wrong sender diff --git a/MacPass/MPOutlineViewController.m b/MacPass/MPOutlineViewController.m index 1f061a64..0cde82d4 100644 --- a/MacPass/MPOutlineViewController.m +++ b/MacPass/MPOutlineViewController.m @@ -158,29 +158,6 @@ NSString *const _MPOutlinveViewHeaderViewIdentifier = @"HeaderCell"; return [[self.outlineView itemAtRow:row] representedObject]; } -#pragma mark Validation - -- (BOOL)validateMenuItem:(NSMenuItem *)menuItem { - MPActionType actionType = [MPActionHelper typeForAction:[menuItem action]]; - switch(actionType) { - case MPActionAddEntry: - case MPActionAddGroup: - case MPActionDelete: { - MPDocument *document = [[self windowController] document]; - id selected = [self _clickedOrSelectedGroup]; - if(!selected) { - return NO; - } - if(selected == document.trash) { - return NO; - } - return ![document isItemTrashed:selected]; - } - default: - return YES; // We are only validated for three targets - } -} - #pragma mark - #pragma mark Actions