11 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
michael starke
3abf1982b1 Removed DSA resources since it cause trouble in the update process 2016-02-15 18:39:43 +01:00
michael starke
2089e7ad8a Updated to current Xcode Version 2016-02-15 17:46:32 +01:00
michael starke
37f7c59976 removed unnecessary interfaces, bumped version 2016-02-15 17:32:56 +01:00
michael starke
2f1b7546aa Updated to current Xcode version 2016-02-15 14:14:06 +01:00
michael starke
9344b974a5 fixed issue with broken sort descriptors afer KeePassKit API change 2016-02-15 14:13:55 +01:00
13 changed files with 66 additions and 178 deletions

View File

@@ -191,7 +191,6 @@
4CA2335A176DBFE100F0B6AC /* MPLockDaemon.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CA23359176DBFE100F0B6AC /* MPLockDaemon.m */; };
4CA334CA18AD60D1008A3322 /* MPWindowAssociationsTableViewDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CA334C918AD60D1008A3322 /* MPWindowAssociationsTableViewDelegate.m */; };
4CA3530B18A53CB800839B0F /* MPKeyMapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CA3530A18A53CB800839B0F /* MPKeyMapper.m */; };
4CA3531218A5577300839B0F /* dsa_sparkle_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = 4CA3531118A5577300839B0F /* dsa_sparkle_pub.pem */; };
4CAD748C15B889B700104512 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CAD748B15B889B700104512 /* Security.framework */; };
4CAD748E15B88AC100104512 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CAD748D15B88AC100104512 /* libz.dylib */; };
4CB915941A0159A20089CE5B /* DuplicateEntryOptionsWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4CB915931A0159A20089CE5B /* DuplicateEntryOptionsWindow.xib */; };
@@ -582,7 +581,6 @@
4CA334C918AD60D1008A3322 /* MPWindowAssociationsTableViewDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPWindowAssociationsTableViewDelegate.m; sourceTree = "<group>"; };
4CA3530918A53CB800839B0F /* MPKeyMapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPKeyMapper.h; sourceTree = "<group>"; };
4CA3530A18A53CB800839B0F /* MPKeyMapper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPKeyMapper.m; sourceTree = "<group>"; };
4CA3531118A5577300839B0F /* dsa_sparkle_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = dsa_sparkle_pub.pem; sourceTree = "<group>"; };
4CAD748B15B889B700104512 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
4CAD748D15B88AC100104512 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
4CB63A6018986530002DEC4C /* MPFlagsHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPFlagsHelper.h; sourceTree = "<group>"; };
@@ -1185,7 +1183,6 @@
4C77E36D15B84A240093A587 /* Supporting Files */ = {
isa = PBXGroup;
children = (
4CA3531118A5577300839B0F /* dsa_sparkle_pub.pem */,
4C888C8E16EB6C91003D34A1 /* Localizable.strings */,
4CB9339716D3A0DD00A13B5D /* Credits.rtf */,
4C77E36E15B84A240093A587 /* MacPass-Info.plist */,
@@ -1586,7 +1583,6 @@
6021FE5618E1429500C3BC51 /* IntegrationSettings.xib in Resources */,
4C3826B81AD04D8E007D7D67 /* 44_NotesTemplate.pdf in Resources */,
4C3826C41AD04D8E007D7D67 /* 57_TextViewTemplate.pdf in Resources */,
4CA3531218A5577300839B0F /* dsa_sparkle_pub.pem in Resources */,
6021FE9818E1650F00C3BC51 /* DatabaseSettingsWindow.xib in Resources */,
4C6D1D25178579570014C5A5 /* 48_FolderTemplate.pdf in Resources */,
4C701CBC178618A000581B88 /* 12_RemoteTemplate.pdf in Resources */,

View File

@@ -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>

View File

@@ -1,8 +1,8 @@
<?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="MPContextBarViewController">
@@ -26,7 +26,6 @@
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
<tabView type="noTabsNoBorder" translatesAutoresizingMaskIntoConstraints="NO" id="8MB-fC-M2Q">
<rect key="frame" x="0.0" y="0.0" width="576" height="30"/>
<animations/>
<font key="font" metaFont="system"/>
<tabViewItems>
<tabViewItem label="Filter" identifier="1" id="Ud6-Nz-6PS">
@@ -39,7 +38,6 @@
<subviews>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="6">
<rect key="frame" x="6" y="8" width="47" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Search:" id="7">
<font key="font" metaFont="smallSystemBold"/>
<color key="textColor" name="disabledControlTextColor" catalog="System" colorSpace="catalog"/>
@@ -48,7 +46,6 @@
</textField>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="O7W-cn-eUP">
<rect key="frame" x="59" y="6" width="42" height="17"/>
<animations/>
<buttonCell key="cell" type="recessed" title="Title" bezelStyle="recessed" alignment="center" controlSize="small" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="53D-ne-nv6">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES" changeBackground="YES" changeGray="YES"/>
<font key="font" metaFont="systemBold" size="12"/>
@@ -59,7 +56,6 @@
</button>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="0R1-PX-dgn">
<rect key="frame" x="109" y="6" width="76" height="17"/>
<animations/>
<buttonCell key="cell" type="recessed" title="Username" bezelStyle="recessed" alignment="center" controlSize="small" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="jfQ-Jh-2gl">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES" changeBackground="YES" changeGray="YES"/>
<font key="font" metaFont="systemBold" size="12"/>
@@ -70,7 +66,6 @@
</button>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Uhl-ck-vVQ">
<rect key="frame" x="193" y="6" width="73" height="17"/>
<animations/>
<buttonCell key="cell" type="recessed" title="Password" bezelStyle="recessed" alignment="center" controlSize="small" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="rvQ-4V-SsS">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES" changeBackground="YES" changeGray="YES"/>
<font key="font" metaFont="systemBold" size="12"/>
@@ -81,7 +76,6 @@
</button>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Bn2-iY-mQ3">
<rect key="frame" x="274" y="6" width="39" height="17"/>
<animations/>
<buttonCell key="cell" type="recessed" title="URL" bezelStyle="recessed" alignment="center" controlSize="small" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="92o-gN-Psj">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES" changeBackground="YES" changeGray="YES"/>
<font key="font" metaFont="systemBold" size="12"/>
@@ -92,7 +86,6 @@
</button>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="SaV-5p-jIX">
<rect key="frame" x="321" y="6" width="50" height="17"/>
<animations/>
<buttonCell key="cell" type="recessed" title="Notes" bezelStyle="recessed" alignment="center" controlSize="small" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="iDN-2E-hwt">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES" changeBackground="YES" changeGray="YES"/>
<font key="font" metaFont="systemBold" size="12"/>
@@ -103,7 +96,6 @@
</button>
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="aPQ-t2-bgz">
<rect key="frame" x="492" y="5" width="64" height="19"/>
<animations/>
<popUpButtonCell key="cell" type="recessed" title="Item 1" bezelStyle="recessed" alignment="center" lineBreakMode="truncatingTail" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" autoenablesItems="NO" selectedItem="LRm-iZ-XrA" id="faz-pC-uGX">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES" changeBackground="YES" changeGray="YES"/>
<font key="font" metaFont="systemBold" size="12"/>
@@ -134,7 +126,6 @@
<constraint firstAttribute="centerY" secondItem="Uhl-ck-vVQ" secondAttribute="centerY" id="uvE-ch-ysK"/>
<constraint firstAttribute="centerY" secondItem="Bn2-iY-mQ3" secondAttribute="centerY" id="xZJ-EZ-Nic"/>
</constraints>
<animations/>
</customView>
</subviews>
<constraints>
@@ -145,7 +136,6 @@
<constraint firstAttribute="trailing" secondItem="1" secondAttribute="trailing" id="mos-cv-3fn"/>
<constraint firstAttribute="trailing" secondItem="1" secondAttribute="trailing" id="rO8-g6-lT3"/>
</constraints>
<animations/>
</view>
</tabViewItem>
<tabViewItem label="Trash" identifier="2" id="na6-h9-r9q">
@@ -158,7 +148,6 @@
<subviews>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="szx-Hx-OrV">
<rect key="frame" x="478" y="5" width="78" height="19"/>
<animations/>
<buttonCell key="cell" type="roundTextured" title="Empty Trash" bezelStyle="texturedRounded" alignment="center" controlSize="small" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="8Ok-oe-6AB">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
@@ -173,7 +162,6 @@
<constraint firstItem="szx-Hx-OrV" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="DXf-SC-gVG" secondAttribute="leading" constant="20" symbolic="YES" id="s8f-1l-4Yy"/>
<constraint firstAttribute="centerY" secondItem="szx-Hx-OrV" secondAttribute="centerY" id="sG5-pc-EzQ"/>
</constraints>
<animations/>
</customView>
</subviews>
<constraints>
@@ -182,7 +170,6 @@
<constraint firstItem="DXf-SC-gVG" firstAttribute="top" secondItem="F6S-GS-AwI" secondAttribute="top" id="j4h-gk-JVJ"/>
<constraint firstAttribute="trailing" secondItem="DXf-SC-gVG" secondAttribute="trailing" id="wap-ZJ-5Rw"/>
</constraints>
<animations/>
</view>
<connections>
<outlet property="initialFirstResponder" destination="szx-Hx-OrV" id="Cqa-Po-xMe"/>
@@ -198,7 +185,6 @@
<subviews>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="gGR-f0-dcr">
<rect key="frame" x="18" y="6" width="37" height="17"/>
<animations/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Label" id="8LU-cT-rsU">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@@ -207,7 +193,6 @@
</textField>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="pqx-su-vAh">
<rect key="frame" x="483" y="5" width="73" height="19"/>
<animations/>
<buttonCell key="cell" type="roundTextured" title="Exit History" bezelStyle="texturedRounded" alignment="center" controlSize="small" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="ewQ-8F-e1E">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
@@ -224,7 +209,6 @@
<constraint firstItem="gGR-f0-dcr" firstAttribute="leading" secondItem="S8L-rB-h0h" secondAttribute="leading" constant="20" symbolic="YES" id="gFm-N8-pwn"/>
<constraint firstAttribute="trailing" secondItem="pqx-su-vAh" secondAttribute="trailing" constant="20" symbolic="YES" id="mao-02-HsJ"/>
</constraints>
<animations/>
</customView>
</subviews>
<constraints>
@@ -233,7 +217,6 @@
<constraint firstAttribute="bottom" secondItem="S8L-rB-h0h" secondAttribute="bottom" id="bz5-FS-Gg2"/>
<constraint firstItem="S8L-rB-h0h" firstAttribute="top" secondItem="iPb-SZ-Lfm" secondAttribute="top" id="mW1-xp-CdF"/>
</constraints>
<animations/>
</view>
<connections>
<outlet property="initialFirstResponder" destination="pqx-su-vAh" id="bi5-CA-b4P"/>

View File

@@ -1,16 +1,13 @@
<?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"/>
</dependencies>
<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="694" 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"/>
@@ -133,11 +130,11 @@
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
<prototypeCellViews>
<tableCellView identifier="PasswordCell" id="428">
<rect key="frame" x="255.5" y="1" width="119" height="17"/>
<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"/>
@@ -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>

View File

@@ -47,8 +47,5 @@ typedef NS_ENUM( NSUInteger, MPCopyContentTypeTag) {
- (void)copyURL:(id)sender;
- (void)openURL:(id)sender;
/* Settings migration */
+ (NSString *)timeInfoModificationTimeKeyPath;
@end

View File

@@ -75,25 +75,12 @@ 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
@implementation MPEntryViewController
+ (NSString *)timeInfoModificationTimeKeyPath {
static NSString *timeInfoModificationTimeKeyPath;
if(nil == timeInfoModificationTimeKeyPath) {
timeInfoModificationTimeKeyPath = [[NSString alloc] initWithFormat:@"%@.%@", NSStringFromSelector(@selector(timeInfo)), NSStringFromSelector(@selector(modificationDate))];
}
return timeInfoModificationTimeKeyPath;
}
- (NSString *)nibName {
return @"EntryView";
}
@@ -118,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:);
@@ -159,14 +144,14 @@ NSString *const _MPTableSecurCellView = @"PasswordCell";
self.entryTable.autosaveName = @"EntryTable";
self.entryTable.autosaveTableColumns = YES;
NSString *parentTitleKeyPath = [[NSString alloc] initWithFormat:@"%@.%@", NSStringFromSelector(@selector(parent)), NSStringFromSelector(@selector(title))];
NSString *timeInfoModificationTimeKeyPath = [[NSString alloc] initWithFormat:@"%@.%@", NSStringFromSelector(@selector(timeInfo)), NSStringFromSelector(@selector(modificationDate))];
titleColumn.sortDescriptorPrototype = [NSSortDescriptor sortDescriptorWithKey:NSStringFromSelector(@selector(title))ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)];
userNameColumn.sortDescriptorPrototype = [NSSortDescriptor sortDescriptorWithKey:NSStringFromSelector(@selector(username)) ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)];
urlColumn.sortDescriptorPrototype = [NSSortDescriptor sortDescriptorWithKey:NSStringFromSelector(@selector(url)) ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)];
parentColumn.sortDescriptorPrototype = [NSSortDescriptor sortDescriptorWithKey:parentTitleKeyPath ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)];
modifiedColumn.sortDescriptorPrototype = [NSSortDescriptor sortDescriptorWithKey:[MPEntryViewController timeInfoModificationTimeKeyPath] ascending:YES selector:@selector(compare:)];
modifiedColumn.sortDescriptorPrototype = [NSSortDescriptor sortDescriptorWithKey:timeInfoModificationTimeKeyPath ascending:YES selector:@selector(compare:)];
[parentColumn.headerCell setStringValue:NSLocalizedString(@"GROUP", "")];
[titleColumn.headerCell setStringValue:NSLocalizedString(@"TITLE", "")];
@@ -473,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", "")];
*/
}
}

View File

@@ -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;

View File

@@ -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

View File

@@ -9,7 +9,7 @@
#import "MPSettingsHelper.h"
#import "NSString+MPPasswordCreation.h"
#import "NSString+MPHash.h"
#import "MPEntryViewController.h" // Sort descriptors
#import "MPEntrySearchContext.h"
#import "DDHotKey+MacPassAdditions.h" // Default hotkey;
NSString *const kMPSettingsKeyPasteboardClearTimeout = @"ClipboardClearTimeout";
@@ -160,6 +160,10 @@ NSString *const kMPDeprecatedSettingsKeyShowMenuItem = @"Sh
/*
MacPass < 0.4 did use compare: for the entry table view,
this was changed in 0.4 to localizedCaseInsensitiveCompare:
MacPass < 0.5.2 did use parent.name for group names,
this was changed in 0.6. to parent.title
*/
NSData *descriptorData = [[NSUserDefaults standardUserDefaults] dataForKey:kMPSettingsKeyEntryTableSortDescriptors];
if(!descriptorData) {
@@ -168,7 +172,10 @@ NSString *const kMPDeprecatedSettingsKeyShowMenuItem = @"Sh
NSArray *sortDescriptors = [NSUnarchiver unarchiveObjectWithData:descriptorData];
for(NSSortDescriptor *descriptor in sortDescriptors) {
if([descriptor selector] == @selector(compare:) || [[descriptor key] isEqualToString:[MPEntryViewController timeInfoModificationTimeKeyPath]] ) {
/* Brute force, just kill the settings if they might cause trouble */
if(descriptor.selector == @selector(compare:)
|| [descriptor.key isEqualToString:@"timeInfo.modificationDate"]
|| [descriptor.key isEqualToString:@"parent.name"] ) {
[[NSUserDefaults standardUserDefaults] removeObjectForKey:kMPSettingsKeyEntryTableSortDescriptors];
break;
}
@@ -198,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

View File

@@ -58,7 +58,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>0.6</string>
<string>0.6.2</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
@@ -75,8 +75,6 @@
<true/>
<key>SUFeedURL</key>
<string>https://raw.githubusercontent.com/MacPass/MacPassUpdates/master/appcast_macpass.xml</string>
<key>SUPublicDSAKeyFile</key>
<string>dsa_sparkle_pub.pem</string>
<key>UTExportedTypeDeclarations</key>
<array>
<dict>

View File

@@ -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>

View File

@@ -1,12 +0,0 @@
-----BEGIN PUBLIC KEY-----
MIIBuDCCASwGByqGSM44BAEwggEfAoGBAM9fddIHTDtY5tw1Ew78fRI0fBMkpHN8
d4h++WynbyS59tUQ7uJLkGQAtnLhA3orU1ycghvNuFnNe6sANuzPCOjvay0oSZP0
MeGj3cn1vzN61WbZL6wjBmJVkiptLuviTT7tMZOuJM6I1NQZb8AiUXt6E9F0BtT5
FUsLI3vK3w4ZAhUA08MnyUlVf8teUxZ+SJKstKNc28kCgYEAxaKVkiKzWhF81QdB
ugIc1ccx4lgWR/8xFtY/svlN4UjWBj+KyZ6AWfMBXeTJxYWYiTvwyx3NxxdI7mus
ACtL60EFVNACDo8WhFuYQ0X47dQqfcemDd8NylnXuOgwS+/whgtONgC8INswCnt7
N+eFEcbPb1e8KwOjEsxguHycKD4DgYUAAoGBAKBgyULSfUTZeigrw4g8/YtjsHiH
nbqBgYTetL/JcZosx3F/kccdJ18u5y1Xd2ec7WopJpl5Ywc0CvEzGkuHznVlKoyV
wi1MdfqHJEAW1tA442knwO7ydO+9S2d7twfZyN53ncSksZskJGeev1fALgCz1VrF
j6hC6zq/VyhMwybK
-----END PUBLIC KEY-----

View File

@@ -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