diff --git a/MacPass.xcodeproj/xcshareddata/xcschemes/MacPass.xcscheme b/MacPass.xcodeproj/xcshareddata/xcschemes/MacPass.xcscheme index 36ab118c..6613ca3f 100644 --- a/MacPass.xcodeproj/xcshareddata/xcschemes/MacPass.xcscheme +++ b/MacPass.xcodeproj/xcshareddata/xcschemes/MacPass.xcscheme @@ -125,11 +125,6 @@ - - + diff --git a/MacPass/MPIconSelectViewController.h b/MacPass/MPIconSelectViewController.h index 1994cd63..900a9166 100644 --- a/MacPass/MPIconSelectViewController.h +++ b/MacPass/MPIconSelectViewController.h @@ -16,12 +16,14 @@ extern NSInteger const kMPDefaultIcon; * Is the selected Icon, kMPDefaultIcon if the default icons was selected */ @property (nonatomic, assign) NSInteger selectedIcon; +@property (nonatomic, assign) BOOL didCancel; @property (weak) IBOutlet NSCollectionView *iconCollectionView; @property (weak) IBOutlet NSButton *imageButton; @property (weak) NSPopover *popover; - (void)reset; +- (IBAction)cancel:(id)sender; - (IBAction)useDefault:(id)sender; @end diff --git a/MacPass/MPIconSelectViewController.m b/MacPass/MPIconSelectViewController.m index 6da91d92..fcc62882 100644 --- a/MacPass/MPIconSelectViewController.m +++ b/MacPass/MPIconSelectViewController.m @@ -26,6 +26,7 @@ NSInteger const kMPDefaultIcon = -1; - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { + _didCancel = NO; } return self; } @@ -43,7 +44,13 @@ NSInteger const kMPDefaultIcon = -1; [self.popover performClose:self]; } +- (IBAction)cancel:(id)sender { + self.didCancel = YES; + [self.popover performClose:self]; +} + - (void)reset { + self.didCancel = NO; self.selectedIcon = kMPDefaultIcon; } diff --git a/MacPass/MPInspectorViewController.m b/MacPass/MPInspectorViewController.m index abcd1df6..3217b6aa 100644 --- a/MacPass/MPInspectorViewController.m +++ b/MacPass/MPInspectorViewController.m @@ -175,19 +175,22 @@ typedef NS_ENUM(NSUInteger, MPContentTab) { - (void)popoverDidClose:(NSNotification *)notification { MPIconSelectViewController *viewController = (MPIconSelectViewController *)_popover.contentViewController; - MPDocument *document = [[self windowController] document]; - BOOL useDefault = (viewController.selectedIcon == -1); - switch (self.activeTab) { - case MPGroupTab: - document.selectedGroup.iconId = useDefault ? [KPKGroup defaultIcon] : viewController.selectedIcon; - break; - - case MPEntryTab: - document.selectedEntry.iconId = useDefault ? [KPKEntry defaultIcon]: viewController.selectedIcon; - break; - - default: - break; + if(!viewController.didCancel) { + + MPDocument *document = [[self windowController] document]; + BOOL useDefault = (viewController.selectedIcon == -1); + switch (self.activeTab) { + case MPGroupTab: + document.selectedGroup.iconId = useDefault ? [KPKGroup defaultIcon] : viewController.selectedIcon; + break; + + case MPEntryTab: + document.selectedEntry.iconId = useDefault ? [KPKEntry defaultIcon]: viewController.selectedIcon; + break; + + default: + break; + } } _popover = nil; } @@ -207,10 +210,10 @@ typedef NS_ENUM(NSUInteger, MPContentTab) { [self.itemNameTextField setHidden:YES]; [self.itemImageView unbind:NSValueBinding]; [self.itemImageView setHidden:YES]; - + return; } - + [self.itemImageView bind:NSValueBinding toObject:item withKeyPath:@"iconImage" options:nil]; if([item respondsToSelector:@selector(title)]) {