From e06ade6a8f6c5f6e5ad1f2416cf98f3f61039854 Mon Sep 17 00:00:00 2001 From: michael starke Date: Wed, 24 Aug 2016 17:53:37 +0200 Subject: [PATCH] moved picking into view controllers (date and icon) --- MacPass/MPDatePickingViewController.h | 4 -- MacPass/MPDatePickingViewController.m | 18 +++++--- MacPass/MPIconSelectViewController.h | 9 ---- MacPass/MPIconSelectViewController.m | 38 ++++------------- MacPass/MPInspectorViewController.m | 61 ++++----------------------- 5 files changed, 28 insertions(+), 102 deletions(-) diff --git a/MacPass/MPDatePickingViewController.h b/MacPass/MPDatePickingViewController.h index 05aedb9b..fbe60895 100644 --- a/MacPass/MPDatePickingViewController.h +++ b/MacPass/MPDatePickingViewController.h @@ -10,12 +10,8 @@ @interface MPDatePickingViewController : MPViewController -@property (strong) NSDate *date; @property (weak) IBOutlet NSDatePicker *datePicker; @property (weak) IBOutlet NSPopUpButton *presetPopupButton; -@property (assign, readonly) BOOL didCancel; - -@property (weak) NSPopover *popover; - (IBAction)useDate:(id)sender; - (IBAction)cancel:(id)sender; diff --git a/MacPass/MPDatePickingViewController.m b/MacPass/MPDatePickingViewController.m index a33c9dcd..496ae245 100644 --- a/MacPass/MPDatePickingViewController.m +++ b/MacPass/MPDatePickingViewController.m @@ -23,8 +23,6 @@ typedef NS_ENUM(NSUInteger, MPDatePreset) { @interface MPDatePickingViewController () -@property (assign) BOOL didCancel; - @end @implementation MPDatePickingViewController @@ -53,15 +51,21 @@ typedef NS_ENUM(NSUInteger, MPDatePreset) { self.presetPopupButton.menu = presetMenu; } +- (void)setRepresentedObject:(id)representedObject { + [super setRepresentedObject:representedObject]; + if(self.representedObject) { + self.datePicker.dateValue = [self.representedObject timeInfo].expirationDate; + } +} + - (IBAction)useDate:(id)sender { - self.didCancel = NO; - self.date = self.datePicker.dateValue; - [self.popover performClose:self]; + KPKTimeInfo *timeInfo = [self.representedObject timeInfo]; + timeInfo.expirationDate = self.datePicker.dateValue; + [self.view.window performClose:sender]; } - (IBAction)cancel:(id)sender { - self.didCancel = YES; - [self.popover performClose:self]; + [self.view.window performClose:sender]; } - (IBAction)setDatePreset:(id)sender { diff --git a/MacPass/MPIconSelectViewController.h b/MacPass/MPIconSelectViewController.h index 603e7486..76497c87 100644 --- a/MacPass/MPIconSelectViewController.h +++ b/MacPass/MPIconSelectViewController.h @@ -8,19 +8,10 @@ #import "MPViewController.h" -FOUNDATION_EXTERN NSInteger const kMPDefaultIcon; - @interface MPIconSelectViewController : MPViewController -/** - * Is the selected Icon, kMPDefaultIcon if the default icons was selected - */ -@property (nonatomic, readonly, assign) NSInteger selectedIcon; -@property (nonatomic, readonly, assign) BOOL didCancel; - @property (weak) NSPopover *popover; -- (void)reset; - (IBAction)cancel:(id)sender; - (IBAction)useDefault:(id)sender; diff --git a/MacPass/MPIconSelectViewController.m b/MacPass/MPIconSelectViewController.m index 56bea1b0..9fe9fd79 100644 --- a/MacPass/MPIconSelectViewController.m +++ b/MacPass/MPIconSelectViewController.m @@ -10,14 +10,8 @@ #import "MPIconHelper.h" #import "MPDocument.h" - -NSInteger const kMPDefaultIcon = -1; - @interface MPIconSelectViewController () -@property (nonatomic, assign) NSInteger selectedIcon; -@property (nonatomic, assign) BOOL didCancel; - /* UI properties */ @property (weak) IBOutlet NSCollectionView *iconCollectionView; @property (weak) IBOutlet NSButton *imageButton; @@ -30,15 +24,6 @@ NSInteger const kMPDefaultIcon = -1; return @"IconSelection"; } -- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { - self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; - if (self) { - _didCancel = YES; - _selectedIcon = kMPDefaultIcon; - } - return self; -} - - (void)didLoadView { //[[self.imageButton cell] setBackgroundStyle:NSBackgroundStyleLowered]; self.iconCollectionView.backgroundColors = @[[NSColor clearColor]]; @@ -48,28 +33,23 @@ NSInteger const kMPDefaultIcon = -1; } - (IBAction)useDefault:(id)sender { - self.didCancel = NO; - self.selectedIcon = kMPDefaultIcon; - [self.popover performClose:self]; + KPKNode *node = self.representedObject; + node.iconId = [[node class] defaultIcon]; + + [self.view.window performClose:sender]; } - (IBAction)cancel:(id)sender { - self.didCancel = YES; - [self.popover performClose:self]; -} - -- (void)reset { - self.didCancel = YES; - self.selectedIcon = kMPDefaultIcon; + [self.view.window performClose:sender]; } - (IBAction)_selectImage:(id)sender { - self.didCancel = NO; NSButton *button = sender; NSImage *image = button.image; NSUInteger buttonIndex = [self.iconCollectionView.content indexOfObject:image]; - self.selectedIcon = ((NSNumber *)[MPIconHelper databaseIconTypes][buttonIndex]).integerValue; - [self.popover performClose:self]; + NSInteger newIconId = ((NSNumber *)[MPIconHelper databaseIconTypes][buttonIndex]).integerValue; + KPKNode *node = self.representedObject; + node.iconId = newIconId; + [self.view.window performClose:sender]; } - @end diff --git a/MacPass/MPInspectorViewController.m b/MacPass/MPInspectorViewController.m index 1c7bfc8e..0bb95485 100644 --- a/MacPass/MPInspectorViewController.m +++ b/MacPass/MPInspectorViewController.m @@ -35,7 +35,6 @@ typedef NS_ENUM(NSUInteger, MPContentTab) { @property (strong) MPEntryInspectorViewController *entryViewController; @property (strong) MPGroupInspectorViewController *groupViewController; -@property (strong) MPIconSelectViewController *iconSelectionViewController; @property (strong) NSPopover *popover; @property (nonatomic, strong) NSDate *modificationDate; @@ -163,12 +162,10 @@ typedef NS_ENUM(NSUInteger, MPContentTab) { self.popover = [[NSPopover alloc] init]; self.popover.delegate = self; self.popover.behavior = NSPopoverBehaviorTransient; - if(!self.iconSelectionViewController) { - self.iconSelectionViewController = [[MPIconSelectViewController alloc] init]; - } - [self.iconSelectionViewController reset]; - self.iconSelectionViewController.popover = self.popover; - self.popover.contentViewController = self.iconSelectionViewController; + MPIconSelectViewController *vc = [[MPIconSelectViewController alloc] init]; + vc.representedObject = self.representedObject; + vc.popover = self.popover; + self.popover.contentViewController = vc; [self.popover showRelativeToRect:NSZeroRect ofView:sender preferredEdge:NSMinYEdge]; } @@ -180,59 +177,17 @@ typedef NS_ENUM(NSUInteger, MPContentTab) { self.popover = [[NSPopover alloc] init]; self.popover.delegate = self; self.popover.behavior = NSPopoverBehaviorTransient; - MPDatePickingViewController *controller = [[MPDatePickingViewController alloc] init]; - controller.popover = self.popover; - KPKNode *node = self.representedObject; - if(node.timeInfo.expirationDate) { - controller.date = node.timeInfo.expirationDate; - } - self.popover.contentViewController = controller; + MPDatePickingViewController *vc = [[MPDatePickingViewController alloc] init]; + vc.representedObject = self.representedObject; + self.popover.contentViewController = vc; [self.popover showRelativeToRect:NSZeroRect ofView:sender preferredEdge:NSMinYEdge]; } - (void)popoverDidClose:(NSNotification *)notification { - NSPopover *popover = [notification object]; - if([popover.contentViewController isKindOfClass:[MPIconSelectViewController class]]) { - MPIconSelectViewController *viewController = (MPIconSelectViewController *)popover.contentViewController; - if(!viewController.didCancel) { - [self _setIcon:viewController.selectedIcon]; - } - } - if([popover.contentViewController isKindOfClass:[MPDatePickingViewController class]]) { - MPDatePickingViewController *viewController = (MPDatePickingViewController *)popover.contentViewController; - if(!viewController.didCancel) { - [self _setExpiryDate:viewController.date]; - } - } + /* clear out the popover */ self.popover = nil; } -- (void)_setIcon:(NSInteger)iconId { - /* TODO move to ViewController */ - BOOL useDefault = (iconId == -1); - switch (self.activeTab) { - case MPGroupTab: { - KPKGroup *group = self.representedObject; - group.iconId = useDefault ? [KPKGroup defaultIcon] : iconId; - break; - } - - case MPEntryTab: { - KPKEntry *entry = self.representedObject; - entry.iconId = useDefault ? [KPKEntry defaultIcon]: iconId; - break; - } - - default: - break; - } -} - -- (void)_setExpiryDate:(NSDate *)date { - KPKNode *node = self.representedObject; - node.timeInfo.expirationDate = date; -} - #pragma mark - #pragma mark Bindings - (void)_establishBindings {