mirror of
https://github.com/MacPass/MacPass.git
synced 2025-12-14 16:22:21 +00:00
moved picking into view controllers (date and icon)
This commit is contained in:
@@ -10,12 +10,8 @@
|
|||||||
|
|
||||||
@interface MPDatePickingViewController : MPViewController
|
@interface MPDatePickingViewController : MPViewController
|
||||||
|
|
||||||
@property (strong) NSDate *date;
|
|
||||||
@property (weak) IBOutlet NSDatePicker *datePicker;
|
@property (weak) IBOutlet NSDatePicker *datePicker;
|
||||||
@property (weak) IBOutlet NSPopUpButton *presetPopupButton;
|
@property (weak) IBOutlet NSPopUpButton *presetPopupButton;
|
||||||
@property (assign, readonly) BOOL didCancel;
|
|
||||||
|
|
||||||
@property (weak) NSPopover *popover;
|
|
||||||
|
|
||||||
- (IBAction)useDate:(id)sender;
|
- (IBAction)useDate:(id)sender;
|
||||||
- (IBAction)cancel:(id)sender;
|
- (IBAction)cancel:(id)sender;
|
||||||
|
|||||||
@@ -23,8 +23,6 @@ typedef NS_ENUM(NSUInteger, MPDatePreset) {
|
|||||||
|
|
||||||
@interface MPDatePickingViewController ()
|
@interface MPDatePickingViewController ()
|
||||||
|
|
||||||
@property (assign) BOOL didCancel;
|
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@implementation MPDatePickingViewController
|
@implementation MPDatePickingViewController
|
||||||
@@ -53,15 +51,21 @@ typedef NS_ENUM(NSUInteger, MPDatePreset) {
|
|||||||
self.presetPopupButton.menu = presetMenu;
|
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 {
|
- (IBAction)useDate:(id)sender {
|
||||||
self.didCancel = NO;
|
KPKTimeInfo *timeInfo = [self.representedObject timeInfo];
|
||||||
self.date = self.datePicker.dateValue;
|
timeInfo.expirationDate = self.datePicker.dateValue;
|
||||||
[self.popover performClose:self];
|
[self.view.window performClose:sender];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)cancel:(id)sender {
|
- (IBAction)cancel:(id)sender {
|
||||||
self.didCancel = YES;
|
[self.view.window performClose:sender];
|
||||||
[self.popover performClose:self];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)setDatePreset:(id)sender {
|
- (IBAction)setDatePreset:(id)sender {
|
||||||
|
|||||||
@@ -8,19 +8,10 @@
|
|||||||
|
|
||||||
#import "MPViewController.h"
|
#import "MPViewController.h"
|
||||||
|
|
||||||
FOUNDATION_EXTERN NSInteger const kMPDefaultIcon;
|
|
||||||
|
|
||||||
@interface MPIconSelectViewController : MPViewController <NSCollectionViewDelegate>
|
@interface MPIconSelectViewController : MPViewController <NSCollectionViewDelegate>
|
||||||
|
|
||||||
/**
|
|
||||||
* 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;
|
@property (weak) NSPopover *popover;
|
||||||
|
|
||||||
- (void)reset;
|
|
||||||
- (IBAction)cancel:(id)sender;
|
- (IBAction)cancel:(id)sender;
|
||||||
- (IBAction)useDefault:(id)sender;
|
- (IBAction)useDefault:(id)sender;
|
||||||
|
|
||||||
|
|||||||
@@ -10,14 +10,8 @@
|
|||||||
#import "MPIconHelper.h"
|
#import "MPIconHelper.h"
|
||||||
#import "MPDocument.h"
|
#import "MPDocument.h"
|
||||||
|
|
||||||
|
|
||||||
NSInteger const kMPDefaultIcon = -1;
|
|
||||||
|
|
||||||
@interface MPIconSelectViewController ()
|
@interface MPIconSelectViewController ()
|
||||||
|
|
||||||
@property (nonatomic, assign) NSInteger selectedIcon;
|
|
||||||
@property (nonatomic, assign) BOOL didCancel;
|
|
||||||
|
|
||||||
/* UI properties */
|
/* UI properties */
|
||||||
@property (weak) IBOutlet NSCollectionView *iconCollectionView;
|
@property (weak) IBOutlet NSCollectionView *iconCollectionView;
|
||||||
@property (weak) IBOutlet NSButton *imageButton;
|
@property (weak) IBOutlet NSButton *imageButton;
|
||||||
@@ -30,15 +24,6 @@ NSInteger const kMPDefaultIcon = -1;
|
|||||||
return @"IconSelection";
|
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 {
|
- (void)didLoadView {
|
||||||
//[[self.imageButton cell] setBackgroundStyle:NSBackgroundStyleLowered];
|
//[[self.imageButton cell] setBackgroundStyle:NSBackgroundStyleLowered];
|
||||||
self.iconCollectionView.backgroundColors = @[[NSColor clearColor]];
|
self.iconCollectionView.backgroundColors = @[[NSColor clearColor]];
|
||||||
@@ -48,28 +33,23 @@ NSInteger const kMPDefaultIcon = -1;
|
|||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)useDefault:(id)sender {
|
- (IBAction)useDefault:(id)sender {
|
||||||
self.didCancel = NO;
|
KPKNode *node = self.representedObject;
|
||||||
self.selectedIcon = kMPDefaultIcon;
|
node.iconId = [[node class] defaultIcon];
|
||||||
[self.popover performClose:self];
|
|
||||||
|
[self.view.window performClose:sender];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)cancel:(id)sender {
|
- (IBAction)cancel:(id)sender {
|
||||||
self.didCancel = YES;
|
[self.view.window performClose:sender];
|
||||||
[self.popover performClose:self];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)reset {
|
|
||||||
self.didCancel = YES;
|
|
||||||
self.selectedIcon = kMPDefaultIcon;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)_selectImage:(id)sender {
|
- (IBAction)_selectImage:(id)sender {
|
||||||
self.didCancel = NO;
|
|
||||||
NSButton *button = sender;
|
NSButton *button = sender;
|
||||||
NSImage *image = button.image;
|
NSImage *image = button.image;
|
||||||
NSUInteger buttonIndex = [self.iconCollectionView.content indexOfObject:image];
|
NSUInteger buttonIndex = [self.iconCollectionView.content indexOfObject:image];
|
||||||
self.selectedIcon = ((NSNumber *)[MPIconHelper databaseIconTypes][buttonIndex]).integerValue;
|
NSInteger newIconId = ((NSNumber *)[MPIconHelper databaseIconTypes][buttonIndex]).integerValue;
|
||||||
[self.popover performClose:self];
|
KPKNode *node = self.representedObject;
|
||||||
|
node.iconId = newIconId;
|
||||||
|
[self.view.window performClose:sender];
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -35,7 +35,6 @@ typedef NS_ENUM(NSUInteger, MPContentTab) {
|
|||||||
@property (strong) MPEntryInspectorViewController *entryViewController;
|
@property (strong) MPEntryInspectorViewController *entryViewController;
|
||||||
@property (strong) MPGroupInspectorViewController *groupViewController;
|
@property (strong) MPGroupInspectorViewController *groupViewController;
|
||||||
|
|
||||||
@property (strong) MPIconSelectViewController *iconSelectionViewController;
|
|
||||||
@property (strong) NSPopover *popover;
|
@property (strong) NSPopover *popover;
|
||||||
|
|
||||||
@property (nonatomic, strong) NSDate *modificationDate;
|
@property (nonatomic, strong) NSDate *modificationDate;
|
||||||
@@ -163,12 +162,10 @@ typedef NS_ENUM(NSUInteger, MPContentTab) {
|
|||||||
self.popover = [[NSPopover alloc] init];
|
self.popover = [[NSPopover alloc] init];
|
||||||
self.popover.delegate = self;
|
self.popover.delegate = self;
|
||||||
self.popover.behavior = NSPopoverBehaviorTransient;
|
self.popover.behavior = NSPopoverBehaviorTransient;
|
||||||
if(!self.iconSelectionViewController) {
|
MPIconSelectViewController *vc = [[MPIconSelectViewController alloc] init];
|
||||||
self.iconSelectionViewController = [[MPIconSelectViewController alloc] init];
|
vc.representedObject = self.representedObject;
|
||||||
}
|
vc.popover = self.popover;
|
||||||
[self.iconSelectionViewController reset];
|
self.popover.contentViewController = vc;
|
||||||
self.iconSelectionViewController.popover = self.popover;
|
|
||||||
self.popover.contentViewController = self.iconSelectionViewController;
|
|
||||||
[self.popover showRelativeToRect:NSZeroRect ofView:sender preferredEdge:NSMinYEdge];
|
[self.popover showRelativeToRect:NSZeroRect ofView:sender preferredEdge:NSMinYEdge];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -180,59 +177,17 @@ typedef NS_ENUM(NSUInteger, MPContentTab) {
|
|||||||
self.popover = [[NSPopover alloc] init];
|
self.popover = [[NSPopover alloc] init];
|
||||||
self.popover.delegate = self;
|
self.popover.delegate = self;
|
||||||
self.popover.behavior = NSPopoverBehaviorTransient;
|
self.popover.behavior = NSPopoverBehaviorTransient;
|
||||||
MPDatePickingViewController *controller = [[MPDatePickingViewController alloc] init];
|
MPDatePickingViewController *vc = [[MPDatePickingViewController alloc] init];
|
||||||
controller.popover = self.popover;
|
vc.representedObject = self.representedObject;
|
||||||
KPKNode *node = self.representedObject;
|
self.popover.contentViewController = vc;
|
||||||
if(node.timeInfo.expirationDate) {
|
|
||||||
controller.date = node.timeInfo.expirationDate;
|
|
||||||
}
|
|
||||||
self.popover.contentViewController = controller;
|
|
||||||
[self.popover showRelativeToRect:NSZeroRect ofView:sender preferredEdge:NSMinYEdge];
|
[self.popover showRelativeToRect:NSZeroRect ofView:sender preferredEdge:NSMinYEdge];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)popoverDidClose:(NSNotification *)notification {
|
- (void)popoverDidClose:(NSNotification *)notification {
|
||||||
NSPopover *popover = [notification object];
|
/* clear out the popover */
|
||||||
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];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
self.popover = nil;
|
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 -
|
||||||
#pragma mark Bindings
|
#pragma mark Bindings
|
||||||
- (void)_establishBindings {
|
- (void)_establishBindings {
|
||||||
|
|||||||
Reference in New Issue
Block a user