mirror of
https://github.com/MacPass/MacPass.git
synced 2025-12-14 16:22:21 +00:00
79 lines
4.0 KiB
Objective-C
79 lines
4.0 KiB
Objective-C
//
|
|
// MPActionHelper.m
|
|
// MacPass
|
|
//
|
|
// Created by Michael Starke on 09.03.13.
|
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
|
//
|
|
|
|
#import "MPActionHelper.h"
|
|
#import "MPDocument.h"
|
|
#import "MPEntryInspectorViewController.h"
|
|
#import "MPEntryViewController.h"
|
|
#import "MPDocumentWindowController.h"
|
|
|
|
@implementation MPActionHelper
|
|
|
|
+ (NSDictionary *)_actionDictionary {
|
|
static NSDictionary *actionDict;
|
|
static dispatch_once_t onceToken;
|
|
dispatch_once(&onceToken, ^{
|
|
actionDict = @{
|
|
@(MPActionAddEntry): NSStringFromSelector(@selector(createEntry:)),
|
|
@(MPActionAddGroup): NSStringFromSelector(@selector(createGroup:)),
|
|
@(MPActionDuplicateEntry): NSStringFromSelector(@selector(duplicateEntry:)),
|
|
@(MPActionDuplicateEntryWithOptions): NSStringFromSelector(@selector(duplicateEntryWithOptions:)),
|
|
@(MPActionCopyPassword): NSStringFromSelector(@selector(copyPassword:)),
|
|
@(MPActionCopyURL): NSStringFromSelector(@selector(copyURL:)),
|
|
@(MPActionCopyUsername): NSStringFromSelector(@selector(copyUsername:)),
|
|
@(MPActionDelete): NSStringFromSelector(@selector(delete:)),
|
|
@(MPActionEditPassword): NSStringFromSelector(@selector(editPassword:)),
|
|
@(MPActionOpenURL): NSStringFromSelector(@selector(openURL:)),
|
|
@(MPActionToggleInspector): NSStringFromSelector(@selector(toggleInspector:)),
|
|
@(MPActionLock): NSStringFromSelector(@selector(lock:)),
|
|
@(MPActionEmptyTrash): NSStringFromSelector(@selector(emptyTrash:)),
|
|
@(MPActionDatabaseSettings): NSStringFromSelector(@selector(showDatabaseSettings:)),
|
|
@(MPActionEditTemplateGroup): NSStringFromSelector(@selector(editTemplateGroup:)),
|
|
@(MPActionExportXML): NSStringFromSelector(@selector(exportAsXML:)),
|
|
@(MPActionImportXML): NSStringFromSelector(@selector(importFromXML:)),
|
|
@(MPActionToggleQuicklook): NSStringFromSelector(@selector(toggleQuicklookPreview:)),
|
|
@(MPActionShowHistory): NSStringFromSelector(@selector(showHistory:)),
|
|
@(MPActionExitHistory): NSStringFromSelector(@selector(exitHistory:)),
|
|
@(MPActionPerformAutotypeForSelectedEntry): NSStringFromSelector(@selector(performAutotypeForEntry:))
|
|
};
|
|
});
|
|
return actionDict;
|
|
}
|
|
|
|
+ (SEL)actionOfType:(MPActionType)type {
|
|
NSDictionary *actionDict = [self _actionDictionary];
|
|
return NSSelectorFromString(actionDict[@(type)]);
|
|
}
|
|
|
|
+ (NSString *)keyEquivalentForAction:(MPActionType)type {
|
|
static NSDictionary *keyEquivalentDictionary;
|
|
static unichar backspaceCharacter = NSBackspaceCharacter;
|
|
static dispatch_once_t onceToken;
|
|
dispatch_once(&onceToken, ^{
|
|
keyEquivalentDictionary = @{ @(MPActionDelete): [[NSString alloc] initWithCharacters:&backspaceCharacter length:1] };
|
|
});
|
|
NSString *keyEquivalent = keyEquivalentDictionary[@(type)];
|
|
return keyEquivalent ? keyEquivalent : @"";
|
|
}
|
|
|
|
+ (MPActionType)typeForAction:(SEL)action {
|
|
NSString *selectorString = NSStringFromSelector(action);
|
|
NSArray *selectors = [[self _actionDictionary] allValues];
|
|
NSUInteger index = [selectors indexOfObject:selectorString];
|
|
if(index == NSNotFound) {
|
|
// Test for default Actions?
|
|
return MPUnkownAction;
|
|
}
|
|
NSArray *keys = [[self _actionDictionary] allKeysForObject:selectorString];
|
|
NSAssert([keys count] == 1, @"There should only be one object for the specified key");
|
|
return [[keys lastObject] integerValue];
|
|
}
|
|
|
|
|
|
@end
|