mirror of
https://github.com/MacPass/MacPass.git
synced 2025-12-25 08:59:24 +00:00
completed simple merge workflow. Made passwordInputController better reusabel
This commit is contained in:
@@ -26,6 +26,11 @@
|
||||
@property (weak) IBOutlet NSTextField *errorInfoTextField;
|
||||
@property (weak) IBOutlet NSButton *togglePasswordButton;
|
||||
@property (weak) IBOutlet NSButton *enablePasswordCheckBox;
|
||||
@property (weak) IBOutlet NSButton *unlockButton;
|
||||
@property (weak) IBOutlet NSButton *cancelButton;
|
||||
|
||||
@property (copy) NSString *message;
|
||||
@property (copy) NSString *cancelLabel;
|
||||
|
||||
@property (assign) BOOL showPassword;
|
||||
@property (nonatomic, assign) BOOL enablePassword;
|
||||
@@ -66,11 +71,17 @@
|
||||
return self.passwordTextField;
|
||||
}
|
||||
|
||||
- (void)requestPasswordWithCompletionHandler:(passwordInputCompletionBlock)completionHandler {
|
||||
- (void)requestPasswordWithMessage:(NSString *)message cancelLabel:(NSString *)cancelLabel completionHandler:(passwordInputCompletionBlock)completionHandler {
|
||||
self.completionHandler = completionHandler;
|
||||
self.message = message;
|
||||
self.cancelLabel = cancelLabel;
|
||||
[self _reset];
|
||||
}
|
||||
|
||||
- (void)requestPasswordWithCompletionHandler:(passwordInputCompletionBlock)completionHandler {
|
||||
[self requestPasswordWithMessage:nil cancelLabel:nil completionHandler:completionHandler];
|
||||
}
|
||||
|
||||
#pragma mark Properties
|
||||
- (void)setEnablePassword:(BOOL)enablePassword {
|
||||
if(_enablePassword != enablePassword) {
|
||||
@@ -87,14 +98,24 @@
|
||||
#pragma mark -
|
||||
#pragma mark Private
|
||||
- (IBAction)_submit:(id)sender {
|
||||
if(self.completionHandler) {
|
||||
/* No password is different than an empty password */
|
||||
NSError *error = nil;
|
||||
NSString *password = self.enablePassword ? self.passwordTextField.stringValue : nil;
|
||||
if(!self.completionHandler(password, self.keyPathControl.URL, &error)) {
|
||||
[self _showError:error];
|
||||
[self.view.window shakeWindow:nil];
|
||||
}
|
||||
|
||||
if(!self.completionHandler) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* No password is different than an empty password */
|
||||
NSError *error = nil;
|
||||
NSString *password = self.enablePassword ? self.passwordTextField.stringValue : nil;
|
||||
|
||||
BOOL cancel = (sender == self.cancelButton);
|
||||
BOOL result = self.completionHandler(password, self.keyPathControl.URL, cancel, &error);
|
||||
if(cancel || result) {
|
||||
return;
|
||||
}
|
||||
[self _showError:error];
|
||||
/* do not shake if we are a sheet */
|
||||
if(!self.view.window.isSheet) {
|
||||
[self.view.window shakeWindow:nil];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -112,8 +133,15 @@
|
||||
self.showPassword = NO;
|
||||
self.enablePassword = YES;
|
||||
self.passwordTextField.stringValue = @"";
|
||||
self.errorInfoTextField.hidden = YES;
|
||||
self.errorImageView.hidden = YES;
|
||||
self.errorInfoTextField.hidden = (nil == self.message);
|
||||
if(self.message) {
|
||||
self.errorInfoTextField.stringValue = self.message;
|
||||
}
|
||||
self.errorImageView.hidden = (nil == self.message);;
|
||||
self.cancelButton.hidden = (nil == self.cancelLabel);
|
||||
if(self.cancelLabel) {
|
||||
self.cancelButton.stringValue = self.cancelLabel;
|
||||
}
|
||||
[self resetKeyFile:self];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user