From add5074daa20cb2184b33119b33a3a80b39ee600 Mon Sep 17 00:00:00 2001 From: michael starke Date: Wed, 4 Sep 2013 23:55:56 +0200 Subject: [PATCH] Fixed issue that resulted in password change button being disabled for empty password/keys after canceling the lossy save warning dialog --- MacPass/MPDocumentWindowController.m | 1 + MacPass/MPPasswordEditWindowController.m | 24 ++++++++++++------------ MacPass/MPSheetWindowController.h | 2 +- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/MacPass/MPDocumentWindowController.m b/MacPass/MPDocumentWindowController.m index 9a405741..831c76c1 100644 --- a/MacPass/MPDocumentWindowController.m +++ b/MacPass/MPDocumentWindowController.m @@ -413,6 +413,7 @@ typedef NS_ENUM(NSUInteger, MPAlertContext) { if(changedPasswordOrKey && _saveAfterPasswordChange) { [self saveDocument:nil]; } + _saveAfterPasswordChange = NO; } #pragma mark Alert Delegate diff --git a/MacPass/MPPasswordEditWindowController.m b/MacPass/MPPasswordEditWindowController.m index 2daee0e2..9193d359 100644 --- a/MacPass/MPPasswordEditWindowController.m +++ b/MacPass/MPPasswordEditWindowController.m @@ -15,12 +15,12 @@ #import "KPKTree.h" -@interface MPPasswordEditWindowController () { - MPDocument * __unsafe_unretained _document; -} -@property (nonatomic,assign) BOOL showPassword; -@property (nonatomic,assign) BOOL hasValidPasswordOrKey; -@property (nonatomic,weak) NSURL *keyURL; +@interface MPPasswordEditWindowController () + +@property (nonatomic, weak) MPDocument *currentDocument; +@property (nonatomic, assign) BOOL showPassword; +@property (nonatomic, assign) BOOL hasValidPasswordOrKey; +@property (nonatomic, weak) NSURL *keyURL; @end @@ -32,7 +32,7 @@ _allowsEmptyPasswordOrKey = YES; _showPassword = NO; _hasValidPasswordOrKey = NO; - _document = document; + _currentDocument = document; } return self; } @@ -47,9 +47,9 @@ return; } self.showPassword = NO; - [self.passwordTextField setStringValue:_document.password ? _document.password : @""]; + [self.passwordTextField setStringValue:_currentDocument.password ? _currentDocument.password : @""]; [self.passwordRepeatTextField setStringValue:[self.passwordTextField stringValue]]; - self.keyURL = _document.key; + self.keyURL = _currentDocument.key; NSDictionary *negateOption = @{ NSValueTransformerNameBindingOption : NSNegateBooleanTransformerName }; [self.passwordTextField bind:@"showPassword" toObject:self withKeyPath:@"showPassword" options:nil]; @@ -82,8 +82,8 @@ #pragma mark Actions - (IBAction)save:(id)sender { - _document.password = [self.passwordTextField stringValue]; - _document.key = [self.keyfilePathControl URL]; + _currentDocument.password = [self.passwordTextField stringValue]; + _currentDocument.key = [self.keyfilePathControl URL]; [self dismissSheet:NSRunStoppedResponse]; if(self.delegate && [self.delegate respondsToSelector:@selector(didFinishPasswordEditing:)]) { [self.delegate didFinishPasswordEditing:YES]; @@ -102,7 +102,7 @@ } - (IBAction)generateKey:(id)sender { - NSData *data = [NSData generateKeyfiledataForVersion:_document.tree.minimumVersion]; + NSData *data = [NSData generateKeyfiledataForVersion:_currentDocument.tree.minimumVersion]; if(data) { NSSavePanel *savePanel = [NSSavePanel savePanel]; [savePanel setAllowedFileTypes:@[@"key", @"xml"]]; diff --git a/MacPass/MPSheetWindowController.h b/MacPass/MPSheetWindowController.h index da91759c..8be2daa7 100644 --- a/MacPass/MPSheetWindowController.h +++ b/MacPass/MPSheetWindowController.h @@ -12,7 +12,7 @@ #import /** * Generic Windowcontroller to be used for sheets - * Subclasses are ablte to initalize their views within updateView + * Subclasses are able to initalize their views within updateView * and thus are able to reset themself befor being displayed as sheets */ @interface MPSheetWindowController : NSWindowController