diff --git a/MacPass/MPDatabaseSettingsWindowController.m b/MacPass/MPDatabaseSettingsWindowController.m index 248d76a5..56ea84b5 100644 --- a/MacPass/MPDatabaseSettingsWindowController.m +++ b/MacPass/MPDatabaseSettingsWindowController.m @@ -84,11 +84,11 @@ metaData.recycleBinEnabled = self.trashEnabled; NSMenuItem *trashMenuItem = [self.selectRecycleBinGroupPopUpButton selectedItem]; KPKGroup *trashGroup = [trashMenuItem representedObject]; - [_document useGroupAsTrash:trashGroup]; + _document.trash = trashGroup; NSMenuItem *templateMenuItem = [self.templateGroupPopUpButton selectedItem]; KPKGroup *templateGroup = [templateMenuItem representedObject]; - [_document useGroupAsTemplate:templateGroup]; + _document.templates = templateGroup; BOOL protectNotes = [self.protectNotesCheckButton state] == NSOnState; BOOL protectPassword = [self.protectPasswortCheckButton state] == NSOnState; diff --git a/MacPass/MPDocument.h b/MacPass/MPDocument.h index f773b3b8..e59b1577 100644 --- a/MacPass/MPDocument.h +++ b/MacPass/MPDocument.h @@ -46,9 +46,9 @@ APPKIT_EXTERN NSString *const MPDocumentGroupKey; @property (nonatomic, readonly, assign) BOOL encrypted; @property (strong, readonly, nonatomic) KPKTree *tree; -@property (weak, readonly, nonatomic) KPKGroup *root; -@property (weak, readonly) KPKGroup *trash; -@property (weak, readonly) KPKGroup *templates; +@property (nonatomic, weak, readonly) KPKGroup *root; +@property (nonatomic, weak) KPKGroup *trash; +@property (nonatomic, weak) KPKGroup *templates; @property (nonatomic, strong, readonly) KPKCompositeKey *compositeKey; //@property (nonatomic, copy) NSString *password; @@ -114,8 +114,6 @@ APPKIT_EXTERN NSString *const MPDocumentGroupKey; - (NSArray *)allEntries; - (NSArray *)allGroups; -- (void)useGroupAsTrash:(KPKGroup *)group; -- (void)useGroupAsTemplate:(KPKGroup *)group; /** * Determines, whether the given item is inside the trash. * The trash group itself is not considered as trashed. diff --git a/MacPass/MPDocument.m b/MacPass/MPDocument.m index fcc90d38..97f8da7a 100644 --- a/MacPass/MPDocument.m +++ b/MacPass/MPDocument.m @@ -308,6 +308,41 @@ typedef NS_ENUM(NSUInteger, MPAlertType) { return self.tree.root; } +- (KPKGroup *)trash { + static KPKGroup *_trash = nil; + if(self.useTrash) { + BOOL trashValid = [_trash.uuid isEqual:self.tree.metaData.recycleBinUuid]; + if(!trashValid) { + _trash = [self findGroup:self.tree.metaData.recycleBinUuid]; + } + return _trash; + } + return nil; +} + +- (KPKGroup *)templates { + static KPKGroup *_templates = nil; + BOOL templateValid = [_templates.uuid isEqual:self.tree.metaData.entryTemplatesGroup]; + if(!templateValid) { + _templates = [self findGroup:self.tree.metaData.entryTemplatesGroup]; + } + return _templates; +} + +- (void)setTrash:(KPKGroup *)trash { + if(self.useTrash) { + if(![self.tree.metaData.recycleBinUuid isEqual:trash.uuid]) { + self.tree.metaData.recycleBinUuid = trash.uuid; + } + } +} + +- (void)setTemplates:(KPKGroup *)templates { + if(![self.tree.metaData.entryTemplatesGroup isEqual:templates.uuid]) { + self.tree.metaData.entryTemplatesGroup = templates.uuid; + } +} + - (void)setSelectedGroup:(KPKGroup *)selectedGroup { if(_selectedGroup != selectedGroup) { _selectedGroup = selectedGroup; @@ -368,27 +403,6 @@ typedef NS_ENUM(NSUInteger, MPAlertType) { return self.tree.metaData.recycleBinEnabled; } -- (KPKGroup *)trash { - static KPKGroup *_trash = nil; - if(self.useTrash) { - BOOL trashValid = [_trash.uuid isEqual:self.tree.metaData.recycleBinUuid]; - if(!trashValid) { - _trash = [self findGroup:self.tree.metaData.recycleBinUuid]; - } - return _trash; - } - return nil; -} - -- (KPKGroup *)templates { - static KPKGroup *_templates = nil; - BOOL templateValid = [_templates.uuid isEqual:self.tree.metaData.entryTemplatesGroup]; - if(!templateValid) { - _templates = [self findGroup:self.tree.metaData.entryTemplatesGroup]; - } - return _templates; -} - - (BOOL)isItemTrashed:(id)item { BOOL validItem = [item isKindOfClass:[KPKEntry class]] || [item isKindOfClass:[KPKGroup class]]; if(!item) { @@ -409,20 +423,6 @@ typedef NS_ENUM(NSUInteger, MPAlertType) { return NO; } -- (void)useGroupAsTrash:(KPKGroup *)group { - if(self.useTrash) { - if(![self.tree.metaData.recycleBinUuid isEqual:group.uuid]) { - self.tree.metaData.recycleBinUuid = group.uuid; - } - } -} - -- (void)useGroupAsTemplate:(KPKGroup *)group { - if(![self.tree.metaData.entryTemplatesGroup isEqual:group.uuid]) { - self.tree.metaData.entryTemplatesGroup = group.uuid; - } -} - #pragma mark Data manipulation - (KPKEntry *)createEntry:(KPKGroup *)parent { if(!parent) {