mirror of
https://github.com/MacPass/MacPass.git
synced 2025-12-14 15:12:21 +00:00
consolidate other validations
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user