6 Commits

Author SHA1 Message Date
michael starke
627d48a74e bumped version 2016-02-22 10:59:05 +01:00
michael starke
0aea2629a0 Merge branch 'fix_broken_keyfile_remembering' 2016-02-22 10:57:00 +01:00
michael starke
dee07d1ecd fixed #426 2016-02-22 10:56:23 +01:00
michael starke
c509dbff99 Removed bottom bar below enty tabel 2016-02-17 17:23:29 +01:00
michael starke
6c22e90860 removed bottom bar in outline view 2016-02-17 15:24:34 +01:00
michael starke
142e020492 Added KeeWeb to Readme 2016-02-16 18:32:49 +01:00
9 changed files with 51 additions and 124 deletions

View File

@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="9531" systemVersion="15C50" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES"> <document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="9532" systemVersion="15D21" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<dependencies> <dependencies>
<deployment identifier="macosx"/> <deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9531"/> <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9532"/>
<capability name="box content view" minToolsVersion="7.0"/> <capability name="box content view" minToolsVersion="7.0"/>
</dependencies> </dependencies>
<objects> <objects>

View File

@@ -7,10 +7,7 @@
<objects> <objects>
<customObject id="-2" userLabel="File's Owner" customClass="MPEntryViewController"> <customObject id="-2" userLabel="File's Owner" customClass="MPEntryViewController">
<connections> <connections>
<outlet property="addEntryButton" destination="732" id="745"/>
<outlet property="bottomBar" destination="690" id="744"/>
<outlet property="entryTable" destination="55" id="111"/> <outlet property="entryTable" destination="55" id="111"/>
<outlet property="footerInfoText" destination="uCV-75-BFs" id="Qb3-SD-vFM"/>
<outlet property="tableToTopConstraint" destination="683" id="844"/> <outlet property="tableToTopConstraint" destination="683" id="844"/>
<outlet property="view" destination="336" id="395"/> <outlet property="view" destination="336" id="395"/>
</connections> </connections>
@@ -21,13 +18,13 @@
<rect key="frame" x="0.0" y="0.0" width="694" height="594"/> <rect key="frame" x="0.0" y="0.0" width="694" height="594"/>
<subviews> <subviews>
<scrollView focusRingType="none" borderType="none" autohidesScrollers="YES" horizontalLineScroll="19" horizontalPageScroll="10" verticalLineScroll="19" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="54"> <scrollView focusRingType="none" borderType="none" autohidesScrollers="YES" horizontalLineScroll="19" horizontalPageScroll="10" verticalLineScroll="19" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="54">
<rect key="frame" x="0.0" y="30" width="694" height="565"/> <rect key="frame" x="0.0" y="0.0" width="694" height="595"/>
<clipView key="contentView" id="4tt-2K-SPF"> <clipView key="contentView" id="4tt-2K-SPF">
<rect key="frame" x="0.0" y="0.0" width="694" height="565"/> <rect key="frame" x="0.0" y="0.0" width="694" height="595"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews> <subviews>
<tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" alternatingRowBackgroundColors="YES" multipleSelection="NO" rowSizeStyle="automatic" headerView="676" viewBased="YES" id="55" customClass="MPTableView"> <tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" alternatingRowBackgroundColors="YES" multipleSelection="NO" rowSizeStyle="automatic" headerView="676" viewBased="YES" id="55" customClass="MPTableView">
<rect key="frame" x="0.0" y="0.0" width="695" height="542"/> <rect key="frame" x="0.0" y="0.0" width="694" height="572"/>
<autoresizingMask key="autoresizingMask"/> <autoresizingMask key="autoresizingMask"/>
<size key="intercellSpacing" width="3" height="2"/> <size key="intercellSpacing" width="3" height="2"/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/> <color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
@@ -50,8 +47,8 @@
<rect key="frame" x="1" y="1" width="105" height="17"/> <rect key="frame" x="1" y="1" width="105" height="17"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews> <subviews>
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="270"> <textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="270">
<rect key="frame" x="1" y="0.0" width="102" height="17"/> <rect key="frame" x="1" y="0.0" width="103" height="17"/>
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="271"> <textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="271">
<font key="font" metaFont="system"/> <font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/> <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@@ -136,8 +133,8 @@
<rect key="frame" x="256" y="1" width="119" height="17"/> <rect key="frame" x="256" y="1" width="119" height="17"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews> <subviews>
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="429" customClass="NSSecureTextField"> <textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="429" customClass="NSSecureTextField">
<rect key="frame" x="1" y="0.0" width="116" height="17"/> <rect key="frame" x="1" y="0.0" width="117" height="17"/>
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="430"> <textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="430">
<font key="font" metaFont="system"/> <font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/> <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@@ -193,7 +190,7 @@
</tableCellView> </tableCellView>
</prototypeCellViews> </prototypeCellViews>
</tableColumn> </tableColumn>
<tableColumn width="199" minWidth="10" maxWidth="3.4028234663852886e+38" id="614"> <tableColumn width="198" minWidth="10" maxWidth="3.4028234663852886e+38" id="614">
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left"> <tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left">
<font key="font" metaFont="smallSystem"/> <font key="font" metaFont="smallSystem"/>
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/> <color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
@@ -207,10 +204,10 @@
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/> <tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
<prototypeCellViews> <prototypeCellViews>
<tableCellView id="616"> <tableCellView id="616">
<rect key="frame" x="494" y="1" width="199" height="17"/> <rect key="frame" x="494" y="1" width="198" height="17"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews> <subviews>
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="617"> <textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="617">
<rect key="frame" x="1" y="0.0" width="196" height="17"/> <rect key="frame" x="1" y="0.0" width="196" height="17"/>
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="618"> <textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="618">
<font key="font" metaFont="system"/> <font key="font" metaFont="system"/>
@@ -235,7 +232,7 @@
</subviews> </subviews>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/> <color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
</clipView> </clipView>
<scroller key="horizontalScroller" verticalHuggingPriority="750" horizontal="YES" id="56"> <scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="56">
<rect key="frame" x="0.0" y="549" width="694" height="16"/> <rect key="frame" x="0.0" y="549" width="694" height="16"/>
<autoresizingMask key="autoresizingMask"/> <autoresizingMask key="autoresizingMask"/>
</scroller> </scroller>
@@ -244,54 +241,21 @@
<autoresizingMask key="autoresizingMask"/> <autoresizingMask key="autoresizingMask"/>
</scroller> </scroller>
<tableHeaderView key="headerView" id="676"> <tableHeaderView key="headerView" id="676">
<rect key="frame" x="0.0" y="0.0" width="695" height="23"/> <rect key="frame" x="0.0" y="0.0" width="694" height="23"/>
<autoresizingMask key="autoresizingMask"/> <autoresizingMask key="autoresizingMask"/>
</tableHeaderView> </tableHeaderView>
</scrollView> </scrollView>
<customView translatesAutoresizingMaskIntoConstraints="NO" id="690" customClass="HNHUIGradientView">
<rect key="frame" x="0.0" y="0.0" width="694" height="30"/>
<subviews>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="732">
<rect key="frame" x="7" y="5" width="32" height="19"/>
<constraints>
<constraint firstAttribute="width" constant="32" id="743"/>
</constraints>
<buttonCell key="cell" type="roundRect" title="Round Rect Button" bezelStyle="roundedRect" image="NSAddTemplate" imagePosition="only" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="733">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="cellTitle"/>
</buttonCell>
</button>
<textField hidden="YES" horizontalHuggingPriority="251" verticalHuggingPriority="750" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="uCV-75-BFs">
<rect key="frame" x="324" y="8" width="46" height="14"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="infotext" id="GLC-co-PAD">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
</subviews>
<constraints>
<constraint firstAttribute="height" constant="30" id="697"/>
<constraint firstItem="732" firstAttribute="leading" secondItem="690" secondAttribute="leading" constant="7" id="741"/>
<constraint firstItem="732" firstAttribute="centerY" secondItem="690" secondAttribute="centerY" id="878"/>
<constraint firstAttribute="centerX" secondItem="uCV-75-BFs" secondAttribute="centerX" id="bRK-AN-dLs"/>
<constraint firstAttribute="centerY" secondItem="uCV-75-BFs" secondAttribute="centerY" id="sH1-mf-Ryt"/>
</constraints>
</customView>
</subviews> </subviews>
<constraints> <constraints>
<constraint firstItem="54" firstAttribute="leading" secondItem="336" secondAttribute="leading" id="346"/> <constraint firstItem="54" firstAttribute="leading" secondItem="336" secondAttribute="leading" id="346"/>
<constraint firstItem="54" firstAttribute="trailing" secondItem="336" secondAttribute="trailing" id="348"/> <constraint firstItem="54" firstAttribute="trailing" secondItem="336" secondAttribute="trailing" id="348"/>
<constraint firstItem="54" firstAttribute="top" secondItem="336" secondAttribute="top" constant="-1" id="683"/> <constraint firstItem="54" firstAttribute="top" secondItem="336" secondAttribute="top" constant="-1" id="683"/>
<constraint firstItem="690" firstAttribute="leading" secondItem="336" secondAttribute="leading" id="694"/> <constraint firstAttribute="bottom" secondItem="54" secondAttribute="bottom" id="vfw-Ff-Ip8"/>
<constraint firstItem="690" firstAttribute="trailing" secondItem="336" secondAttribute="trailing" id="695"/>
<constraint firstItem="690" firstAttribute="top" secondItem="54" secondAttribute="bottom" id="705"/>
<constraint firstAttribute="bottom" secondItem="690" secondAttribute="bottom" id="708"/>
</constraints> </constraints>
<point key="canvasLocation" x="256" y="530"/>
</customView> </customView>
</objects> </objects>
<resources> <resources>
<image name="NSActionTemplate" width="14" height="14"/> <image name="NSActionTemplate" width="14" height="14"/>
<image name="NSAddTemplate" width="11" height="11"/>
</resources> </resources>
</document> </document>

View File

@@ -75,11 +75,6 @@ NSString *const _MPTableSecurCellView = @"PasswordCell";
@property (strong) IBOutlet NSLayoutConstraint *tableToTopConstraint; @property (strong) IBOutlet NSLayoutConstraint *tableToTopConstraint;
@property (strong) NSLayoutConstraint *contextBarTopConstraint; @property (strong) NSLayoutConstraint *contextBarTopConstraint;
@property (weak) IBOutlet HNHUIGradientView *bottomBar;
@property (weak) IBOutlet NSButton *addEntryButton;
@property (weak) IBOutlet NSTextField *footerInfoText;
@property (nonatomic, strong) MPEntryTableDataSource *dataSource; @property (nonatomic, strong) MPEntryTableDataSource *dataSource;
@end @end
@@ -110,10 +105,8 @@ NSString *const _MPTableSecurCellView = @"PasswordCell";
} }
- (void)didLoadView { - (void)didLoadView {
[[self view] setWantsLayer:YES];
[_bottomBar setBorderType:HNHBorderTop|HNHBorderHighlight]; [self.view setWantsLayer:YES];
[self.addEntryButton setAction:[MPActionHelper actionOfType:MPActionAddEntry]];
self.entryTable.delegate = self; self.entryTable.delegate = self;
self.entryTable.doubleAction = @selector(_columnDoubleClick:); self.entryTable.doubleAction = @selector(_columnDoubleClick:);
@@ -465,8 +458,10 @@ NSString *const _MPTableSecurCellView = @"PasswordCell";
MPDocument *document = [[self windowController] document]; MPDocument *document = [[self windowController] document];
/* If the document was locked and unlocked we do not need to recheck */ /* If the document was locked and unlocked we do not need to recheck */
if(document.unlockCount != 1) { if(document.unlockCount != 1) {
/* TODO add another method to display this!
[self.footerInfoText setHidden:![document hasMalformedAutotypeItems]]; [self.footerInfoText setHidden:![document hasMalformedAutotypeItems]];
[self.footerInfoText setStringValue:NSLocalizedString(@"DOCUMENT_AUTOTYPE_CORRUPTION_WARNING", "")]; [self.footerInfoText setStringValue:NSLocalizedString(@"DOCUMENT_AUTOTYPE_CORRUPTION_WARNING", "")];
*/
} }
} }

View File

@@ -16,9 +16,6 @@ APPKIT_EXTERN NSString *const MPOutlineViewDidChangeGroupSelection;
@interface MPOutlineViewController : MPViewController <MPTargetNodeResolving, NSOutlineViewDelegate, NSMenuDelegate> @interface MPOutlineViewController : MPViewController <MPTargetNodeResolving, NSOutlineViewDelegate, NSMenuDelegate>
@property (weak) IBOutlet HNHUIGradientView *bottomBar;
- (void)clearSelection; - (void)clearSelection;
- (void)showOutline; - (void)showOutline;
- (void)regsiterNotificationsForDocument:(MPDocument *)document; - (void)regsiterNotificationsForDocument:(MPDocument *)document;

View File

@@ -35,7 +35,6 @@ NSString *const _MPOutlinveViewHeaderViewIdentifier = @"HeaderCell";
} }
@property (weak) IBOutlet NSOutlineView *outlineView; @property (weak) IBOutlet NSOutlineView *outlineView;
@property (weak) IBOutlet NSButton *addGroupButton;
@property (strong) NSTreeController *treeController; @property (strong) NSTreeController *treeController;
@property (strong) MPOutlineDataSource *datasource; @property (strong) MPOutlineDataSource *datasource;
@@ -79,8 +78,6 @@ NSString *const _MPOutlinveViewHeaderViewIdentifier = @"HeaderCell";
[self.outlineView registerForDraggedTypes:@[ KPKGroupUTI, KPKEntryUTI ]]; [self.outlineView registerForDraggedTypes:@[ KPKGroupUTI, KPKEntryUTI ]];
[self.outlineView setDraggingSourceOperationMask:NSDragOperationEvery forLocal:YES]; [self.outlineView setDraggingSourceOperationMask:NSDragOperationEvery forLocal:YES];
[self.outlineView setDoubleAction:@selector(_doubleClickedGroup:)]; [self.outlineView setDoubleAction:@selector(_doubleClickedGroup:)];
[self.bottomBar setBorderType:HNHBorderTop|HNHBorderHighlight];
[self.addGroupButton setAction:[MPActionHelper actionOfType:MPActionAddGroup]];
[[NSNotificationCenter defaultCenter] addObserver:self [[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(_didBecomeFirstResponder:) selector:@selector(_didBecomeFirstResponder:)

View File

@@ -205,18 +205,30 @@ NSString *const kMPDeprecatedSettingsKeyShowMenuItem = @"Sh
Database file paths was stored as plain text in keyfile mapping. Database file paths was stored as plain text in keyfile mapping.
We only need to store the key file ulr in plain text, thus hashing the path is sufficent We only need to store the key file ulr in plain text, thus hashing the path is sufficent
*/ */
NSDictionary<NSString *, NSString *> *plainTextDict = [[NSUserDefaults standardUserDefaults] dictionaryForKey:kMPSettingsKeyRememeberdKeysForDatabases]; NSDictionary<NSString *, NSString *> *currentMapping = [[NSUserDefaults standardUserDefaults] dictionaryForKey:kMPSettingsKeyRememeberdKeysForDatabases];
if(!plainTextDict) { if(!currentMapping) {
return; return;
} }
NSMutableDictionary *hashedDict = [[NSMutableDictionary alloc] initWithCapacity:plainTextDict.count]; NSMutableDictionary *hashedDict = [[NSMutableDictionary alloc] initWithCapacity:MAX(1,currentMapping.count)];
for(NSString *key in plainTextDict) { BOOL didHash = NO;
NSString *digest = key.sha1HexDigest; for(NSString *key in currentMapping) {
if(digest) { NSURL *fileURL = [NSURL URLWithString:key];
hashedDict[key.sha1HexDigest] = plainTextDict[key]; /* Only hash file paths */
if(fileURL.isFileURL) {
NSString *digest = key.sha1HexDigest;
if(digest) {
hashedDict[key.sha1HexDigest] = currentMapping[key];
didHash = YES;
}
}
/* keep all hasehd or unknown data */
else {
hashedDict[key] = currentMapping[key];
} }
} }
[[NSUserDefaults standardUserDefaults] setObject:hashedDict forKey:kMPSettingsKeyRememeberdKeysForDatabases]; if(didHash) {
[[NSUserDefaults standardUserDefaults] setObject:hashedDict forKey:kMPSettingsKeyRememeberdKeysForDatabases];
}
} }
@end @end

View File

@@ -58,7 +58,7 @@
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>APPL</string> <string>APPL</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>0.6.1</string> <string>0.6.2</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <string>????</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>

View File

@@ -1,14 +1,12 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="9059" systemVersion="15B42" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES"> <document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="9532" systemVersion="15D21" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<dependencies> <dependencies>
<deployment identifier="macosx"/> <deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9059"/> <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9532"/>
</dependencies> </dependencies>
<objects> <objects>
<customObject id="-2" userLabel="File's Owner" customClass="MPOutlineViewController"> <customObject id="-2" userLabel="File's Owner" customClass="MPOutlineViewController">
<connections> <connections>
<outlet property="addGroupButton" destination="425" id="434"/>
<outlet property="bottomBar" destination="394" id="433"/>
<outlet property="outlineView" destination="228" id="271"/> <outlet property="outlineView" destination="228" id="271"/>
<outlet property="view" destination="196" id="273"/> <outlet property="view" destination="196" id="273"/>
</connections> </connections>
@@ -19,15 +17,14 @@
<rect key="frame" x="0.0" y="0.0" width="272" height="449"/> <rect key="frame" x="0.0" y="0.0" width="272" height="449"/>
<subviews> <subviews>
<scrollView borderType="none" autohidesScrollers="YES" horizontalLineScroll="24" horizontalPageScroll="10" verticalLineScroll="24" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="227"> <scrollView borderType="none" autohidesScrollers="YES" horizontalLineScroll="24" horizontalPageScroll="10" verticalLineScroll="24" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="227">
<rect key="frame" x="0.0" y="30" width="272" height="419"/> <rect key="frame" x="0.0" y="0.0" width="272" height="449"/>
<clipView key="contentView" drawsBackground="NO" id="WAU-Bu-ack"> <clipView key="contentView" drawsBackground="NO" id="WAU-Bu-ack">
<rect key="frame" x="0.0" y="0.0" width="272" height="419"/> <rect key="frame" x="0.0" y="0.0" width="272" height="449"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews> <subviews>
<outlineView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" selectionHighlightStyle="sourceList" multipleSelection="NO" autosaveColumns="NO" rowHeight="24" rowSizeStyle="automatic" viewBased="YES" indentationPerLevel="16" outlineTableColumn="231" id="228" customClass="MPOutlineView"> <outlineView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" selectionHighlightStyle="sourceList" multipleSelection="NO" autosaveColumns="NO" rowHeight="24" rowSizeStyle="automatic" viewBased="YES" indentationPerLevel="16" outlineTableColumn="231" id="228" customClass="MPOutlineView">
<rect key="frame" x="0.0" y="0.0" width="272" height="0.0"/> <rect key="frame" x="0.0" y="0.0" width="272" height="449"/>
<autoresizingMask key="autoresizingMask"/> <autoresizingMask key="autoresizingMask"/>
<animations/>
<size key="intercellSpacing" width="3" height="0.0"/> <size key="intercellSpacing" width="3" height="0.0"/>
<color key="backgroundColor" name="_sourceListBackgroundColor" catalog="System" colorSpace="catalog"/> <color key="backgroundColor" name="_sourceListBackgroundColor" catalog="System" colorSpace="catalog"/>
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/> <color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
@@ -51,7 +48,6 @@
<subviews> <subviews>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="238"> <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="238">
<rect key="frame" x="1" y="1" width="267" height="14"/> <rect key="frame" x="1" y="1" width="267" height="14"/>
<animations/>
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="HEADER CELL" id="239"> <textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="HEADER CELL" id="239">
<font key="font" metaFont="smallSystemBold"/> <font key="font" metaFont="smallSystemBold"/>
<color key="textColor" red="0.43921568630000002" green="0.4941176471" blue="0.54901960780000003" alpha="1" colorSpace="calibratedRGB"/> <color key="textColor" red="0.43921568630000002" green="0.4941176471" blue="0.54901960780000003" alpha="1" colorSpace="calibratedRGB"/>
@@ -64,7 +60,6 @@
<constraint firstAttribute="trailing" secondItem="238" secondAttribute="trailing" constant="3" id="253"/> <constraint firstAttribute="trailing" secondItem="238" secondAttribute="trailing" constant="3" id="253"/>
<constraint firstItem="238" firstAttribute="centerY" secondItem="237" secondAttribute="centerY" id="254"/> <constraint firstItem="238" firstAttribute="centerY" secondItem="237" secondAttribute="centerY" id="254"/>
</constraints> </constraints>
<animations/>
<connections> <connections>
<outlet property="textField" destination="238" id="245"/> <outlet property="textField" destination="238" id="245"/>
</connections> </connections>
@@ -79,12 +74,10 @@
<constraint firstAttribute="width" constant="17" id="385"/> <constraint firstAttribute="width" constant="17" id="385"/>
<constraint firstAttribute="height" constant="17" id="bah-Ng-60T"/> <constraint firstAttribute="height" constant="17" id="bah-Ng-60T"/>
</constraints> </constraints>
<animations/>
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="NSActionTemplate" id="242"/> <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="NSActionTemplate" id="242"/>
</imageView> </imageView>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="243" customClass="HNHUIBadgedTextField"> <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="243" customClass="HNHUIBadgedTextField">
<rect key="frame" x="26" y="4" width="242" height="17"/> <rect key="frame" x="26" y="4" width="242" height="17"/>
<animations/>
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="244" customClass="HNHUIBadgedTextFieldCell"> <textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="244" customClass="HNHUIBadgedTextFieldCell">
<font key="font" metaFont="system"/> <font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/> <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@@ -100,7 +93,6 @@
<constraint firstItem="243" firstAttribute="bottom" secondItem="241" secondAttribute="bottom" id="388"/> <constraint firstItem="243" firstAttribute="bottom" secondItem="241" secondAttribute="bottom" id="388"/>
<constraint firstAttribute="trailing" secondItem="243" secondAttribute="trailing" constant="3" id="389"/> <constraint firstAttribute="trailing" secondItem="243" secondAttribute="trailing" constant="3" id="389"/>
</constraints> </constraints>
<animations/>
<connections> <connections>
<outlet property="imageView" destination="241" id="247"/> <outlet property="imageView" destination="241" id="247"/>
<outlet property="textField" destination="243" id="246"/> <outlet property="textField" destination="243" id="246"/>
@@ -111,58 +103,27 @@
</tableColumns> </tableColumns>
</outlineView> </outlineView>
</subviews> </subviews>
<animations/>
<nil key="backgroundColor"/> <nil key="backgroundColor"/>
</clipView> </clipView>
<animations/>
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="229"> <scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="229">
<rect key="frame" x="1" y="119" width="238" height="15"/> <rect key="frame" x="1" y="119" width="238" height="15"/>
<autoresizingMask key="autoresizingMask"/> <autoresizingMask key="autoresizingMask"/>
<animations/>
</scroller> </scroller>
<scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="NO" id="230"> <scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="NO" id="230">
<rect key="frame" x="224" y="17" width="15" height="102"/> <rect key="frame" x="224" y="17" width="15" height="102"/>
<autoresizingMask key="autoresizingMask"/> <autoresizingMask key="autoresizingMask"/>
<animations/>
</scroller> </scroller>
</scrollView> </scrollView>
<customView translatesAutoresizingMaskIntoConstraints="NO" id="394" customClass="HNHUIGradientView">
<rect key="frame" x="0.0" y="0.0" width="272" height="30"/>
<subviews>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="425">
<rect key="frame" x="7" y="5" width="32" height="19"/>
<constraints>
<constraint firstAttribute="width" constant="32" id="432"/>
</constraints>
<animations/>
<buttonCell key="cell" type="roundRect" bezelStyle="roundedRect" image="NSAddTemplate" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="426">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="cellTitle"/>
</buttonCell>
</button>
</subviews>
<constraints>
<constraint firstAttribute="height" constant="30" id="402"/>
<constraint firstItem="425" firstAttribute="centerY" secondItem="394" secondAttribute="centerY" id="428"/>
<constraint firstItem="425" firstAttribute="leading" secondItem="394" secondAttribute="leading" constant="7" id="429"/>
</constraints>
<animations/>
</customView>
</subviews> </subviews>
<constraints> <constraints>
<constraint firstItem="227" firstAttribute="leading" secondItem="196" secondAttribute="leading" id="263"/> <constraint firstItem="227" firstAttribute="leading" secondItem="196" secondAttribute="leading" id="263"/>
<constraint firstItem="227" firstAttribute="top" secondItem="196" secondAttribute="top" id="267"/> <constraint firstItem="227" firstAttribute="top" secondItem="196" secondAttribute="top" id="267"/>
<constraint firstItem="227" firstAttribute="trailing" secondItem="196" secondAttribute="trailing" id="269"/> <constraint firstItem="227" firstAttribute="trailing" secondItem="196" secondAttribute="trailing" id="269"/>
<constraint firstItem="394" firstAttribute="leading" secondItem="196" secondAttribute="leading" id="397"/> <constraint firstAttribute="bottom" secondItem="227" secondAttribute="bottom" id="NQ5-NK-jdK"/>
<constraint firstItem="394" firstAttribute="trailing" secondItem="196" secondAttribute="trailing" id="400"/>
<constraint firstItem="394" firstAttribute="bottom" secondItem="196" secondAttribute="bottom" id="408"/>
<constraint firstItem="394" firstAttribute="top" secondItem="227" secondAttribute="bottom" id="409"/>
</constraints> </constraints>
<animations/>
</customView> </customView>
</objects> </objects>
<resources> <resources>
<image name="NSActionTemplate" width="14" height="14"/> <image name="NSActionTemplate" width="14" height="14"/>
<image name="NSAddTemplate" width="11" height="11"/>
</resources> </resources>
</document> </document>

View File

@@ -63,11 +63,12 @@ More Screenshots in the [Wiki](https://github.com/mstarke/MacPass/wiki/Screensho
##Alternatives ##Alternatives
[KeePassX](http://www.keepassx.org) is a Qt based KeePass port. The stable 0.4.3 release only supports the version 1 format. The Beta can read database version 1 and 2 and write version 2 containers rather nicely. [KeePassX](http://www.keepassx.org) is a Qt based KeePass port. It's in active development and open source. It fully supports all KDBX features and can import KDB into a KDBX file but is unable to safe as KDB. There's an older release just that handles only KDB files.
It's in active development and open source. The Beta fully supports all database 2 features and should be stable enough for daily usage. It can import version 1 into a version 2 file but is unable to natively write version 1 files.
[KyPass Companion](http://www.kyuran.be/logiciels/kypass4mac/) is a native Cocoa port and offers KeePassHttp compatiblity. [KyPass Companion](http://www.kyuran.be/logiciels/kypass4mac/) is a native Cocoa port and offers KeePassHttp compatiblity.
Should be able to read and write database version 1 and 2. It is closed source and currently available in the Mac App Store. It's rather expensive considering the bugs and missing features. Based on the user reviews it should work. Not all version 2 features are supported. It is unable to convert between database versions. Should be able to read and write KDB and KDBX files. It is closed source and currently available in the Mac App Store. It's rather expensive considering the bugs and missing features. Based on the user reviews it should work. Not all KDBX features are supported. It is unable to convert between database versions.
[KeeWeb](https://keeweb.info) is a cross plattform web client in active development based on [electron](http://electron.atom.io) and thus also is available as an offline version for all mayor plattforms. The project is open source. It supports all features of KDBX files but has no KDB support. Because of the technology it's look is customizeable, but the native one is quite pretty.
##License ##License