mirror of
https://github.com/MacPass/MacPass.git
synced 2025-12-14 16:22:21 +00:00
NSOutlineView change to use no Autolayout since it fucked up resizing
This commit is contained in:
@@ -50,7 +50,7 @@
|
||||
<string key="NSFrameSize">{703, 547}</string>
|
||||
<reference key="NSSuperview" ref="262664416"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="737075944"/>
|
||||
<reference key="NSNextKeyView" ref="1037276411"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:13</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
@@ -214,6 +214,7 @@
|
||||
<string key="NSFrame">{{1, 119}, {223, 15}}</string>
|
||||
<reference key="NSSuperview" ref="613995671"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:60</string>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
<int key="NSsFlags">1</int>
|
||||
@@ -240,7 +241,7 @@
|
||||
<string key="NSFrameSize">{703, 564}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="262664416"/>
|
||||
<reference key="NSNextKeyView" ref="737075944"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<int key="NSsFlags">133680</int>
|
||||
<reference key="NSVScroller" ref="1037276411"/>
|
||||
@@ -371,7 +372,7 @@
|
||||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">85</int>
|
||||
<int key="maxID">110</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1070</int>
|
||||
<string key="IBDocument.SystemVersion">11E53</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">2182</string>
|
||||
<string key="IBDocument.AppKitVersion">1138.47</string>
|
||||
<string key="IBDocument.HIToolboxVersion">569.00</string>
|
||||
<int key="IBDocument.SystemTarget">1080</int>
|
||||
<string key="IBDocument.SystemVersion">12C60</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">3084</string>
|
||||
<string key="IBDocument.AppKitVersion">1187.34</string>
|
||||
<string key="IBDocument.HIToolboxVersion">625.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="NS.object.0">2182</string>
|
||||
<string key="NS.object.0">3084</string>
|
||||
</object>
|
||||
<array key="IBDocument.IntegratedClassDependencies">
|
||||
<string>NSTextField</string>
|
||||
<string>IBNSLayoutConstraint</string>
|
||||
<string>NSCustomObject</string>
|
||||
<string>NSCustomView</string>
|
||||
<string>NSMenu</string>
|
||||
<string>NSMenuItem</string>
|
||||
<string>NSPopUpButton</string>
|
||||
<string>NSCustomView</string>
|
||||
<string>NSPopUpButtonCell</string>
|
||||
<string>IBNSLayoutConstraint</string>
|
||||
<string>NSTextField</string>
|
||||
<string>NSTextFieldCell</string>
|
||||
</array>
|
||||
<array key="IBDocument.PluginDependencies">
|
||||
@@ -48,12 +48,11 @@
|
||||
<string key="NSFrame">{{146, 292}, {127, 26}}</string>
|
||||
<reference key="NSSuperview" ref="1005"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<string key="NSAntiCompressionPriority">{750, 751}</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSPopUpButtonCell" key="NSCell" id="161510884">
|
||||
<int key="NSCellFlags">-2076049856</int>
|
||||
<int key="NSCellFlags">-2076180416</int>
|
||||
<int key="NSCellFlags2">2048</int>
|
||||
<object class="NSFont" key="NSSupport" id="874940307">
|
||||
<string key="NSName">LucidaGrande</string>
|
||||
@@ -62,7 +61,7 @@
|
||||
</object>
|
||||
<string key="NSCellIdentifier">_NS:9</string>
|
||||
<reference key="NSControlView" ref="421904700"/>
|
||||
<int key="NSButtonFlags">109199615</int>
|
||||
<int key="NSButtonFlags">109199360</int>
|
||||
<int key="NSButtonFlags2">65</int>
|
||||
<string key="NSAlternateContents"/>
|
||||
<string key="NSKeyEquivalent"/>
|
||||
@@ -121,6 +120,7 @@
|
||||
<bool key="NSAltersState">YES</bool>
|
||||
<int key="NSArrowPosition">2</int>
|
||||
</object>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
</object>
|
||||
<object class="NSTextField" id="637214120">
|
||||
<reference key="NSNextResponder" ref="1005"/>
|
||||
@@ -132,7 +132,7 @@
|
||||
<string key="NSReuseIdentifierKey">_NS:1505</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="1050281039">
|
||||
<int key="NSCellFlags">68288064</int>
|
||||
<int key="NSCellFlags">68157504</int>
|
||||
<int key="NSCellFlags2">71304192</int>
|
||||
<string key="NSContents">Password Encoding</string>
|
||||
<reference key="NSSupport" ref="874940307"/>
|
||||
@@ -157,6 +157,7 @@
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{290, 336}</string>
|
||||
@@ -217,101 +218,21 @@
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="421904700"/>
|
||||
<reference ref="637214120"/>
|
||||
<object class="IBNSLayoutConstraint" id="180695068">
|
||||
<reference key="firstItem" ref="637214120"/>
|
||||
<int key="firstAttribute">5</int>
|
||||
<int key="relation">1</int>
|
||||
<reference key="secondItem" ref="1005"/>
|
||||
<int key="secondAttribute">5</int>
|
||||
<float key="multiplier">1</float>
|
||||
<object class="IBNSLayoutSymbolicConstant" key="constant">
|
||||
<double key="value">20</double>
|
||||
</object>
|
||||
<float key="priority">1000</float>
|
||||
<int key="scoringType">9</int>
|
||||
<float key="scoringTypeFloat">40</float>
|
||||
<int key="contentType">3</int>
|
||||
<reference key="containingView" ref="1005"/>
|
||||
</object>
|
||||
<object class="IBNSLayoutConstraint" id="989429017">
|
||||
<reference key="firstItem" ref="637214120"/>
|
||||
<int key="firstAttribute">5</int>
|
||||
<int key="relation">0</int>
|
||||
<reference key="secondItem" ref="1005"/>
|
||||
<int key="secondAttribute">5</int>
|
||||
<float key="multiplier">1</float>
|
||||
<object class="IBNSLayoutSymbolicConstant" key="constant">
|
||||
<double key="value">20</double>
|
||||
</object>
|
||||
<float key="priority">1000</float>
|
||||
<int key="scoringType">9</int>
|
||||
<float key="scoringTypeFloat">40</float>
|
||||
<int key="contentType">3</int>
|
||||
<reference key="containingView" ref="1005"/>
|
||||
</object>
|
||||
<object class="IBNSLayoutConstraint" id="704304955">
|
||||
<object class="IBNSLayoutConstraint" id="835508122">
|
||||
<reference key="firstItem" ref="421904700"/>
|
||||
<int key="firstAttribute">5</int>
|
||||
<int key="firstAttribute">11</int>
|
||||
<int key="relation">0</int>
|
||||
<reference key="secondItem" ref="637214120"/>
|
||||
<int key="secondAttribute">6</int>
|
||||
<float key="multiplier">1</float>
|
||||
<object class="IBNSLayoutSymbolicConstant" key="constant">
|
||||
<double key="value">8</double>
|
||||
</object>
|
||||
<float key="priority">1000</float>
|
||||
<int key="scoringType">9</int>
|
||||
<float key="scoringTypeFloat">40</float>
|
||||
<int key="contentType">3</int>
|
||||
<reference key="containingView" ref="1005"/>
|
||||
</object>
|
||||
<object class="IBNSLayoutConstraint" id="106372279">
|
||||
<reference key="firstItem" ref="1005"/>
|
||||
<int key="firstAttribute">6</int>
|
||||
<int key="relation">1</int>
|
||||
<reference key="secondItem" ref="421904700"/>
|
||||
<int key="secondAttribute">6</int>
|
||||
<float key="multiplier">1</float>
|
||||
<object class="IBNSLayoutSymbolicConstant" key="constant">
|
||||
<double key="value">20</double>
|
||||
</object>
|
||||
<float key="priority">1000</float>
|
||||
<int key="scoringType">9</int>
|
||||
<float key="scoringTypeFloat">40</float>
|
||||
<int key="contentType">3</int>
|
||||
<reference key="containingView" ref="1005"/>
|
||||
</object>
|
||||
<object class="IBNSLayoutConstraint" id="850330857">
|
||||
<reference key="firstItem" ref="421904700"/>
|
||||
<int key="firstAttribute">3</int>
|
||||
<int key="relation">0</int>
|
||||
<reference key="secondItem" ref="1005"/>
|
||||
<int key="secondAttribute">3</int>
|
||||
<float key="multiplier">1</float>
|
||||
<object class="IBNSLayoutSymbolicConstant" key="constant">
|
||||
<double key="value">20</double>
|
||||
</object>
|
||||
<float key="priority">1000</float>
|
||||
<int key="scoringType">8</int>
|
||||
<float key="scoringTypeFloat">29</float>
|
||||
<int key="contentType">3</int>
|
||||
<reference key="containingView" ref="1005"/>
|
||||
</object>
|
||||
<object class="IBNSLayoutConstraint" id="689515169">
|
||||
<reference key="firstItem" ref="637214120"/>
|
||||
<int key="firstAttribute">7</int>
|
||||
<int key="relation">0</int>
|
||||
<reference key="secondItem" ref="421904700"/>
|
||||
<int key="secondAttribute">7</int>
|
||||
<int key="secondAttribute">11</int>
|
||||
<float key="multiplier">1</float>
|
||||
<object class="IBLayoutConstant" key="constant">
|
||||
<double key="value">0.0</double>
|
||||
</object>
|
||||
<float key="priority">1000</float>
|
||||
<int key="scoringType">9</int>
|
||||
<float key="scoringTypeFloat">40</float>
|
||||
<int key="contentType">5</int>
|
||||
<reference key="containingView" ref="1005"/>
|
||||
<int key="scoringType">6</int>
|
||||
<float key="scoringTypeFloat">24</float>
|
||||
<int key="contentType">2</int>
|
||||
</object>
|
||||
<object class="IBNSLayoutConstraint" id="215335887">
|
||||
<reference key="firstItem" ref="1005"/>
|
||||
@@ -324,26 +245,106 @@
|
||||
<double key="value">20</double>
|
||||
</object>
|
||||
<float key="priority">1000</float>
|
||||
<reference key="containingView" ref="1005"/>
|
||||
<int key="scoringType">8</int>
|
||||
<float key="scoringTypeFloat">29</float>
|
||||
<int key="contentType">3</int>
|
||||
<reference key="containingView" ref="1005"/>
|
||||
</object>
|
||||
<object class="IBNSLayoutConstraint" id="835508122">
|
||||
<object class="IBNSLayoutConstraint" id="850330857">
|
||||
<reference key="firstItem" ref="421904700"/>
|
||||
<int key="firstAttribute">11</int>
|
||||
<int key="firstAttribute">3</int>
|
||||
<int key="relation">0</int>
|
||||
<reference key="secondItem" ref="1005"/>
|
||||
<int key="secondAttribute">3</int>
|
||||
<float key="multiplier">1</float>
|
||||
<object class="IBNSLayoutSymbolicConstant" key="constant">
|
||||
<double key="value">20</double>
|
||||
</object>
|
||||
<float key="priority">1000</float>
|
||||
<reference key="containingView" ref="1005"/>
|
||||
<int key="scoringType">8</int>
|
||||
<float key="scoringTypeFloat">29</float>
|
||||
<int key="contentType">3</int>
|
||||
</object>
|
||||
<object class="IBNSLayoutConstraint" id="106372279">
|
||||
<reference key="firstItem" ref="1005"/>
|
||||
<int key="firstAttribute">6</int>
|
||||
<int key="relation">1</int>
|
||||
<reference key="secondItem" ref="421904700"/>
|
||||
<int key="secondAttribute">6</int>
|
||||
<float key="multiplier">1</float>
|
||||
<object class="IBNSLayoutSymbolicConstant" key="constant">
|
||||
<double key="value">20</double>
|
||||
</object>
|
||||
<float key="priority">1000</float>
|
||||
<reference key="containingView" ref="1005"/>
|
||||
<int key="scoringType">9</int>
|
||||
<float key="scoringTypeFloat">40</float>
|
||||
<int key="contentType">3</int>
|
||||
</object>
|
||||
<object class="IBNSLayoutConstraint" id="704304955">
|
||||
<reference key="firstItem" ref="421904700"/>
|
||||
<int key="firstAttribute">5</int>
|
||||
<int key="relation">0</int>
|
||||
<reference key="secondItem" ref="637214120"/>
|
||||
<int key="secondAttribute">11</int>
|
||||
<int key="secondAttribute">6</int>
|
||||
<float key="multiplier">1</float>
|
||||
<object class="IBNSLayoutSymbolicConstant" key="constant">
|
||||
<double key="value">8</double>
|
||||
</object>
|
||||
<float key="priority">1000</float>
|
||||
<reference key="containingView" ref="1005"/>
|
||||
<int key="scoringType">9</int>
|
||||
<float key="scoringTypeFloat">40</float>
|
||||
<int key="contentType">3</int>
|
||||
</object>
|
||||
<object class="IBNSLayoutConstraint" id="689515169">
|
||||
<reference key="firstItem" ref="637214120"/>
|
||||
<int key="firstAttribute">7</int>
|
||||
<int key="relation">0</int>
|
||||
<reference key="secondItem" ref="421904700"/>
|
||||
<int key="secondAttribute">7</int>
|
||||
<float key="multiplier">1</float>
|
||||
<object class="IBLayoutConstant" key="constant">
|
||||
<double key="value">0.0</double>
|
||||
</object>
|
||||
<float key="priority">1000</float>
|
||||
<int key="scoringType">6</int>
|
||||
<float key="scoringTypeFloat">24</float>
|
||||
<int key="contentType">2</int>
|
||||
<reference key="containingView" ref="1005"/>
|
||||
<int key="scoringType">9</int>
|
||||
<float key="scoringTypeFloat">40</float>
|
||||
<int key="contentType">5</int>
|
||||
</object>
|
||||
<object class="IBNSLayoutConstraint" id="989429017">
|
||||
<reference key="firstItem" ref="637214120"/>
|
||||
<int key="firstAttribute">5</int>
|
||||
<int key="relation">0</int>
|
||||
<reference key="secondItem" ref="1005"/>
|
||||
<int key="secondAttribute">5</int>
|
||||
<float key="multiplier">1</float>
|
||||
<object class="IBNSLayoutSymbolicConstant" key="constant">
|
||||
<double key="value">20</double>
|
||||
</object>
|
||||
<float key="priority">1000</float>
|
||||
<reference key="containingView" ref="1005"/>
|
||||
<int key="scoringType">9</int>
|
||||
<float key="scoringTypeFloat">40</float>
|
||||
<int key="contentType">3</int>
|
||||
</object>
|
||||
<object class="IBNSLayoutConstraint" id="180695068">
|
||||
<reference key="firstItem" ref="637214120"/>
|
||||
<int key="firstAttribute">5</int>
|
||||
<int key="relation">1</int>
|
||||
<reference key="secondItem" ref="1005"/>
|
||||
<int key="secondAttribute">5</int>
|
||||
<float key="multiplier">1</float>
|
||||
<object class="IBNSLayoutSymbolicConstant" key="constant">
|
||||
<double key="value">20</double>
|
||||
</object>
|
||||
<float key="priority">1000</float>
|
||||
<reference key="containingView" ref="1005"/>
|
||||
<int key="scoringType">9</int>
|
||||
<float key="scoringTypeFloat">40</float>
|
||||
<int key="contentType">3</int>
|
||||
</object>
|
||||
</array>
|
||||
<reference key="parent" ref="0"/>
|
||||
@@ -451,10 +452,10 @@
|
||||
<array class="NSMutableArray" key="1.IBNSViewMetadataConstraints">
|
||||
<reference ref="180695068"/>
|
||||
<reference ref="989429017"/>
|
||||
<reference ref="689515169"/>
|
||||
<reference ref="704304955"/>
|
||||
<reference ref="106372279"/>
|
||||
<reference ref="850330857"/>
|
||||
<reference ref="689515169"/>
|
||||
<reference ref="215335887"/>
|
||||
<reference ref="835508122"/>
|
||||
</array>
|
||||
@@ -482,7 +483,7 @@
|
||||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">131</int>
|
||||
<int key="maxID">142</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
|
||||
18
MacPass/KdbGroup+MPAdditions.h
Normal file
18
MacPass/KdbGroup+MPAdditions.h
Normal file
@@ -0,0 +1,18 @@
|
||||
//
|
||||
// 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)
|
||||
|
||||
+ (KdbGroup *)group;
|
||||
+ (KdbGroup *)groupWithName:(NSString *)name;
|
||||
|
||||
+ (void)refreshModificationTime;
|
||||
|
||||
@end
|
||||
24
MacPass/KdbGroup+MPAdditions.m
Normal file
24
MacPass/KdbGroup+MPAdditions.m
Normal file
@@ -0,0 +1,24 @@
|
||||
//
|
||||
// KdbGroup+MPAdditions.m
|
||||
// MacPass
|
||||
//
|
||||
// Created by michael starke on 19.02.13.
|
||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||
//
|
||||
|
||||
#import "KdbGroup+MPAdditions.h"
|
||||
|
||||
@implementation KdbGroup (MPAdditions)
|
||||
|
||||
+ (KdbGroup *)group {
|
||||
KdbGroup *group = [[KdbGroup alloc] init];
|
||||
[group setName:@"Default"];
|
||||
return [group autorelease];
|
||||
}
|
||||
|
||||
+ (KdbGroup *)groupWithName:(NSString *)name {
|
||||
KdbGroup *group = [KdbGroup group];
|
||||
[group setName:name];
|
||||
return group;
|
||||
}
|
||||
@end
|
||||
@@ -36,17 +36,6 @@
|
||||
[self.settingsController showWindow:_settingsController.window];
|
||||
}
|
||||
|
||||
- (void)newDocument:(id)sender {
|
||||
}
|
||||
|
||||
- (void)performClose:(id)sender {
|
||||
NSLog(@"Close");
|
||||
}
|
||||
|
||||
- (void)openDocument:(id)sender {
|
||||
[self.mainWindowController openDocument];
|
||||
}
|
||||
|
||||
- (void)toolbarItemPressed:(id)sender {
|
||||
NSLog(@"Pressed %@", sender);
|
||||
}
|
||||
|
||||
@@ -20,10 +20,6 @@ APPKIT_EXTERN NSString *const MPDatabaseControllerDidCloseDatabaseNotification;
|
||||
*/
|
||||
APPKIT_EXTERN NSString *const MPDatabaseControllerDatabaseKey;
|
||||
|
||||
typedef enum{
|
||||
MPDatabaseVersion1,
|
||||
MPDatabaseVersion2
|
||||
} MPDatabaseVersion;
|
||||
|
||||
@class MPDatabaseDocument;
|
||||
|
||||
@@ -33,7 +29,7 @@ typedef enum{
|
||||
|
||||
+ (MPDatabaseController *)defaultController;
|
||||
|
||||
- (MPDatabaseDocument *)createDatabase:(MPDatabaseVersion )version password:(NSString *)password keyfile:(NSURL *)key;
|
||||
//- (MPDatabaseDocument *)createDatabase:(MPDatabaseVersion )version password:(NSString *)password keyfile:(NSURL *)key;
|
||||
- (MPDatabaseDocument *)openDatabase:(NSURL *)file password:(NSString *)password keyfile:(NSURL *)key;
|
||||
|
||||
@end
|
||||
|
||||
@@ -11,6 +11,11 @@
|
||||
APPKIT_EXTERN NSString *const MPDidLoadDataBaseNotification;
|
||||
APPKIT_EXTERN NSString *const MPDataBaseDocumentDocumentKey;
|
||||
|
||||
typedef enum {
|
||||
MPDatabaseVersion3,
|
||||
MPDatabaseVersion4
|
||||
} MPDatabaseVersion;
|
||||
|
||||
@class KdbPassword;
|
||||
@class KdbGroup;
|
||||
|
||||
@@ -18,10 +23,13 @@ APPKIT_EXTERN NSString *const MPDataBaseDocumentDocumentKey;
|
||||
|
||||
@property (retain, readonly) KdbGroup *root;
|
||||
@property (retain, readonly) NSURL *file;
|
||||
@property (retain, readonly) KdbPassword *password;
|
||||
@property (nonatomic,retain) NSString *password;
|
||||
@property (nonatomic, retain) NSURL *key;
|
||||
@property (assign, readonly) MPDatabaseVersion version;
|
||||
|
||||
+ (id)documentWithFile:(NSURL *)file password:(NSString *)password keyfile:(NSURL *)key;
|
||||
- (id)initWithFile:(NSURL *)file password:(NSString *)password keyfile:(NSURL *)key;
|
||||
- (id)initWithNewDatabase:(MPDatabaseVersion)version;
|
||||
/*
|
||||
Saves the current database to the filesystem
|
||||
Tries to use the stored password and file path
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
|
||||
#import "MPDatabaseDocument.h"
|
||||
#import "KdbLib.h"
|
||||
#import "Kdb4Node.h"
|
||||
#import "Kdb3Node.h"
|
||||
|
||||
NSString *const MPDidLoadDataBaseNotification = @"DidLoadDataBaseNotification";
|
||||
|
||||
@@ -15,7 +17,8 @@ NSString *const MPDidLoadDataBaseNotification = @"DidLoadDataBaseNotification";
|
||||
|
||||
@property (retain) KdbTree *tree;
|
||||
@property (retain) NSURL *file;
|
||||
@property (retain) KdbPassword *password;
|
||||
@property (nonatomic, readonly) KdbPassword *passwordHash;
|
||||
@property (assign) MPDatabaseVersion version;
|
||||
|
||||
@end
|
||||
|
||||
@@ -29,6 +32,27 @@ NSString *const MPDidLoadDataBaseNotification = @"DidLoadDataBaseNotification";
|
||||
// create empty document
|
||||
return [self initWithFile:nil password:nil keyfile:nil];
|
||||
}
|
||||
|
||||
- (id)initWithNewDatabaseVersion:(MPDatabaseVersion)version {
|
||||
self = [super init];
|
||||
if(self) {
|
||||
switch(version) {
|
||||
case MPDatabaseVersion3:
|
||||
self.tree = [[[Kdb3Tree alloc] init] autorelease];
|
||||
break;
|
||||
case MPDatabaseVersion4:
|
||||
self.tree = [[[Kdb4Tree alloc] init] autorelease];
|
||||
break;
|
||||
default:
|
||||
[self release];
|
||||
return nil;
|
||||
}
|
||||
KdbGroup *newGroup = [self.tree createGroup:self.tree.root];
|
||||
newGroup.name = @"Default";
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
/*
|
||||
Designated initalizeder
|
||||
*/
|
||||
@@ -39,50 +63,29 @@ NSString *const MPDidLoadDataBaseNotification = @"DidLoadDataBaseNotification";
|
||||
/*
|
||||
Create an empty file
|
||||
*/
|
||||
if(!file) {
|
||||
self.tree = [[[KdbTree alloc] init] autorelease];
|
||||
self.tree.root = [[[KdbGroup alloc] init] autorelease];
|
||||
[self.tree.root setName:NSLocalizedString(@"INITIAL_GROUP", @"")];
|
||||
self.file = file;
|
||||
self.key = key;
|
||||
self.password = password;
|
||||
@try {
|
||||
self.tree = [KdbReaderFactory load:[self.file path] withPassword:self.passwordHash];
|
||||
}
|
||||
/*
|
||||
Try to load a given file
|
||||
*/
|
||||
else {
|
||||
self.file = file;
|
||||
const BOOL hasPassword = (password != nil);
|
||||
const BOOL hasKeyfile = (key != nil);
|
||||
|
||||
// Create the password for the given parameters
|
||||
if( hasPassword && hasKeyfile) {
|
||||
self.password = [[[KdbPassword alloc] initWithPassword:password encoding:NSUTF8StringEncoding keyfile:[key path]] autorelease];
|
||||
}
|
||||
else if( hasPassword ) {
|
||||
self.password = [[[KdbPassword alloc] initWithPassword:password encoding:NSUTF8StringEncoding] autorelease];
|
||||
}
|
||||
else if( hasKeyfile ) {
|
||||
self.password = [[[KdbPassword alloc] initWithKeyfile:[key path]] autorelease];
|
||||
}
|
||||
else {
|
||||
NSLog(@"Error: No password or keyfile given!");
|
||||
}
|
||||
|
||||
@try {
|
||||
self.tree = [KdbReaderFactory load:[self.file path] withPassword:self.password];
|
||||
}
|
||||
@catch (NSException *exception) {
|
||||
NSLog(@"%@", [exception description]);
|
||||
}
|
||||
|
||||
@catch (NSException *exception) {
|
||||
NSLog(@"%@", [exception description]);
|
||||
[self release];
|
||||
return self;
|
||||
}
|
||||
|
||||
if([self.tree isKindOfClass:[Kdb4Tree class]]) {
|
||||
self.version = MPDatabaseVersion4;
|
||||
}
|
||||
else if( [self.tree isKindOfClass:[Kdb3Tree class]]) {
|
||||
self.version = MPDatabaseVersion3;
|
||||
}
|
||||
}
|
||||
// Test if something went wrong and nil out if so
|
||||
if( self.tree == nil) {
|
||||
[self release];
|
||||
self = nil;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
self.tree = nil;
|
||||
@@ -98,9 +101,9 @@ NSString *const MPDidLoadDataBaseNotification = @"DidLoadDataBaseNotification";
|
||||
|
||||
- (BOOL)save {
|
||||
NSError *fileError;
|
||||
if( self.password && [self.file checkResourceIsReachableAndReturnError:&fileError] ) {
|
||||
if( [self.file checkResourceIsReachableAndReturnError:&fileError] ) {
|
||||
@try {
|
||||
[KdbWriterFactory persist:self.tree file:[self.file path] withPassword:self.password];
|
||||
[KdbWriterFactory persist:self.tree file:[self.file path] withPassword:self.passwordHash];
|
||||
}
|
||||
@catch (NSException *exception) {
|
||||
NSLog(@"%@", [exception description]);
|
||||
@@ -113,4 +116,24 @@ NSString *const MPDidLoadDataBaseNotification = @"DidLoadDataBaseNotification";
|
||||
- (BOOL)saveAsFile:(NSURL *)file withPassword:(NSString *)password keyfile:(NSURL *)key {
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (KdbPassword *)passwordHash {
|
||||
|
||||
// Create the password for the given parameters
|
||||
if( self.password && self.key) {
|
||||
return [[[KdbPassword alloc] initWithPassword:self.password encoding:NSUTF8StringEncoding keyfile:[self.key path]] autorelease];
|
||||
}
|
||||
|
||||
if( self.password ) {
|
||||
return [[[KdbPassword alloc] initWithPassword:self.password encoding:NSUTF8StringEncoding] autorelease];
|
||||
}
|
||||
|
||||
if( self.key ) {
|
||||
return [[[KdbPassword alloc] initWithKeyfile:[self.key path]] autorelease];
|
||||
}
|
||||
|
||||
NSLog(@"Error: No password or keyfile given!");
|
||||
return nil;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
|
||||
@interface MPMainWindowController : NSWindowController
|
||||
|
||||
- (void)openDocument;
|
||||
- (void)showEntries;
|
||||
/*
|
||||
Sets the content View controller
|
||||
|
||||
@@ -12,21 +12,24 @@
|
||||
#import "MPEntryViewController.h"
|
||||
#import "MPToolbarDelegate.h"
|
||||
#import "MPOutlineViewController.h"
|
||||
#import "MPMainWindowSplitViewDelegate.h"
|
||||
|
||||
@interface MPMainWindowController ()
|
||||
|
||||
@property (assign) IBOutlet NSToolbar *toolbar;
|
||||
|
||||
@property (assign) IBOutlet NSView *outlineView;
|
||||
@property (assign) IBOutlet NSSplitView *splitView;
|
||||
@property (assign) IBOutlet NSView *contentView;
|
||||
|
||||
@property (retain) IBOutlet NSView *welcomeView;
|
||||
@property (retain) NSToolbar *toolbar;
|
||||
|
||||
@property (retain) MPPasswordInputController *passwordInputController;
|
||||
@property (retain) MPEntryViewController *entryViewController;
|
||||
@property (retain) MPOutlineViewController *outlineViewController;
|
||||
|
||||
@property (retain) MPToolbarDelegate *toolbarDelegate;
|
||||
@property (retain) MPMainWindowSplitViewDelegate *splitViewDelegate;
|
||||
|
||||
@end
|
||||
|
||||
@@ -35,8 +38,9 @@
|
||||
-(id)init {
|
||||
self = [super initWithWindowNibName:@"MainWindow" owner:self];
|
||||
if( self ) {
|
||||
self.toolbarDelegate = [[[MPToolbarDelegate alloc] init] autorelease];
|
||||
self.outlineViewController = [[[MPOutlineViewController alloc] init] autorelease];
|
||||
_toolbarDelegate = [[MPToolbarDelegate alloc] init];
|
||||
_outlineViewController = [[MPOutlineViewController alloc] init];
|
||||
_splitViewDelegate = [[MPMainWindowSplitViewDelegate alloc] init];
|
||||
|
||||
[[NSBundle mainBundle] loadNibNamed:@"WelcomeView" owner:self topLevelObjects:NULL];
|
||||
[self.welcomeView setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];
|
||||
@@ -57,15 +61,23 @@
|
||||
- (void)windowDidLoad
|
||||
{
|
||||
[super windowDidLoad];
|
||||
const CGFloat minimumWindowWidth = MPMainWindowSplitViewDelegateMinimumContentWidth + MPMainWindowSplitViewDelegateMinimumOutlineWidth + [self.splitView dividerThickness];
|
||||
[self.window setMinSize:NSMakeSize( minimumWindowWidth, 400)];
|
||||
|
||||
_toolbar = [[NSToolbar alloc] initWithIdentifier:@"MainWindowToolbar"];
|
||||
[self.toolbar setAllowsUserCustomization:YES];
|
||||
[self.toolbar setDelegate:self.toolbarDelegate];
|
||||
[self.window setToolbar:self.toolbar];
|
||||
|
||||
[self.splitView setDelegate:self.splitViewDelegate];
|
||||
|
||||
NSRect frame = [self.outlineView frame];
|
||||
frame.size.height -= 1;
|
||||
frame.origin.y = 10;
|
||||
// frame.size.height -= 1;
|
||||
// frame.origin.y = 10;
|
||||
[self.outlineViewController.view setFrame:frame];
|
||||
[self.outlineViewController.view setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];
|
||||
[self.splitView replaceSubview:self.outlineView with:self.outlineViewController.view];
|
||||
|
||||
[self.splitView replaceSubview:self.outlineView with:[self.outlineViewController view]];
|
||||
[self.splitView adjustSubviews];
|
||||
[self setContentViewController:nil];
|
||||
}
|
||||
|
||||
@@ -94,18 +106,16 @@
|
||||
else {
|
||||
[self.contentView addSubview:newContentView];
|
||||
}
|
||||
[self.splitView adjustSubviews];
|
||||
/*
|
||||
Set focus AFTER having added the view
|
||||
*/
|
||||
[self.window makeFirstResponder:[viewController reconmendedFirstResponder]];
|
||||
}
|
||||
|
||||
- (void)didOpenDocument:(NSNotification *)notification {
|
||||
[self showEntries];
|
||||
}
|
||||
#pragma mark Actions
|
||||
|
||||
|
||||
- (void)openDocument {
|
||||
- (void)openDocument:(id)sender {
|
||||
|
||||
if(!self.passwordInputController) {
|
||||
self.passwordInputController = [[[MPPasswordInputController alloc] init] autorelease];
|
||||
@@ -125,9 +135,15 @@
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark Notifications
|
||||
|
||||
- (void)didOpenDocument:(NSNotification *)notification {
|
||||
[self showEntries];
|
||||
}
|
||||
|
||||
- (void)showEntries {
|
||||
if(!self.entryViewController) {
|
||||
self.entryViewController = [[[MPEntryViewController alloc] init] autorelease];
|
||||
_entryViewController = [[MPEntryViewController alloc] init];
|
||||
}
|
||||
[self setContentViewController:self.entryViewController];
|
||||
}
|
||||
|
||||
@@ -8,6 +8,10 @@
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
extern const CGFloat MPMainWindowSplitViewDelegateMinimumOutlineWidth;
|
||||
extern const CGFloat MPMainWindowSplitViewDelegateMaximumOutlineWidth;
|
||||
extern const CGFloat MPMainWindowSplitViewDelegateMinimumContentWidth;
|
||||
|
||||
@interface MPMainWindowSplitViewDelegate : NSObject <NSSplitViewDelegate>
|
||||
|
||||
|
||||
|
||||
@@ -8,19 +8,56 @@
|
||||
|
||||
#import "MPMainWindowSplitViewDelegate.h"
|
||||
|
||||
const CGFloat _minimumSplitterWidth = 10.0;
|
||||
const CGFloat MPMainWindowSplitViewDelegateMinimumOutlineWidth = 150.0;
|
||||
const CGFloat MPMainWindowSplitViewDelegateMaximumOutlineWidth = 400.0;
|
||||
const CGFloat MPMainWindowSplitViewDelegateMinimumContentWidth = 400.0;
|
||||
|
||||
@interface MPMainWindowSplitViewDelegate ()
|
||||
|
||||
- (NSView *)leftView:(NSSplitView *)splitView;
|
||||
- (NSView *)rightView:(NSSplitView *)splitView;
|
||||
|
||||
@end
|
||||
|
||||
@implementation MPMainWindowSplitViewDelegate
|
||||
|
||||
- (NSView *)leftView:(NSSplitView *)splitView {
|
||||
return [splitView subviews][0];
|
||||
}
|
||||
|
||||
- (NSView *)rightView:(NSSplitView *)splitView {
|
||||
return [splitView subviews][1];
|
||||
}
|
||||
|
||||
- (CGFloat)splitView:(NSSplitView *)splitView constrainMinCoordinate:(CGFloat)proposedMinimumPosition ofSubviewAt:(NSInteger)dividerIndex {
|
||||
return _minimumSplitterWidth;
|
||||
return (proposedMinimumPosition < MPMainWindowSplitViewDelegateMinimumOutlineWidth) ? MPMainWindowSplitViewDelegateMinimumOutlineWidth : proposedMinimumPosition;
|
||||
}
|
||||
|
||||
- (CGFloat)splitView:(NSSplitView *)splitView constrainMaxCoordinate:(CGFloat)proposedMaximumPosition ofSubviewAt:(NSInteger)dividerIndex {
|
||||
NSView *otherView= [splitView subviews][(dividerIndex + 1) % 2];
|
||||
|
||||
CGFloat maximumWidth = [splitView frame].size.width - ( [splitView dividerThickness] + [otherView frame].size.width + _minimumSplitterWidth );
|
||||
return maximumWidth;
|
||||
CGFloat availableWidth = [splitView frame].size.width - [splitView dividerThickness];
|
||||
return (availableWidth - MPMainWindowSplitViewDelegateMinimumOutlineWidth);
|
||||
}
|
||||
|
||||
- (void)splitView:(NSSplitView *)splitView resizeSubviewsWithOldSize:(NSSize)oldSize {
|
||||
NSSize newSize = [splitView frame].size;
|
||||
const CGFloat dividierThickness = [splitView dividerThickness];
|
||||
|
||||
NSView *leftView = [self leftView:splitView];
|
||||
NSView *rightView = [self rightView:splitView];
|
||||
|
||||
CGFloat leftRelativeWidth = [leftView frame].size.width / oldSize.width;
|
||||
CGFloat newLeftWidth = floor(newSize.width * leftRelativeWidth);
|
||||
|
||||
if( newLeftWidth < MPMainWindowSplitViewDelegateMinimumOutlineWidth && newSize.width > MPMainWindowSplitViewDelegateMinimumOutlineWidth ) {
|
||||
newLeftWidth = MPMainWindowSplitViewDelegateMinimumOutlineWidth;
|
||||
}
|
||||
if( newLeftWidth > MPMainWindowSplitViewDelegateMaximumOutlineWidth ) {
|
||||
newLeftWidth = MPMainWindowSplitViewDelegateMaximumOutlineWidth;
|
||||
}
|
||||
NSRect newLeftFrame = NSMakeRect(0, 0, newLeftWidth, newSize.height);
|
||||
NSRect newRightFrame = NSMakeRect(newLeftWidth + dividierThickness, 0, newSize.width - newLeftWidth - dividierThickness, newSize.height);
|
||||
[leftView setFrame:newLeftFrame];
|
||||
[rightView setFrame:newRightFrame];
|
||||
};
|
||||
|
||||
@end
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
|
||||
- (void)didOpenDocument:(NSNotification *)notification;
|
||||
- (void)setupMenu;
|
||||
- (void)addEntry:(id)sender;
|
||||
|
||||
@end
|
||||
|
||||
@@ -69,11 +70,19 @@
|
||||
|
||||
- (void)setupMenu {
|
||||
NSMenu *menu = [[NSMenu allocWithZone:[NSMenu menuZone]] init];
|
||||
[menu addItemWithTitle:@"Add Group" action:NULL keyEquivalent:@""];
|
||||
[menu addItemWithTitle:@"Add Group" action:@selector(addEntry:) keyEquivalent:@""];
|
||||
[menu addItem: [NSMenuItem separatorItem]];
|
||||
[menu addItemWithTitle:@"Delete" action:NULL keyEquivalent:@""];
|
||||
for(NSMenuItem *item in [menu itemArray]) {
|
||||
[item setTarget:self];
|
||||
}
|
||||
|
||||
self.menu = menu;
|
||||
[menu release];
|
||||
}
|
||||
|
||||
- (void)addEntry:(id)sender {
|
||||
NSLog(@"Add Entry");
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -13,6 +13,7 @@ NSString *const MPToolbarItemAddGroup = @"AddGroup";
|
||||
NSString *const MPToolbarItemAddEntry = @"AddEntry";
|
||||
NSString *const MPToolbarItemEdit = @"Edit";
|
||||
NSString *const MPToolbarItemDelete =@"Delete";
|
||||
NSString *const MPToolbarItemAction = @"Action";
|
||||
|
||||
@interface MPToolbarDelegate()
|
||||
|
||||
@@ -29,7 +30,7 @@ NSString *const MPToolbarItemDelete =@"Delete";
|
||||
{
|
||||
self = [super init];
|
||||
if (self) {
|
||||
self.toolbarIdentifiers = @[ MPToolbarItemAddEntry, MPToolbarItemDelete, MPToolbarItemEdit, MPToolbarItemAddGroup ];
|
||||
self.toolbarIdentifiers = @[ MPToolbarItemAddEntry, MPToolbarItemDelete, MPToolbarItemEdit, MPToolbarItemAddGroup, MPToolbarItemAction ];
|
||||
self.toolbarItems = [NSMutableDictionary dictionaryWithCapacity:[self.toolbarItems count]];
|
||||
self.toolbarImages = [self createToolbarImages];
|
||||
}
|
||||
@@ -40,15 +41,54 @@ NSString *const MPToolbarItemDelete =@"Delete";
|
||||
NSToolbarItem *item = self.toolbarItems[ itemIdentifier ];
|
||||
if( !item ) {
|
||||
item = [[NSToolbarItem alloc] initWithItemIdentifier:itemIdentifier];
|
||||
[item setImage:self.toolbarImages[itemIdentifier]];
|
||||
NSButton *button;
|
||||
if([itemIdentifier isEqualToString:MPToolbarItemAction]) {
|
||||
NSPopUpButton *popupButton = [[NSPopUpButton alloc] initWithFrame:NSMakeRect(0, 0, 50, 32) pullsDown:YES];
|
||||
[[popupButton cell] setBezelStyle:NSTexturedRoundedBezelStyle];
|
||||
[[popupButton cell] setImageScaling:NSImageScaleProportionallyDown];
|
||||
[popupButton setTitle:@""];
|
||||
/*
|
||||
Built menu
|
||||
*/
|
||||
NSMenu *menu = [NSMenu allocWithZone:[NSMenu menuZone]];
|
||||
NSMenuItem *item = [[NSMenuItem allocWithZone:[NSMenu menuZone]] initWithTitle:@"" action:NULL keyEquivalent:@""];
|
||||
[item setImage:self.toolbarImages[itemIdentifier]];
|
||||
[menu addItem:item];
|
||||
[menu addItemWithTitle:@"Foo" action:NULL keyEquivalent:@""];
|
||||
[menu addItemWithTitle:@"Bar" action:NULL keyEquivalent:@""];
|
||||
[popupButton setMenu:menu];
|
||||
|
||||
/*
|
||||
Cleanup
|
||||
*/
|
||||
[item release];
|
||||
[menu release];
|
||||
button = popupButton;
|
||||
}
|
||||
else {
|
||||
button = [[NSButton alloc] initWithFrame:NSMakeRect(0, 0, 32, 32)];
|
||||
[[button cell] setBezelStyle:NSTexturedRoundedBezelStyle];
|
||||
[[button cell] setImageScaling:NSImageScaleProportionallyDown];
|
||||
[button setTitle:@""];
|
||||
[button setButtonType:NSMomentaryPushInButton];
|
||||
NSImage *image = self.toolbarImages[itemIdentifier];
|
||||
[button setImage:image];
|
||||
[button setImagePosition:NSImageOnly];
|
||||
}
|
||||
[button sizeToFit];
|
||||
|
||||
NSString *label = NSLocalizedString(itemIdentifier, @"");
|
||||
[item setLabel:label];
|
||||
|
||||
[item setView:button];
|
||||
|
||||
[item setAction:@selector(toolbarItemPressed:)];
|
||||
|
||||
self.toolbarItems[itemIdentifier] = item;
|
||||
[item release];
|
||||
[button release];
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
return item;
|
||||
@@ -64,12 +104,14 @@ NSString *const MPToolbarItemDelete =@"Delete";
|
||||
}
|
||||
|
||||
- (NSDictionary *)createToolbarImages{
|
||||
NSDictionary *imageDict = @{ MPToolbarItemAddEntry: [MPIconHelper icon:MPIconCamera],
|
||||
NSDictionary *imageDict = @{ MPToolbarItemAddEntry: [MPIconHelper icon:MPIconPassword],
|
||||
MPToolbarItemAddGroup: [MPIconHelper icon:MPIconPassword],
|
||||
MPToolbarItemDelete: [MPIconHelper icon:MPIconServer],
|
||||
MPToolbarItemEdit: [MPIconHelper icon:MPIconNotepad]
|
||||
MPToolbarItemDelete: [NSImage imageNamed:NSImageNameRemoveTemplate],
|
||||
MPToolbarItemEdit: [MPIconHelper icon:MPIconNotepad],
|
||||
MPToolbarItemAction: [NSImage imageNamed:NSImageNameActionTemplate]
|
||||
};
|
||||
return imageDict;
|
||||
}
|
||||
|
||||
|
||||
@end
|
||||
|
||||
@@ -12,6 +12,12 @@
|
||||
|
||||
- (void)loadView {
|
||||
[super loadView];
|
||||
|
||||
/* Insert ourselfs in the responder chain */
|
||||
NSResponder *nextResponder = [[self view] nextResponder];
|
||||
[[self view] setNextResponder:self];
|
||||
[self setNextResponder:nextResponder];
|
||||
|
||||
[self didLoadView];
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<string>76</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>${MACOSX_DEPLOYMENT_TARGET}</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
|
||||
@@ -11,13 +11,9 @@
|
||||
<string key="NS.object.0">3084</string>
|
||||
</object>
|
||||
<array key="IBDocument.IntegratedClassDependencies">
|
||||
<string>IBNSLayoutConstraint</string>
|
||||
<string>NSCustomObject</string>
|
||||
<string>NSCustomView</string>
|
||||
<string>NSSplitView</string>
|
||||
<string>NSToolbar</string>
|
||||
<string>NSToolbarFlexibleSpaceItem</string>
|
||||
<string>NSToolbarSpaceItem</string>
|
||||
<string>NSView</string>
|
||||
<string>NSWindowTemplate</string>
|
||||
</array>
|
||||
@@ -41,105 +37,26 @@
|
||||
<object class="NSWindowTemplate" id="1005">
|
||||
<int key="NSWindowStyleMask">15</int>
|
||||
<int key="NSWindowBacking">2</int>
|
||||
<string key="NSWindowRect">{{196, 240}, {611, 449}}</string>
|
||||
<string key="NSWindowRect">{{196, 240}, {727, 630}}</string>
|
||||
<int key="NSWTFlags">544735232</int>
|
||||
<string key="NSWindowTitle">Window</string>
|
||||
<string key="NSWindowClass">NSWindow</string>
|
||||
<object class="NSToolbar" key="NSViewClass" id="279945319">
|
||||
<object class="NSMutableString" key="NSToolbarIdentifier">
|
||||
<characters key="NS.bytes">04E515E6-01C4-49D0-9F18-CF8CB81C135F</characters>
|
||||
</object>
|
||||
<nil key="NSToolbarDelegate"/>
|
||||
<bool key="NSToolbarPrefersToBeShown">YES</bool>
|
||||
<bool key="NSToolbarShowsBaselineSeparator">YES</bool>
|
||||
<bool key="NSToolbarAllowsUserCustomization">YES</bool>
|
||||
<bool key="NSToolbarAutosavesConfiguration">NO</bool>
|
||||
<int key="NSToolbarDisplayMode">1</int>
|
||||
<int key="NSToolbarSizeMode">1</int>
|
||||
<dictionary class="NSMutableDictionary" key="NSToolbarIBIdentifiedItems">
|
||||
<object class="NSToolbarFlexibleSpaceItem" key="NSToolbarFlexibleSpaceItem" id="57284363">
|
||||
<string key="NSToolbarItemIdentifier">NSToolbarFlexibleSpaceItem</string>
|
||||
<string key="NSToolbarItemLabel"/>
|
||||
<string key="NSToolbarItemPaletteLabel">Flexible Space</string>
|
||||
<nil key="NSToolbarItemToolTip"/>
|
||||
<nil key="NSToolbarItemView"/>
|
||||
<nil key="NSToolbarItemImage"/>
|
||||
<nil key="NSToolbarItemTarget"/>
|
||||
<nil key="NSToolbarItemAction"/>
|
||||
<string key="NSToolbarItemMinSize">{1, 5}</string>
|
||||
<string key="NSToolbarItemMaxSize">{20000, 32}</string>
|
||||
<bool key="NSToolbarItemEnabled">YES</bool>
|
||||
<bool key="NSToolbarItemAutovalidates">YES</bool>
|
||||
<int key="NSToolbarItemTag">-1</int>
|
||||
<bool key="NSToolbarIsUserRemovable">YES</bool>
|
||||
<int key="NSToolbarItemVisibilityPriority">0</int>
|
||||
<object class="NSMenuItem" key="NSToolbarItemMenuFormRepresentation">
|
||||
<bool key="NSIsDisabled">YES</bool>
|
||||
<bool key="NSIsSeparator">YES</bool>
|
||||
<string key="NSTitle"/>
|
||||
<string key="NSKeyEquiv"/>
|
||||
<int key="NSKeyEquivModMask">1048576</int>
|
||||
<int key="NSMnemonicLoc">2147483647</int>
|
||||
<object class="NSCustomResource" key="NSOnImage" id="181532310">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">NSMenuCheckmark</string>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="NSMixedImage" id="523583328">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">NSMenuMixedState</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSToolbarSpaceItem" key="NSToolbarSpaceItem" id="702869406">
|
||||
<string key="NSToolbarItemIdentifier">NSToolbarSpaceItem</string>
|
||||
<string key="NSToolbarItemLabel"/>
|
||||
<string key="NSToolbarItemPaletteLabel">Space</string>
|
||||
<nil key="NSToolbarItemToolTip"/>
|
||||
<nil key="NSToolbarItemView"/>
|
||||
<nil key="NSToolbarItemImage"/>
|
||||
<nil key="NSToolbarItemTarget"/>
|
||||
<nil key="NSToolbarItemAction"/>
|
||||
<string key="NSToolbarItemMinSize">{32, 5}</string>
|
||||
<string key="NSToolbarItemMaxSize">{32, 32}</string>
|
||||
<bool key="NSToolbarItemEnabled">YES</bool>
|
||||
<bool key="NSToolbarItemAutovalidates">YES</bool>
|
||||
<int key="NSToolbarItemTag">-1</int>
|
||||
<bool key="NSToolbarIsUserRemovable">YES</bool>
|
||||
<int key="NSToolbarItemVisibilityPriority">0</int>
|
||||
<object class="NSMenuItem" key="NSToolbarItemMenuFormRepresentation">
|
||||
<bool key="NSIsDisabled">YES</bool>
|
||||
<bool key="NSIsSeparator">YES</bool>
|
||||
<string key="NSTitle"/>
|
||||
<string key="NSKeyEquiv"/>
|
||||
<int key="NSKeyEquivModMask">1048576</int>
|
||||
<int key="NSMnemonicLoc">2147483647</int>
|
||||
<reference key="NSOnImage" ref="181532310"/>
|
||||
<reference key="NSMixedImage" ref="523583328"/>
|
||||
</object>
|
||||
</object>
|
||||
</dictionary>
|
||||
<array key="NSToolbarIBAllowedItems">
|
||||
<reference ref="702869406"/>
|
||||
<reference ref="57284363"/>
|
||||
</array>
|
||||
<array class="NSMutableArray" key="NSToolbarIBDefaultItems">
|
||||
<reference ref="57284363"/>
|
||||
</array>
|
||||
<array key="NSToolbarIBSelectableItems" id="0"/>
|
||||
</object>
|
||||
<nil key="NSViewClass"/>
|
||||
<nil key="NSUserInterfaceItemIdentifier"/>
|
||||
<string key="NSWindowContentMinSize">{400, 400}</string>
|
||||
<object class="NSView" key="NSWindowView" id="1006">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">256</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="NSSplitView" id="947682332">
|
||||
<reference key="NSNextResponder" ref="1006"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<int key="NSvFlags">319</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="NSCustomView" id="425088172">
|
||||
<reference key="NSNextResponder" ref="947682332"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrameSize">{151, 449}</string>
|
||||
<array class="NSMutableArray" key="NSSubviews"/>
|
||||
<string key="NSFrameSize">{256, 630}</string>
|
||||
<reference key="NSSuperview" ref="947682332"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="938782220"/>
|
||||
@@ -149,7 +66,8 @@
|
||||
<object class="NSCustomView" id="938782220">
|
||||
<reference key="NSNextResponder" ref="947682332"/>
|
||||
<int key="NSvFlags">256</int>
|
||||
<string key="NSFrame">{{152, 0}, {459, 449}}</string>
|
||||
<array class="NSMutableArray" key="NSSubviews"/>
|
||||
<string key="NSFrame">{{257, 0}, {470, 630}}</string>
|
||||
<reference key="NSSuperview" ref="947682332"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
@@ -157,7 +75,7 @@
|
||||
<string key="NSClassName">NSView</string>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{611, 449}</string>
|
||||
<string key="NSFrameSize">{727, 630}</string>
|
||||
<reference key="NSSuperview" ref="1006"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="425088172"/>
|
||||
@@ -166,12 +84,13 @@
|
||||
<int key="NSDividerStyle">2</int>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{611, 449}</string>
|
||||
<string key="NSFrameSize">{727, 630}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="947682332"/>
|
||||
</object>
|
||||
<string key="NSScreenRect">{{0, 0}, {1920, 1058}}</string>
|
||||
<string key="NSScreenRect">{{0, 0}, {2560, 1418}}</string>
|
||||
<string key="NSMinSize">{400, 422}</string>
|
||||
<string key="NSMaxSize">{10000000000000, 10000000000000}</string>
|
||||
<bool key="NSWindowIsRestorable">YES</bool>
|
||||
</object>
|
||||
@@ -186,14 +105,6 @@
|
||||
</object>
|
||||
<int key="connectionID">501</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBOutletConnection" key="connection">
|
||||
<string key="label">toolbar</string>
|
||||
<reference key="source" ref="1001"/>
|
||||
<reference key="destination" ref="279945319"/>
|
||||
</object>
|
||||
<int key="connectionID">597</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBOutletConnection" key="connection">
|
||||
<string key="label">contentView</string>
|
||||
@@ -223,7 +134,7 @@
|
||||
<array key="orderedObjects">
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">0</int>
|
||||
<reference key="object" ref="0"/>
|
||||
<array key="object" id="0"/>
|
||||
<reference key="children" ref="1000"/>
|
||||
<nil key="parent"/>
|
||||
</object>
|
||||
@@ -250,7 +161,6 @@
|
||||
<reference key="object" ref="1005"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="1006"/>
|
||||
<reference ref="279945319"/>
|
||||
</array>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
@@ -258,93 +168,10 @@
|
||||
<int key="objectID">2</int>
|
||||
<reference key="object" ref="1006"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<object class="IBNSLayoutConstraint" id="540625459">
|
||||
<reference key="firstItem" ref="947682332"/>
|
||||
<int key="firstAttribute">4</int>
|
||||
<int key="relation">0</int>
|
||||
<reference key="secondItem" ref="1006"/>
|
||||
<int key="secondAttribute">4</int>
|
||||
<float key="multiplier">1</float>
|
||||
<object class="IBLayoutConstant" key="constant">
|
||||
<double key="value">0.0</double>
|
||||
</object>
|
||||
<float key="priority">1000</float>
|
||||
<reference key="containingView" ref="1006"/>
|
||||
<int key="scoringType">8</int>
|
||||
<float key="scoringTypeFloat">29</float>
|
||||
<int key="contentType">3</int>
|
||||
</object>
|
||||
<object class="IBNSLayoutConstraint" id="678836472">
|
||||
<reference key="firstItem" ref="947682332"/>
|
||||
<int key="firstAttribute">6</int>
|
||||
<int key="relation">0</int>
|
||||
<reference key="secondItem" ref="1006"/>
|
||||
<int key="secondAttribute">6</int>
|
||||
<float key="multiplier">1</float>
|
||||
<object class="IBLayoutConstant" key="constant">
|
||||
<double key="value">0.0</double>
|
||||
</object>
|
||||
<float key="priority">1000</float>
|
||||
<reference key="containingView" ref="1006"/>
|
||||
<int key="scoringType">8</int>
|
||||
<float key="scoringTypeFloat">29</float>
|
||||
<int key="contentType">3</int>
|
||||
</object>
|
||||
<object class="IBNSLayoutConstraint" id="393506505">
|
||||
<reference key="firstItem" ref="947682332"/>
|
||||
<int key="firstAttribute">3</int>
|
||||
<int key="relation">0</int>
|
||||
<reference key="secondItem" ref="1006"/>
|
||||
<int key="secondAttribute">3</int>
|
||||
<float key="multiplier">1</float>
|
||||
<object class="IBLayoutConstant" key="constant">
|
||||
<double key="value">0.0</double>
|
||||
</object>
|
||||
<float key="priority">1000</float>
|
||||
<reference key="containingView" ref="1006"/>
|
||||
<int key="scoringType">8</int>
|
||||
<float key="scoringTypeFloat">29</float>
|
||||
<int key="contentType">3</int>
|
||||
</object>
|
||||
<object class="IBNSLayoutConstraint" id="595643757">
|
||||
<reference key="firstItem" ref="947682332"/>
|
||||
<int key="firstAttribute">5</int>
|
||||
<int key="relation">0</int>
|
||||
<reference key="secondItem" ref="1006"/>
|
||||
<int key="secondAttribute">5</int>
|
||||
<float key="multiplier">1</float>
|
||||
<object class="IBLayoutConstant" key="constant">
|
||||
<double key="value">0.0</double>
|
||||
</object>
|
||||
<float key="priority">1000</float>
|
||||
<reference key="containingView" ref="1006"/>
|
||||
<int key="scoringType">8</int>
|
||||
<float key="scoringTypeFloat">29</float>
|
||||
<int key="contentType">3</int>
|
||||
</object>
|
||||
<reference ref="947682332"/>
|
||||
</array>
|
||||
<reference key="parent" ref="1005"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">591</int>
|
||||
<reference key="object" ref="279945319"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="702869406"/>
|
||||
<reference ref="57284363"/>
|
||||
</array>
|
||||
<reference key="parent" ref="1005"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">592</int>
|
||||
<reference key="object" ref="702869406"/>
|
||||
<reference key="parent" ref="279945319"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">595</int>
|
||||
<reference key="object" ref="57284363"/>
|
||||
<reference key="parent" ref="279945319"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">603</int>
|
||||
<reference key="object" ref="947682332"/>
|
||||
@@ -355,35 +182,16 @@
|
||||
<reference key="parent" ref="1006"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">619</int>
|
||||
<reference key="object" ref="678836472"/>
|
||||
<reference key="parent" ref="1006"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">615</int>
|
||||
<reference key="object" ref="393506505"/>
|
||||
<reference key="parent" ref="1006"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">614</int>
|
||||
<reference key="object" ref="595643757"/>
|
||||
<reference key="parent" ref="1006"/>
|
||||
<int key="objectID">605</int>
|
||||
<reference key="object" ref="938782220"/>
|
||||
<array class="NSMutableArray" key="children"/>
|
||||
<reference key="parent" ref="947682332"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">628</int>
|
||||
<reference key="object" ref="425088172"/>
|
||||
<reference key="parent" ref="947682332"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">605</int>
|
||||
<reference key="object" ref="938782220"/>
|
||||
<reference key="parent" ref="947682332"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">643</int>
|
||||
<reference key="object" ref="540625459"/>
|
||||
<reference key="parent" ref="1006"/>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||
@@ -395,24 +203,10 @@
|
||||
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="1.IBWindowTemplateEditedContentRect">{{357, 418}, {480, 270}}</string>
|
||||
<integer value="1" key="1.NSWindowTemplate.visibleAtLaunch"/>
|
||||
<array class="NSMutableArray" key="2.IBNSViewMetadataConstraints">
|
||||
<reference ref="595643757"/>
|
||||
<reference ref="393506505"/>
|
||||
<reference ref="678836472"/>
|
||||
<reference ref="540625459"/>
|
||||
</array>
|
||||
<string key="2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="591.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="592.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="595.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<boolean value="NO" key="603.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
||||
<string key="603.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="605.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="614.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="615.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="619.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="628.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="643.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
||||
<nil key="activeLocalization"/>
|
||||
@@ -429,7 +223,6 @@
|
||||
<string key="contentView">NSView</string>
|
||||
<string key="outlineView">NSView</string>
|
||||
<string key="splitView">NSSplitView</string>
|
||||
<string key="toolbar">NSToolbar</string>
|
||||
<string key="welcomeView">NSView</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
@@ -445,10 +238,6 @@
|
||||
<string key="name">splitView</string>
|
||||
<string key="candidateClassName">NSSplitView</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="toolbar">
|
||||
<string key="name">toolbar</string>
|
||||
<string key="candidateClassName">NSToolbar</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="welcomeView">
|
||||
<string key="name">welcomeView</string>
|
||||
<string key="candidateClassName">NSView</string>
|
||||
@@ -459,24 +248,11 @@
|
||||
<string key="minorKey">./Classes/MPMainWindowController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSLayoutConstraint</string>
|
||||
<string key="superclassName">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/NSLayoutConstraint.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
|
||||
<string key="NSMenuCheckmark">{11, 11}</string>
|
||||
<string key="NSMenuMixedState">{10, 3}</string>
|
||||
</dictionary>
|
||||
<bool key="IBDocument.UseAutolayout">YES</bool>
|
||||
</data>
|
||||
</archive>
|
||||
|
||||
@@ -152,7 +152,7 @@
|
||||
<bytes key="NSWhite">MC41AA</bytes>
|
||||
</object>
|
||||
</object>
|
||||
<double key="NSRowHeight">17</double>
|
||||
<double key="NSRowHeight">24</double>
|
||||
<int key="NSTvFlags">-767557632</int>
|
||||
<reference key="NSDelegate"/>
|
||||
<reference key="NSDataSource"/>
|
||||
@@ -196,7 +196,6 @@
|
||||
<string key="NSFrame">{{1, 119}, {238, 15}}</string>
|
||||
<reference key="NSSuperview" ref="946871415"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:60</string>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
<int key="NSsFlags">1</int>
|
||||
@@ -760,27 +759,24 @@
|
||||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">188</int>
|
||||
<int key="maxID">194</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">MPOutlineViewController</string>
|
||||
<string key="superclassName">MPViewController</string>
|
||||
<dictionary class="NSMutableDictionary" key="outlets">
|
||||
<string key="itemMenu">NSMenu</string>
|
||||
<string key="outlineView">NSOutlineView</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<object class="IBToOneOutletInfo" key="itemMenu">
|
||||
<string key="name">itemMenu</string>
|
||||
<string key="candidateClassName">NSMenu</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="outlineView">
|
||||
<object class="NSMutableDictionary" key="outlets">
|
||||
<string key="NS.key.0">outlineView</string>
|
||||
<string key="NS.object.0">NSOutlineView</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<string key="NS.key.0">outlineView</string>
|
||||
<object class="IBToOneOutletInfo" key="NS.object.0">
|
||||
<string key="name">outlineView</string>
|
||||
<string key="candidateClassName">NSOutlineView</string>
|
||||
</object>
|
||||
</dictionary>
|
||||
</object>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/MPOutlineViewController.h</string>
|
||||
|
||||
@@ -1,29 +1,24 @@
|
||||
{\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;}
|
||||
{\colortbl;\red255\green255\blue255;}
|
||||
\paperw9840\paperh8400
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
|
||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
||||
{\colortbl;\red255\green255\blue255;\red52\green110\blue183;\red38\green38\blue38;}
|
||||
\paperw11900\paperh16840\vieww15320\viewh13520\viewkind0
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
|
||||
|
||||
\f0\b\fs24 \cf0 Engineering:
|
||||
\f0\b\fs24 \cf0 Project Website:\
|
||||
{\field{\*\fldinst{HYPERLINK "https://github.com/mstarke/MacPass"}}{\fldrslt
|
||||
\b0 MacPass}}
|
||||
\b0 \
|
||||
Some people\
|
||||
\
|
||||
|
||||
\b Human Interface Design:
|
||||
\b0 \
|
||||
Some other people\
|
||||
\
|
||||
|
||||
\b Testing:
|
||||
\b0 \
|
||||
Hopefully not nobody\
|
||||
\
|
||||
|
||||
\b Documentation:
|
||||
\b0 \
|
||||
Whoever\
|
||||
\
|
||||
|
||||
\b With special thanks to:
|
||||
\b0 \
|
||||
Mom\
|
||||
}
|
||||
\b \
|
||||
Credits:\
|
||||
{\field{\*\fldinst{HYPERLINK "https://github.com/robbiehanson/KissXML"}}{\fldrslt
|
||||
\b0 \cf2 KissXML}}
|
||||
\b0 \cf3 \
|
||||
by Robbie Hanson\
|
||||
\
|
||||
{\field{\*\fldinst{HYPERLINK "https://github.com/MiniKeePass/MiniKeePass"}}{\fldrslt \cf2 MiniKeePass}}\
|
||||
by Jason Rush and John Flanagan\
|
||||
\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
|
||||
\cf2 {\field{\*\fldinst{HYPERLINK "https://github.com/mpowrie/KeePassLib"}}{\fldrslt KeePass Database Library}}\cf3 \
|
||||
by Qiang Yu}
|
||||
@@ -2,18 +2,18 @@
|
||||
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1070</int>
|
||||
<string key="IBDocument.SystemVersion">11E53</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">2182</string>
|
||||
<string key="IBDocument.AppKitVersion">1138.47</string>
|
||||
<string key="IBDocument.HIToolboxVersion">569.00</string>
|
||||
<string key="IBDocument.SystemVersion">12C60</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">3084</string>
|
||||
<string key="IBDocument.AppKitVersion">1187.34</string>
|
||||
<string key="IBDocument.HIToolboxVersion">625.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="NS.object.0">2182</string>
|
||||
<string key="NS.object.0">3084</string>
|
||||
</object>
|
||||
<array key="IBDocument.IntegratedClassDependencies">
|
||||
<string>NSCustomObject</string>
|
||||
<string>NSMenu</string>
|
||||
<string>NSMenuItem</string>
|
||||
<string>NSCustomObject</string>
|
||||
</array>
|
||||
<array key="IBDocument.PluginDependencies">
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
|
||||
Reference in New Issue
Block a user