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

View File

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

View File

@@ -568,6 +568,16 @@ NSString *const _MPTAbleSecurCellView = @"PasswordCell";
self.trashBar.inactiveGradient = [[NSGradient alloc] initWithColors:inactiveColors]; 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 #pragma mark ContextMenu
- (void)_setupEntryMenu { - (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 -
#pragma mark Private #pragma mark Private