mirror of
https://github.com/MacPass/MacPass.git
synced 2025-12-22 17:39:24 +00:00
Renamed Categories better
Introduced Drag'n'Drop of Entries to outline view. Unfinished and fragile!
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -1502,17 +1502,6 @@
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">MPEntryViewController</string>
|
||||
<string key="superclassName">MPViewController</string>
|
||||
<object class="NSMutableDictionary" key="actions">
|
||||
<string key="NS.key.0">_toggleFilterSpace:</string>
|
||||
<string key="NS.object.0">id</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="actionInfosByName">
|
||||
<string key="NS.key.0">_toggleFilterSpace:</string>
|
||||
<object class="IBActionInfo" key="NS.object.0">
|
||||
<string key="name">_toggleFilterSpace:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="outlets">
|
||||
<string key="entryTable">NSTableView</string>
|
||||
<string key="filterBar">NSView</string>
|
||||
@@ -1522,7 +1511,6 @@
|
||||
<string key="filterTitleButton">NSButton</string>
|
||||
<string key="filterURLButton">NSButton</string>
|
||||
<string key="filterUsernameButton">NSButton</string>
|
||||
<string key="tableToBottom">NSLayoutConstraint</string>
|
||||
<string key="tableToTop">NSLayoutConstraint</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
@@ -1558,10 +1546,6 @@
|
||||
<string key="name">filterUsernameButton</string>
|
||||
<string key="candidateClassName">NSButton</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="tableToBottom">
|
||||
<string key="name">tableToBottom</string>
|
||||
<string key="candidateClassName">NSLayoutConstraint</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="tableToTop">
|
||||
<string key="name">tableToTop</string>
|
||||
<string key="candidateClassName">NSLayoutConstraint</string>
|
||||
|
||||
15
MacPass/KdbEntry+MPTreeTools.h
Normal file
15
MacPass/KdbEntry+MPTreeTools.h
Normal file
@@ -0,0 +1,15 @@
|
||||
//
|
||||
// KdbEntry+MPTreeTools.h
|
||||
// MacPass
|
||||
//
|
||||
// Created by Michael Starke on 10.06.13.
|
||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||
//
|
||||
|
||||
#import "Kdb.h"
|
||||
|
||||
@interface KdbEntry (MPTreeTools)
|
||||
|
||||
- (NSUInteger)indexInParent;
|
||||
|
||||
@end
|
||||
20
MacPass/KdbEntry+MPTreeTools.m
Normal file
20
MacPass/KdbEntry+MPTreeTools.m
Normal file
@@ -0,0 +1,20 @@
|
||||
//
|
||||
// KdbEntry+MPTreeTools.m
|
||||
// MacPass
|
||||
//
|
||||
// Created by Michael Starke on 10.06.13.
|
||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||
//
|
||||
|
||||
#import "KdbEntry+MPTreeTools.h"
|
||||
|
||||
@implementation KdbEntry (MPTreeTools)
|
||||
|
||||
- (NSUInteger)indexInParent {
|
||||
if(self.parent) {
|
||||
return [self.parent.entries indexOfObject:self];
|
||||
}
|
||||
return NSNotFound;
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -7,7 +7,7 @@
|
||||
//
|
||||
|
||||
#import "KdbEntry+Undo.h"
|
||||
#import "KdbGroup+MPAdditions.h"
|
||||
#import "KdbGroup+MPTreeTools.h"
|
||||
|
||||
NSString *const MPEntryTitleUndoableKey = @"titleUndoable";
|
||||
NSString *const MPEntryUsernameUndoableKey = @"usernameUndoable";
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
//
|
||||
// KdbGroup+MPAdditions.h
|
||||
// MacPass
|
||||
//
|
||||
// Created by michael starke on 19.02.13.
|
||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||
//
|
||||
|
||||
#import "KdbLib.h"
|
||||
|
||||
@interface KdbGroup (MPAdditions)
|
||||
|
||||
- (NSArray *)childGroups;
|
||||
|
||||
- (NSArray *)childEntries;
|
||||
|
||||
- (void)moveEntry:(KdbEntry *)entry toIndex:(NSUInteger)index;
|
||||
|
||||
@end
|
||||
21
MacPass/KdbGroup+MPTreeTools.h
Normal file
21
MacPass/KdbGroup+MPTreeTools.h
Normal file
@@ -0,0 +1,21 @@
|
||||
//
|
||||
// KdbGroup+MPTreeTools.h
|
||||
// MacPass
|
||||
//
|
||||
// Created by michael starke on 19.02.13.
|
||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||
//
|
||||
|
||||
#import "Kdb.h"
|
||||
@class UUID;
|
||||
|
||||
@interface KdbGroup (MPTreeTools)
|
||||
|
||||
/* Returns all groups under this group and it's subgroups */
|
||||
- (NSArray *)childGroups;
|
||||
/* Returns all entries under this group and it's subgroups */
|
||||
- (NSArray *)childEntries;
|
||||
|
||||
- (KdbEntry *)entryForUUID:(UUID *)uuid;
|
||||
|
||||
@end
|
||||
@@ -1,14 +1,16 @@
|
||||
//
|
||||
// KdbGroup+MPAdditions.m
|
||||
// KdbGroup+MPTreeTools.m
|
||||
// MacPass
|
||||
//
|
||||
// Created by michael starke on 19.02.13.
|
||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||
//
|
||||
|
||||
#import "KdbGroup+MPAdditions.h"
|
||||
#import "KdbGroup+MPTreeTools.h"
|
||||
#import "Kdb4Node.h"
|
||||
#import "Kdb3Node.h"
|
||||
|
||||
@implementation KdbGroup (MPAdditions)
|
||||
@implementation KdbGroup (MPTreeTools)
|
||||
|
||||
- (NSArray *)childGroups {
|
||||
NSMutableArray *childGroups = [NSMutableArray arrayWithCapacity:[self.groups count]];
|
||||
@@ -27,15 +29,11 @@
|
||||
return childEntries;
|
||||
}
|
||||
|
||||
- (void)moveEntry:(KdbEntry *)entry toIndex:(NSUInteger)index {
|
||||
if([entries count] > index) {
|
||||
return;
|
||||
}
|
||||
NSUInteger oldIndex = [entries indexOfObject:entry];
|
||||
if(oldIndex == NSNotFound) {
|
||||
return;
|
||||
}
|
||||
[entries exchangeObjectAtIndex:oldIndex withObjectAtIndex:index];
|
||||
- (KdbEntry *)entryForUUID:(UUID *)uuid {
|
||||
NSArray *childEntries = [self childEntries];
|
||||
NSArray *filterdEntries = [childEntries filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings) {
|
||||
return [uuid isEqual:(UUID *)[evaluatedObject uuid]];
|
||||
}]];
|
||||
return [filterdEntries lastObject];
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -7,7 +7,7 @@
|
||||
//
|
||||
|
||||
#import "KdbTree+MPAdditions.h"
|
||||
#import "KdbGroup+MPAdditions.h"
|
||||
#import "KdbGroup+MPTreeTools.h"
|
||||
|
||||
@implementation KdbTree (MPAdditions)
|
||||
|
||||
|
||||
16
MacPass/MPConstants.h
Normal file
16
MacPass/MPConstants.h
Normal file
@@ -0,0 +1,16 @@
|
||||
//
|
||||
// MPConstants.h
|
||||
// MacPass
|
||||
//
|
||||
// Created by Michael Starke on 09.06.13.
|
||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||
//
|
||||
|
||||
#ifndef MacPass_MPConstants_h
|
||||
#define MacPass_MPConstants_h
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
FOUNDATION_EXPORT NSString *const MPPasteBoardType;
|
||||
|
||||
#endif
|
||||
11
MacPass/MPConstants.m
Normal file
11
MacPass/MPConstants.m
Normal file
@@ -0,0 +1,11 @@
|
||||
//
|
||||
// MPConstants.m
|
||||
// MacPass
|
||||
//
|
||||
// Created by Michael Starke on 09.06.13.
|
||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||
//
|
||||
|
||||
#import "MPConstants.h"
|
||||
|
||||
NSString *const MPPasteBoardType = @"com.hicknhack.macpass.pasteboard";
|
||||
@@ -43,4 +43,6 @@ APPKIT_EXTERN NSString *const MPDocumentGroupKey;
|
||||
- (void)moveGroup:(KdbGroup *)group toGroup:(KdbGroup *)target index:(NSInteger)index;
|
||||
- (BOOL)group:(KdbGroup *)group isMoveableToGroup:(KdbGroup *)target;
|
||||
|
||||
- (void)moveEntry:(KdbEntry *)entry toGroup:(KdbGroup *)target index:(NSInteger)index;
|
||||
|
||||
@end
|
||||
|
||||
@@ -184,4 +184,19 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey";
|
||||
}
|
||||
return isMovable;
|
||||
}
|
||||
|
||||
- (void)moveEntry:(KdbEntry *)entry toGroup:(KdbGroup *)target index:(NSInteger)index {
|
||||
NSInteger oldIndex = [entry.parent.entries indexOfObject:entry];
|
||||
if(entry.parent == target && oldIndex == index) {
|
||||
return; // No changes
|
||||
}
|
||||
[[[self undoManager] prepareWithInvocationTarget:self] moveEntry:entry toGroup:entry.parent index:oldIndex];
|
||||
[[self undoManager] setActionName:@"MOVE_ENTRY"];
|
||||
[entry.parent removeObjectFromEntriesAtIndex:oldIndex];
|
||||
if(index < 0 || index > [target.groups count] ) {
|
||||
index = [target.groups count];
|
||||
}
|
||||
[target insertObject:entry inEntriesAtIndex:index];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -17,7 +17,10 @@
|
||||
@class MPCreationViewController;
|
||||
|
||||
|
||||
@interface MPDocumentWindowController : NSWindowController
|
||||
@interface MPDocumentWindowController : NSWindowController <NSSplitViewDelegate> {
|
||||
@private
|
||||
NSArray *_inspectorContraints;
|
||||
}
|
||||
|
||||
@property (readonly, retain) MPPasswordInputController *passwordInputController;
|
||||
@property (readonly, retain) MPPasswordEditViewController *passwordEditController;
|
||||
@@ -34,4 +37,6 @@
|
||||
- (IBAction)editPassword:(id)sender;
|
||||
- (void)lock:(id)sender;
|
||||
|
||||
- (void)toggleInspector:(id)sender;
|
||||
|
||||
@end
|
||||
|
||||
@@ -34,8 +34,6 @@
|
||||
|
||||
@property (retain) MPToolbarDelegate *toolbarDelegate;
|
||||
|
||||
- (void)_setContentViewController:(MPViewController *)viewController;
|
||||
|
||||
@end
|
||||
|
||||
@implementation MPDocumentWindowController
|
||||
@@ -69,7 +67,6 @@
|
||||
}
|
||||
|
||||
#pragma mark View Handling
|
||||
|
||||
- (void)windowDidLoad
|
||||
{
|
||||
[super windowDidLoad];
|
||||
@@ -90,7 +87,8 @@
|
||||
[_splitView setHoldingPriority:NSLayoutPriorityDefaultLow+2 forSubviewAtIndex:0];
|
||||
[_splitView setHoldingPriority:NSLayoutPriorityDefaultLow+1 forSubviewAtIndex:2];
|
||||
|
||||
//TODO: Fix setup on start
|
||||
[_splitView setDelegate:self];
|
||||
|
||||
MPDocument *document = [self document];
|
||||
if(!document.isDecrypted) {
|
||||
[self showPasswordInput];
|
||||
@@ -100,6 +98,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
- (BOOL)splitView:(NSSplitView *)splitView shouldHideDividerAtIndex:(NSInteger)dividerIndex {
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (void)_setContentViewController:(MPViewController *)viewController {
|
||||
|
||||
NSView *newContentView = nil;
|
||||
@@ -172,6 +174,10 @@
|
||||
[self showPasswordInput];
|
||||
}
|
||||
|
||||
- (void)toggleInspector:(id)sender {
|
||||
|
||||
}
|
||||
|
||||
- (void)showEntries {
|
||||
NSView *contentView = [[self window] contentView];
|
||||
if(_splitView == contentView) {
|
||||
|
||||
16
MacPass/MPEntryTableDataSource.h
Normal file
16
MacPass/MPEntryTableDataSource.h
Normal file
@@ -0,0 +1,16 @@
|
||||
//
|
||||
// MPEntyTableDataSource.h
|
||||
// MacPass
|
||||
//
|
||||
// Created by Michael Starke on 09.06.13.
|
||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
@class MPEntryViewController;
|
||||
@interface MPEntryTableDataSource : NSObject <NSTableViewDataSource>
|
||||
|
||||
@property (assign, nonatomic) MPEntryViewController *viewController;
|
||||
|
||||
@end
|
||||
42
MacPass/MPEntryTableDataSource.m
Normal file
42
MacPass/MPEntryTableDataSource.m
Normal file
@@ -0,0 +1,42 @@
|
||||
//
|
||||
// MPEntyTableDataSource.m
|
||||
// MacPass
|
||||
//
|
||||
// Created by Michael Starke on 09.06.13.
|
||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||
//
|
||||
|
||||
#import "MPEntryTableDataSource.h"
|
||||
#import "MPEntryViewController.h"
|
||||
#import "UUID.h"
|
||||
#import "MPConstants.h"
|
||||
|
||||
@interface MPEntryTableDataSource ()
|
||||
|
||||
@end
|
||||
|
||||
@implementation MPEntryTableDataSource
|
||||
|
||||
- (BOOL)tableView:(NSTableView *)tableView writeRowsWithIndexes:(NSIndexSet *)rowIndexes toPasteboard:(NSPasteboard *)pboard {
|
||||
|
||||
if([rowIndexes count] != 1) {
|
||||
return NO; // No valid drag
|
||||
}
|
||||
|
||||
id entry = [self.viewController.entryArrayController arrangedObjects][[rowIndexes firstIndex]];
|
||||
|
||||
if(![entry respondsToSelector:@selector(uuid)]) {
|
||||
return NO; // Invalid item for dragging
|
||||
}
|
||||
UUID *uuid = (UUID *)[entry uuid];
|
||||
NSPasteboardItem *pBoardItem = [[NSPasteboardItem alloc] init];
|
||||
[pBoardItem setString:[uuid description] forType:MPPasteBoardType];
|
||||
[pboard writeObjects:@[pBoardItem]];
|
||||
[pBoardItem release];
|
||||
|
||||
return YES;
|
||||
}
|
||||
|
||||
//TODO: Validation and adding
|
||||
|
||||
@end
|
||||
@@ -15,10 +15,12 @@
|
||||
#import "MPDocumentWindowController.h"
|
||||
#import "MPPasteBoardController.h"
|
||||
#import "MPOverlayWindowController.h"
|
||||
#import "KdbGroup+MPAdditions.h"
|
||||
#import "KdbGroup+MPTreeTools.h"
|
||||
#import "KdbGroup+Undo.h"
|
||||
#import "KdbEntry+Undo.h"
|
||||
#import "MPContextMenuHelper.h"
|
||||
#import "MPConstants.h"
|
||||
#import "MPEntryTableDataSource.h"
|
||||
|
||||
NSString *const MPDidChangeSelectedEntryNotification = @"com.macpass.MPDidChangeSelectedEntryNotification";
|
||||
|
||||
@@ -68,6 +70,7 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername";
|
||||
|
||||
@property (assign) KdbEntry *selectedEntry;
|
||||
|
||||
@property (nonatomic, retain) MPEntryTableDataSource *dataSource;
|
||||
|
||||
@property (assign, nonatomic) MPFilterModeType filterMode;
|
||||
@property (retain, nonatomic) NSDictionary *filterButtonToMode;
|
||||
@@ -90,6 +93,8 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername";
|
||||
_toggleFilterURLButton : @(MPFilterUrls)
|
||||
} retain];
|
||||
_entryArrayController = [[NSArrayController alloc] init];
|
||||
_dataSource = [[MPEntryTableDataSource alloc] init];
|
||||
_dataSource.viewController = self;
|
||||
_selectedEntry = nil;
|
||||
}
|
||||
return self;
|
||||
@@ -103,6 +108,7 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername";
|
||||
self.filterBar = nil;
|
||||
self.tableToTop = nil;
|
||||
self.filterButtonToMode = nil;
|
||||
self.dataSource = nil;
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
@@ -120,6 +126,7 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername";
|
||||
[self.entryTable setDoubleAction:@selector(_columnDoubleClick:)];
|
||||
[self.entryTable setTarget:self];
|
||||
[self.entryTable setFloatsGroupRows:NO];
|
||||
[self.entryTable registerForDraggedTypes:@[MPPasteBoardType]];
|
||||
[self _setupEntryMenu];
|
||||
|
||||
NSTableColumn *parentColumn = [self.entryTable tableColumns][0];
|
||||
@@ -150,6 +157,7 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername";
|
||||
|
||||
[self.entryTable bind:NSContentBinding toObject:self.entryArrayController withKeyPath:@"arrangedObjects" options:nil];
|
||||
[self.entryTable bind:NSSortDescriptorsBinding toObject:self.entryArrayController withKeyPath:@"sortDescriptors" options:nil];
|
||||
[self.entryTable setDataSource:_dataSource];
|
||||
|
||||
[parentColumn setHidden:YES];
|
||||
}
|
||||
@@ -197,7 +205,7 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername";
|
||||
}
|
||||
|
||||
- (void)tableViewSelectionDidChange:(NSNotification *)notification {
|
||||
if([self.entryTable selectedRow] < 0) {
|
||||
if([self.entryTable selectedRow] < 0 || [[_entryTable selectedRowIndexes] count] > 1) {
|
||||
self.selectedEntry = nil;
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -11,12 +11,6 @@
|
||||
|
||||
NSString *const MPGeneralSetingsIdentifier = @"GeneralSettingsTab";
|
||||
|
||||
@interface MPGeneralSettingsController ()
|
||||
|
||||
- (void)didLoadView;
|
||||
|
||||
@end
|
||||
|
||||
@implementation MPGeneralSettingsController
|
||||
|
||||
+ (NSString *)identifier {
|
||||
|
||||
@@ -8,8 +8,6 @@
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
APPKIT_EXTERN NSString *const MPPasteBoardType;
|
||||
|
||||
@class KdbGroup;
|
||||
|
||||
@interface MPOutlineDataSource : NSObject <NSOutlineViewDataSource> {
|
||||
|
||||
@@ -10,8 +10,10 @@
|
||||
#import "MPDocument.h"
|
||||
#import "KdbLib.h"
|
||||
#import "KdbGroup+Undo.h"
|
||||
|
||||
NSString *const MPPasteBoardType = @"com.hicknhack.macpass.pasteboard";
|
||||
#import "KdbGroup+MPTreeTools.h"
|
||||
#import "KdbEntry+MPTreeTools.h"
|
||||
#import "MPConstants.h"
|
||||
#import "UUID.h"
|
||||
|
||||
@implementation MPOutlineDataSource
|
||||
|
||||
@@ -43,23 +45,48 @@ NSString *const MPPasteBoardType = @"com.hicknhack.macpass.pasteboard";
|
||||
return NSDragOperationMove;
|
||||
}
|
||||
}
|
||||
NSPasteboard *pasteBoard = [info draggingPasteboard];
|
||||
NSArray *items = [pasteBoard pasteboardItems];
|
||||
if([items count] > 0) {
|
||||
if( index != NSOutlineViewDropOnItemIndex ) {
|
||||
[outlineView setDropItem:item dropChildIndex:NSOutlineViewDropOnItemIndex];
|
||||
}
|
||||
return NSDragOperationMove;
|
||||
}
|
||||
return NSDragOperationNone;
|
||||
}
|
||||
|
||||
- (BOOL)outlineView:(NSOutlineView *)outlineView acceptDrop:(id<NSDraggingInfo>)info item:(id)item childIndex:(NSInteger)index {
|
||||
NSLog(@"Drag %@ to: %@ index: %ld", _draggedItem, [item representedObject], index);
|
||||
KdbGroup *target = [item representedObject];
|
||||
BOOL accepted = YES;
|
||||
if( _draggedItem.parent == target ) {
|
||||
accepted &= index != NSOutlineViewDropOnItemIndex;
|
||||
accepted &= index != [_draggedItem.parent.groups indexOfObject:_draggedItem];
|
||||
if(_draggedItem) {
|
||||
BOOL accepted = YES;
|
||||
if( _draggedItem.parent == target ) {
|
||||
accepted &= index != NSOutlineViewDropOnItemIndex;
|
||||
accepted &= index != [_draggedItem.parent.groups indexOfObject:_draggedItem];
|
||||
}
|
||||
MPDocument *document = [[[outlineView window] windowController] document];
|
||||
accepted = [document group:_draggedItem isMoveableToGroup:target];
|
||||
if( accepted ) {
|
||||
[document moveGroup:_draggedItem toGroup:target index:index];
|
||||
}
|
||||
info.animatesToDestination = !accepted;
|
||||
return accepted;
|
||||
}
|
||||
MPDocument *document = [[[outlineView window] windowController] document];
|
||||
accepted = [document group:_draggedItem isMoveableToGroup:target];
|
||||
if( accepted ) {
|
||||
[document moveGroup:_draggedItem toGroup:target index:index];
|
||||
NSPasteboard *pasteBoard = [info draggingPasteboard];
|
||||
NSArray *items = [pasteBoard pasteboardItems];
|
||||
if([items count] > 0) {
|
||||
NSPasteboardItem *item = items[0];
|
||||
UUID *uuid = [[UUID alloc] initWithString:[item stringForType:MPPasteBoardType]];
|
||||
MPDocument *document = [[[outlineView window] windowController] document];
|
||||
KdbGroup *rootGroup = [document root];
|
||||
KdbEntry *draggedEntry = [rootGroup entryForUUID:uuid];
|
||||
if(draggedEntry) {
|
||||
if(draggedEntry.parent != target && index == NSOutlineViewDropOnItemIndex) {
|
||||
[document moveEntry:draggedEntry toGroup:target index:index];
|
||||
return YES;
|
||||
}
|
||||
}
|
||||
}
|
||||
info.animatesToDestination = !accepted;
|
||||
return accepted;
|
||||
return NO;
|
||||
}
|
||||
@end
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
#import "KdbLib.h"
|
||||
#import "KdbGroup+Undo.h"
|
||||
#import "MPContextMenuHelper.h"
|
||||
#import "MPConstants.h"
|
||||
|
||||
|
||||
@interface MPOutlineViewController () {
|
||||
|
||||
@@ -20,8 +20,6 @@
|
||||
@property (assign) IBOutlet NSTextField *errorInfoTextField;
|
||||
|
||||
- (IBAction)_decrypt:(id)sender;
|
||||
- (void)_showError;
|
||||
- (void)_reset;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@@ -13,10 +13,6 @@
|
||||
|
||||
@property (assign) BOOL isEmpty;
|
||||
|
||||
- (void)_clearPasteboardContents;
|
||||
- (void)_setupBindings;
|
||||
- (void)_updateNotifications;
|
||||
|
||||
@end
|
||||
|
||||
@implementation MPPasteBoardController
|
||||
|
||||
@@ -12,12 +12,6 @@ NSString *const kMPSettingsKeyPasteboardClearTimeout = @"ClipboardClearTimeout";
|
||||
NSString *const kMPSettingsKeyClearPasteboardOnQuit = @"ClearClipboardOnQuit";
|
||||
NSString *const kMPSettingsKeyOpenEmptyDatabaseOnLaunch = @"OpenEmptyDatabaseOnLaunch";
|
||||
|
||||
@interface MPSettingsHelper ()
|
||||
|
||||
+ (NSDictionary *)_standardDefaults;
|
||||
|
||||
@end
|
||||
|
||||
@implementation MPSettingsHelper
|
||||
|
||||
+ (void)setupDefaults {
|
||||
|
||||
@@ -15,10 +15,6 @@
|
||||
@property (retain, nonatomic) NSMutableDictionary *settingsController;
|
||||
@property (retain, nonatomic) NSMutableDictionary *toolbarItems;
|
||||
|
||||
- (void)_addSettingsTab:(id<MPSettingsTab>)tabController;
|
||||
- (void)_setupDefaultSettingsTabs;
|
||||
- (void)_showSettingsTab:(id)sender;
|
||||
|
||||
@end
|
||||
|
||||
@implementation MPSettingsWindowController
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>B23</string>
|
||||
<string>B85</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>${MACOSX_DEPLOYMENT_TARGET}</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
|
||||
Reference in New Issue
Block a user