From bb7a903a0366b12ec505853a20afaa5ec29bdd0d Mon Sep 17 00:00:00 2001 From: michael starke Date: Tue, 12 Mar 2013 00:19:17 +0100 Subject: [PATCH] Group and Entry selection now fill some Inspector Fields. No Editingin at the moment --- MacPass/InspectorTabView.xib | 310 +++++++++---------------- MacPass/MPEntryViewController.m | 2 +- MacPass/MPInspectorTabViewController.h | 18 ++ MacPass/MPInspectorTabViewController.m | 98 ++++++-- MacPass/MacPass-Info.plist | 2 +- MacPass/en.lproj/Localizable.strings | Bin 2896 -> 3116 bytes 6 files changed, 214 insertions(+), 216 deletions(-) diff --git a/MacPass/InspectorTabView.xib b/MacPass/InspectorTabView.xib index 85ed6515..a6718655 100644 --- a/MacPass/InspectorTabView.xib +++ b/MacPass/InspectorTabView.xib @@ -147,7 +147,7 @@ YES 134217728 - 0 + 33554432 NSImage NSApplicationIcon @@ -167,6 +167,7 @@ {{0, -2}, {280, 482}} + _NS:9 @@ -178,7 +179,7 @@ 268 - {{49, 440}, {32, 17}} + {{40, 440}, {41, 17}} @@ -187,7 +188,7 @@ 68157504 272630784 - Title + Name _NS:1535 @@ -392,58 +393,13 @@ NO - - - 268 - {{86, 285}, {135, 22}} - - - _NS:9 - YES - - 342884416 - 272630848 - - - _NS:9 - - YES - - - - NSAllRomanInputSourcesLocaleIdentifier - - - NO - - - - 268 - {{34, 287}, {47, 17}} - - - - _NS:1535 - YES - - 68157504 - 272630784 - Repeat - - _NS:1535 - - - - - NO - 268 {{229, 313}, {31, 25}} - + _NS:22 YES @@ -551,6 +507,70 @@ 203 + + + titleTextField + + + + 361 + + + + usernameTextField + + + + 362 + + + + URLTextField + + + + 363 + + + + passwordTextField + + + + 364 + + + + togglePasswordDisplay: + + + + 369 + + + + openURLButton + + + + 370 + + + + togglePasswordDisplayButton + + + + 371 + + + + titleOrNameLabel + + + + 372 + @@ -928,70 +948,6 @@ 24 2 - - - 3 - 0 - - 3 - 1 - - 175 - - 1000 - - 3 - 9 - 3 - - - - 5 - 0 - - 6 - 1 - - 8 - - 1000 - - 6 - 24 - 3 - - - - 6 - 0 - - 6 - 1 - - 0.0 - - 1000 - - 6 - 24 - 2 - - - - 11 - 0 - - 11 - 1 - - 0.0 - - 1000 - - 6 - 24 - 2 - 3 @@ -1008,22 +964,6 @@ 9 3 - - - 5 - 0 - - 5 - 1 - - 0.0 - - 1000 - - 6 - 24 - 2 - 5 @@ -1305,8 +1245,6 @@ - - @@ -1649,52 +1587,6 @@ - - 318 - - - - - - - - 319 - - - - - - - - 320 - - - - - 321 - - - - - 325 - - - - - 326 - - - - - 327 - - - - - 328 - - - 329 @@ -1728,11 +1620,6 @@ - - 335 - - - 110 @@ -1849,16 +1736,6 @@ 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 @@ -1866,7 +1743,6 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -1892,12 +1768,7 @@ - - - - - @@ -1919,20 +1790,41 @@ - 360 + 372 MPInspectorTabViewController MPViewController + + togglePasswordDisplay: + id + + + togglePasswordDisplay: + + togglePasswordDisplay: + id + + + NSTextField MPPopupImageView NSTextField + NSButton + NSSecureTextField NSSegmentedControl NSTabView + NSTextField + NSButton + NSTextField + + URLTextField + NSTextField + itemImageView MPPopupImageView @@ -1941,6 +1833,14 @@ itemNameTextfield NSTextField + + openURLButton + NSButton + + + passwordTextField + NSSecureTextField + tabControl NSSegmentedControl @@ -1949,6 +1849,18 @@ tabView NSTabView + + titleTextField + NSTextField + + + togglePasswordDisplayButton + NSButton + + + usernameTextField + NSTextField + IBProjectSource diff --git a/MacPass/MPEntryViewController.m b/MacPass/MPEntryViewController.m index 39e9e494..c443e5a5 100644 --- a/MacPass/MPEntryViewController.m +++ b/MacPass/MPEntryViewController.m @@ -216,7 +216,7 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername"; } MPOutlineViewDelegate *delegate = [notification object]; KdbGroup *group = delegate.selectedGroup; - [self.entryTable deselectAll:nil]; + //[self.entryTable deselectAll:nil]; if(group) { [self.entryArrayController setContent:nil]; [self.entryArrayController addObjects:group.entries]; diff --git a/MacPass/MPInspectorTabViewController.h b/MacPass/MPInspectorTabViewController.h index 352685cf..3ff8fbf6 100644 --- a/MacPass/MPInspectorTabViewController.h +++ b/MacPass/MPInspectorTabViewController.h @@ -8,6 +8,24 @@ #import "MPViewController.h" +@class MPPopupImageView; + @interface MPInspectorTabViewController : MPViewController +@property (assign) IBOutlet MPPopupImageView *itemImageView; +@property (assign) IBOutlet NSTextField *itemNameTextfield; +@property (assign) IBOutlet NSTabView *tabView; +@property (assign) IBOutlet NSSegmentedControl *tabControl; + +@property (assign) IBOutlet NSTextField *titleTextField; +@property (assign) IBOutlet NSTextField *usernameTextField; +@property (assign) IBOutlet NSTextField *URLTextField; +@property (assign) IBOutlet NSSecureTextField *passwordTextField; +@property (assign) IBOutlet NSTextField *titleOrNameLabel; + +@property (assign) IBOutlet NSButton *openURLButton; +@property (assign) IBOutlet NSButton *togglePasswordDisplayButton; + +- (IBAction)togglePasswordDisplay:(id)sender; + @end diff --git a/MacPass/MPInspectorTabViewController.m b/MacPass/MPInspectorTabViewController.m index 1064df12..8ac662b5 100644 --- a/MacPass/MPInspectorTabViewController.m +++ b/MacPass/MPInspectorTabViewController.m @@ -18,15 +18,16 @@ @interface MPInspectorTabViewController () -@property (assign) IBOutlet MPPopupImageView *itemImageView; -@property (assign) IBOutlet NSTextField *itemNameTextfield; -@property (assign) IBOutlet NSTabView *tabView; -@property (assign) IBOutlet NSSegmentedControl *tabControl; @property (assign) NSUInteger selectedTabIndex; @property (assign, nonatomic) KdbEntry *selectedEntry; +@property (assign, nonatomic) KdbGroup *selectedGroup; +@property (assign) BOOL showsEntry; - (void)_didChangeSelectedEntry:(NSNotification *)notification; +- (void)_didChangeSelectedGroup:(NSNotification *)notification; - (void)_updateContent; +- (void)_showGroup; +- (void)_showEntry; - (void)_clearContent; - (void)_setInputEnabled:(BOOL)enabled; - (void)_showImagePopup:(id)sender; @@ -40,11 +41,13 @@ } - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { - self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; - if (self) { - _selectedEntry = nil; - } - return self; + self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; + if (self) { + _selectedEntry = nil; + _selectedGroup = nil; + _showsEntry = NO; + } + return self; } - (void)dealloc { @@ -61,38 +64,84 @@ [self.tabControl bind:NSSelectedIndexBinding toObject:self withKeyPath:@"selectedTabIndex" options:nil]; [self.tabView bind:NSSelectedIndexBinding toObject:self withKeyPath:@"selectedTabIndex" options:nil]; [self.itemImageView setTarget:self]; - + + /* Register for Entry selection */ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_didChangeSelectedEntry:) name:MPDidChangeSelectedEntryNotification object:nil]; + /* Register for Group selection */ + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(_didChangeSelectedGroup:) + name:MPOutlineViewDidChangeGroupSelection + object:nil]; + [self _clearContent]; } - (void)_updateContent { - if(self.selectedEntry) { - [self.itemNameTextfield setStringValue:self.selectedEntry.title]; - [self.itemImageView setImage:[MPIconHelper icon:(MPIconType)self.selectedEntry.image ]]; - [self _setInputEnabled:YES]; + if(self.showsEntry && self.selectedEntry) { + [self _showEntry]; + } + else if(!self.showsEntry && self.selectedGroup) { + [self _showGroup]; } else { [self _clearContent]; } } +- (void)_showEntry { + [self.itemNameTextfield setStringValue:self.selectedEntry.title]; + [self.itemImageView setImage:[MPIconHelper icon:(MPIconType)self.selectedEntry.image ]]; + [self.passwordTextField setStringValue:self.selectedEntry.password]; + [self.usernameTextField setStringValue:self.selectedEntry.username]; + [self.titleOrNameLabel setStringValue:NSLocalizedString(@"TITLE",@"")]; + [self.titleTextField setStringValue:self.selectedEntry.title]; + [self.URLTextField setStringValue:self.selectedEntry.url]; + + [self _setInputEnabled:YES]; +} + +- (void)_showGroup { + [self.itemNameTextfield setStringValue:self.selectedGroup.name]; + [self.itemImageView setImage:[MPIconHelper icon:(MPIconType)self.selectedGroup.image ]]; + [self.titleOrNameLabel setStringValue:NSLocalizedString(@"NAME",@"")]; + [self.titleTextField setStringValue:self.selectedGroup.name]; + [self _setInputEnabled:YES]; +} + - (void)_clearContent { + [self _setInputEnabled:NO]; [self.itemNameTextfield setStringValue:NSLocalizedString(@"INSPECTOR_NO_SELECTION", @"No item selected in inspector")]; [self.itemImageView setImage:[NSImage imageNamed:NSImageNameActionTemplate]]; + + [self.itemNameTextfield setStringValue:@""]; + [self.passwordTextField setStringValue:@""]; + [self.usernameTextField setStringValue:@""]; + [self.titleTextField setStringValue:@""]; + [self.URLTextField setStringValue:@""]; + } - (void)_setInputEnabled:(BOOL)enabled { - + [self.itemImageView setAction: enabled ? @selector(_showImagePopup:) : NULL ]; [self.itemImageView setEnabled:enabled]; [self.itemNameTextfield setTextColor: enabled ? [NSColor controlTextColor] : [NSColor disabledControlTextColor] ]; [self.itemNameTextfield setEnabled:enabled]; + [self.titleTextField setEnabled:enabled]; + + enabled &= self.showsEntry; + [self.passwordTextField setEnabled:enabled]; + [self.usernameTextField setEnabled:enabled]; + [self.URLTextField setEnabled:enabled]; + + [self.togglePasswordDisplayButton setEnabled:enabled]; + [self.openURLButton setEnabled:enabled]; + } #pragma mark Actions @@ -114,12 +163,31 @@ } } +- (void)_didChangeSelectedGroup:(NSNotification *)notification { + MPOutlineViewDelegate *outlineViewDelegae = [notification object]; + if(outlineViewDelegae) { + self.selectedGroup = outlineViewDelegae.selectedGroup; + } +} + #pragma mark Properties - (void)setSelectedEntry:(KdbEntry *)selectedEntry { if(_selectedEntry != selectedEntry) { _selectedEntry = selectedEntry; + self.showsEntry = YES; [self _updateContent]; } } +- (void)setSelectedGroup:(KdbGroup *)selectedGroup { + if(_selectedGroup != selectedGroup) { + _selectedGroup = selectedGroup; + self.showsEntry = NO; + [self _updateContent]; + } +} + + +- (IBAction)togglePasswordDisplay:(id)sender { +} @end diff --git a/MacPass/MacPass-Info.plist b/MacPass/MacPass-Info.plist index 532a602b..2048bf1c 100644 --- a/MacPass/MacPass-Info.plist +++ b/MacPass/MacPass-Info.plist @@ -21,7 +21,7 @@ CFBundleSignature ???? CFBundleVersion - 55B + 56A LSMinimumSystemVersion ${MACOSX_DEPLOYMENT_TARGET} NSHumanReadableCopyright diff --git a/MacPass/en.lproj/Localizable.strings b/MacPass/en.lproj/Localizable.strings index f5fa101a66574c1083f638e954a74800486af416..8264d3c93f71a185e9333fd78863c82b1db5e77a 100644 GIT binary patch delta 68 zcmca0wnk!u8OP*l>~@nkF$=N#F(fkNGNf)+