mirror of
https://github.com/MacPass/MacPass.git
synced 2025-12-13 22:52:26 +00:00
key derication and encryopt algorithms are populated. Save not working
This commit is contained in:
2
Cartfile
2
Cartfile
@@ -1,3 +1,3 @@
|
||||
github "sparkle-project/Sparkle" ~> 1.13.1
|
||||
github "mstarke/KeePassKit" "f4f7c56c2c081ae129f88e6004411ecc8ef9ae0c"
|
||||
github "mstarke/KeePassKit" "32d3bdeb224b5718424b46a5b80c3a66114f6a9b"
|
||||
github "mstarke/HNHUi" ~> 1.1
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
github "mstarke/HNHUi" "1.1"
|
||||
github "mstarke/KeePassKit" "f4f7c56c2c081ae129f88e6004411ecc8ef9ae0c"
|
||||
github "mstarke/KeePassKit" "32d3bdeb224b5718424b46a5b80c3a66114f6a9b"
|
||||
github "sparkle-project/Sparkle" "1.14.0"
|
||||
|
||||
@@ -9,6 +9,10 @@
|
||||
<objects>
|
||||
<customObject id="-2" userLabel="File's Owner" customClass="MPDatabaseSettingsWindowController">
|
||||
<connections>
|
||||
<outlet property="AESEncryptionRoundsTextField" destination="8aq-34-rcd" id="sl2-lb-9vc"/>
|
||||
<outlet property="Argon2IterationsTextField" destination="39N-8Q-J8b" id="pnH-Mf-x5c"/>
|
||||
<outlet property="Argon2MemoryTextField" destination="eEW-oa-V7U" id="iDH-eW-4TE"/>
|
||||
<outlet property="Argon2ThreadsTextField" destination="178-0f-guB" id="ATl-km-DSX"/>
|
||||
<outlet property="createKeyDerivationParametersButton" destination="P98-Cu-Tha" id="UQ0-eg-rdx"/>
|
||||
<outlet property="databaseColorColorWell" destination="1439" id="Fqq-2P-vbf"/>
|
||||
<outlet property="databaseCompressionPopupButton" destination="1394" id="L9g-c4-dJp"/>
|
||||
@@ -24,6 +28,7 @@
|
||||
<outlet property="historyMaximumItemsTextField" destination="593" id="NrX-e0-8Dw"/>
|
||||
<outlet property="historyMaxiumSizeTextField" destination="1273" id="5Fo-Pp-8dY"/>
|
||||
<outlet property="keyDerivationPopupButton" destination="5D9-bT-JAr" id="90K-97-HQW"/>
|
||||
<outlet property="keyDerivationSettingsTabView" destination="2MY-PW-kzL" id="1iZ-jt-nxi"/>
|
||||
<outlet property="recommendKeyChangeCheckButton" destination="Hqc-B0-xyz" id="3CK-D7-b8S"/>
|
||||
<outlet property="recommendKeyChangeIntervalTextField" destination="19r-LE-7X5" id="c5C-1h-LpD"/>
|
||||
<outlet property="sectionTabView" destination="357" id="699"/>
|
||||
@@ -37,14 +42,14 @@
|
||||
<window title="Window" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" oneShot="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="default" id="1">
|
||||
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES"/>
|
||||
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
|
||||
<rect key="contentRect" x="196" y="240" width="547" height="405"/>
|
||||
<rect key="contentRect" x="196" y="240" width="548" height="411"/>
|
||||
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/>
|
||||
<view key="contentView" misplaced="YES" id="2">
|
||||
<rect key="frame" x="0.0" y="0.0" width="547" height="405"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="548" height="411"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="288">
|
||||
<rect key="frame" x="474" y="13" width="59" height="32"/>
|
||||
<rect key="frame" x="475" y="13" width="59" height="32"/>
|
||||
<buttonCell key="cell" type="push" title="OK" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="289">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
@@ -57,7 +62,7 @@ DQ
|
||||
</connections>
|
||||
</button>
|
||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="956">
|
||||
<rect key="frame" x="392" y="13" width="82" height="32"/>
|
||||
<rect key="frame" x="393" y="13" width="82" height="32"/>
|
||||
<buttonCell key="cell" type="push" title="Cancel" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="957">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
@@ -70,16 +75,16 @@ Gw
|
||||
</connections>
|
||||
</button>
|
||||
<tabView translatesAutoresizingMaskIntoConstraints="NO" id="357">
|
||||
<rect key="frame" x="13" y="41" width="521" height="339"/>
|
||||
<rect key="frame" x="13" y="41" width="522" height="282"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<tabViewItems>
|
||||
<tabViewItem label="General" identifier="1" id="358">
|
||||
<view key="view" id="361">
|
||||
<rect key="frame" x="10" y="33" width="501" height="242"/>
|
||||
<rect key="frame" x="10" y="33" width="502" height="242"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="231">
|
||||
<rect key="frame" x="201" y="200" width="280" height="22"/>
|
||||
<rect key="frame" x="202" y="200" width="280" height="22"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="280" id="cra-uC-nCv"/>
|
||||
</constraints>
|
||||
@@ -90,7 +95,7 @@ Gw
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="256">
|
||||
<rect key="frame" x="117" y="176" width="78" height="17"/>
|
||||
<rect key="frame" x="118" y="176" width="78" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Description:" id="257">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
@@ -98,7 +103,7 @@ Gw
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="189">
|
||||
<rect key="frame" x="93" y="204" width="102" height="17"/>
|
||||
<rect key="frame" x="94" y="204" width="102" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Database name:" id="190">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
@@ -106,7 +111,7 @@ Gw
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="1394">
|
||||
<rect key="frame" x="199" y="48" width="70" height="26"/>
|
||||
<rect key="frame" x="200" y="48" width="70" height="26"/>
|
||||
<popUpButtonCell key="cell" type="push" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" id="1395">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
@@ -119,7 +124,7 @@ Gw
|
||||
</popUpButtonCell>
|
||||
</popUpButton>
|
||||
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="1404">
|
||||
<rect key="frame" x="107" y="53" width="88" height="17"/>
|
||||
<rect key="frame" x="108" y="53" width="88" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Compression:" id="1405">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
@@ -127,7 +132,7 @@ Gw
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="1434">
|
||||
<rect key="frame" x="154" y="23" width="41" height="17"/>
|
||||
<rect key="frame" x="155" y="23" width="41" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Color:" id="1435">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
@@ -135,7 +140,7 @@ Gw
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<colorWell translatesAutoresizingMaskIntoConstraints="NO" id="1439" customClass="HNHUIColorWell">
|
||||
<rect key="frame" x="201" y="20" width="44" height="23"/>
|
||||
<rect key="frame" x="202" y="20" width="44" height="23"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="44" id="XBF-V3-71G"/>
|
||||
<constraint firstAttribute="height" constant="23" id="fgN-h5-Mr8"/>
|
||||
@@ -143,7 +148,7 @@ Gw
|
||||
<color key="color" red="0.05813049898" green="0.055541899059999997" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</colorWell>
|
||||
<scrollView horizontalLineScroll="10" horizontalPageScroll="10" verticalLineScroll="10" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1530">
|
||||
<rect key="frame" x="201" y="92" width="280" height="100"/>
|
||||
<rect key="frame" x="202" y="92" width="280" height="100"/>
|
||||
<clipView key="contentView" id="WOI-1v-RCe">
|
||||
<rect key="frame" x="1" y="1" width="278" height="98"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
@@ -200,11 +205,11 @@ Gw
|
||||
</tabViewItem>
|
||||
<tabViewItem label="Security" identifier="" id="370">
|
||||
<view key="view" id="371">
|
||||
<rect key="frame" x="10" y="33" width="501" height="293"/>
|
||||
<rect key="frame" x="10" y="33" width="502" height="236"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="3ek-Rg-w82">
|
||||
<rect key="frame" x="233" y="249" width="37" height="26"/>
|
||||
<rect key="frame" x="233" y="192" width="37" height="26"/>
|
||||
<popUpButtonCell key="cell" type="push" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" id="e3h-dG-ekU">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
@@ -212,7 +217,7 @@ Gw
|
||||
</popUpButtonCell>
|
||||
</popUpButton>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="vH7-5a-52C">
|
||||
<rect key="frame" x="160" y="256" width="69" height="17"/>
|
||||
<rect key="frame" x="160" y="199" width="69" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Encryption" id="gxY-UL-bEG">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
@@ -220,13 +225,13 @@ Gw
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<box title="Key derivation" translatesAutoresizingMaskIntoConstraints="NO" id="pbl-Mb-r8V">
|
||||
<rect key="frame" x="17" y="16" width="467" height="228"/>
|
||||
<rect key="frame" x="17" y="16" width="468" height="171"/>
|
||||
<view key="contentView" id="hkT-SX-Te1">
|
||||
<rect key="frame" x="2" y="2" width="463" height="211"/>
|
||||
<rect key="frame" x="2" y="2" width="464" height="154"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="cqu-Og-bZH">
|
||||
<rect key="frame" x="18" y="174" width="63" height="17"/>
|
||||
<rect key="frame" x="147" y="117" width="63" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Algorithm" id="U4f-lN-oxi">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
@@ -234,7 +239,7 @@ Gw
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="5D9-bT-JAr">
|
||||
<rect key="frame" x="85" y="167" width="37" height="26"/>
|
||||
<rect key="frame" x="214" y="110" width="37" height="26"/>
|
||||
<popUpButtonCell key="cell" type="push" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" id="rf4-V3-tPC">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
@@ -242,32 +247,114 @@ Gw
|
||||
</popUpButtonCell>
|
||||
</popUpButton>
|
||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="P98-Cu-Tha">
|
||||
<rect key="frame" x="300" y="18" width="143" height="25"/>
|
||||
<rect key="frame" x="301" y="18" width="143" height="25"/>
|
||||
<buttonCell key="cell" type="roundTextured" title="Generate Parameters" bezelStyle="texturedRounded" alignment="center" lineBreakMode="truncatingTail" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="PoI-Er-Y8P">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
</button>
|
||||
<tabView type="noTabsNoBorder" translatesAutoresizingMaskIntoConstraints="NO" id="2MY-PW-kzL">
|
||||
<rect key="frame" x="13" y="50" width="437" height="101"/>
|
||||
<tabView drawsBackground="NO" type="noTabsNoBorder" translatesAutoresizingMaskIntoConstraints="NO" id="2MY-PW-kzL">
|
||||
<rect key="frame" x="13" y="50" width="438" height="62"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<tabViewItems>
|
||||
<tabViewItem label="Aes" identifier="1" id="ft1-pl-lpO">
|
||||
<view key="view" id="88i-IZ-Yev">
|
||||
<rect key="frame" x="0.0" y="0.0" width="437" height="101"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="438" height="62"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ztz-iY-hWV">
|
||||
<rect key="frame" x="123" y="23" width="50" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Rounds" id="uUQ-9s-M5E">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="8aq-34-rcd">
|
||||
<rect key="frame" x="112" y="59" width="81" height="22"/>
|
||||
<rect key="frame" x="179" y="20" width="80" height="22"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="80" id="rV0-LL-xXc"/>
|
||||
</constraints>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="DTY-h6-A7Z">
|
||||
<numberFormatter key="formatter" formatterBehavior="default10_4" usesGroupingSeparator="NO" groupingSize="0" minimumIntegerDigits="0" maximumIntegerDigits="42" id="PHD-wY-sQ2">
|
||||
<real key="minimum" value="0.0"/>
|
||||
</numberFormatter>
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ztz-iY-hWV">
|
||||
<rect key="frame" x="20" y="62" width="37" height="19"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Label" id="uUQ-9s-M5E">
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="8aq-34-rcd" firstAttribute="leading" secondItem="ztz-iY-hWV" secondAttribute="trailing" constant="8" symbolic="YES" id="1rK-1s-hmj"/>
|
||||
<constraint firstItem="ztz-iY-hWV" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="88i-IZ-Yev" secondAttribute="leading" constant="20" symbolic="YES" id="68e-t0-M72"/>
|
||||
<constraint firstAttribute="bottom" secondItem="8aq-34-rcd" secondAttribute="bottom" constant="20" symbolic="YES" id="P33-GP-h3e"/>
|
||||
<constraint firstItem="8aq-34-rcd" firstAttribute="centerX" secondItem="88i-IZ-Yev" secondAttribute="centerX" id="Twz-Ot-3wP"/>
|
||||
<constraint firstItem="8aq-34-rcd" firstAttribute="top" secondItem="88i-IZ-Yev" secondAttribute="top" constant="20" id="uK6-22-35U"/>
|
||||
<constraint firstItem="8aq-34-rcd" firstAttribute="baseline" secondItem="ztz-iY-hWV" secondAttribute="baseline" id="yOh-B1-dkr"/>
|
||||
</constraints>
|
||||
</view>
|
||||
</tabViewItem>
|
||||
<tabViewItem label="Argon2" identifier="2" id="6qB-sH-9FI">
|
||||
<view key="view" id="ORc-Gq-vFd">
|
||||
<rect key="frame" x="0.0" y="0.0" width="438" height="126"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="aNy-eF-jKq">
|
||||
<rect key="frame" x="119" y="87" width="54" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Threads" id="2QI-ne-N5d">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ml2-wP-EaZ">
|
||||
<rect key="frame" x="112" y="55" width="61" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Iterations" id="2ZA-Gc-JdZ">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="178-0f-guB">
|
||||
<rect key="frame" x="179" y="84" width="80" height="22"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="80" id="pWc-wH-acx"/>
|
||||
</constraints>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="E2f-UU-u53">
|
||||
<numberFormatter key="formatter" formatterBehavior="default10_4" usesGroupingSeparator="NO" groupingSize="0" minimumIntegerDigits="0" maximumIntegerDigits="42" id="99Y-Zs-26E">
|
||||
<real key="minimum" value="1"/>
|
||||
<real key="maximum" value="16777215"/>
|
||||
</numberFormatter>
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="39N-8Q-J8b">
|
||||
<rect key="frame" x="179" y="52" width="80" height="22"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="9wr-x8-Wtv">
|
||||
<numberFormatter key="formatter" formatterBehavior="default10_4" usesGroupingSeparator="NO" groupingSize="0" minimumIntegerDigits="0" maximumIntegerDigits="42" id="Kim-cZ-JbF">
|
||||
<real key="minimum" value="1"/>
|
||||
<real key="maximum" value="4294967295"/>
|
||||
</numberFormatter>
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="eEW-oa-V7U">
|
||||
<rect key="frame" x="179" y="20" width="80" height="22"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="M1E-89-YVm">
|
||||
<byteCountFormatter key="formatter" id="zX5-n0-r94"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="9kV-19-lm6">
|
||||
<rect key="frame" x="119" y="23" width="54" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Memory" id="iRY-If-Kwn">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
@@ -275,60 +362,27 @@ Gw
|
||||
</textField>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="ztz-iY-hWV" firstAttribute="leading" secondItem="88i-IZ-Yev" secondAttribute="leading" constant="22" id="D3b-C5-eZX"/>
|
||||
<constraint firstItem="ztz-iY-hWV" firstAttribute="top" secondItem="88i-IZ-Yev" secondAttribute="top" constant="20" id="Gmy-bj-T79"/>
|
||||
<constraint firstAttribute="bottom" secondItem="8aq-34-rcd" secondAttribute="bottom" constant="59" id="P33-GP-h3e"/>
|
||||
<constraint firstItem="8aq-34-rcd" firstAttribute="leading" secondItem="ztz-iY-hWV" secondAttribute="trailing" constant="57" id="TN7-ge-h5B"/>
|
||||
<constraint firstItem="8aq-34-rcd" firstAttribute="top" secondItem="88i-IZ-Yev" secondAttribute="top" constant="20" id="uK6-22-35U"/>
|
||||
<constraint firstAttribute="trailing" secondItem="8aq-34-rcd" secondAttribute="trailing" constant="244" id="x5N-rT-y0h"/>
|
||||
<constraint firstItem="8aq-34-rcd" firstAttribute="baseline" secondItem="ztz-iY-hWV" secondAttribute="baseline" id="yOh-B1-dkr"/>
|
||||
<constraint firstItem="178-0f-guB" firstAttribute="trailing" secondItem="39N-8Q-J8b" secondAttribute="trailing" id="1kQ-s7-kBh"/>
|
||||
<constraint firstItem="ml2-wP-EaZ" firstAttribute="baseline" secondItem="39N-8Q-J8b" secondAttribute="baseline" id="2qS-68-RoC"/>
|
||||
<constraint firstItem="39N-8Q-J8b" firstAttribute="top" secondItem="178-0f-guB" secondAttribute="bottom" constant="10" symbolic="YES" id="9GS-Lv-8hf"/>
|
||||
<constraint firstItem="178-0f-guB" firstAttribute="top" secondItem="ORc-Gq-vFd" secondAttribute="top" constant="20" id="BP8-Q8-bRB"/>
|
||||
<constraint firstItem="eEW-oa-V7U" firstAttribute="leading" secondItem="39N-8Q-J8b" secondAttribute="leading" id="EK8-oS-e6f"/>
|
||||
<constraint firstItem="39N-8Q-J8b" firstAttribute="leading" secondItem="ml2-wP-EaZ" secondAttribute="trailing" constant="8" symbolic="YES" id="KM7-HV-rzC"/>
|
||||
<constraint firstItem="aNy-eF-jKq" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="ORc-Gq-vFd" secondAttribute="leading" constant="20" symbolic="YES" id="Lcs-rI-XEr"/>
|
||||
<constraint firstItem="178-0f-guB" firstAttribute="leading" secondItem="39N-8Q-J8b" secondAttribute="leading" id="NIV-TP-tNg"/>
|
||||
<constraint firstItem="eEW-oa-V7U" firstAttribute="trailing" secondItem="39N-8Q-J8b" secondAttribute="trailing" id="Puj-lS-iSq"/>
|
||||
<constraint firstItem="eEW-oa-V7U" firstAttribute="leading" secondItem="9kV-19-lm6" secondAttribute="trailing" constant="8" symbolic="YES" id="X6b-Xh-c4a"/>
|
||||
<constraint firstItem="9kV-19-lm6" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="ORc-Gq-vFd" secondAttribute="leading" constant="20" symbolic="YES" id="XQk-mB-L1e"/>
|
||||
<constraint firstItem="ml2-wP-EaZ" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="ORc-Gq-vFd" secondAttribute="leading" constant="20" symbolic="YES" id="Y0n-Fm-1o3"/>
|
||||
<constraint firstItem="178-0f-guB" firstAttribute="centerX" secondItem="ORc-Gq-vFd" secondAttribute="centerX" id="ZIg-d3-hij"/>
|
||||
<constraint firstItem="9kV-19-lm6" firstAttribute="baseline" secondItem="eEW-oa-V7U" secondAttribute="baseline" id="cVQ-WW-b7c"/>
|
||||
<constraint firstItem="aNy-eF-jKq" firstAttribute="baseline" secondItem="178-0f-guB" secondAttribute="baseline" id="eQi-Ki-OCJ"/>
|
||||
<constraint firstItem="eEW-oa-V7U" firstAttribute="top" secondItem="39N-8Q-J8b" secondAttribute="bottom" constant="10" symbolic="YES" id="eky-9x-cpq"/>
|
||||
<constraint firstAttribute="bottom" secondItem="eEW-oa-V7U" secondAttribute="bottom" constant="20" symbolic="YES" id="pU0-CH-dyS"/>
|
||||
<constraint firstItem="178-0f-guB" firstAttribute="leading" secondItem="aNy-eF-jKq" secondAttribute="trailing" constant="8" symbolic="YES" id="yn1-bP-4KY"/>
|
||||
</constraints>
|
||||
</view>
|
||||
</tabViewItem>
|
||||
<tabViewItem label="Argon2" identifier="2" id="6qB-sH-9FI">
|
||||
<view key="view" id="ORc-Gq-vFd">
|
||||
<rect key="frame" x="0.0" y="0.0" width="437" height="120"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="aNy-eF-jKq">
|
||||
<rect key="frame" x="18" y="83" width="37" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Label" id="2QI-ne-N5d">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ml2-wP-EaZ">
|
||||
<rect key="frame" x="20" y="58" width="37" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Label" id="2ZA-Gc-JdZ">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="178-0f-guB">
|
||||
<rect key="frame" x="336" y="78" width="96" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="E2f-UU-u53">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="39N-8Q-J8b">
|
||||
<rect key="frame" x="336" y="46" width="96" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="9wr-x8-Wtv">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
</subviews>
|
||||
</view>
|
||||
</tabViewItem>
|
||||
</tabViewItems>
|
||||
</tabView>
|
||||
</subviews>
|
||||
@@ -336,9 +390,10 @@ Gw
|
||||
<constraint firstItem="5D9-bT-JAr" firstAttribute="leading" secondItem="cqu-Og-bZH" secondAttribute="trailing" constant="8" id="1ao-8V-Duk"/>
|
||||
<constraint firstItem="5D9-bT-JAr" firstAttribute="baseline" secondItem="cqu-Og-bZH" secondAttribute="baseline" id="GYM-tE-OyA"/>
|
||||
<constraint firstItem="P98-Cu-Tha" firstAttribute="top" secondItem="2MY-PW-kzL" secondAttribute="bottom" constant="8" symbolic="YES" id="O73-33-ZW2"/>
|
||||
<constraint firstItem="5D9-bT-JAr" firstAttribute="centerX" secondItem="hkT-SX-Te1" secondAttribute="centerX" id="P7O-rC-peC"/>
|
||||
<constraint firstAttribute="trailing" secondItem="P98-Cu-Tha" secondAttribute="trailing" constant="20" symbolic="YES" id="Rh5-ui-UcZ"/>
|
||||
<constraint firstItem="cqu-Og-bZH" firstAttribute="leading" secondItem="hkT-SX-Te1" secondAttribute="leading" constant="20" id="gYP-ft-N5i"/>
|
||||
<constraint firstItem="2MY-PW-kzL" firstAttribute="top" secondItem="5D9-bT-JAr" secondAttribute="bottom" constant="19" id="kWf-As-lIR"/>
|
||||
<constraint firstItem="cqu-Og-bZH" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="hkT-SX-Te1" secondAttribute="leading" constant="20" symbolic="YES" id="d5c-TB-dUg"/>
|
||||
<constraint firstItem="2MY-PW-kzL" firstAttribute="top" secondItem="5D9-bT-JAr" secondAttribute="bottom" constant="1" id="kWf-As-lIR"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<constraints>
|
||||
@@ -363,7 +418,7 @@ Gw
|
||||
</tabViewItem>
|
||||
<tabViewItem label="Advanced" identifier="" id="368">
|
||||
<view key="view" id="369">
|
||||
<rect key="frame" x="10" y="33" width="501" height="312"/>
|
||||
<rect key="frame" x="10" y="33" width="502" height="312"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<button verticalHuggingPriority="1000" translatesAutoresizingMaskIntoConstraints="NO" id="531">
|
||||
@@ -593,7 +648,7 @@ Gw
|
||||
<constraint firstItem="956" firstAttribute="top" secondItem="357" secondAttribute="bottom" constant="10" id="1096"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<point key="canvasLocation" x="153" y="31"/>
|
||||
<point key="canvasLocation" x="-104" y="1"/>
|
||||
</window>
|
||||
</objects>
|
||||
</document>
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="6250" systemVersion="13F34" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="11542" systemVersion="16B2555" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||
<dependencies>
|
||||
<deployment identifier="macosx"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="6250"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11542"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<customObject id="-2" userLabel="File's Owner" customClass="MPDocumentWindowController">
|
||||
@@ -17,11 +18,12 @@
|
||||
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
|
||||
<windowCollectionBehavior key="collectionBehavior" fullScreenPrimary="YES"/>
|
||||
<rect key="contentRect" x="196" y="240" width="700" height="500"/>
|
||||
<rect key="screenRect" x="0.0" y="0.0" width="1680" height="1028"/>
|
||||
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/>
|
||||
<view key="contentView" id="2">
|
||||
<rect key="frame" x="0.0" y="0.0" width="700" height="500"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</view>
|
||||
<point key="canvasLocation" x="54" y="51"/>
|
||||
</window>
|
||||
<splitView autosaveName="" dividerStyle="thin" vertical="YES" translatesAutoresizingMaskIntoConstraints="NO" id="697">
|
||||
<rect key="frame" x="0.0" y="0.0" width="560" height="194"/>
|
||||
|
||||
@@ -29,11 +29,17 @@ typedef NS_ENUM(NSUInteger, MPDatabaseSettingsTab) {
|
||||
@property (weak) IBOutlet NSColorWell *databaseColorColorWell;
|
||||
|
||||
/* Security Tab */
|
||||
@property (weak) IBOutlet NSTextField *AESEncryptionRoundsTextField;
|
||||
@property (weak) IBOutlet NSButton *createKeyDerivationParametersButton;
|
||||
@property (weak) IBOutlet NSPopUpButton *encryptionPopupButton;
|
||||
@property (weak) IBOutlet NSPopUpButton *keyDerivationPopupButton;
|
||||
@property (weak) IBOutlet NSTabView *keyDerivationSettingsTabView;
|
||||
|
||||
/* AES */
|
||||
@property (weak) IBOutlet NSTextField *AESEncryptionRoundsTextField;
|
||||
/* Argon2 */
|
||||
@property (weak) IBOutlet NSTextField *Argon2ThreadsTextField;
|
||||
@property (weak) IBOutlet NSTextField *Argon2IterationsTextField;
|
||||
@property (weak) IBOutlet NSTextField *Argon2MemoryTextField;
|
||||
|
||||
/* Advanced Tab*/
|
||||
@property (weak) IBOutlet NSButton *enableHistoryCheckButton;
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
@interface MPDatabaseSettingsWindowController () {
|
||||
NSString *_missingFeature;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation MPDatabaseSettingsWindowController
|
||||
@@ -48,7 +47,6 @@
|
||||
self.sectionTabView.delegate = self;
|
||||
self.AESEncryptionRoundsTextField.formatter = [[MPNumericalInputFormatter alloc] init];
|
||||
|
||||
|
||||
NSMenu *kdfMenu = [[NSMenu alloc] init];
|
||||
NSArray *keyderivations = [KPKKeyDerivation availableKeyDerivations];
|
||||
for(KPKKeyDerivation *kd in keyderivations) {
|
||||
@@ -56,6 +54,9 @@
|
||||
kdfMenu.itemArray.lastObject.representedObject = kd.uuid;
|
||||
}
|
||||
self.keyDerivationPopupButton.menu = kdfMenu;
|
||||
self.keyDerivationPopupButton.target = self;
|
||||
self.keyDerivationPopupButton.action = @selector(selectKeyDerivation:);
|
||||
|
||||
NSMenu *cipherMenu = [[NSMenu alloc] init];
|
||||
NSArray *ciphers = [KPKCipher availableCiphers];
|
||||
for(KPKCipher *cipher in ciphers) {
|
||||
@@ -63,10 +64,17 @@
|
||||
cipherMenu.itemArray.lastObject.representedObject = cipher.uuid;
|
||||
}
|
||||
self.encryptionPopupButton.menu = cipherMenu;
|
||||
self.keyDerivationSettingsTabView.tabViewItems[0].identifier = [KPKAESKeyDerivation uuid];
|
||||
self.keyDerivationSettingsTabView.tabViewItems[1].identifier = [KPKArgon2KeyDerivation uuid];
|
||||
}
|
||||
|
||||
#pragma mark Actions
|
||||
|
||||
- (IBAction)selectKeyDerivation:(id)sender {
|
||||
NSUUID *uuid = self.keyDerivationPopupButton.selectedItem.representedObject;
|
||||
[self.keyDerivationSettingsTabView selectTabViewItemWithIdentifier:uuid];
|
||||
}
|
||||
|
||||
- (IBAction)save:(id)sender {
|
||||
/* General */
|
||||
KPKMetaData *metaData = ((MPDocument *)self.document).tree.metaData;
|
||||
@@ -112,6 +120,7 @@
|
||||
|
||||
metaData.defaultUserName = self.defaultUsernameTextField.stringValue;
|
||||
|
||||
/* fixme! */
|
||||
metaData.keyDerivationParameters = @{ KPKAESRoundsOption : [[KPKNumber alloc] initWithUnsignedInteger64: MAX(0,self.AESEncryptionRoundsTextField.integerValue)]};
|
||||
|
||||
/* Register an action to enable promts when user cloeses without saving */
|
||||
@@ -181,12 +190,44 @@
|
||||
}
|
||||
|
||||
- (void)_setupSecurityTab:(KPKMetaData *)metaData {
|
||||
[self.AESEncryptionRoundsTextField setIntegerValue:[metaData.keyDerivationParameters[KPKAESRoundsOption] unsignedInteger64Value]];
|
||||
/* Tab 0 AES Tab 1 Argon2 */
|
||||
KPKKeyDerivation *keyDerivation = [KPKKeyDerivation keyDerivationWithParameters:metaData.keyDerivationParameters];
|
||||
|
||||
self.createKeyDerivationParametersButton.enabled = YES;
|
||||
NSUInteger kdfIndex = [self.keyDerivationPopupButton.menu indexOfItemWithRepresentedObject:keyDerivation.uuid];
|
||||
[self.keyDerivationPopupButton selectItemAtIndex:kdfIndex];
|
||||
|
||||
if([keyDerivation isKindOfClass:[KPKAESKeyDerivation class]]) {
|
||||
[self.keyDerivationSettingsTabView selectTabViewItemAtIndex:0];
|
||||
KPKAESKeyDerivation *aesKDF = (KPKAESKeyDerivation *)keyDerivation;
|
||||
self.AESEncryptionRoundsTextField.integerValue = aesKDF.rounds;
|
||||
self.createKeyDerivationParametersButton.enabled = YES;
|
||||
|
||||
/* fill defautls for Argon2 */
|
||||
KPKArgon2KeyDerivation *argon2Kdf = [[KPKArgon2KeyDerivation alloc] initWithParameters:[KPKArgon2KeyDerivation defaultParameters]];
|
||||
self.Argon2IterationsTextField.integerValue = argon2Kdf.iterations;
|
||||
self.Argon2MemoryTextField.integerValue = argon2Kdf.memory;
|
||||
self.Argon2ThreadsTextField.integerValue = argon2Kdf.threads;
|
||||
}
|
||||
else if([keyDerivation isKindOfClass:[KPKArgon2KeyDerivation class]]) {
|
||||
[self.keyDerivationSettingsTabView selectTabViewItemAtIndex:1];
|
||||
KPKArgon2KeyDerivation *argon2KDF = (KPKArgon2KeyDerivation *)keyDerivation;
|
||||
self.Argon2MemoryTextField.integerValue = argon2KDF.memory;
|
||||
self.Argon2ThreadsTextField.integerValue = argon2KDF.threads;
|
||||
self.Argon2IterationsTextField.integerValue = argon2KDF.iterations;
|
||||
|
||||
/* fill defaults for AES */
|
||||
KPKAESKeyDerivation *aesKdf = [[KPKAESKeyDerivation alloc] initWithParameters:[KPKAESKeyDerivation defaultParameters]];
|
||||
self.AESEncryptionRoundsTextField.integerValue = aesKdf.rounds;
|
||||
}
|
||||
else {
|
||||
|
||||
}
|
||||
|
||||
NSUInteger cipherIndex = [self.encryptionPopupButton.menu indexOfItemWithRepresentedObject:metaData.cipherUUID];
|
||||
[self.encryptionPopupButton selectItemAtIndex:cipherIndex];
|
||||
}
|
||||
|
||||
- (void)_setupAdvancedTab:(KPKTree *)tree {
|
||||
- (void)_setupAdvancedTab:(KPKTree *)tree {
|
||||
HNHUISetStateFromBool(self.enableTrashCheckButton, tree.metaData.useTrash);
|
||||
self.selectTrashGoupPopUpButton.enabled = tree.metaData.useTrash;
|
||||
[self.enableTrashCheckButton bind:NSValueBinding toObject:self.selectTrashGoupPopUpButton withKeyPath:NSEnabledBinding options:nil];
|
||||
|
||||
Reference in New Issue
Block a user