mirror of
https://github.com/MacPass/MacPass.git
synced 2025-12-13 19:22:25 +00:00
reworked layout for advanced tab in database settings windows
This commit is contained in:
@@ -93,6 +93,7 @@
|
||||
4C3826CC1AD04D8E007D7D67 /* 65_WikiTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C3826A21AD04D8E007D7D67 /* 65_WikiTemplate.pdf */; };
|
||||
4C3826CD1AD04D8E007D7D67 /* 66_MoneyTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C3826A31AD04D8E007D7D67 /* 66_MoneyTemplate.pdf */; };
|
||||
4C3826CE1AD04D8E007D7D67 /* 67_CertificatTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C3826A41AD04D8E007D7D67 /* 67_CertificatTemplate.pdf */; };
|
||||
4C3B42871F935316007B04FD /* MPDayCountFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C3B42861F935316007B04FD /* MPDayCountFormatter.m */; };
|
||||
4C3BD51516D276F800389F1F /* MPToolbarDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C3BD51416D276F800389F1F /* MPToolbarDelegate.m */; };
|
||||
4C3C4EAF18D7039300153127 /* MPValueTransformerHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C3C4EAE18D7039300153127 /* MPValueTransformerHelper.m */; };
|
||||
4C3FFD9E16DAF60600DF9186 /* ContextBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C3FFD9D16DAF60600DF9186 /* ContextBar.xib */; };
|
||||
@@ -408,6 +409,8 @@
|
||||
4C3826A21AD04D8E007D7D67 /* 65_WikiTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 65_WikiTemplate.pdf; sourceTree = "<group>"; };
|
||||
4C3826A31AD04D8E007D7D67 /* 66_MoneyTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 66_MoneyTemplate.pdf; sourceTree = "<group>"; };
|
||||
4C3826A41AD04D8E007D7D67 /* 67_CertificatTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 67_CertificatTemplate.pdf; sourceTree = "<group>"; };
|
||||
4C3B42851F935316007B04FD /* MPDayCountFormatter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPDayCountFormatter.h; sourceTree = "<group>"; };
|
||||
4C3B42861F935316007B04FD /* MPDayCountFormatter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPDayCountFormatter.m; sourceTree = "<group>"; };
|
||||
4C3BD51316D276F800389F1F /* MPToolbarDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPToolbarDelegate.h; sourceTree = "<group>"; };
|
||||
4C3BD51416D276F800389F1F /* MPToolbarDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPToolbarDelegate.m; sourceTree = "<group>"; };
|
||||
4C3C4EAD18D7039300153127 /* MPValueTransformerHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPValueTransformerHelper.h; sourceTree = "<group>"; };
|
||||
@@ -963,6 +966,8 @@
|
||||
4C4B7EF717A4B335000234C7 /* MPUniqueCharactersFormatter.m */,
|
||||
4C224B4017DFCB2300FF6AEE /* MPNumericalInputFormatter.h */,
|
||||
4C224B4117DFCB2400FF6AEE /* MPNumericalInputFormatter.m */,
|
||||
4C3B42851F935316007B04FD /* MPDayCountFormatter.h */,
|
||||
4C3B42861F935316007B04FD /* MPDayCountFormatter.m */,
|
||||
4C3C4EAD18D7039300153127 /* MPValueTransformerHelper.h */,
|
||||
4C3C4EAE18D7039300153127 /* MPValueTransformerHelper.m */,
|
||||
4C26C33D18D8C92100CF1A1C /* MPTemporaryFileStorage.h */,
|
||||
@@ -1844,6 +1849,7 @@
|
||||
4CE3E62617AB0D2D00D9E4B4 /* MPAttachmentTableDataSource.m in Sources */,
|
||||
4C0728BD17B5B7F7005A7DD9 /* MPPasswordEditWindowController.m in Sources */,
|
||||
4C0F647B17B6BC9C00D9522A /* MPSavePanelAccessoryViewController.m in Sources */,
|
||||
4C3B42871F935316007B04FD /* MPDayCountFormatter.m in Sources */,
|
||||
4C57AE1417BA422B00CA4F34 /* MPSegmentedContextCell.m in Sources */,
|
||||
4CE2961518429AA5005F01CE /* MPAutotypeKeyPress.m in Sources */,
|
||||
4C32B0E71A1D4436007E12F1 /* KPKFormat+MPUTIDetection.m in Sources */,
|
||||
|
||||
@@ -23,17 +23,20 @@
|
||||
<outlet property="databaseDescriptionTextView" destination="1531" id="1553"/>
|
||||
<outlet property="databaseNameTextField" destination="231" id="655"/>
|
||||
<outlet property="defaultUsernameTextField" destination="1730" id="1819"/>
|
||||
<outlet property="emptyTrashOnQuitCheckButton" destination="539" id="pgQ-AP-HB2"/>
|
||||
<outlet property="enableHistoryCheckButton" destination="531" id="erw-Xj-ENh"/>
|
||||
<outlet property="enableTrashCheckButton" destination="535" id="UNd-h9-aw3"/>
|
||||
<outlet property="enforceKeyChangeCheckButton" destination="upv-b3-vCc" id="JjM-CX-15q"/>
|
||||
<outlet property="enforceKeyChangeIntervalStepper" destination="lH4-xp-5QF" id="K1S-Og-OGK"/>
|
||||
<outlet property="enforceKeyChangeIntervalTextField" destination="VYh-cm-fix" id="aqu-Dm-tlH"/>
|
||||
<outlet property="enforceKeyChangeOnceCheckButton" destination="VMc-Qg-eCr" id="Ith-Jn-JVX"/>
|
||||
<outlet property="historyMaximumItemsStepper" destination="599" id="aRL-wb-JSA"/>
|
||||
<outlet property="historyMaximumItemsTextField" destination="593" id="NrX-e0-8Dw"/>
|
||||
<outlet property="historyMaxiumSizeTextField" destination="1273" id="5Fo-Pp-8dY"/>
|
||||
<outlet property="historyMaximumSizeStepper" destination="1294" id="Jbo-ZY-5h6"/>
|
||||
<outlet property="historyMaximumSizeTextField" 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="recommendKeyChangeIntervalStepper" destination="GUO-6H-UI2" id="gIQ-c2-pkx"/>
|
||||
<outlet property="recommendKeyChangeIntervalTextField" destination="19r-LE-7X5" id="c5C-1h-LpD"/>
|
||||
<outlet property="sectionTabView" destination="357" id="699"/>
|
||||
<outlet property="selectTrashGoupPopUpButton" destination="678" id="MmE-QI-reD"/>
|
||||
@@ -46,14 +49,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="548" height="411"/>
|
||||
<rect key="contentRect" x="196" y="240" width="553" height="319"/>
|
||||
<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="548" height="335"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="553" height="484"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="288">
|
||||
<rect key="frame" x="475" y="13" width="59" height="32"/>
|
||||
<rect key="frame" x="480" 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"/>
|
||||
@@ -66,7 +69,7 @@ DQ
|
||||
</connections>
|
||||
</button>
|
||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="956">
|
||||
<rect key="frame" x="393" y="13" width="82" height="32"/>
|
||||
<rect key="frame" x="398" 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"/>
|
||||
@@ -79,7 +82,7 @@ Gw
|
||||
</connections>
|
||||
</button>
|
||||
<tabView translatesAutoresizingMaskIntoConstraints="NO" id="357">
|
||||
<rect key="frame" x="13" y="41" width="522" height="288"/>
|
||||
<rect key="frame" x="13" y="41" width="527" height="437"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<tabViewItems>
|
||||
<tabViewItem label="General" identifier="1" id="358">
|
||||
@@ -424,101 +427,88 @@ Gw
|
||||
</tabViewItem>
|
||||
<tabViewItem label="Advanced" identifier="" id="368">
|
||||
<view key="view" id="369">
|
||||
<rect key="frame" x="10" y="33" width="502" height="335"/>
|
||||
<rect key="frame" x="10" y="33" width="507" height="391"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<button verticalHuggingPriority="1000" translatesAutoresizingMaskIntoConstraints="NO" id="531">
|
||||
<rect key="frame" x="70" y="299" width="145" height="18"/>
|
||||
<buttonCell key="cell" type="check" title="Enable Entry History" bezelStyle="regularSquare" imagePosition="left" enabled="NO" state="on" inset="2" id="532">
|
||||
<rect key="frame" x="184" y="355" width="145" height="18"/>
|
||||
<buttonCell key="cell" type="check" title="Enable Entry History" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="532">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
</button>
|
||||
<button translatesAutoresizingMaskIntoConstraints="NO" id="535">
|
||||
<rect key="frame" x="70" y="201" width="137" height="18"/>
|
||||
<buttonCell key="cell" type="check" title="Enable Recycle Bin" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="536">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
</button>
|
||||
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="557">
|
||||
<rect key="frame" x="110" y="274" width="103" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" enabled="NO" sendsActionOnEndEditing="YES" title="Maximum Items:" id="558">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="593">
|
||||
<rect key="frame" x="219" y="271" width="96" height="22"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="96" id="pYi-8G-RA7"/>
|
||||
</constraints>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" enabled="NO" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="594">
|
||||
<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>
|
||||
<stepper horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="599">
|
||||
<rect key="frame" x="320" y="268" width="19" height="27"/>
|
||||
<stepperCell key="cell" continuous="YES" enabled="NO" alignment="left" maxValue="100" id="600"/>
|
||||
</stepper>
|
||||
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="678">
|
||||
<rect key="frame" x="217" y="195" width="220" height="26"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="215" id="AIY-63-gl0"/>
|
||||
</constraints>
|
||||
<popUpButtonCell key="cell" type="push" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" id="679">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
<menu key="menu" title="OtherViews" id="680"/>
|
||||
</popUpButtonCell>
|
||||
</popUpButton>
|
||||
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="1268">
|
||||
<rect key="frame" x="117" y="242" width="96" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" enabled="NO" sendsActionOnEndEditing="YES" title="Maximum Size:" id="1269">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="1273">
|
||||
<rect key="frame" x="219" y="239" width="96" height="22"/>
|
||||
<rect key="frame" x="186" y="327" width="64" height="22"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="96" id="lRA-HE-AaF"/>
|
||||
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="64" id="PRg-vx-8QK"/>
|
||||
</constraints>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" enabled="NO" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="1275">
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="1275">
|
||||
<byteCountFormatter key="formatter" countStyle="binary" allowsNonnumericFormatting="NO" id="q0Y-Ri-l1A"/>
|
||||
<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>
|
||||
<stepper horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="1294">
|
||||
<rect key="frame" x="320" y="236" width="19" height="27"/>
|
||||
<stepperCell key="cell" continuous="YES" enabled="NO" alignment="left" maxValue="100" id="1295"/>
|
||||
<rect key="frame" x="255" y="324" width="19" height="27"/>
|
||||
<stepperCell key="cell" continuous="YES" alignment="left" maxValue="100" id="1295"/>
|
||||
</stepper>
|
||||
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="1268">
|
||||
<rect key="frame" x="52" y="330" width="128" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" enabled="NO" sendsActionOnEndEditing="YES" title="Maxium history size:" id="1269">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="557">
|
||||
<rect key="frame" x="18" y="302" width="162" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" enabled="NO" sendsActionOnEndEditing="YES" title="Maximum items in history:" id="558">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="593">
|
||||
<rect key="frame" x="186" y="299" width="64" height="22"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="594">
|
||||
<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>
|
||||
<stepper horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="599">
|
||||
<rect key="frame" x="255" y="296" width="19" height="27"/>
|
||||
<stepperCell key="cell" continuous="YES" alignment="left" maxValue="100" id="600"/>
|
||||
</stepper>
|
||||
<button translatesAutoresizingMaskIntoConstraints="NO" id="535">
|
||||
<rect key="frame" x="184" y="265" width="137" height="18"/>
|
||||
<buttonCell key="cell" type="check" title="Enable Recycle Bin" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="536">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
</button>
|
||||
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="678">
|
||||
<rect key="frame" x="184" y="235" width="37" height="26"/>
|
||||
<popUpButtonCell key="cell" type="push" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" id="679">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
<menu key="menu" title="OtherViews" id="680"/>
|
||||
</popUpButtonCell>
|
||||
</popUpButton>
|
||||
<box verticalHuggingPriority="750" boxType="separator" translatesAutoresizingMaskIntoConstraints="NO" id="U7M-MH-EFw">
|
||||
<rect key="frame" x="20" y="287" width="467" height="5"/>
|
||||
</box>
|
||||
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="1582">
|
||||
<rect key="frame" x="96" y="149" width="117" height="17"/>
|
||||
<rect key="frame" x="63" y="199" width="117" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Default Username:" id="1591">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="1584">
|
||||
<rect key="frame" x="108" y="108" width="105" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Template Group:" id="1588">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="1730">
|
||||
<rect key="frame" x="219" y="146" width="215" height="22"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="215" id="J2z-RZ-eS1"/>
|
||||
</constraints>
|
||||
<rect key="frame" x="186" y="196" width="301" height="22"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="1731">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
@@ -526,10 +516,7 @@ Gw
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="1738">
|
||||
<rect key="frame" x="217" y="102" width="220" height="26"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="215" id="5P2-dy-dfo"/>
|
||||
</constraints>
|
||||
<rect key="frame" x="184" y="152" width="76" height="26"/>
|
||||
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="1741" id="1739">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
@@ -542,59 +529,70 @@ Gw
|
||||
</menu>
|
||||
</popUpButtonCell>
|
||||
</popUpButton>
|
||||
<button verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Hqc-B0-xyz">
|
||||
<rect key="frame" x="70" y="77" width="211" height="18"/>
|
||||
<buttonCell key="cell" type="check" title="Recommend key change every:" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="CtU-Eq-dgy">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
</button>
|
||||
<button translatesAutoresizingMaskIntoConstraints="NO" id="upv-b3-vCc">
|
||||
<rect key="frame" x="70" y="45" width="211" height="18"/>
|
||||
<buttonCell key="cell" type="check" title="Force key change every:" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="z6u-YT-7LE">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
</button>
|
||||
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="19r-LE-7X5">
|
||||
<rect key="frame" x="287" y="75" width="38" height="22"/>
|
||||
<rect key="frame" x="186" y="94" width="128" height="22"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="38" id="Zyg-Bo-eBy"/>
|
||||
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="128" id="COb-0V-OmT"/>
|
||||
</constraints>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" placeholderString="days" drawsBackground="YES" id="Nca-aw-6rR">
|
||||
<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="VYh-cm-fix">
|
||||
<rect key="frame" x="287" y="43" width="38" height="22"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="38" id="hgc-dE-uYj"/>
|
||||
</constraints>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" placeholderString="days" drawsBackground="YES" id="M9G-Yy-1s4">
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="Nca-aw-6rR">
|
||||
<customFormatter key="formatter" id="fXZ-RM-4M7" customClass="MPDayCountFormatter"/>
|
||||
<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>
|
||||
<stepper horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="GUO-6H-UI2">
|
||||
<rect key="frame" x="330" y="72" width="19" height="27"/>
|
||||
<stepperCell key="cell" continuous="YES" enabled="NO" alignment="left" maxValue="100" id="qQV-3d-GpK"/>
|
||||
<rect key="frame" x="319" y="92" width="19" height="27"/>
|
||||
<stepperCell key="cell" continuous="YES" alignment="left" maxValue="100" id="qQV-3d-GpK"/>
|
||||
</stepper>
|
||||
<stepper horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="lH4-xp-5QF">
|
||||
<rect key="frame" x="330" y="40" width="19" height="27"/>
|
||||
<stepperCell key="cell" continuous="YES" enabled="NO" alignment="left" maxValue="100" id="7Hw-Qf-zWf"/>
|
||||
</stepper>
|
||||
<button verticalHuggingPriority="1000" translatesAutoresizingMaskIntoConstraints="NO" id="539">
|
||||
<rect key="frame" x="110" y="174" width="182" height="18"/>
|
||||
<buttonCell key="cell" type="check" title="Empty Recycle Bin on Quit" bezelStyle="regularSquare" imagePosition="left" enabled="NO" state="on" inset="2" id="540">
|
||||
<button verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Hqc-B0-xyz">
|
||||
<rect key="frame" x="184" y="122" width="175" height="18"/>
|
||||
<buttonCell key="cell" type="check" title="Recommend key change:" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="CtU-Eq-dgy">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
</button>
|
||||
<button translatesAutoresizingMaskIntoConstraints="NO" id="upv-b3-vCc">
|
||||
<rect key="frame" x="184" y="70" width="133" height="18"/>
|
||||
<buttonCell key="cell" type="check" title="Force key change:" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="z6u-YT-7LE">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
</button>
|
||||
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="VYh-cm-fix">
|
||||
<rect key="frame" x="186" y="42" width="128" height="22"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="M9G-Yy-1s4">
|
||||
<customFormatter key="formatter" id="3Ax-U4-Ofb" customClass="MPDayCountFormatter"/>
|
||||
<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>
|
||||
<stepper horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="lH4-xp-5QF">
|
||||
<rect key="frame" x="319" y="40" width="19" height="27"/>
|
||||
<stepperCell key="cell" continuous="YES" alignment="left" maxValue="100" id="7Hw-Qf-zWf"/>
|
||||
</stepper>
|
||||
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="1584">
|
||||
<rect key="frame" x="75" y="158" width="105" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Template Group:" id="1588">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<box verticalHuggingPriority="750" boxType="separator" translatesAutoresizingMaskIntoConstraints="NO" id="I0d-r2-ySf">
|
||||
<rect key="frame" x="20" y="144" width="467" height="5"/>
|
||||
</box>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="NPm-5h-2Mz">
|
||||
<rect key="frame" x="72" y="242" width="108" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Recylebin Group:" id="kI5-Kp-byE">
|
||||
<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>
|
||||
<button translatesAutoresizingMaskIntoConstraints="NO" id="VMc-Qg-eCr">
|
||||
<rect key="frame" x="70" y="18" width="257" height="18"/>
|
||||
<rect key="frame" x="184" y="18" width="257" height="18"/>
|
||||
<buttonCell key="cell" type="check" title="Force key change once after unlocking" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="pA1-aL-KjT">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
@@ -602,51 +600,77 @@ Gw
|
||||
</button>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="GUO-6H-UI2" firstAttribute="centerY" secondItem="19r-LE-7X5" secondAttribute="centerY" id="0fF-mc-ILf"/>
|
||||
<constraint firstItem="1582" firstAttribute="baseline" secondItem="1730" secondAttribute="baseline" id="53m-Go-qj7"/>
|
||||
<constraint firstItem="678" firstAttribute="leading" secondItem="1273" secondAttribute="leading" id="7jg-oH-RBQ"/>
|
||||
<constraint firstItem="lH4-xp-5QF" firstAttribute="leading" secondItem="VYh-cm-fix" secondAttribute="trailing" constant="8" symbolic="YES" id="7mR-Hk-xAf"/>
|
||||
<constraint firstItem="539" firstAttribute="top" secondItem="678" secondAttribute="bottom" constant="8" symbolic="YES" id="7wg-Ok-FP0"/>
|
||||
<constraint firstItem="557" firstAttribute="trailing" secondItem="1268" secondAttribute="trailing" id="8Is-lg-ht1"/>
|
||||
<constraint firstItem="VYh-cm-fix" firstAttribute="top" secondItem="19r-LE-7X5" secondAttribute="bottom" constant="10" symbolic="YES" id="AfZ-8U-Tew"/>
|
||||
<constraint firstItem="lH4-xp-5QF" firstAttribute="centerY" secondItem="VYh-cm-fix" secondAttribute="centerY" id="Aq5-9d-gTM"/>
|
||||
<constraint firstItem="19r-LE-7X5" firstAttribute="baseline" secondItem="Hqc-B0-xyz" secondAttribute="baseline" id="CvP-WC-EMv"/>
|
||||
<constraint firstItem="1273" firstAttribute="leading" secondItem="593" secondAttribute="leading" id="Cxq-Js-tRX"/>
|
||||
<constraint firstItem="upv-b3-vCc" firstAttribute="baseline" secondItem="VYh-cm-fix" secondAttribute="baseline" id="Dfq-TI-0Fb"/>
|
||||
<constraint firstItem="1730" firstAttribute="leading" secondItem="1582" secondAttribute="trailing" constant="8" id="EEF-5l-QJ1"/>
|
||||
<constraint firstItem="GUO-6H-UI2" firstAttribute="leading" secondItem="19r-LE-7X5" secondAttribute="trailing" constant="8" symbolic="YES" id="G2W-PR-I5F"/>
|
||||
<constraint firstItem="531" firstAttribute="top" secondItem="369" secondAttribute="top" constant="20" symbolic="YES" id="G3I-RI-dcb"/>
|
||||
<constraint firstItem="599" firstAttribute="leading" secondItem="593" secondAttribute="trailing" constant="8" id="Gso-aR-tMT"/>
|
||||
<constraint firstItem="VYh-cm-fix" firstAttribute="leading" secondItem="upv-b3-vCc" secondAttribute="trailing" constant="8" symbolic="YES" id="Gvz-cw-gyJ"/>
|
||||
<constraint firstItem="535" firstAttribute="baseline" secondItem="678" secondAttribute="baseline" id="IOP-Cc-JfA"/>
|
||||
<constraint firstItem="1273" firstAttribute="baseline" secondItem="1268" secondAttribute="baseline" id="KbL-8w-fEa"/>
|
||||
<constraint firstItem="1738" firstAttribute="leading" secondItem="1584" secondAttribute="trailing" constant="8" id="Mvn-4e-Z7D"/>
|
||||
<constraint firstItem="531" firstAttribute="leading" secondItem="Hqc-B0-xyz" secondAttribute="leading" id="Nxh-YG-snR"/>
|
||||
<constraint firstItem="1273" firstAttribute="top" secondItem="593" secondAttribute="bottom" constant="10" symbolic="YES" id="QhO-OW-itG"/>
|
||||
<constraint firstItem="531" firstAttribute="leading" secondItem="369" secondAttribute="leading" constant="72" id="ToY-AF-7CZ"/>
|
||||
<constraint firstItem="531" firstAttribute="leading" secondItem="upv-b3-vCc" secondAttribute="leading" id="UKO-82-vrB"/>
|
||||
<constraint firstAttribute="bottom" secondItem="VMc-Qg-eCr" secondAttribute="bottom" constant="20" symbolic="YES" id="UVL-oZ-gGY"/>
|
||||
<constraint firstItem="VMc-Qg-eCr" firstAttribute="top" secondItem="VYh-cm-fix" secondAttribute="bottom" constant="9" id="WDt-qR-mMT"/>
|
||||
<constraint firstItem="593" firstAttribute="leading" secondItem="557" secondAttribute="trailing" constant="8" id="bgR-yS-2b7"/>
|
||||
<constraint firstItem="1730" firstAttribute="top" secondItem="539" secondAttribute="bottom" constant="8" symbolic="YES" id="bkx-0b-opr"/>
|
||||
<constraint firstItem="1730" firstAttribute="leading" secondItem="678" secondAttribute="leading" id="cgb-Lx-8GP"/>
|
||||
<constraint firstItem="1294" firstAttribute="centerY" secondItem="1273" secondAttribute="centerY" id="cpr-BN-2DZ"/>
|
||||
<constraint firstItem="19r-LE-7X5" firstAttribute="top" secondItem="1738" secondAttribute="bottom" constant="8" symbolic="YES" id="dM9-Fh-j6y"/>
|
||||
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="VMc-Qg-eCr" secondAttribute="trailing" constant="20" symbolic="YES" id="eAd-MK-G1o"/>
|
||||
<constraint firstItem="557" firstAttribute="baseline" secondItem="593" secondAttribute="baseline" id="edx-L7-RYQ"/>
|
||||
<constraint firstItem="1584" firstAttribute="baseline" secondItem="1738" secondAttribute="baseline" id="fEL-DR-qHv"/>
|
||||
<constraint firstItem="19r-LE-7X5" firstAttribute="leading" secondItem="Hqc-B0-xyz" secondAttribute="trailing" constant="8" symbolic="YES" id="fVi-fB-ndY"/>
|
||||
<constraint firstItem="593" firstAttribute="top" secondItem="531" secondAttribute="bottom" constant="8" symbolic="YES" id="fjr-93-a9u"/>
|
||||
<constraint firstItem="678" firstAttribute="top" secondItem="1273" secondAttribute="bottom" constant="20" symbolic="YES" id="h5r-kC-cd1"/>
|
||||
<constraint firstItem="535" firstAttribute="leading" secondItem="539" secondAttribute="leading" constant="-40" id="hPW-3h-ls3"/>
|
||||
<constraint firstItem="599" firstAttribute="centerY" secondItem="593" secondAttribute="centerY" id="jJ1-FH-tRt"/>
|
||||
<constraint firstItem="557" firstAttribute="leading" secondItem="531" secondAttribute="leading" constant="40" id="p0B-Z6-af2"/>
|
||||
<constraint firstItem="1294" firstAttribute="leading" secondItem="1273" secondAttribute="trailing" constant="8" id="rgy-cX-WKJ"/>
|
||||
<constraint firstItem="1738" firstAttribute="leading" secondItem="1730" secondAttribute="leading" id="smv-y7-Jkl"/>
|
||||
<constraint firstItem="VYh-cm-fix" firstAttribute="leading" secondItem="19r-LE-7X5" secondAttribute="leading" id="tmY-iX-cZh"/>
|
||||
<constraint firstItem="531" firstAttribute="leading" secondItem="535" secondAttribute="leading" id="ucf-w0-brS"/>
|
||||
<constraint firstItem="1738" firstAttribute="top" secondItem="1730" secondAttribute="bottom" constant="20" symbolic="YES" id="wPN-zn-tg4"/>
|
||||
<constraint firstItem="VMc-Qg-eCr" firstAttribute="leading" secondItem="531" secondAttribute="leading" id="zl6-Bu-eJC"/>
|
||||
<constraint firstItem="1273" firstAttribute="leading" secondItem="531" secondAttribute="leading" id="1oM-2t-AOv"/>
|
||||
<constraint firstItem="GUO-6H-UI2" firstAttribute="leading" secondItem="19r-LE-7X5" secondAttribute="trailing" constant="8" symbolic="YES" id="2PV-sa-5h6"/>
|
||||
<constraint firstItem="VYh-cm-fix" firstAttribute="leading" secondItem="531" secondAttribute="leading" id="2Xr-j4-fRh"/>
|
||||
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="GUO-6H-UI2" secondAttribute="trailing" constant="20" symbolic="YES" id="3y6-lK-yT4"/>
|
||||
<constraint firstItem="593" firstAttribute="width" secondItem="1273" secondAttribute="width" id="4Ee-i1-ZVV"/>
|
||||
<constraint firstItem="U7M-MH-EFw" firstAttribute="leading" secondItem="369" secondAttribute="leading" constant="20" symbolic="YES" id="4vC-yz-H7O"/>
|
||||
<constraint firstItem="VYh-cm-fix" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="369" secondAttribute="leading" constant="20" symbolic="YES" id="5FH-au-cde"/>
|
||||
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="Hqc-B0-xyz" secondAttribute="trailing" constant="20" symbolic="YES" id="5c0-xg-zUq"/>
|
||||
<constraint firstItem="531" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="369" secondAttribute="leading" constant="181" id="6zN-79-Qnu"/>
|
||||
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="678" secondAttribute="trailing" constant="20" symbolic="YES" id="7i3-v0-KzW"/>
|
||||
<constraint firstItem="1730" firstAttribute="leading" secondItem="531" secondAttribute="leading" id="8U5-xL-RFD"/>
|
||||
<constraint firstItem="1294" firstAttribute="centerY" secondItem="1273" secondAttribute="centerY" id="9N2-YI-gkU"/>
|
||||
<constraint firstItem="upv-b3-vCc" firstAttribute="top" secondItem="19r-LE-7X5" secondAttribute="bottom" constant="8" symbolic="YES" id="9b8-i8-WsG"/>
|
||||
<constraint firstItem="593" firstAttribute="leading" secondItem="1273" secondAttribute="leading" id="BEV-US-Ovh"/>
|
||||
<constraint firstItem="19r-LE-7X5" firstAttribute="leading" secondItem="531" secondAttribute="leading" id="Bxq-DB-Mdf"/>
|
||||
<constraint firstItem="I0d-r2-ySf" firstAttribute="top" secondItem="1738" secondAttribute="bottom" constant="8" symbolic="YES" id="D8h-V2-rF2"/>
|
||||
<constraint firstItem="Hqc-B0-xyz" firstAttribute="leading" secondItem="531" secondAttribute="leading" id="DVO-fh-dB8"/>
|
||||
<constraint firstItem="531" firstAttribute="top" secondItem="369" secondAttribute="top" constant="20" symbolic="YES" id="DZt-k3-wht"/>
|
||||
<constraint firstItem="1294" firstAttribute="leading" secondItem="1273" secondAttribute="trailing" constant="8" symbolic="YES" id="EAc-QN-Zdi"/>
|
||||
<constraint firstItem="678" firstAttribute="top" secondItem="535" secondAttribute="bottom" constant="8" id="EUL-Ub-Kzl"/>
|
||||
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="599" secondAttribute="trailing" constant="20" symbolic="YES" id="Gsp-ax-sWf"/>
|
||||
<constraint firstItem="1273" firstAttribute="leading" secondItem="1268" secondAttribute="trailing" constant="8" symbolic="YES" id="H0a-Pl-w3M"/>
|
||||
<constraint firstItem="lH4-xp-5QF" firstAttribute="leading" secondItem="VYh-cm-fix" secondAttribute="trailing" constant="8" symbolic="YES" id="Ii9-vL-bAG"/>
|
||||
<constraint firstItem="19r-LE-7X5" firstAttribute="top" secondItem="Hqc-B0-xyz" secondAttribute="bottom" constant="8" symbolic="YES" id="KaF-Ep-rjY"/>
|
||||
<constraint firstItem="1584" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="369" secondAttribute="leading" constant="20" symbolic="YES" id="LT1-en-ksN"/>
|
||||
<constraint firstItem="1268" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="369" secondAttribute="leading" constant="20" symbolic="YES" id="MRP-DE-PpY"/>
|
||||
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="1294" secondAttribute="trailing" constant="20" symbolic="YES" id="Mod-SI-3xF"/>
|
||||
<constraint firstItem="1730" firstAttribute="leading" secondItem="1582" secondAttribute="trailing" constant="8" symbolic="YES" id="NFN-Hh-fQu"/>
|
||||
<constraint firstItem="678" firstAttribute="leading" secondItem="531" secondAttribute="leading" id="NKj-ux-wRY"/>
|
||||
<constraint firstItem="VMc-Qg-eCr" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="369" secondAttribute="leading" constant="20" symbolic="YES" id="Nbn-lS-NER"/>
|
||||
<constraint firstAttribute="trailing" secondItem="1730" secondAttribute="trailing" constant="20" symbolic="YES" id="OrK-k9-PSF"/>
|
||||
<constraint firstItem="1273" firstAttribute="baseline" secondItem="1268" secondAttribute="baseline" id="Q5P-hq-kp1"/>
|
||||
<constraint firstItem="1730" firstAttribute="top" secondItem="678" secondAttribute="bottom" constant="20" id="ROp-qW-SeX"/>
|
||||
<constraint firstItem="VMc-Qg-eCr" firstAttribute="leading" secondItem="531" secondAttribute="leading" id="SIP-kd-jaM"/>
|
||||
<constraint firstItem="1273" firstAttribute="top" secondItem="531" secondAttribute="bottom" constant="8" id="SjI-0M-mxU"/>
|
||||
<constraint firstItem="535" firstAttribute="leading" secondItem="531" secondAttribute="leading" id="TB6-AF-4H6"/>
|
||||
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="upv-b3-vCc" secondAttribute="trailing" constant="20" symbolic="YES" id="U7O-Ai-LSM"/>
|
||||
<constraint firstItem="535" firstAttribute="top" secondItem="U7M-MH-EFw" secondAttribute="bottom" constant="8" symbolic="YES" id="Uvh-5Q-ELd"/>
|
||||
<constraint firstAttribute="trailing" secondItem="U7M-MH-EFw" secondAttribute="trailing" constant="20" symbolic="YES" id="V98-nM-gJb"/>
|
||||
<constraint firstItem="599" firstAttribute="centerY" secondItem="593" secondAttribute="centerY" id="Wc5-zI-ZEb"/>
|
||||
<constraint firstAttribute="trailing" secondItem="I0d-r2-ySf" secondAttribute="trailing" constant="20" symbolic="YES" id="YKf-bh-TK9"/>
|
||||
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="lH4-xp-5QF" secondAttribute="trailing" constant="20" symbolic="YES" id="YeE-Vn-DiZ"/>
|
||||
<constraint firstItem="VMc-Qg-eCr" firstAttribute="top" secondItem="VYh-cm-fix" secondAttribute="bottom" constant="8" symbolic="YES" id="abg-f4-KyH"/>
|
||||
<constraint firstItem="Hqc-B0-xyz" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="369" secondAttribute="leading" constant="20" symbolic="YES" id="b0w-yr-yRd"/>
|
||||
<constraint firstItem="599" firstAttribute="leading" secondItem="593" secondAttribute="trailing" constant="8" symbolic="YES" id="bJC-wD-1tr"/>
|
||||
<constraint firstItem="557" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="369" secondAttribute="leading" constant="20" symbolic="YES" id="cS1-DC-wqY"/>
|
||||
<constraint firstItem="1582" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="369" secondAttribute="leading" constant="20" symbolic="YES" id="cwk-hq-VzW"/>
|
||||
<constraint firstItem="NPm-5h-2Mz" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="369" secondAttribute="leading" constant="20" symbolic="YES" id="fET-L3-Q98"/>
|
||||
<constraint firstItem="593" firstAttribute="leading" secondItem="557" secondAttribute="trailing" constant="8" symbolic="YES" id="gRs-a5-bni"/>
|
||||
<constraint firstItem="1738" firstAttribute="baseline" secondItem="1584" secondAttribute="baseline" id="gqn-vB-VZp"/>
|
||||
<constraint firstItem="1738" firstAttribute="leading" secondItem="531" secondAttribute="leading" id="gwj-YC-hxN"/>
|
||||
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="1738" secondAttribute="trailing" constant="20" symbolic="YES" id="hac-jI-arI"/>
|
||||
<constraint firstAttribute="bottom" relation="greaterThanOrEqual" secondItem="VMc-Qg-eCr" secondAttribute="bottom" constant="20" symbolic="YES" id="he9-J0-S1u"/>
|
||||
<constraint firstItem="VYh-cm-fix" firstAttribute="top" secondItem="upv-b3-vCc" secondAttribute="bottom" constant="8" symbolic="YES" id="hjn-Jx-hqk"/>
|
||||
<constraint firstItem="upv-b3-vCc" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="369" secondAttribute="leading" constant="20" symbolic="YES" id="hy0-Dk-mgY"/>
|
||||
<constraint firstItem="lH4-xp-5QF" firstAttribute="centerY" secondItem="VYh-cm-fix" secondAttribute="centerY" id="kBr-F4-JCu"/>
|
||||
<constraint firstItem="678" firstAttribute="baseline" secondItem="NPm-5h-2Mz" secondAttribute="baseline" id="lG3-Ah-hgg"/>
|
||||
<constraint firstItem="1738" firstAttribute="leading" secondItem="1584" secondAttribute="trailing" constant="8" symbolic="YES" id="p8Q-8i-dgy"/>
|
||||
<constraint firstItem="678" firstAttribute="leading" secondItem="NPm-5h-2Mz" secondAttribute="trailing" constant="8" symbolic="YES" id="pLt-Cf-KAV"/>
|
||||
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="VMc-Qg-eCr" secondAttribute="trailing" constant="20" symbolic="YES" id="qpu-zJ-eEc"/>
|
||||
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="531" secondAttribute="trailing" constant="180" id="rrS-VQ-gvR"/>
|
||||
<constraint firstItem="upv-b3-vCc" firstAttribute="leading" secondItem="531" secondAttribute="leading" id="rsd-1J-hnh"/>
|
||||
<constraint firstItem="I0d-r2-ySf" firstAttribute="leading" secondItem="369" secondAttribute="leading" constant="20" symbolic="YES" id="s3y-lW-Y2J"/>
|
||||
<constraint firstItem="593" firstAttribute="baseline" secondItem="557" secondAttribute="baseline" id="s4p-cI-vbY"/>
|
||||
<constraint firstItem="1738" firstAttribute="top" secondItem="1730" secondAttribute="bottom" constant="20" symbolic="YES" id="sb5-r3-XLt"/>
|
||||
<constraint firstItem="Hqc-B0-xyz" firstAttribute="top" secondItem="I0d-r2-ySf" secondAttribute="bottom" constant="8" symbolic="YES" id="t5k-Eh-ADF"/>
|
||||
<constraint firstItem="U7M-MH-EFw" firstAttribute="top" secondItem="599" secondAttribute="bottom" constant="8" symbolic="YES" id="t7y-8s-Nio"/>
|
||||
<constraint firstItem="VYh-cm-fix" firstAttribute="width" secondItem="19r-LE-7X5" secondAttribute="width" id="tg1-z9-11D"/>
|
||||
<constraint firstItem="1730" firstAttribute="baseline" secondItem="1582" secondAttribute="baseline" id="wvt-QO-HZ4"/>
|
||||
<constraint firstItem="GUO-6H-UI2" firstAttribute="centerY" secondItem="19r-LE-7X5" secondAttribute="centerY" id="yQu-gw-reJ"/>
|
||||
<constraint firstItem="593" firstAttribute="top" secondItem="1273" secondAttribute="bottom" constant="6" id="yTD-oa-Y1Q"/>
|
||||
</constraints>
|
||||
</view>
|
||||
</tabViewItem>
|
||||
@@ -664,7 +688,7 @@ Gw
|
||||
<constraint firstItem="956" firstAttribute="top" secondItem="357" secondAttribute="bottom" constant="10" id="1096"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<point key="canvasLocation" x="-570" y="-191"/>
|
||||
<point key="canvasLocation" x="-1440" y="-331"/>
|
||||
</window>
|
||||
</objects>
|
||||
</document>
|
||||
|
||||
@@ -58,7 +58,11 @@ typedef NS_ENUM(NSUInteger, MPDatabaseSettingsTab) {
|
||||
/* Advanced Tab*/
|
||||
@property (weak) IBOutlet NSButton *enableHistoryCheckButton;
|
||||
@property (weak) IBOutlet NSTextField *historyMaximumItemsTextField;
|
||||
@property (weak) IBOutlet NSTextField *historyMaxiumSizeTextField;
|
||||
@property (weak) IBOutlet NSStepper *historyMaximumItemsStepper;
|
||||
|
||||
@property (weak) IBOutlet NSTextField *historyMaximumSizeTextField;
|
||||
@property (weak) IBOutlet NSStepper *historyMaximumSizeStepper;
|
||||
|
||||
@property (weak) IBOutlet NSButton *enableTrashCheckButton;
|
||||
@property (weak) IBOutlet NSButton *emptyTrashOnQuitCheckButton;
|
||||
@property (weak) IBOutlet NSPopUpButton *selectTrashGoupPopUpButton;
|
||||
@@ -69,7 +73,9 @@ typedef NS_ENUM(NSUInteger, MPDatabaseSettingsTab) {
|
||||
@property (weak) IBOutlet NSButton *enforceKeyChangeCheckButton;
|
||||
@property (weak) IBOutlet NSButton *enforceKeyChangeOnceCheckButton;
|
||||
@property (weak) IBOutlet NSTextField *recommendKeyChangeIntervalTextField;
|
||||
@property (weak) IBOutlet NSStepper *recommendKeyChangeIntervalStepper;
|
||||
@property (weak) IBOutlet NSTextField *enforceKeyChangeIntervalTextField;
|
||||
@property (weak) IBOutlet NSStepper *enforceKeyChangeIntervalStepper;
|
||||
|
||||
- (void)showSettingsTab:(MPDatabaseSettingsTab)tab;
|
||||
|
||||
|
||||
@@ -37,7 +37,15 @@
|
||||
@interface MPDatabaseSettingsWindowController () {
|
||||
NSString *_missingFeature;
|
||||
}
|
||||
|
||||
@property (assign) BOOL enableHistory;
|
||||
@property (assign) NSInteger maxiumHistoryItems;
|
||||
@property (assign) NSInteger maxiumHistorySize;
|
||||
|
||||
@property (assign) BOOL enforceKeyChange;
|
||||
@property (assign) BOOL recommendKeyChange;
|
||||
@property (assign) NSInteger enforceKeyChangeInterval;
|
||||
@property (assign) NSInteger recommendKeyChangeInterval;
|
||||
|
||||
@end
|
||||
|
||||
@@ -82,9 +90,6 @@
|
||||
self.cipherPopupButton.menu = cipherMenu;
|
||||
self.keyDerivationSettingsTabView.tabViewItems[0].identifier = [KPKAESKeyDerivation uuid];
|
||||
self.keyDerivationSettingsTabView.tabViewItems[1].identifier = [KPKArgon2KeyDerivation uuid];
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
#pragma mark Actions
|
||||
@@ -119,11 +124,11 @@
|
||||
((MPDocument *)self.document).tree.trash = trashGroup;
|
||||
|
||||
BOOL requiresHistoryMaintainance = NO;
|
||||
requiresHistoryMaintainance = (metaData.historyMaxSize > self.historyMaxiumSizeTextField.integerValue ||
|
||||
requiresHistoryMaintainance = (metaData.historyMaxSize > self.historyMaximumSizeTextField.integerValue ||
|
||||
metaData.historyMaxItems > self.historyMaximumItemsTextField.integerValue);
|
||||
|
||||
metaData.historyMaxItems = self.historyMaximumItemsTextField.integerValue;
|
||||
metaData.historyMaxSize = self.historyMaxiumSizeTextField.integerValue;
|
||||
metaData.historyMaxItems = self.enableHistory ? self.maxiumHistoryItems : -1;
|
||||
metaData.historyMaxSize = self.maxiumHistorySize;
|
||||
|
||||
/* only maintain history if actually needed */
|
||||
if(requiresHistoryMaintainance) {
|
||||
@@ -277,11 +282,28 @@
|
||||
- (void)_setupAdvancedTab:(KPKTree *)tree {
|
||||
/* history */
|
||||
self.enableHistory = tree.metaData.isHistoryEnabled;
|
||||
[self.enableHistoryCheckButton bind:NSValueBinding toObject:self withKeyPath:NSStringFromSelector(@selector(enableHistory)) options:nil];
|
||||
self.historyMaximumItemsTextField.stringValue = [NSString stringWithFormat:@"%ld", tree.metaData.historyMaxItems];
|
||||
self.historyMaxiumSizeTextField.stringValue = [NSString stringWithFormat:@"%ld", tree.metaData.historyMaxSize];
|
||||
[self.historyMaximumItemsTextField bind:NSEnabledBinding toObject:self withKeyPath:NSStringFromSelector(@selector(enableHistory)) options:nil];
|
||||
[self.historyMaxiumSizeTextField bind:NSEnabledBinding toObject:self withKeyPath:NSStringFromSelector(@selector(enableHistory)) options:nil];
|
||||
[self.enableHistoryCheckButton bind:NSValueBinding
|
||||
toObject:self
|
||||
withKeyPath:NSStringFromSelector(@selector(enableHistory))
|
||||
options:nil];
|
||||
|
||||
/* history size */
|
||||
self.maxiumHistorySize = tree.metaData.historyMaxSize;
|
||||
self.historyMaximumSizeStepper.minValue = 0;
|
||||
self.historyMaximumSizeStepper.maxValue = NSIntegerMax;
|
||||
self.historyMaximumSizeStepper.increment = 1024*1024; // 1MB
|
||||
[self.historyMaximumSizeStepper bind:NSEnabledBinding toObject:self withKeyPath:NSStringFromSelector(@selector(enableHistory)) options:nil];
|
||||
[self.historyMaximumSizeStepper bind:NSValueBinding toObject:self withKeyPath:NSStringFromSelector(@selector(maxiumHistorySize)) options:nil];
|
||||
[self.historyMaximumSizeTextField bind:NSValueBinding toObject:self withKeyPath:NSStringFromSelector(@selector(maxiumHistorySize)) options:nil];
|
||||
|
||||
/* history count */
|
||||
self.maxiumHistoryItems = MAX(0,tree.metaData.historyMaxItems); // prevent -1 form showing up directly
|
||||
self.historyMaximumItemsStepper.minValue = 0;
|
||||
self.historyMaximumItemsStepper.maxValue = NSIntegerMax;
|
||||
self.historyMaximumItemsStepper.increment = 1;
|
||||
[self.historyMaximumItemsStepper bind:NSEnabledBinding toObject:self withKeyPath:NSStringFromSelector(@selector(enableHistory)) options:nil];
|
||||
[self.historyMaximumItemsStepper bind:NSValueBinding toObject:self withKeyPath:NSStringFromSelector(@selector(maxiumHistoryItems)) options:nil];
|
||||
[self.historyMaximumItemsTextField bind:NSValueBinding toObject:self withKeyPath:NSStringFromSelector(@selector(maxiumHistoryItems)) options:nil];
|
||||
|
||||
/* trash */
|
||||
HNHUISetStateFromBool(self.enableTrashCheckButton, tree.metaData.useTrash);
|
||||
@@ -295,22 +317,29 @@
|
||||
[self _updateTemplateGroup:tree];
|
||||
|
||||
/* key changes */
|
||||
self.enforceKeyChange = tree.metaData.enforceMasterKeyChange;
|
||||
self.recommendKeyChange = tree.metaData.recommendMasterKeyChange;
|
||||
HNHUISetStateFromBool(self.enforceKeyChangeOnceCheckButton, tree.metaData.enforceMasterKeyChangeOnce);
|
||||
HNHUISetStateFromBool(self.enforceKeyChangeCheckButton, tree.metaData.enforceMasterKeyChange);
|
||||
HNHUISetStateFromBool(self.recommendKeyChangeCheckButton, tree.metaData.recommendMasterKeyChange);
|
||||
[self.enforceKeyChangeIntervalTextField setEnabled:tree.metaData.enforceMasterKeyChange];
|
||||
[self.recommendKeyChangeIntervalTextField setEnabled:tree.metaData.recommendMasterKeyChange];
|
||||
|
||||
[self.enforceKeyChangeCheckButton bind:NSValueBinding toObject:self withKeyPath:NSStringFromSelector(@selector(enforceKeyChange)) options:nil];
|
||||
[self.recommendKeyChangeCheckButton bind:NSValueBinding toObject:self withKeyPath:NSStringFromSelector(@selector(recommendKeyChange)) options:nil];
|
||||
|
||||
self.enforceKeyChangeIntervalTextField.stringValue = @"";
|
||||
if(tree.metaData.enforceMasterKeyChange) {
|
||||
self.enforceKeyChangeIntervalTextField.integerValue = tree.metaData.masterKeyChangeEnforcementInterval;
|
||||
}
|
||||
self.recommendKeyChangeIntervalTextField.stringValue = @"";
|
||||
if(tree.metaData.recommendMasterKeyChange) {
|
||||
self.recommendKeyChangeIntervalTextField.integerValue = tree.metaData.masterKeyChangeRecommendationInterval;
|
||||
}
|
||||
[self.enforceKeyChangeCheckButton bind:NSValueBinding toObject:self.enforceKeyChangeIntervalTextField withKeyPath:NSEnabledBinding options:nil];
|
||||
[self.recommendKeyChangeCheckButton bind:NSValueBinding toObject:self.recommendKeyChangeIntervalTextField withKeyPath:NSEnabledBinding options:nil];
|
||||
/* intervals use -1 to encode disabled, do not show this in text fields! */
|
||||
self.enforceKeyChangeInterval = MAX(0,tree.metaData.masterKeyChangeEnforcementInterval);
|
||||
self.enforceKeyChangeIntervalStepper.minValue = 0;
|
||||
self.enforceKeyChangeIntervalStepper.maxValue = NSIntegerMax;
|
||||
self.enforceKeyChangeIntervalStepper.increment = 1; // 1 day steps
|
||||
[self.enforceKeyChangeIntervalStepper bind:NSEnabledBinding toObject:self withKeyPath:NSStringFromSelector(@selector(enforceKeyChange)) options:nil];
|
||||
[self.enforceKeyChangeIntervalStepper bind:NSValueBinding toObject:self withKeyPath:NSStringFromSelector(@selector(enforceKeyChangeInterval)) options:nil];
|
||||
[self.enforceKeyChangeIntervalTextField bind:NSValueBinding toObject:self withKeyPath:NSStringFromSelector(@selector(enforceKeyChangeInterval)) options:nil];
|
||||
|
||||
self.recommendKeyChangeInterval = MAX(0,tree.metaData.masterKeyChangeRecommendationInterval);
|
||||
self.recommendKeyChangeIntervalStepper.minValue = 0;
|
||||
self.recommendKeyChangeIntervalStepper.maxValue = NSIntegerMax;
|
||||
self.recommendKeyChangeIntervalStepper.increment = 1; // 1 day steps
|
||||
[self.recommendKeyChangeIntervalStepper bind:NSEnabledBinding toObject:self withKeyPath:NSStringFromSelector(@selector(recommendKeyChange)) options:nil];
|
||||
[self.recommendKeyChangeIntervalStepper bind:NSValueBinding toObject:self withKeyPath:NSStringFromSelector(@selector(recommendKeyChangeInterval)) options:nil];
|
||||
[self.recommendKeyChangeIntervalTextField bind:NSValueBinding toObject:self withKeyPath:NSStringFromSelector(@selector(recommendKeyChangeInterval)) options:nil];
|
||||
}
|
||||
|
||||
- (void)_updateFirstResponder {
|
||||
|
||||
16
MacPass/MPDayCountFormatter.h
Normal file
16
MacPass/MPDayCountFormatter.h
Normal file
@@ -0,0 +1,16 @@
|
||||
//
|
||||
// MPDayCountFormatter.h
|
||||
// MacPass
|
||||
//
|
||||
// Created by Michael Starke on 15.10.17.
|
||||
// Copyright © 2017 HicknHack Software GmbH. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
@interface MPDayCountFormatter : NSFormatter
|
||||
|
||||
@property (copy) NSString *zeroFormat; // Supply this to override the default format for a 0-value. Default will localize: "ZERO_DAYS"
|
||||
@property (copy) NSString *valueFormat; // Supply this to override the defualt format for all values not 0. Default will localized "%ld_DAYS"
|
||||
|
||||
@end
|
||||
48
MacPass/MPDayCountFormatter.m
Normal file
48
MacPass/MPDayCountFormatter.m
Normal file
@@ -0,0 +1,48 @@
|
||||
//
|
||||
// MPDayCountFormatter.m
|
||||
// MacPass
|
||||
//
|
||||
// Created by Michael Starke on 15.10.17.
|
||||
// Copyright © 2017 HicknHack Software GmbH. All rights reserved.
|
||||
//
|
||||
|
||||
#import "MPDayCountFormatter.h"
|
||||
|
||||
@implementation MPDayCountFormatter
|
||||
|
||||
- (instancetype)initWithCoder:(NSCoder *)aDecoder {
|
||||
self = [super initWithCoder:aDecoder];
|
||||
if(self) {
|
||||
[self _setupDefaults];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (instancetype)init {
|
||||
self = [super init];
|
||||
if(self) {
|
||||
[self _setupDefaults];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)_setupDefaults {
|
||||
self.zeroFormat = NSLocalizedString(@"ZERO_DAYS", @"String to be displayed instead of valueformat with 0 days");
|
||||
self.valueFormat = NSLocalizedString(@"%ld_DAYS", @"Display format for days. Should contain a long decimal placeholder!");
|
||||
}
|
||||
|
||||
- (NSString *)stringForObjectValue:(id)obj {
|
||||
NSAssert([obj isKindOfClass:NSNumber.class], @"Unsupporded object class. Only NSNumber objects are allowed!");
|
||||
NSNumber *number = obj;
|
||||
if(number.integerValue == 0) {
|
||||
return self.zeroFormat;
|
||||
}
|
||||
return [NSString stringWithFormat:self.valueFormat, number.integerValue];
|
||||
}
|
||||
|
||||
- (BOOL)getObjectValue:(out id _Nullable __autoreleasing *)obj forString:(NSString *)string errorDescription:(out NSString *__autoreleasing _Nullable *)error {
|
||||
NSAssert(NO,@"Value from string extraction not supported!");
|
||||
return NO;
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -523,8 +523,10 @@ typedef void (^MPPasswordChangedBlock)(BOOL didChangePassword);
|
||||
if(NSModalResponseOK == result) {
|
||||
document.tree.metaData.enforceMasterKeyChangeOnce = NO;
|
||||
}
|
||||
/* password was not changes, so keep nagging the user! */
|
||||
[self _presentPasswordIntervalAlerts];
|
||||
else {
|
||||
/* password was not changes, so keep nagging the user! */
|
||||
[self _presentPasswordIntervalAlerts];
|
||||
}
|
||||
}];
|
||||
});
|
||||
}];
|
||||
|
||||
Reference in New Issue
Block a user