Newly created Groups now get shown by expanding theri parent node after creation. Selection not working for now

This commit is contained in:
michael starke
2014-08-13 00:42:02 +02:00
parent dc8b9d0bb4
commit 2fef801f72
4 changed files with 29 additions and 6 deletions

View File

@@ -23,15 +23,24 @@
#import <Cocoa/Cocoa.h> #import <Cocoa/Cocoa.h>
#import "KPKVersion.h" #import "KPKVersion.h"
/**
* Postes when a new group was added by the document. This is only fired when the user caused this by adding. Undo/Redo does NOT post this
* The userInfo dictionary conatins one the added group at MPDocumentGroupKey
*/
APPKIT_EXTERN NSString *const MPDocumentDidAddGroupNotification; APPKIT_EXTERN NSString *const MPDocumentDidAddGroupNotification;
/**
* Posted when the used has added a new entry. Not posted on undo/redo.
* The userInfo dictionary contains the added entry at MPDocumentEntryKey
*/
APPKIT_EXTERN NSString *const MPDocumentDidAddEntryNotification;
APPKIT_EXTERN NSString *const MPDocumentDidRevertNotifiation; APPKIT_EXTERN NSString *const MPDocumentDidRevertNotifiation;
APPKIT_EXTERN NSString *const MPDocumentDidLockDatabaseNotification; APPKIT_EXTERN NSString *const MPDocumentDidLockDatabaseNotification;
APPKIT_EXTERN NSString *const MPDocumentDidUnlockDatabaseNotification; APPKIT_EXTERN NSString *const MPDocumentDidUnlockDatabaseNotification;
FOUNDATION_EXTERN NSString *const MPDocumentCurrentItemChangedNotification; APPKIT_EXTERN NSString *const MPDocumentCurrentItemChangedNotification;
FOUNDATION_EXTERN NSString *const MPDocumentDidAddEntryNotification;
/* Keys used in userInfo NSDictionaries on notifications */
APPKIT_EXTERN NSString *const MPDocumentEntryKey; APPKIT_EXTERN NSString *const MPDocumentEntryKey;
APPKIT_EXTERN NSString *const MPDocumentGroupKey; APPKIT_EXTERN NSString *const MPDocumentGroupKey;

View File

@@ -47,13 +47,14 @@
#import "NSString+MPPasswordCreation.h" #import "NSString+MPPasswordCreation.h"
NSString *const MPDocumentDidAddGroupNotification = @"com.hicknhack.macpass.MPDocumentDidAddGroupNotification"; NSString *const MPDocumentDidAddGroupNotification = @"com.hicknhack.macpass.MPDocumentDidAddGroupNotification";
NSString *const MPDocumentDidAddEntryNotification = @"com.hicknhack.macpass.MPDocumentDidAddEntryNotification";
NSString *const MPDocumentDidRevertNotifiation = @"com.hicknhack.macpass.MPDocumentDidRevertNotifiation"; NSString *const MPDocumentDidRevertNotifiation = @"com.hicknhack.macpass.MPDocumentDidRevertNotifiation";
NSString *const MPDocumentDidLockDatabaseNotification = @"com.hicknhack.macpass.MPDocumentDidLockDatabaseNotification"; NSString *const MPDocumentDidLockDatabaseNotification = @"com.hicknhack.macpass.MPDocumentDidLockDatabaseNotification";
NSString *const MPDocumentDidUnlockDatabaseNotification = @"com.hicknhack.macpass.MPDocumentDidUnlockDatabaseNotification"; NSString *const MPDocumentDidUnlockDatabaseNotification = @"com.hicknhack.macpass.MPDocumentDidUnlockDatabaseNotification";
NSString *const MPDocumentCurrentItemChangedNotification = @"com.hicknhack.macpass.MPDocumentCurrentItemChangedNotification"; NSString *const MPDocumentCurrentItemChangedNotification = @"com.hicknhack.macpass.MPDocumentCurrentItemChangedNotification";
NSString *const MPDocumentDidAddEntryNotification = @"com.hicknhack.macpass.MPDocumentDidAddEntryNotification";
NSString *const MPDocumentEntryKey = @"MPDocumentEntryKey"; NSString *const MPDocumentEntryKey = @"MPDocumentEntryKey";
NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey"; NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey";
@@ -454,7 +455,8 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey
} }
[parent addEntry:newEntry]; [parent addEntry:newEntry];
[parent.undoManager setActionName:NSLocalizedString(@"ADD_ENTRY", "")]; [parent.undoManager setActionName:NSLocalizedString(@"ADD_ENTRY", "")];
[[NSNotificationCenter defaultCenter] postNotificationName:MPDocumentDidAddEntryNotification object:self]; NSDictionary *userInfo = @{ MPDocumentEntryKey: newEntry };
[[NSNotificationCenter defaultCenter] postNotificationName:MPDocumentDidAddEntryNotification object:self userInfo:userInfo];
return newEntry; return newEntry;
} }

View File

@@ -159,7 +159,18 @@ NSString *const _MPOutlinveViewHeaderViewIdentifier = @"HeaderCell";
# pragma mark MPDocument Notifications # pragma mark MPDocument Notifications
- (void)_didAddGroup:(NSNotification *)notification { - (void)_didAddGroup:(NSNotification *)notification {
//TODO: find group to expand! NSDictionary *userInfo = [notification userInfo];
KPKGroup *group = userInfo[MPDocumentGroupKey];
NSIndexPath *groupIndexPath = [group indexPath];
NSTreeNode *groupNode = [[self.treeController arrangedObjects] descendantNodeAtIndexPath:groupIndexPath];
[self.outlineView expandItem:groupNode.parentNode];
/* TODO: Select created Group
NSUInteger row = 0;
for(NSUInteger index = 0; index < [groupIndexPath length]; index++ ) {
row += [groupIndexPath indexAtPosition:index];
}
[self.outlineView selectRowIndexes:[NSIndexSet indexSetWithIndex:row] byExtendingSelection:NO];
*/
} }
- (id)itemUnderMouse { - (id)itemUnderMouse {
@@ -242,6 +253,7 @@ NSString *const _MPOutlinveViewHeaderViewIdentifier = @"HeaderCell";
id representedObject = [item representedObject]; id representedObject = [item representedObject];
if([representedObject isKindOfClass:[KPKGroup class]]) { if([representedObject isKindOfClass:[KPKGroup class]]) {
KPKGroup *group = (KPKGroup *)representedObject; KPKGroup *group = (KPKGroup *)representedObject;
NSLog(@"IndexPath for %@: %@ vs. %@", group.name, [item indexPath], [group indexPath]);
group.isExpanded = YES; group.isExpanded = YES;
} }
} }