mirror of
https://github.com/MacPass/MacPass.git
synced 2026-01-30 13:18:18 +00:00
Compare commits
6 Commits
0.6.1-alph
...
0.6.2-alph
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
627d48a74e | ||
|
|
0aea2629a0 | ||
|
|
dee07d1ecd | ||
|
|
c509dbff99 | ||
|
|
6c22e90860 | ||
|
|
142e020492 |
@@ -1,8 +1,8 @@
|
||||
<?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>
|
||||
<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"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
|
||||
@@ -7,10 +7,7 @@
|
||||
<objects>
|
||||
<customObject id="-2" userLabel="File's Owner" customClass="MPEntryViewController">
|
||||
<connections>
|
||||
<outlet property="addEntryButton" destination="732" id="745"/>
|
||||
<outlet property="bottomBar" destination="690" id="744"/>
|
||||
<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="view" destination="336" id="395"/>
|
||||
</connections>
|
||||
@@ -21,13 +18,13 @@
|
||||
<rect key="frame" x="0.0" y="0.0" width="694" height="594"/>
|
||||
<subviews>
|
||||
<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">
|
||||
<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"/>
|
||||
<subviews>
|
||||
<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"/>
|
||||
<size key="intercellSpacing" width="3" height="2"/>
|
||||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
@@ -50,8 +47,8 @@
|
||||
<rect key="frame" x="1" y="1" width="105" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="270">
|
||||
<rect key="frame" x="1" y="0.0" width="102" height="17"/>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="270">
|
||||
<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">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
@@ -136,8 +133,8 @@
|
||||
<rect key="frame" x="256" y="1" width="119" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="429" customClass="NSSecureTextField">
|
||||
<rect key="frame" x="1" y="0.0" width="116" height="17"/>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="429" customClass="NSSecureTextField">
|
||||
<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">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
@@ -193,7 +190,7 @@
|
||||
</tableCellView>
|
||||
</prototypeCellViews>
|
||||
</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">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
@@ -207,10 +204,10 @@
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<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"/>
|
||||
<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"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="618">
|
||||
<font key="font" metaFont="system"/>
|
||||
@@ -235,7 +232,7 @@
|
||||
</subviews>
|
||||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</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"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
@@ -244,54 +241,21 @@
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
<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"/>
|
||||
</tableHeaderView>
|
||||
</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>
|
||||
<constraints>
|
||||
<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="top" secondItem="336" secondAttribute="top" constant="-1" id="683"/>
|
||||
<constraint firstItem="690" firstAttribute="leading" secondItem="336" secondAttribute="leading" id="694"/>
|
||||
<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"/>
|
||||
<constraint firstAttribute="bottom" secondItem="54" secondAttribute="bottom" id="vfw-Ff-Ip8"/>
|
||||
</constraints>
|
||||
<point key="canvasLocation" x="256" y="530"/>
|
||||
</customView>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="NSActionTemplate" width="14" height="14"/>
|
||||
<image name="NSAddTemplate" width="11" height="11"/>
|
||||
</resources>
|
||||
</document>
|
||||
|
||||
@@ -75,11 +75,6 @@ NSString *const _MPTableSecurCellView = @"PasswordCell";
|
||||
@property (strong) IBOutlet NSLayoutConstraint *tableToTopConstraint;
|
||||
@property (strong) NSLayoutConstraint *contextBarTopConstraint;
|
||||
|
||||
@property (weak) IBOutlet HNHUIGradientView *bottomBar;
|
||||
@property (weak) IBOutlet NSButton *addEntryButton;
|
||||
|
||||
@property (weak) IBOutlet NSTextField *footerInfoText;
|
||||
|
||||
@property (nonatomic, strong) MPEntryTableDataSource *dataSource;
|
||||
|
||||
@end
|
||||
@@ -110,10 +105,8 @@ NSString *const _MPTableSecurCellView = @"PasswordCell";
|
||||
}
|
||||
|
||||
- (void)didLoadView {
|
||||
[[self view] setWantsLayer:YES];
|
||||
|
||||
[_bottomBar setBorderType:HNHBorderTop|HNHBorderHighlight];
|
||||
[self.addEntryButton setAction:[MPActionHelper actionOfType:MPActionAddEntry]];
|
||||
[self.view setWantsLayer:YES];
|
||||
|
||||
self.entryTable.delegate = self;
|
||||
self.entryTable.doubleAction = @selector(_columnDoubleClick:);
|
||||
@@ -465,8 +458,10 @@ NSString *const _MPTableSecurCellView = @"PasswordCell";
|
||||
MPDocument *document = [[self windowController] document];
|
||||
/* If the document was locked and unlocked we do not need to recheck */
|
||||
if(document.unlockCount != 1) {
|
||||
/* TODO add another method to display this!
|
||||
[self.footerInfoText setHidden:![document hasMalformedAutotypeItems]];
|
||||
[self.footerInfoText setStringValue:NSLocalizedString(@"DOCUMENT_AUTOTYPE_CORRUPTION_WARNING", "")];
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,9 +16,6 @@ APPKIT_EXTERN NSString *const MPOutlineViewDidChangeGroupSelection;
|
||||
|
||||
@interface MPOutlineViewController : MPViewController <MPTargetNodeResolving, NSOutlineViewDelegate, NSMenuDelegate>
|
||||
|
||||
|
||||
@property (weak) IBOutlet HNHUIGradientView *bottomBar;
|
||||
|
||||
- (void)clearSelection;
|
||||
- (void)showOutline;
|
||||
- (void)regsiterNotificationsForDocument:(MPDocument *)document;
|
||||
|
||||
@@ -35,7 +35,6 @@ NSString *const _MPOutlinveViewHeaderViewIdentifier = @"HeaderCell";
|
||||
|
||||
}
|
||||
@property (weak) IBOutlet NSOutlineView *outlineView;
|
||||
@property (weak) IBOutlet NSButton *addGroupButton;
|
||||
|
||||
@property (strong) NSTreeController *treeController;
|
||||
@property (strong) MPOutlineDataSource *datasource;
|
||||
@@ -79,9 +78,7 @@ NSString *const _MPOutlinveViewHeaderViewIdentifier = @"HeaderCell";
|
||||
[self.outlineView registerForDraggedTypes:@[ KPKGroupUTI, KPKEntryUTI ]];
|
||||
[self.outlineView setDraggingSourceOperationMask:NSDragOperationEvery forLocal:YES];
|
||||
[self.outlineView setDoubleAction:@selector(_doubleClickedGroup:)];
|
||||
[self.bottomBar setBorderType:HNHBorderTop|HNHBorderHighlight];
|
||||
[self.addGroupButton setAction:[MPActionHelper actionOfType:MPActionAddGroup]];
|
||||
|
||||
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self
|
||||
selector:@selector(_didBecomeFirstResponder:)
|
||||
name:MPDidActivateViewNotification
|
||||
|
||||
@@ -205,18 +205,30 @@ NSString *const kMPDeprecatedSettingsKeyShowMenuItem = @"Sh
|
||||
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
|
||||
*/
|
||||
NSDictionary<NSString *, NSString *> *plainTextDict = [[NSUserDefaults standardUserDefaults] dictionaryForKey:kMPSettingsKeyRememeberdKeysForDatabases];
|
||||
if(!plainTextDict) {
|
||||
NSDictionary<NSString *, NSString *> *currentMapping = [[NSUserDefaults standardUserDefaults] dictionaryForKey:kMPSettingsKeyRememeberdKeysForDatabases];
|
||||
if(!currentMapping) {
|
||||
return;
|
||||
}
|
||||
NSMutableDictionary *hashedDict = [[NSMutableDictionary alloc] initWithCapacity:plainTextDict.count];
|
||||
for(NSString *key in plainTextDict) {
|
||||
NSString *digest = key.sha1HexDigest;
|
||||
if(digest) {
|
||||
hashedDict[key.sha1HexDigest] = plainTextDict[key];
|
||||
NSMutableDictionary *hashedDict = [[NSMutableDictionary alloc] initWithCapacity:MAX(1,currentMapping.count)];
|
||||
BOOL didHash = NO;
|
||||
for(NSString *key in currentMapping) {
|
||||
NSURL *fileURL = [NSURL URLWithString: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
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>0.6.1</string>
|
||||
<string>0.6.2</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
<?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>
|
||||
<deployment identifier="macosx"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9059"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9532"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<customObject id="-2" userLabel="File's Owner" customClass="MPOutlineViewController">
|
||||
<connections>
|
||||
<outlet property="addGroupButton" destination="425" id="434"/>
|
||||
<outlet property="bottomBar" destination="394" id="433"/>
|
||||
<outlet property="outlineView" destination="228" id="271"/>
|
||||
<outlet property="view" destination="196" id="273"/>
|
||||
</connections>
|
||||
@@ -19,15 +17,14 @@
|
||||
<rect key="frame" x="0.0" y="0.0" width="272" height="449"/>
|
||||
<subviews>
|
||||
<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">
|
||||
<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"/>
|
||||
<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">
|
||||
<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"/>
|
||||
<animations/>
|
||||
<size key="intercellSpacing" width="3" height="0.0"/>
|
||||
<color key="backgroundColor" name="_sourceListBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
|
||||
@@ -51,7 +48,6 @@
|
||||
<subviews>
|
||||
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="238">
|
||||
<rect key="frame" x="1" y="1" width="267" height="14"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="HEADER CELL" id="239">
|
||||
<font key="font" metaFont="smallSystemBold"/>
|
||||
<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 firstItem="238" firstAttribute="centerY" secondItem="237" secondAttribute="centerY" id="254"/>
|
||||
</constraints>
|
||||
<animations/>
|
||||
<connections>
|
||||
<outlet property="textField" destination="238" id="245"/>
|
||||
</connections>
|
||||
@@ -79,12 +74,10 @@
|
||||
<constraint firstAttribute="width" constant="17" id="385"/>
|
||||
<constraint firstAttribute="height" constant="17" id="bah-Ng-60T"/>
|
||||
</constraints>
|
||||
<animations/>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="NSActionTemplate" id="242"/>
|
||||
</imageView>
|
||||
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="243" customClass="HNHUIBadgedTextField">
|
||||
<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">
|
||||
<font key="font" metaFont="system"/>
|
||||
<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 firstAttribute="trailing" secondItem="243" secondAttribute="trailing" constant="3" id="389"/>
|
||||
</constraints>
|
||||
<animations/>
|
||||
<connections>
|
||||
<outlet property="imageView" destination="241" id="247"/>
|
||||
<outlet property="textField" destination="243" id="246"/>
|
||||
@@ -111,58 +103,27 @@
|
||||
</tableColumns>
|
||||
</outlineView>
|
||||
</subviews>
|
||||
<animations/>
|
||||
<nil key="backgroundColor"/>
|
||||
</clipView>
|
||||
<animations/>
|
||||
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="229">
|
||||
<rect key="frame" x="1" y="119" width="238" height="15"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<animations/>
|
||||
</scroller>
|
||||
<scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="NO" id="230">
|
||||
<rect key="frame" x="224" y="17" width="15" height="102"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<animations/>
|
||||
</scroller>
|
||||
</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>
|
||||
<constraints>
|
||||
<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="trailing" secondItem="196" secondAttribute="trailing" id="269"/>
|
||||
<constraint firstItem="394" firstAttribute="leading" secondItem="196" secondAttribute="leading" id="397"/>
|
||||
<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"/>
|
||||
<constraint firstAttribute="bottom" secondItem="227" secondAttribute="bottom" id="NQ5-NK-jdK"/>
|
||||
</constraints>
|
||||
<animations/>
|
||||
</customView>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="NSActionTemplate" width="14" height="14"/>
|
||||
<image name="NSAddTemplate" width="11" height="11"/>
|
||||
</resources>
|
||||
</document>
|
||||
|
||||
@@ -63,11 +63,12 @@ More Screenshots in the [Wiki](https://github.com/mstarke/MacPass/wiki/Screensho
|
||||
|
||||
##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.
|
||||
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.
|
||||
[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.
|
||||
|
||||
[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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user