From a91c1a64d9498f151fa89b08268184bd696a7053 Mon Sep 17 00:00:00 2001 From: michael starke Date: Thu, 14 Mar 2013 01:21:30 +0100 Subject: [PATCH] Fixed memory leak in IconHelper First test with password show/hide input --- MacPass/InspectorTabView.xib | 206 +++++++++++++------------ MacPass/MPIconHelper.m | 2 +- MacPass/MPInspectorTabViewController.m | 34 ++++ MacPass/MacPass-Info.plist | 2 +- 4 files changed, 142 insertions(+), 102 deletions(-) diff --git a/MacPass/InspectorTabView.xib b/MacPass/InspectorTabView.xib index a6718655..0b0359ff 100644 --- a/MacPass/InspectorTabView.xib +++ b/MacPass/InspectorTabView.xib @@ -52,7 +52,7 @@ 268 - {{68, 487}, {144, 20}} + {{67, 520}, {144, 20}} @@ -89,7 +89,7 @@ 268 - {{77, 530}, {41, 17}} + {{77, 563}, {41, 17}} @@ -139,7 +139,7 @@ NeXT Encapsulated PostScript v1.2 pasteboard type NeXT TIFF v4.0 pasteboard type - {{24, 514}, {48, 48}} + {{24, 547}, {48, 48}} @@ -164,7 +164,7 @@ 12 - {{0, -2}, {280, 482}} + {278, 513} @@ -179,7 +179,7 @@ 268 - {{40, 440}, {41, 17}} + {{40, 471}, {41, 17}} @@ -200,7 +200,7 @@ 268 - {{86, 440}, {174, 22}} + {{86, 471}, {172, 22}} @@ -235,7 +235,7 @@ 268 - {{14, 410}, {67, 17}} + {{14, 441}, {67, 17}} @@ -256,7 +256,7 @@ 268 - {{86, 315}, {135, 22}} + {{86, 346}, {133, 22}} @@ -281,7 +281,7 @@ 268 - {{86, 408}, {174, 22}} + {{86, 439}, {172, 22}} @@ -303,7 +303,7 @@ 268 - {{86, 376}, {135, 22}} + {{86, 407}, {133, 22}} @@ -325,7 +325,7 @@ 268 - {{52, 378}, {29, 17}} + {{52, 409}, {29, 17}} @@ -346,7 +346,7 @@ 268 - {{229, 374}, {31, 25}} + {{227, 405}, {31, 25}} @@ -375,7 +375,7 @@ 268 - {{17, 317}, {64, 17}} + {{17, 348}, {64, 17}} @@ -396,7 +396,7 @@ 268 - {{229, 313}, {31, 25}} + {{227, 344}, {31, 25}} @@ -420,7 +420,7 @@ NO - {280, 482} + {278, 513} @@ -436,7 +436,8 @@ 256 - {280, 482} + {278, 513} + _NS:28 Notes @@ -458,7 +459,7 @@ - {280, 579} + {278, 612} @@ -602,6 +603,70 @@ 1 + + + 4 + 0 + + 4 + 1 + + 0.0 + + 1000 + + 8 + 29 + 3 + + + + 5 + 0 + + 5 + 1 + + 0.0 + + 1000 + + 8 + 29 + 3 + + + + 6 + 0 + + 6 + 1 + + 0.0 + + 1000 + + 8 + 29 + 3 + + + + 3 + 0 + + 4 + 1 + + 8 + + 1000 + + 6 + 24 + 3 + 6 @@ -666,70 +731,6 @@ 24 3 - - - 5 - 0 - - 5 - 1 - - 0.0 - - 1000 - - 8 - 29 - 3 - - - - 6 - 0 - - 6 - 1 - - 0.0 - - 1000 - - 8 - 29 - 3 - - - - 4 - 0 - - 4 - 1 - - -2 - - 1000 - - 3 - 9 - 3 - - - - 3 - 0 - - 4 - 1 - - 8 - - 1000 - - 6 - 24 - 3 - 5 @@ -1340,16 +1341,6 @@ - - 148 - - - - - 149 - - - 151 @@ -1635,14 +1626,24 @@ + + 105 + + + 147 - 105 - + 148 + + + + + 404 + @@ -1651,20 +1652,20 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - + - - - - + + + + com.apple.InterfaceBuilder.CocoaPlugin @@ -1684,7 +1685,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 @@ -1743,6 +1743,7 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -1790,7 +1791,7 @@ - 372 + 404 @@ -1816,6 +1817,7 @@ NSSecureTextField NSSegmentedControl NSTabView + NSTextField NSTextField NSButton NSTextField @@ -1849,6 +1851,10 @@ tabView NSTabView + + titleOrNameLabel + NSTextField + titleTextField NSTextField diff --git a/MacPass/MPIconHelper.m b/MacPass/MPIconHelper.m index 5a2f3eaa..c33198da 100644 --- a/MacPass/MPIconHelper.m +++ b/MacPass/MPIconHelper.m @@ -26,7 +26,7 @@ MPIconType iconType = (MPIconType)[iconNumber integerValue]; [icons addObject:[MPIconHelper icon:iconType]]; } - return icons; + return [icons autorelease]; } + (NSDictionary *)availableIconNames { diff --git a/MacPass/MPInspectorTabViewController.m b/MacPass/MPInspectorTabViewController.m index 8ac662b5..93873a10 100644 --- a/MacPass/MPInspectorTabViewController.m +++ b/MacPass/MPInspectorTabViewController.m @@ -52,6 +52,8 @@ - (void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self]; + [_selectedGroup release]; + [_selectedEntry release]; [super dealloc]; } @@ -109,6 +111,10 @@ [self.itemImageView setImage:[MPIconHelper icon:(MPIconType)self.selectedGroup.image ]]; [self.titleOrNameLabel setStringValue:NSLocalizedString(@"NAME",@"")]; [self.titleTextField setStringValue:self.selectedGroup.name]; + [self.passwordTextField setStringValue:@""]; + [self.usernameTextField setStringValue:@""]; + [self.URLTextField setStringValue:@""]; + [self _setInputEnabled:YES]; } @@ -189,5 +195,33 @@ - (IBAction)togglePasswordDisplay:(id)sender { + NSTextFieldCell *cell = nil; + NSFont *font = [[self.passwordTextField font] retain]; + if([sender respondsToSelector:@selector(state)]) { + switch([sender state]) { + case NSOnState: + cell = [[NSTextFieldCell alloc] init]; + break; + case NSOffState: + cell = [[NSSecureTextFieldCell alloc] init]; + break; + case NSMixedState: + break; + } + } + if(cell) { + [cell setBezelStyle:NSTextFieldSquareBezel]; + [cell setBordered:YES]; + [cell setBezeled:YES]; + [cell setDrawsBackground:YES]; + [cell setFont:font]; + [cell setEditable:YES]; + [self.passwordTextField setCell:cell]; + [self.passwordTextField setNeedsDisplay:YES]; + //[self.passwordTextField setStringValue:[self.passwordTextField stringValue]]; + [cell release]; + } + [font release]; } + @end diff --git a/MacPass/MacPass-Info.plist b/MacPass/MacPass-Info.plist index 2048bf1c..1f9d4ccf 100644 --- a/MacPass/MacPass-Info.plist +++ b/MacPass/MacPass-Info.plist @@ -21,7 +21,7 @@ CFBundleSignature ???? CFBundleVersion - 56A + 58B LSMinimumSystemVersion ${MACOSX_DEPLOYMENT_TARGET} NSHumanReadableCopyright