mirror of
https://github.com/MacPass/MacPass.git
synced 2026-01-30 09:58:22 +00:00
modern Objective-C, added setting for template workflow
New settign added that allows to update password for entries created via a template
This commit is contained in:
@@ -59,6 +59,7 @@ APPKIT_EXTERN NSString *const kMPSettingsKeyEnableQuicklookPreview;
|
|||||||
/* Workflow */
|
/* Workflow */
|
||||||
APPKIT_EXTERN NSString *const kMPSettingsKeyDoubleClickURLAction;
|
APPKIT_EXTERN NSString *const kMPSettingsKeyDoubleClickURLAction;
|
||||||
APPKIT_EXTERN NSString *const kMPSettingsKeyDoubleClickTitleAction;
|
APPKIT_EXTERN NSString *const kMPSettingsKeyDoubleClickTitleAction;
|
||||||
|
APPKIT_EXTERN NSString *const kMPSettingsKeyUpdatePasswordOnTemplateEntries;
|
||||||
|
|
||||||
/* Plugins */
|
/* Plugins */
|
||||||
APPKIT_EXTERN NSString *const kMPSettingsKeyLoadUnsecurePlugins; // If set to YES this will load all plugins regardless of their codesignature status
|
APPKIT_EXTERN NSString *const kMPSettingsKeyLoadUnsecurePlugins; // If set to YES this will load all plugins regardless of their codesignature status
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ NSString *const kMPSettingsKeyPasswordDefaultsForEntry = @"Passwo
|
|||||||
|
|
||||||
NSString *const kMPSettingsKeyDoubleClickURLAction = @"DoubleClickURLAction";
|
NSString *const kMPSettingsKeyDoubleClickURLAction = @"DoubleClickURLAction";
|
||||||
NSString *const kMPSettingsKeyDoubleClickTitleAction = @"DoubleClickTitleAction";
|
NSString *const kMPSettingsKeyDoubleClickTitleAction = @"DoubleClickTitleAction";
|
||||||
|
NSString *const kMPSettingsKeyUpdatePasswordOnTemplateEntries = @"UpdatePasswordOnTemplateEntries";
|
||||||
|
|
||||||
NSString *const kMPSettingsKeyLoadUnsecurePlugins = @"MPLoadUnsecurePlugins";
|
NSString *const kMPSettingsKeyLoadUnsecurePlugins = @"MPLoadUnsecurePlugins";
|
||||||
|
|
||||||
@@ -124,7 +125,8 @@ NSString *const kMPDeprecatedSettingsKeyShowMenuItem = @"Sh
|
|||||||
kMPSettingsKeyPasswordCustomString: @"",
|
kMPSettingsKeyPasswordCustomString: @"",
|
||||||
kMPSettingsKeyDoubleClickURLAction: @(MPDoubleClickURLActionCopy),
|
kMPSettingsKeyDoubleClickURLAction: @(MPDoubleClickURLActionCopy),
|
||||||
kMPSettingsKeyDoubleClickTitleAction: @(MPDoubleClickTitleActionInspect),
|
kMPSettingsKeyDoubleClickTitleAction: @(MPDoubleClickTitleActionInspect),
|
||||||
kMPSettingsKeyLoadUnsecurePlugins: @NO
|
kMPSettingsKeyLoadUnsecurePlugins: @NO,
|
||||||
|
kMPSettingsKeyUpdatePasswordOnTemplateEntries: @YES
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
return standardDefaults;
|
return standardDefaults;
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
@property (weak) IBOutlet NSPopUpButton *browserPopup;
|
@property (weak) IBOutlet NSPopUpButton *browserPopup;
|
||||||
@property (weak) IBOutlet NSPopUpButton *doubleClickURLPopup;
|
@property (weak) IBOutlet NSPopUpButton *doubleClickURLPopup;
|
||||||
@property (weak) IBOutlet NSPopUpButton *doubleClickTitlePopup;
|
@property (weak) IBOutlet NSPopUpButton *doubleClickTitlePopup;
|
||||||
|
@property (weak) IBOutlet NSButton *updatePasswordOnTemplateEntriesCheckButton;
|
||||||
|
|
||||||
- (IBAction)_showCustomBrowserSelection:(id)sender;
|
- (IBAction)_showCustomBrowserSelection:(id)sender;
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
[self.doubleClickURLPopup bind:NSSelectedIndexBinding toObject:defaultsController withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyDoubleClickURLAction] options:nil];
|
[self.doubleClickURLPopup bind:NSSelectedIndexBinding toObject:defaultsController withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyDoubleClickURLAction] options:nil];
|
||||||
[self.doubleClickTitlePopup bind:NSSelectedIndexBinding toObject:defaultsController withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyDoubleClickTitleAction] options:nil];
|
[self.doubleClickTitlePopup bind:NSSelectedIndexBinding toObject:defaultsController withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyDoubleClickTitleAction] options:nil];
|
||||||
|
[self.updatePasswordOnTemplateEntriesCheckButton bind:NSValueBinding toObject:defaultsController withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyUpdatePasswordOnTemplateEntries] options:nil];
|
||||||
[self _updateBrowserSelection];
|
[self _updateBrowserSelection];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -62,17 +62,17 @@
|
|||||||
- (void)_showCustomBrowserSelection:(id)sender {
|
- (void)_showCustomBrowserSelection:(id)sender {
|
||||||
NSOpenPanel *openPanel = [NSOpenPanel openPanel];
|
NSOpenPanel *openPanel = [NSOpenPanel openPanel];
|
||||||
NSURL *applicationURL = [[NSFileManager defaultManager] URLsForDirectory:NSApplicationDirectory inDomains:NSLocalDomainMask][0];
|
NSURL *applicationURL = [[NSFileManager defaultManager] URLsForDirectory:NSApplicationDirectory inDomains:NSLocalDomainMask][0];
|
||||||
[openPanel setDirectoryURL:applicationURL];
|
openPanel.directoryURL = applicationURL;
|
||||||
[openPanel setAllowsMultipleSelection:NO];
|
openPanel.allowsMultipleSelection = NO;
|
||||||
[openPanel setCanChooseDirectories:NO];
|
openPanel.canChooseDirectories = NO;
|
||||||
[openPanel setCanChooseFiles:YES];
|
openPanel.canChooseFiles = YES;
|
||||||
[openPanel setAllowedFileTypes:@[@"app"]];
|
openPanel.allowedFileTypes = @[@"app"];
|
||||||
|
|
||||||
[openPanel beginSheetModalForWindow:[[self view] window] completionHandler:^(NSInteger result) {
|
[openPanel beginSheetModalForWindow:self.view.window completionHandler:^(NSInteger result) {
|
||||||
if(result == NSFileHandlingPanelOKButton) {
|
if(result == NSFileHandlingPanelOKButton) {
|
||||||
// TODO: Autorelease pool?
|
// TODO: Autorelease pool?
|
||||||
NSMenuItem *customBrowser = [[NSMenuItem alloc] init];
|
NSMenuItem *customBrowser = [[NSMenuItem alloc] init];
|
||||||
[customBrowser setRepresentedObject:[[NSBundle bundleWithPath:[[openPanel URL] path]] bundleIdentifier]];
|
customBrowser.representedObject = [NSBundle bundleWithPath:openPanel.URL.path].bundleIdentifier;
|
||||||
[self _selectBrowser:customBrowser];
|
[self _selectBrowser:customBrowser];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -86,11 +86,14 @@
|
|||||||
- (void)_updateBrowserSelection {
|
- (void)_updateBrowserSelection {
|
||||||
/* Use a delegate ? */
|
/* Use a delegate ? */
|
||||||
NSMenu *browserMenu = [[NSMenu alloc] init];
|
NSMenu *browserMenu = [[NSMenu alloc] init];
|
||||||
[self.browserPopup setMenu:browserMenu];
|
self.browserPopup.menu = browserMenu;
|
||||||
|
|
||||||
NSMenuItem *defaultItem = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"DEFAULT_BROWSER", "Default Browser") action:@selector(_selectBrowser:) keyEquivalent:@""];
|
NSMenuItem *defaultItem = [[NSMenuItem alloc] init];
|
||||||
[defaultItem setRepresentedObject:nil];
|
defaultItem.title = NSLocalizedString(@"DEFAULT_BROWSER", "Default Browser");
|
||||||
[defaultItem setTarget:self];
|
defaultItem.action = @selector(_selectBrowser:);
|
||||||
|
defaultItem.keyEquivalent = @"";
|
||||||
|
defaultItem.representedObject = nil;
|
||||||
|
defaultItem.target = self;
|
||||||
[browserMenu addItem:defaultItem];
|
[browserMenu addItem:defaultItem];
|
||||||
|
|
||||||
NSString *currentDefaultBrowser = [[NSUserDefaults standardUserDefaults] objectForKey:kMPSettingsKeyBrowserBundleId];
|
NSString *currentDefaultBrowser = [[NSUserDefaults standardUserDefaults] objectForKey:kMPSettingsKeyBrowserBundleId];
|
||||||
@@ -104,9 +107,12 @@
|
|||||||
if(nil == bundlePath || nil == browserName) {
|
if(nil == bundlePath || nil == browserName) {
|
||||||
continue; // Skip missing Applications
|
continue; // Skip missing Applications
|
||||||
}
|
}
|
||||||
NSMenuItem *browserItem = [[NSMenuItem alloc] initWithTitle:browserName action:@selector(_selectBrowser:) keyEquivalent:@""];
|
NSMenuItem *browserItem = [[NSMenuItem alloc] init];
|
||||||
[browserItem setRepresentedObject:bundleIdentifier];
|
browserItem.title = browserName;
|
||||||
[browserItem setTarget:self];
|
browserItem.action = @selector(_selectBrowser:);
|
||||||
|
browserItem.keyEquivalent = @"";
|
||||||
|
browserItem.representedObject = bundleIdentifier;
|
||||||
|
browserItem.target = self;
|
||||||
[browserMenu addItem:browserItem];
|
[browserMenu addItem:browserItem];
|
||||||
|
|
||||||
if ([bundleIdentifier isEqualToString:currentDefaultBrowser]) {
|
if ([bundleIdentifier isEqualToString:currentDefaultBrowser]) {
|
||||||
@@ -114,7 +120,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if([[browserMenu itemArray] count] > 2) {
|
if(browserMenu.itemArray.count > 2) {
|
||||||
[browserMenu addItem:[NSMenuItem separatorItem]];
|
[browserMenu addItem:[NSMenuItem separatorItem]];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -122,19 +128,23 @@
|
|||||||
NSString *bundlePath = [[NSWorkspace sharedWorkspace] absolutePathForAppBundleWithIdentifier:currentDefaultBrowser];
|
NSString *bundlePath = [[NSWorkspace sharedWorkspace] absolutePathForAppBundleWithIdentifier:currentDefaultBrowser];
|
||||||
if (bundlePath != nil) {
|
if (bundlePath != nil) {
|
||||||
NSString *browserName = [[NSFileManager defaultManager] displayNameAtPath:bundlePath];
|
NSString *browserName = [[NSFileManager defaultManager] displayNameAtPath:bundlePath];
|
||||||
NSMenuItem *browserItem = [[NSMenuItem alloc] initWithTitle:browserName action:@selector(_selectBrowser:) keyEquivalent:@""];
|
NSMenuItem *browserItem = [[NSMenuItem alloc] init];
|
||||||
[browserItem setRepresentedObject:currentDefaultBrowser];
|
browserItem.title = browserName;
|
||||||
[browserItem setTarget:self];
|
browserItem.action = @selector(_selectBrowser:);
|
||||||
|
browserItem.keyEquivalent = @"";
|
||||||
|
browserItem.representedObject = currentDefaultBrowser;
|
||||||
|
browserItem.target = self;
|
||||||
[browserMenu addItem:browserItem];
|
[browserMenu addItem:browserItem];
|
||||||
|
|
||||||
selectedItem = browserItem;
|
selectedItem = browserItem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
NSMenuItem *selectOtherBrowserItem = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"OTHER_BROWSER", "Select Browser")
|
NSMenuItem *selectOtherBrowserItem = [[NSMenuItem alloc] init];
|
||||||
action:@selector(_showCustomBrowserSelection:)
|
selectOtherBrowserItem.title = NSLocalizedString(@"OTHER_BROWSER", "Select Browser");
|
||||||
keyEquivalent:@""];
|
selectOtherBrowserItem.action = @selector(_showCustomBrowserSelection:);
|
||||||
[selectOtherBrowserItem setTarget:self];
|
selectOtherBrowserItem.keyEquivalent = @"";
|
||||||
|
selectOtherBrowserItem.target = self;
|
||||||
|
|
||||||
[browserMenu addItem:selectOtherBrowserItem];
|
[browserMenu addItem:selectOtherBrowserItem];
|
||||||
[self.browserPopup selectItem:selectedItem];
|
[self.browserPopup selectItem:selectedItem];
|
||||||
|
|||||||
Reference in New Issue
Block a user