cleaned up password creator display in appdelegate

This commit is contained in:
michael starke
2016-08-25 13:01:54 +02:00
parent e06ade6a8f
commit b7357e2e43
5 changed files with 21 additions and 35 deletions

View File

@@ -195,9 +195,7 @@ NSString *const MPDidChangeStoredKeyFilesSettings = @"com.hicknhack.macpass.MPDi
}
if(!self.passwordCreatorController) {
self.passwordCreatorController = [[MPPasswordCreatorViewController alloc] init];
self.passwordCreatorController.closeTarget = self.passwordCreatorWindow;
NSView *creatorView = [_passwordCreatorController view];
[self.passwordCreatorWindow setContentView:creatorView];
self.passwordCreatorWindow.contentView = self.passwordCreatorController.view;
[self.passwordCreatorController updateResponderChain];
}
[self.passwordCreatorController reset];

View File

@@ -272,25 +272,22 @@ static NSString *kMPContentBindingString3 = @"content.%@.%@.%@";
}
- (void)_showPopopver:(NSViewController *)viewController atView:(NSView *)view onEdge:(NSRectEdge)edge {
if(_activePopover.contentViewController == viewController) {
if(self.activePopover.contentViewController == viewController) {
return; // Do nothing, we already did show the controller
}
[_activePopover close];
NSAssert(_activePopover == nil, @"Popover hast to be niled out");
_activePopover = [[NSPopover alloc] init];
_activePopover.delegate = self;
_activePopover.behavior = NSPopoverBehaviorTransient;
if([viewController respondsToSelector:@selector(setCloseTarget:)]) {
[(id)viewController setCloseTarget:_activePopover];
}
_activePopover.contentViewController = viewController;
[_activePopover showRelativeToRect:NSZeroRect ofView:view preferredEdge:edge];
[self.activePopover close];
NSAssert(self.activePopover == nil, @"Popover hast to be niled out");
self.activePopover = [[NSPopover alloc] init];
self.activePopover.delegate = self;
self.activePopover.behavior = NSPopoverBehaviorTransient;
self.activePopover.contentViewController = viewController;
[self.activePopover showRelativeToRect:NSZeroRect ofView:view preferredEdge:edge];
}
- (void)popoverDidClose:(NSNotification *)notification {
/* We do not enable the button all the time, but it's working find this way */
[self.generatePasswordButton setEnabled:YES];
NSPopover *popover = notification.object;
id controller = _activePopover.contentViewController;
/* Check for password wizzard */
if([controller respondsToSelector:@selector(generatedPassword)]) {
@@ -300,9 +297,7 @@ static NSString *kMPContentBindingString3 = @"content.%@.%@.%@";
self.representedEntry.password = [controller generatedPassword];
}
}
/* TODO: Check for Icon wizard */
_activePopover = nil;
self.activePopover = nil;
}
#pragma mark -

View File

@@ -12,7 +12,7 @@
@interface MPPasswordCreatorViewController : MPViewController <NSTextFieldDelegate>
@property (copy, readonly) NSString *generatedPassword;
@property (weak) id closeTarget;
//@property (weak) id closeTarget;
@property (assign) BOOL allowsEntryDefaults;
/**

View File

@@ -175,11 +175,11 @@ typedef NS_ENUM(NSUInteger, MPPasswordRating) {
if(self.shouldCopyPasswordToPasteboardButton.state == NSOnState) {
[[MPPasteBoardController defaultController] copyObjects:@[self.password]];
}
[[self _findCloseTarget] performClose:nil];
[self.view.window performClose:sender];
}
- (IBAction)_cancel:(id)sender {
[[self _findCloseTarget] performClose:nil];
[self.view.window performClose:sender];
}
- (IBAction)_setDefault:(id)sender {
@@ -344,11 +344,4 @@ typedef NS_ENUM(NSUInteger, MPPasswordRating) {
self.numbersButton.state = (useNumbers ? NSOnState : NSOffState);
self.symbolsButton.state = (useSymbols ? NSOnState : NSOffState);
}
- (id)_findCloseTarget {
if([self.closeTarget respondsToSelector:@selector(performClose:)]) {
return self.closeTarget;
}
return [NSApp targetForAction:@selector(performClose:)];
}
@end

View File

@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="4514" systemVersion="13A603" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="10117" systemVersion="15G31" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<dependencies>
<deployment defaultVersion="1080" identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="4514"/>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="10117"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="MPAppDelegate">
@@ -11,15 +11,15 @@
</connections>
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application"/>
<window title="Window" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" oneShot="NO" releasedWhenClosed="NO" wantsToBeColor="NO" visibleAtLaunch="NO" animationBehavior="default" id="1">
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
<window title="Window" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" oneShot="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="default" id="1">
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES"/>
<rect key="contentRect" x="196" y="240" width="338" height="216"/>
<rect key="screenRect" x="0.0" y="0.0" width="1680" height="1028"/>
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/>
<view key="contentView" id="2">
<rect key="frame" x="0.0" y="0.0" width="338" height="216"/>
<autoresizingMask key="autoresizingMask"/>
</view>
</window>
</objects>
</document>
</document>