mirror of
https://github.com/MacPass/MacPass.git
synced 2025-12-18 08:49:26 +00:00
centralize all the UI validation in MPDocument
This commit is contained in:
@@ -206,80 +206,6 @@ typedef NS_ENUM(NSUInteger, MPAlertContext) {
|
||||
[self.entryViewController showFilter:sender];
|
||||
}
|
||||
|
||||
- (BOOL)validateMenuItem:(NSMenuItem *)menuItem {
|
||||
MPDocument *document = [self document];
|
||||
SEL itemAction = [menuItem action];
|
||||
if(itemAction == @selector(showDatabaseSettings:)
|
||||
|| itemAction == @selector(editPassword:)) {
|
||||
return !document.encrypted;
|
||||
}
|
||||
|
||||
BOOL enabled = YES;
|
||||
if(itemAction == [MPActionHelper actionOfType:MPActionDelete]) {
|
||||
enabled &= (nil != document.selectedItem) && (document.selectedItem != document.trash);
|
||||
}
|
||||
|
||||
enabled &= !( document.encrypted || document.isReadOnly );
|
||||
return enabled;
|
||||
}
|
||||
|
||||
- (BOOL)validateToolbarItem:(NSToolbarItem *)theItem {
|
||||
MPDocument *document = [self document];
|
||||
if(document.encrypted || document.isReadOnly) {
|
||||
return NO;
|
||||
}
|
||||
MPActionType actionType = [MPActionHelper typeForAction:[theItem action]];
|
||||
switch (actionType) {
|
||||
case MPActionAddGroup:
|
||||
case MPActionAddEntry:
|
||||
return (nil != document.selectedGroup);
|
||||
case MPActionDelete: {
|
||||
BOOL valid = (nil != document.selectedItem);
|
||||
valid &= (document.selectedItem != document.trash);
|
||||
valid &= ![document isItemTrashed:document.selectedItem];
|
||||
return valid;
|
||||
}
|
||||
case MPActionLock:
|
||||
return document.compositeKey.hasPasswordOrKeyFile;
|
||||
|
||||
case MPActionToggleInspector:
|
||||
return (nil != [_splitView superview]);
|
||||
|
||||
default:
|
||||
return YES;
|
||||
}
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (BOOL)validateAction:(SEL)action forItem:(id)item {
|
||||
MPDocument *document = [self document];
|
||||
if(document.encrypted || document.isReadOnly) {
|
||||
return NO;
|
||||
}
|
||||
MPActionType actionType = [MPActionHelper typeForAction:action];
|
||||
switch (actionType) {
|
||||
case MPActionAddGroup:
|
||||
case MPActionAddEntry:
|
||||
// test if Group is in trash
|
||||
return (nil != document.selectedGroup);
|
||||
case MPActionDelete: {
|
||||
BOOL valid = (nil != document.selectedItem);
|
||||
valid &= (document.selectedItem != document.trash);
|
||||
valid &= ![document isItemTrashed:document.selectedItem];
|
||||
return valid;
|
||||
}
|
||||
case MPActionLock:
|
||||
return document.compositeKey.hasPasswordOrKeyFile;
|
||||
|
||||
case MPActionToggleInspector:
|
||||
return (nil != [_splitView superview]);
|
||||
|
||||
default:
|
||||
return YES;
|
||||
}
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (void)showPasswordInput {
|
||||
if(!self.passwordInputController) {
|
||||
self.passwordInputController = [[MPPasswordInputController alloc] init];
|
||||
|
||||
Reference in New Issue
Block a user