diff --git a/MacPass.xcodeproj/project.pbxproj b/MacPass.xcodeproj/project.pbxproj index 7b223f18..b169c54d 100644 --- a/MacPass.xcodeproj/project.pbxproj +++ b/MacPass.xcodeproj/project.pbxproj @@ -7,7 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - 4C06398F15B980640004DE27 /* OutlineView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C06398E15B980640004DE27 /* OutlineView.xib */; }; 4C37A84015B8B474005EF8EE /* MPOutlineDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C37A83F15B8B474005EF8EE /* MPOutlineDataSource.m */; }; 4C77E36715B84A240093A587 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C77E36615B84A240093A587 /* Cocoa.framework */; }; 4C77E37115B84A240093A587 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4C77E36F15B84A240093A587 /* InfoPlist.strings */; }; @@ -66,7 +65,6 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 4C06398E15B980640004DE27 /* OutlineView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = OutlineView.xib; sourceTree = ""; }; 4C37A83E15B8B474005EF8EE /* MPOutlineDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPOutlineDataSource.h; sourceTree = ""; }; 4C37A83F15B8B474005EF8EE /* MPOutlineDataSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPOutlineDataSource.m; sourceTree = ""; }; 4C77E36215B84A240093A587 /* MacPass.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MacPass.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -196,7 +194,6 @@ isa = PBXGroup; children = ( 4C77E37B15B84A240093A587 /* MainMenu.xib */, - 4C06398E15B980640004DE27 /* OutlineView.xib */, 4C88763315BABA30003D2CE9 /* PasswordWindow.xib */, ); name = Views; @@ -480,7 +477,6 @@ 4CAD747A15B887FD00104512 /* .hgignore in Resources */, 4CAD748015B887FD00104512 /* LICENSE.txt in Resources */, 4CAD748115B887FD00104512 /* README.markdown in Resources */, - 4C06398F15B980640004DE27 /* OutlineView.xib in Resources */, 4C88763415BABA30003D2CE9 /* PasswordWindow.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/MacPass/MPAppDelegate.h b/MacPass/MPAppDelegate.h index d7eb5a2d..b1a0541f 100644 --- a/MacPass/MPAppDelegate.h +++ b/MacPass/MPAppDelegate.h @@ -15,8 +15,6 @@ APPKIT_EXTERN NSString *const kOutlineViewIdentifier; @interface MPAppDelegate : NSObject @property (assign) IBOutlet NSWindow *window; -@property (assign) IBOutlet NSImageView *outlineImage; -@property (assign) IBOutlet NSTextField *outlineText; @property (readonly, retain) MPDatabaseDocument *database; diff --git a/MacPass/MPAppDelegate.m b/MacPass/MPAppDelegate.m index 61ed5ddc..550adcaf 100644 --- a/MacPass/MPAppDelegate.m +++ b/MacPass/MPAppDelegate.m @@ -20,28 +20,31 @@ NSString *const kOutlineViewIdentifier = @"OutlineView"; @property (retain) MPOutlineDataSource *datasource; @property (retain) MPOutlineViewDelegate *outlineDelegate; @property (retain) MPDatabaseDocument *database; +- (void)updateData; @end @implementation MPAppDelegate @synthesize outlineView = _outlineView; @synthesize window = _window; -@synthesize outlineImage = _OutlineImage; -@synthesize outlineText = _outlineText; @synthesize database = _database; @synthesize outlineDelegate = _outlineDelegate; @synthesize datasource = _datasource; - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { - //_database = [[MPDatabaseDocument alloc] initWithFile:NSURL password:<#(NSString *)#> keyfile:<#(NSURL *)#> - _outlineDelegate = [[MPOutlineViewDelegate alloc] init]; _datasource = [[MPOutlineDataSource alloc] init]; + [[_outlineView outlineTableColumn] setIdentifier:kColumnIdentifier]; [_outlineView setDelegate:_outlineDelegate]; [_outlineView setDataSource:_datasource]; - // show open dialog? - // show main window? + + // register for sucessfull document loads + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateData) name:MPDidLoadDataBaseNotification object:_database]; +} + +- (void)updateData { + [_outlineView reloadData]; } @end diff --git a/MacPass/MPDatabaseDocument.h b/MacPass/MPDatabaseDocument.h index 22b8a848..4d95d607 100644 --- a/MacPass/MPDatabaseDocument.h +++ b/MacPass/MPDatabaseDocument.h @@ -8,6 +8,8 @@ #import +APPKIT_EXTERN NSString *const MPDidLoadDataBaseNotification; + @interface MPDatabaseDocument : NSObject - (id)initWithFile:(NSURL *)file password:(NSString *)password keyfile:(NSURL *)key; diff --git a/MacPass/MPDatabaseDocument.m b/MacPass/MPDatabaseDocument.m index 2e11edc3..8bfc5ec9 100644 --- a/MacPass/MPDatabaseDocument.m +++ b/MacPass/MPDatabaseDocument.m @@ -9,6 +9,8 @@ #import "MPDatabaseDocument.h" #import "KdbLib.h" +NSString *const MPDidLoadDataBaseNotification = @"DidLoadDataBaseNotification"; + @interface MPDatabaseDocument () @property (retain) KdbTree *tree; @end @@ -42,6 +44,11 @@ @catch (NSException *exception) { // ignore } + if( _tree != nil) { + // Post notification that a new document was loaded + NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter]; + [defaultCenter postNotificationName:MPDidLoadDataBaseNotification object:self]; + } } return self; } diff --git a/MacPass/MPOutlineDataSource.m b/MacPass/MPOutlineDataSource.m index 732795f7..b4db20e2 100644 --- a/MacPass/MPOutlineDataSource.m +++ b/MacPass/MPOutlineDataSource.m @@ -7,14 +7,15 @@ // #import "MPOutlineDataSource.h" +#import "MPDatabaseDocument.h" @implementation MPOutlineDataSource - (NSInteger)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item { - return 10; + return 1; } - (id)outlineView:(NSOutlineView *)outlineView child:(NSInteger)index ofItem:(id)item { - return nil; + return @"Super"; } - (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item { return YES; diff --git a/MacPass/MPOutlineViewDelegate.m b/MacPass/MPOutlineViewDelegate.m index 243895fc..2db8ccb9 100644 --- a/MacPass/MPOutlineViewDelegate.m +++ b/MacPass/MPOutlineViewDelegate.m @@ -11,8 +11,17 @@ @implementation MPOutlineViewDelegate - (NSView *)outlineView:(NSOutlineView *)outlineView viewForTableColumn:(NSTableColumn *)tableColumn item:(id)item { - NSView *view = [outlineView makeViewWithIdentifier:@"OutlineViewCell" owner:self]; + NSTableCellView *view = [outlineView makeViewWithIdentifier:@"OutlineCell" owner:self]; + [view.imageView setImage:[NSImage imageNamed:NSImageNameFolder]]; + [view.textField setStringValue:@"Test"]; return view; } +- (BOOL)outlineView:(NSOutlineView *)outlineView isGroupItem:(id)item { + if(item == nil) { + return YES; + } + return NO; +} + @end diff --git a/MacPass/OutlineView.xib b/MacPass/OutlineView.xib deleted file mode 100644 index f7c97667..00000000 --- a/MacPass/OutlineView.xib +++ /dev/null @@ -1,442 +0,0 @@ - - - - 1070 - 11E53 - 2182 - 1138.47 - 569.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 2182 - - - NSTextField - NSCustomObject - NSCustomView - NSImageCell - IBNSLayoutConstraint - NSImageView - NSTextFieldCell - - - com.apple.InterfaceBuilder.CocoaPlugin - - - PluginDependencyRecalculationVersion - - - - - MPAppDelegate - - - FirstResponder - - - NSApplication - - - - 268 - - - - 268 - {{47, 8}, {38, 17}} - - - _NS:1505 - YES - - 68288064 - 272630784 - Label - - LucidaGrande - 13 - 1044 - - _NS:1505 - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - controlTextColor - - 3 - MAA - - - - - - - 268 - - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - NSFilenamesPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT TIFF v4.0 pasteboard type - - {32, 32} - - - - _NS:9 - YES - - 130560 - 33554432 - - NSImage - NSBluetoothTemplate - - _NS:9 - 0 - 0 - 0 - NO - - YES - - - {195, 32} - - - - NSView - - - - - - - outlineText - - - - 128 - - - - outlineImage - - - - 129 - - - - - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 1 - - - - - - - 6 - 1 - - 6 - 1 - - 20 - - 1000 - 9 - 40 - 3 - - - - - 5 - 0 - - 5 - 1 - - 0.0 - - 1000 - 8 - 29 - 3 - - - - - 3 - 0 - - 3 - 1 - - 0.0 - - 1000 - 8 - 29 - 3 - - - - - 5 - 0 - - 5 - 1 - - 50 - - 1000 - 3 - 9 - 3 - - - - - 10 - 0 - - 10 - 1 - - 0.0 - - 1000 - 6 - 24 - 2 - - - - - 4 - 0 - - 4 - 1 - - 0.0 - - 1000 - 8 - 29 - 3 - - - - - - - 51 - - - - - - 7 - 0 - - 0 - 1 - - 32 - - 1000 - 3 - 9 - 1 - - - - - - - 52 - - - - - 68 - - - - - - - - 69 - - - - - 78 - - - - - 120 - - - - - 122 - - - - - 123 - - - - - 124 - - - - - 125 - - - - - 126 - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - OutlineView - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - 129 - - - - - MPAppDelegate - NSObject - - NSImageView - NSTextField - NSOutlineView - NSWindow - - - - outlineImage - NSImageView - - - outlineText - NSTextField - - - outlineView - NSOutlineView - - - window - NSWindow - - - - IBProjectSource - ./Classes/MPAppDelegate.h - - - - NSLayoutConstraint - NSObject - - IBProjectSource - ./Classes/NSLayoutConstraint.h - - - - - 0 - IBCocoaFramework - YES - 3 - - NSBluetoothTemplate - {7, 14} - - YES - - diff --git a/MacPass/en.lproj/MainMenu.xib b/MacPass/en.lproj/MainMenu.xib index ee5e9e2f..7bde6c00 100644 --- a/MacPass/en.lproj/MainMenu.xib +++ b/MacPass/en.lproj/MainMenu.xib @@ -841,20 +841,21 @@ 268 - + 268 - - + + 2304 - - + + 256 - {170, 499} - - + {142, 499} + + + _NS:13 YES @@ -864,9 +865,9 @@ _NS:16 - + AutomaticTableColumnIdentifier.0 - 167 + 139 16 1000 @@ -892,7 +893,7 @@ - + 337772096 2048 Text Cell @@ -901,7 +902,7 @@ 13 1044 - + 6 System @@ -921,7 +922,7 @@ 3 YES YES - + 3 @@ -962,53 +963,58 @@ 1 - {{1, 1}, {170, 499}} - - + {{1, 1}, {142, 499}} + + + _NS:11 - + 4 - - + + -2147483392 {{224, 17}, {15, 102}} - - + + + _NS:15 - + _doScroller: - 0.998 + 0.99749373433583954 - - + + -2147483392 - {{1, 485}, {170, 15}} - + {{1, 485}, {122, 15}} + + _NS:60 1 - + _doScroller: - 0.62271062271062272 + 0.54222222222222227 - {172, 501} + {144, 501} - + + _NS:9 133682 - - - + + + QSAAAEEgAABBiAAAQYgAAA 256 - {{173, 0}, {551, 501}} + {{145, 0}, {579, 501}} + _NS:13 NSView @@ -1016,7 +1022,8 @@ {724, 501} - + + _NS:9 YES 2 @@ -1024,6 +1031,7 @@ {724, 501} + {{0, 0}, {1680, 1028}} @@ -1036,74 +1044,6 @@ NSFontManager - - - 274 - - - - 268 - - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - NSFilenamesPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT TIFF v4.0 pasteboard type - - {{3, 0}, {17, 17}} - - - - _NS:11 - YES - - 130560 - 33554432 - - NSImage - NSActionTemplate - - _NS:11 - 0 - 0 - 0 - NO - - YES - - - - 266 - {{25, 0}, {105, 17}} - - - _NS:20 - {250, 750} - YES - - 67239488 - 272631808 - Table View Cell - - _NS:20 - - - 6 - System - controlColor - - - - - - - {130, 17} - - - - _NS:9 - @@ -1519,25 +1459,89 @@ outlineView - + - 912 + 1109 imageView - - + + + 274 + + + + 268 + + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + {{3, 0}, {17, 17}} + + + _NS:11 + YES + + 130560 + 33554432 + + NSImage + NSActionTemplate + + _NS:11 + 0 + 0 + 0 + NO + + YES + + + + 266 + {{25, 0}, {114, 17}} + + + _NS:20 + {250, 750} + YES + + 67239488 + 272631808 + Table View Cell + + _NS:20 + + + 6 + System + controlColor + + + + + + + {{1, 0}, {139, 17}} + + _NS:9 + + - 949 + 1166 textField - - + + - 950 + 1167 @@ -2240,7 +2244,7 @@ - + @@ -2250,11 +2254,6 @@ - - 842 - - - 844 @@ -2265,63 +2264,69 @@ - - 870 - - - - - - - - - - 873 - - - - - 872 - - - - - 871 - - - - - - - - 874 - - - - - - - - 875 - - - 935 - 944 - + 842 + + + + + 1070 + - - + + + + + + + + 1073 + + + + + 1072 + + + + + 1071 + + + + + + + + 1074 + + + + + + + + + 1075 + + + + + 1161 + + + + - + 4 0 - + 4 1 @@ -2331,77 +2336,13 @@ 6 24 2 - - - - - 10 - 0 - - 10 - 1 - - 0.0 - - 1000 - 5 - 22 - 2 - - - - - 6 - 0 - - 6 - 1 - - 3 - - 1000 - 8 - 29 - 3 - - - - - 3 - 0 - - 3 - 1 - - 0.0 - - 1000 - 6 - 24 - 2 - - - - - 5 - 0 - - 5 - 1 - - 3 - - 1000 - 8 - 29 - 3 - + - + 5 0 - + 6 1 @@ -2411,18 +2352,82 @@ 6 24 3 - + + + + + 3 + 0 + + 3 + 1 + + 0.0 + + 1000 + 6 + 24 + 2 + + + + + 5 + 0 + + 5 + 1 + + 3 + + 1000 + 8 + 29 + 3 + + + + + 6 + 0 + + 6 + 1 + + 3 + + 1000 + 8 + 29 + 3 + + + + + 10 + 0 + + 10 + 1 + + 0.0 + + 1000 + 5 + 22 + 2 + - + - 945 - + 1162 + - + - + 7 0 @@ -2435,63 +2440,63 @@ 3 9 1 - + - + - 946 - + 1163 + - + - + - 947 - - + 1164 + + - 948 - - + 1165 + + - 951 - - - - - 952 + 1168 - + - 953 - - - - - 954 - - - - - 955 - - - - - 956 - - - - - 957 + 1169 - + + + + 1170 + + + + + 1171 + + + + + 1172 + + + + + 1173 + + + + + 1174 + + @@ -2499,7 +2504,44 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + + + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + OutlineCell + + + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -2604,48 +2646,14 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - - - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - OutlineViewCell - - - - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - 1018 + 1174 @@ -2653,20 +2661,10 @@ MPAppDelegate NSObject - NSImageView - NSTextField NSOutlineView NSWindow - - outlineImage - NSImageView - - - outlineText - NSTextField - outlineView NSOutlineView