mirror of
https://github.com/MacPass/MacPass.git
synced 2025-12-14 15:12:21 +00:00
Global and Entry based defaults work. Entry defaults cannot be removed for now.
This commit is contained in:
@@ -273,6 +273,7 @@ typedef NS_ENUM(NSUInteger, MPEntryTab) {
|
|||||||
[self.generatePasswordButton setEnabled:NO];
|
[self.generatePasswordButton setEnabled:NO];
|
||||||
MPPasswordCreatorViewController *viewController = [[MPPasswordCreatorViewController alloc] init];
|
MPPasswordCreatorViewController *viewController = [[MPPasswordCreatorViewController alloc] init];
|
||||||
viewController.allowsEntryDefaults = YES;
|
viewController.allowsEntryDefaults = YES;
|
||||||
|
viewController.entry = self.entry;
|
||||||
[self _showPopopver:viewController atView:self.passwordTextField onEdge:NSMinYEdge];
|
[self _showPopopver:viewController atView:self.passwordTextField onEdge:NSMinYEdge];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -93,7 +93,6 @@ typedef NS_ENUM(NSUInteger, MPPasswordRating) {
|
|||||||
[self.customCharactersTextField setStringValue:_customString];
|
[self.customCharactersTextField setStringValue:_customString];
|
||||||
|
|
||||||
/* Value Transformer */
|
/* Value Transformer */
|
||||||
|
|
||||||
id formatter = [[MPUniqueCharactersFormatter alloc] init];
|
id formatter = [[MPUniqueCharactersFormatter alloc] init];
|
||||||
[self. customCharactersTextField setFormatter:formatter];
|
[self. customCharactersTextField setFormatter:formatter];
|
||||||
|
|
||||||
@@ -166,7 +165,7 @@ typedef NS_ENUM(NSUInteger, MPPasswordRating) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)_setDefault:(id)sender {
|
- (IBAction)_setDefault:(id)sender {
|
||||||
if(self.useEntryDefaults) {
|
if(self.useEntryDefaults && self.entry) {
|
||||||
NSMutableDictionary *entryDefaults = [[self _currentEntryDefaults] mutableCopy];
|
NSMutableDictionary *entryDefaults = [[self _currentEntryDefaults] mutableCopy];
|
||||||
if(!entryDefaults) {
|
if(!entryDefaults) {
|
||||||
entryDefaults = [[NSMutableDictionary alloc] initWithCapacity:4]; // we will only add one enty to new settings
|
entryDefaults = [[NSMutableDictionary alloc] initWithCapacity:4]; // we will only add one enty to new settings
|
||||||
@@ -179,14 +178,18 @@ typedef NS_ENUM(NSUInteger, MPPasswordRating) {
|
|||||||
if(!availableDefaults) {
|
if(!availableDefaults) {
|
||||||
availableDefaults = [[NSMutableDictionary alloc] initWithCapacity:1];
|
availableDefaults = [[NSMutableDictionary alloc] initWithCapacity:1];
|
||||||
}
|
}
|
||||||
availableDefaults[self.entry.uuid] = entryDefaults;
|
availableDefaults[[self.entry.uuid UUIDString]] = entryDefaults;
|
||||||
|
[[NSUserDefaults standardUserDefaults] setObject:availableDefaults forKey:kMPSettingsKeyPasswordDefaultsForEntry];
|
||||||
}
|
}
|
||||||
else {
|
else if(!self.useEntryDefaults) {
|
||||||
[[NSUserDefaults standardUserDefaults] setInteger:self.passwordLength forKey:kMPSettingsKeyDefaultPasswordLength];
|
[[NSUserDefaults standardUserDefaults] setInteger:self.passwordLength forKey:kMPSettingsKeyDefaultPasswordLength];
|
||||||
[[NSUserDefaults standardUserDefaults] setInteger:self.characterFlags forKey:kMPSettingsKeyPasswordCharacterFlags];
|
[[NSUserDefaults standardUserDefaults] setInteger:self.characterFlags forKey:kMPSettingsKeyPasswordCharacterFlags];
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:self.useCustomString forKey:kMPSettingsKeyPasswordUseCustomString];
|
[[NSUserDefaults standardUserDefaults] setBool:self.useCustomString forKey:kMPSettingsKeyPasswordUseCustomString];
|
||||||
[[NSUserDefaults standardUserDefaults] setObject:[self.customCharactersTextField stringValue] forKey:kMPSettingsKeyPasswordCustomString];
|
[[NSUserDefaults standardUserDefaults] setObject:[self.customCharactersTextField stringValue] forKey:kMPSettingsKeyPasswordCustomString];
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
NSLog(@"Cannot set password generator defaults. Inconsitent state. Aborting.");
|
||||||
|
}
|
||||||
[self.setDefaultButton setEnabled:NO];
|
[self.setDefaultButton setEnabled:NO];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -195,6 +198,7 @@ typedef NS_ENUM(NSUInteger, MPPasswordRating) {
|
|||||||
- (void)setUseEntryDefaults:(BOOL)useEntryDefaults {
|
- (void)setUseEntryDefaults:(BOOL)useEntryDefaults {
|
||||||
if(self.useEntryDefaults != useEntryDefaults) {
|
if(self.useEntryDefaults != useEntryDefaults) {
|
||||||
_useEntryDefaults = useEntryDefaults;
|
_useEntryDefaults = useEntryDefaults;
|
||||||
|
[self.setDefaultButton setEnabled:YES];
|
||||||
[self _setupDefaults];
|
[self _setupDefaults];
|
||||||
[self reset];
|
[self reset];
|
||||||
}
|
}
|
||||||
@@ -203,8 +207,7 @@ typedef NS_ENUM(NSUInteger, MPPasswordRating) {
|
|||||||
- (void)setEntry:(KPKEntry *)entry {
|
- (void)setEntry:(KPKEntry *)entry {
|
||||||
if(_entry != entry) {
|
if(_entry != entry) {
|
||||||
_entry = entry;
|
_entry = entry;
|
||||||
[self _setupDefaults];
|
self.useEntryDefaults = [self _hasValidDefaultsForCurrentEntry];
|
||||||
[self reset];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -250,18 +253,18 @@ typedef NS_ENUM(NSUInteger, MPPasswordRating) {
|
|||||||
|
|
||||||
- (NSDictionary *)_currentEntryDefaults {
|
- (NSDictionary *)_currentEntryDefaults {
|
||||||
if(self.entry) {
|
if(self.entry) {
|
||||||
return [self _availableEntryDefaults][self.entry.uuid];
|
return [self _availableEntryDefaults][[self.entry.uuid UUIDString]];
|
||||||
}
|
}
|
||||||
return nil;
|
return nil;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)_setupDefaults {
|
- (void)_setupDefaults {
|
||||||
NSDictionary *entryDefaults = [self _currentEntryDefaults];
|
NSDictionary *entryDefaults = [self _currentEntryDefaults];
|
||||||
if(entryDefaults) {
|
if(entryDefaults && self.useEntryDefaults) {
|
||||||
self.passwordLength = [entryDefaults[kMPSettingsKeyDefaultPasswordLength] integerValue];
|
self.passwordLength = [entryDefaults[kMPSettingsKeyDefaultPasswordLength] integerValue];
|
||||||
self.characterFlags = [entryDefaults[kMPSettingsKeyPasswordCharacterFlags] integerValue];
|
self.characterFlags = [entryDefaults[kMPSettingsKeyPasswordCharacterFlags] integerValue];
|
||||||
self.useCustomString = [entryDefaults[kMPSettingsKeyPasswordUseCustomString] boolValue];
|
self.useCustomString = [entryDefaults[kMPSettingsKeyPasswordUseCustomString] boolValue];
|
||||||
self.customString = [entryDefaults[kMPSettingsKeyPasswordCustomString] stringValue];
|
self.customString = entryDefaults[kMPSettingsKeyPasswordCustomString];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
self.passwordLength = [[NSUserDefaults standardUserDefaults] integerForKey:kMPSettingsKeyDefaultPasswordLength];
|
self.passwordLength = [[NSUserDefaults standardUserDefaults] integerForKey:kMPSettingsKeyDefaultPasswordLength];
|
||||||
@@ -271,6 +274,10 @@ typedef NS_ENUM(NSUInteger, MPPasswordRating) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (BOOL)_hasValidDefaultsForCurrentEntry {
|
||||||
|
return (nil != [self _currentEntryDefaults]);
|
||||||
|
}
|
||||||
|
|
||||||
- (void)_resetCharacters {
|
- (void)_resetCharacters {
|
||||||
if(self.useCustomString) {
|
if(self.useCustomString) {
|
||||||
[self.customButton setState:NSOnState];
|
[self.customButton setState:NSOnState];
|
||||||
|
|||||||
Reference in New Issue
Block a user