consolidate other validations

This commit is contained in:
Andrew Schleifer
2013-11-23 10:46:07 -06:00
parent 62a4f9f3e3
commit 71939a4497
3 changed files with 18 additions and 42 deletions

View File

@@ -520,31 +520,35 @@ typedef NS_ENUM(NSUInteger, MPAlertType) {
- (BOOL)validateUserInterfaceItem:(id<NSValidatedUserInterfaceItem>)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 {

View File

@@ -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

View File

@@ -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