Added removed validation but calling into central document function, since the responder needs to validate the menu items #112

This commit is contained in:
michael starke
2013-11-23 21:34:10 +01:00
parent 582bc52532
commit 7c103abd53
4 changed files with 31 additions and 4 deletions

View File

@@ -511,10 +511,12 @@ typedef NS_ENUM(NSUInteger, MPAlertType) {
}
- (BOOL)validateMenuItem:(NSMenuItem *)menuItem {
NSLog(@"Valdiate MenuItem:%@", [menuItem title]);
return [self validateUserInterfaceItem:menuItem];
}
- (BOOL)validateToolbarItem:(NSToolbarItem *)theItem {
NSLog(@"Valdiate ToolbarItem:%@", [theItem label]);
return [self validateUserInterfaceItem:theItem];
}
@@ -528,17 +530,15 @@ typedef NS_ENUM(NSUInteger, MPAlertType) {
// fall-through
case MPActionAddEntry:
// fall-through
case MPActionDelete: {
case MPActionDelete:
valid &= (nil != self.selectedItem);
valid &= (self.trash != self.selectedItem);
valid &= ![self isItemTrashed:self.selectedItem];
break;
}
case MPActionEmptyTrash: {
case MPActionEmptyTrash:
valid &= [self.trash.groups count] > 0;
valid &= [self.trash.entries count] > 0;
break;
}
case MPActionDatabaseSettings:
case MPActionEditPassword:
valid &= !self.encrypted;

View File

@@ -340,6 +340,11 @@ typedef NS_ENUM(NSUInteger, MPAlertContext) {
[_outlineViewController showOutline];
}
#pragma makr Validation
- (BOOL)validateMenuItem:(NSMenuItem *)menuItem {
return ([[self document] validateMenuItem:menuItem]);
}
#pragma mark MPPasswordEditWindowDelegate
- (void)didFinishPasswordEditing:(BOOL)changedPasswordOrKey {
if(changedPasswordOrKey && _saveAfterPasswordChange) {

View File

@@ -568,6 +568,16 @@ NSString *const _MPTAbleSecurCellView = @"PasswordCell";
self.trashBar.inactiveGradient = [[NSGradient alloc] initWithColors:inactiveColors];
}
#pragma mark Validation
- (BOOL)validateMenuItem:(NSMenuItem *)menuItem {
MPDocument *document = [[self windowController] document];
if(![document validateMenuItem:menuItem]) {
return NO;
}
return YES;
/* TODO handle _clickedOrSlectedEnty */
}
#pragma mark ContextMenu
- (void)_setupEntryMenu {

View File

@@ -237,6 +237,18 @@ NSString *const _MPOutlinveViewHeaderViewIdentifier = @"HeaderCell";
}
}
#pragma mark Validation
- (BOOL)validateMenuItem:(NSMenuItem *)menuItem {
MPDocument *document = [[self windowController] document];
if(![document validateUserInterfaceItem:menuItem]) {
return NO;
}
id selected = [self _clickedOrSelectedGroup];
if(!selected) { return NO; }
if(selected == document.trash) { return NO; }
return ![document isItemTrashed:selected];
}
#pragma mark -
#pragma mark Private