Revamped selection handling to ensure Groupt/Entry display on view switchting

This commit is contained in:
michael starke
2013-06-20 20:56:14 +02:00
parent a1633ad6ba
commit dd14bae24f
21 changed files with 2622 additions and 1441 deletions

View File

@@ -122,7 +122,7 @@
4C77E37D15B84A240093A587 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C77E37B15B84A240093A587 /* MainMenu.xib */; };
4C79DF2A176685870083708F /* HNHRoundedTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C79DF29176685870083708F /* HNHRoundedTextField.m */; };
4C7E832A172DE2F2002493D8 /* MPPasswordEditViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C7E8329172DE2F2002493D8 /* MPPasswordEditViewController.m */; };
4C80BB6F176DE06F00E5E248 /* HNHFlippedView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C80BB6E176DE06F00E5E248 /* HNHFlippedView.m */; };
4C80BB6F176DE06F00E5E248 /* HNHScrollDocumentViewAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C80BB6E176DE06F00E5E248 /* HNHScrollDocumentViewAdapter.m */; };
4C811C8316ECD06E00C4BAC6 /* MPKeyfilePathControlDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C811C8216ECD06E00C4BAC6 /* MPKeyfilePathControlDelegate.m */; };
4C83814215BF4677001AE468 /* MPDocumentWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C83814115BF4677001AE468 /* MPDocumentWindowController.m */; };
4C888C9016EB6C91003D34A1 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4C888C8E16EB6C91003D34A1 /* Localizable.strings */; };
@@ -407,8 +407,8 @@
4C79DF2F1766941D0083708F /* MPResponderQuery.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPResponderQuery.h; sourceTree = "<group>"; };
4C7E8328172DE2F2002493D8 /* MPPasswordEditViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPPasswordEditViewController.h; sourceTree = "<group>"; };
4C7E8329172DE2F2002493D8 /* MPPasswordEditViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPPasswordEditViewController.m; sourceTree = "<group>"; };
4C80BB6D176DE06F00E5E248 /* HNHFlippedView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HNHFlippedView.h; sourceTree = "<group>"; };
4C80BB6E176DE06F00E5E248 /* HNHFlippedView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HNHFlippedView.m; sourceTree = "<group>"; };
4C80BB6D176DE06F00E5E248 /* HNHScrollDocumentViewAdapter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HNHScrollDocumentViewAdapter.h; sourceTree = "<group>"; };
4C80BB6E176DE06F00E5E248 /* HNHScrollDocumentViewAdapter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HNHScrollDocumentViewAdapter.m; sourceTree = "<group>"; };
4C811C8116ECD06E00C4BAC6 /* MPKeyfilePathControlDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPKeyfilePathControlDelegate.h; sourceTree = "<group>"; };
4C811C8216ECD06E00C4BAC6 /* MPKeyfilePathControlDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPKeyfilePathControlDelegate.m; sourceTree = "<group>"; };
4C83814015BF4677001AE468 /* MPDocumentWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPDocumentWindowController.h; sourceTree = "<group>"; };
@@ -453,6 +453,7 @@
4CB9339816D3A0DD00A13B5D /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = "<group>"; };
4CBA2AB617074B59006D8139 /* MPSettingsHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPSettingsHelper.h; sourceTree = "<group>"; };
4CBA2AB917074C07006D8139 /* MPSettingsHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPSettingsHelper.m; sourceTree = "<group>"; };
4CC0B8DA1773729F00311E8C /* MPFirstResonderNotification.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPFirstResonderNotification.h; sourceTree = "<group>"; };
4CC1AEBC16D4467C006D2AAB /* KdbTree+MPAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "KdbTree+MPAdditions.h"; sourceTree = "<group>"; };
4CC1AEBD16D4467C006D2AAB /* KdbTree+MPAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "KdbTree+MPAdditions.m"; sourceTree = "<group>"; };
4CC299FD176F99E50050C939 /* MPRequestHandlerService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPRequestHandlerService.h; sourceTree = "<group>"; };
@@ -993,6 +994,7 @@
4CF6C715176F5183007A811D /* MPServerRequestHandler.h */,
4CA0B30D15BCB6FD00654E32 /* MPSettingsTab.h */,
4C79DF2F1766941D0083708F /* MPResponderQuery.h */,
4CC0B8DA1773729F00311E8C /* MPFirstResonderNotification.h */,
);
name = Protocolls;
sourceTree = "<group>";
@@ -1075,8 +1077,8 @@
4C37A6721769393300AD0A40 /* HNHTableHeaderCell.m */,
4C099931176D4EA600C885CB /* HNHScrollView.h */,
4C099932176D4EA600C885CB /* HNHScrollView.m */,
4C80BB6D176DE06F00E5E248 /* HNHFlippedView.h */,
4C80BB6E176DE06F00E5E248 /* HNHFlippedView.m */,
4C80BB6D176DE06F00E5E248 /* HNHScrollDocumentViewAdapter.h */,
4C80BB6E176DE06F00E5E248 /* HNHScrollDocumentViewAdapter.m */,
4CF78058176E6D5F0032EE71 /* HNHTableRowView.h */,
4CF78059176E6D5F0032EE71 /* HNHTableRowView.m */,
);
@@ -1354,7 +1356,7 @@
4C37A6731769393300AD0A40 /* HNHTableHeaderCell.m in Sources */,
4C099933176D4EA600C885CB /* HNHScrollView.m in Sources */,
4CA2335A176DBFE100F0B6AC /* MPLockDaemon.m in Sources */,
4C80BB6F176DE06F00E5E248 /* HNHFlippedView.m in Sources */,
4C80BB6F176DE06F00E5E248 /* HNHScrollDocumentViewAdapter.m in Sources */,
4C245B76176E1E3D0086100E /* DDData.m in Sources */,
4C245B77176E1E3D0086100E /* DDNumber.m in Sources */,
4C245B78176E1E3D0086100E /* DDRange.m in Sources */,

View File

@@ -134,7 +134,7 @@
<reference key="NSSupport" ref="874940307"/>
<string key="NSCellIdentifier">_NS:1535</string>
<reference key="NSControlView" ref="958810247"/>
<object class="NSColor" key="NSBackgroundColor">
<object class="NSColor" key="NSBackgroundColor" id="631365604">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlColor</string>
@@ -143,7 +143,7 @@
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
</object>
</object>
<object class="NSColor" key="NSTextColor">
<object class="NSColor" key="NSTextColor" id="238448884">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlTextColor</string>
@@ -251,7 +251,7 @@
<string key="NSFrame">{{16, 70}, {172, 18}}</string>
<reference key="NSSuperview" ref="731672371"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="449248526"/>
<reference key="NSNextKeyView" ref="982397212"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<string key="NSHuggingPriority">{250, 251}</string>
<bool key="NSEnabled">YES</bool>
@@ -283,7 +283,7 @@
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool>
<object class="NSPopUpButtonCell" key="NSCell" id="52406626">
<int key="NSCellFlags">-1539309504</int>
<int key="NSCellFlags">-2076180416</int>
<int key="NSCellFlags2">2048</int>
<reference key="NSSupport" ref="874940307"/>
<string key="NSCellIdentifier">_NS:9</string>
@@ -294,27 +294,38 @@
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">400</int>
<int key="NSPeriodicInterval">75</int>
<object class="NSMenuItem" key="NSMenuItem" id="158936574">
<reference key="NSMenu" ref="552398563"/>
<string key="NSTitle">1 Minute</string>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<int key="NSState">1</int>
<reference key="NSOnImage" ref="45262901"/>
<reference key="NSMixedImage" ref="738594033"/>
<string key="NSAction">_popUpItemAction:</string>
<int key="NSTag">60</int>
<reference key="NSTarget" ref="52406626"/>
</object>
<nil key="NSMenuItem"/>
<bool key="NSMenuItemRespectAlignment">YES</bool>
<object class="NSMenu" key="NSMenu" id="552398563">
<string key="NSTitle">LockTimes</string>
<array class="NSMutableArray" key="NSMenuItems">
<reference ref="158936574"/>
<object class="NSMenuItem" id="17771272">
<reference key="NSMenu" ref="552398563"/>
<string key="NSTitle">Never</string>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<int key="NSState">1</int>
<reference key="NSOnImage" ref="45262901"/>
<reference key="NSMixedImage" ref="738594033"/>
<string key="NSAction">_popUpItemAction:</string>
<reference key="NSTarget" ref="52406626"/>
</object>
<object class="NSMenuItem" id="158936574">
<reference key="NSMenu" ref="552398563"/>
<string key="NSTitle">for 1 Minute</string>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="45262901"/>
<reference key="NSMixedImage" ref="738594033"/>
<string key="NSAction">_popUpItemAction:</string>
<int key="NSTag">60</int>
<reference key="NSTarget" ref="52406626"/>
</object>
<object class="NSMenuItem" id="492507667">
<reference key="NSMenu" ref="552398563"/>
<string key="NSTitle">5 Minutes</string>
<string key="NSTitle">for 5 Minutes</string>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
@@ -326,7 +337,7 @@
</object>
<object class="NSMenuItem" id="328220222">
<reference key="NSMenu" ref="552398563"/>
<string key="NSTitle">15 Minutes</string>
<string key="NSTitle">for 15 Minutes</string>
<string key="NSKeyEquiv"/>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="45262901"/>
@@ -346,39 +357,13 @@
</object>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
<object class="NSButton" id="449248526">
<reference key="NSNextResponder" ref="731672371"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{16, 36}, {138, 18}}</string>
<reference key="NSSuperview" ref="731672371"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="272904029"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="947992670">
<int key="NSCellFlags">-1543503872</int>
<int key="NSCellFlags2">268435456</int>
<string key="NSContents">Lock while idle for</string>
<reference key="NSSupport" ref="874940307"/>
<string key="NSCellIdentifier">_NS:9</string>
<reference key="NSControlView" ref="449248526"/>
<int key="NSButtonFlags">1211912448</int>
<int key="NSButtonFlags2">2</int>
<reference key="NSNormalImage" ref="125685135"/>
<reference key="NSAlternateImage" ref="765261007"/>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
<object class="NSButton" id="1066302408">
<reference key="NSNextResponder" ref="731672371"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{16, 12}, {122, 18}}</string>
<reference key="NSSuperview" ref="731672371"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="252113219">
@@ -399,6 +384,27 @@
</object>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
<object class="NSTextField" id="982397212">
<reference key="NSNextResponder" ref="731672371"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{18, 38}, {98, 17}}</string>
<reference key="NSSuperview" ref="731672371"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="272904029"/>
<string key="NSReuseIdentifierKey">_NS:1535</string>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="263977101">
<int key="NSCellFlags">68157504</int>
<int key="NSCellFlags2">272630784</int>
<string key="NSContents">Lock while idle</string>
<reference key="NSSupport" ref="874940307"/>
<string key="NSCellIdentifier">_NS:1535</string>
<reference key="NSControlView" ref="982397212"/>
<reference key="NSBackgroundColor" ref="631365604"/>
<reference key="NSTextColor" ref="238448884"/>
</object>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
</array>
<string key="NSFrame">{{1, 1}, {364, 124}}</string>
<reference key="NSSuperview" ref="60918609"/>
@@ -509,6 +515,22 @@
<int key="objectID">1</int>
<reference key="object" ref="1005"/>
<array class="NSMutableArray" key="children">
<object class="IBNSLayoutConstraint" id="213536579">
<reference key="firstItem" ref="1005"/>
<int key="firstAttribute">4</int>
<int key="relation">0</int>
<reference key="secondItem" ref="60918609"/>
<int key="secondAttribute">4</int>
<float key="multiplier">1</float>
<object class="IBNSLayoutSymbolicConstant" key="constant">
<double key="value">20</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="1005"/>
<int key="scoringType">8</int>
<float key="scoringTypeFloat">29</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="528706521">
<reference key="firstItem" ref="1005"/>
<int key="firstAttribute">4</int>
@@ -679,21 +701,21 @@
<int key="objectID">465</int>
<reference key="object" ref="60918609"/>
<array class="NSMutableArray" key="children">
<object class="IBNSLayoutConstraint" id="736506015">
<reference key="firstItem" ref="272904029"/>
<int key="firstAttribute">10</int>
<object class="IBNSLayoutConstraint" id="370071994">
<reference key="firstItem" ref="60918609"/>
<int key="firstAttribute">4</int>
<int key="relation">0</int>
<reference key="secondItem" ref="449248526"/>
<int key="secondAttribute">10</int>
<reference key="secondItem" ref="272904029"/>
<int key="secondAttribute">4</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">0.0</double>
<double key="value">32</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="60918609"/>
<int key="scoringType">6</int>
<float key="scoringTypeFloat">24</float>
<int key="contentType">2</int>
<int key="scoringType">3</int>
<float key="scoringTypeFloat">9</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="459585909">
<reference key="firstItem" ref="272904029"/>
@@ -775,6 +797,22 @@
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="806133159">
<reference key="firstItem" ref="60918609"/>
<int key="firstAttribute">4</int>
<int key="relation">0</int>
<reference key="secondItem" ref="1066302408"/>
<int key="secondAttribute">4</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">11</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="60918609"/>
<int key="scoringType">8</int>
<float key="scoringTypeFloat">29</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="772519144">
<reference key="firstItem" ref="60918609"/>
<int key="firstAttribute">4</int>
@@ -791,22 +829,6 @@
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="819759363">
<reference key="firstItem" ref="1066302408"/>
<int key="firstAttribute">3</int>
<int key="relation">0</int>
<reference key="secondItem" ref="449248526"/>
<int key="secondAttribute">4</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">10</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="60918609"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="476689522">
<reference key="firstItem" ref="1066302408"/>
<int key="firstAttribute">5</int>
@@ -823,36 +845,36 @@
<float key="scoringTypeFloat">29</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="1062332302">
<reference key="firstItem" ref="449248526"/>
<int key="firstAttribute">3</int>
<object class="IBNSLayoutConstraint" id="287888619">
<reference key="firstItem" ref="982397212"/>
<int key="firstAttribute">11</int>
<int key="relation">0</int>
<reference key="secondItem" ref="326334884"/>
<int key="secondAttribute">4</int>
<reference key="secondItem" ref="272904029"/>
<int key="secondAttribute">11</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">20</double>
<double key="value">0.0</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="60918609"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
<int key="scoringType">6</int>
<float key="scoringTypeFloat">24</float>
<int key="contentType">2</int>
</object>
<object class="IBNSLayoutConstraint" id="566620574">
<reference key="firstItem" ref="449248526"/>
<object class="IBNSLayoutConstraint" id="561950720">
<reference key="firstItem" ref="982397212"/>
<int key="firstAttribute">5</int>
<int key="relation">0</int>
<reference key="secondItem" ref="60918609"/>
<int key="secondAttribute">5</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">16</double>
<double key="value">19</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="60918609"/>
<int key="scoringType">8</int>
<float key="scoringTypeFloat">29</float>
<int key="scoringType">3</int>
<float key="scoringTypeFloat">9</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="376978074">
@@ -936,11 +958,11 @@
<int key="contentType">3</int>
</object>
<reference ref="958810247"/>
<reference ref="449248526"/>
<reference ref="326334884"/>
<reference ref="272904029"/>
<reference ref="1066302408"/>
<reference ref="222890410"/>
<reference ref="982397212"/>
</array>
<reference key="parent" ref="1005"/>
</object>
@@ -949,6 +971,22 @@
<reference key="object" ref="958810247"/>
<array class="NSMutableArray" key="children">
<reference ref="664984457"/>
<object class="IBNSLayoutConstraint" id="15468834">
<reference key="firstItem" ref="958810247"/>
<int key="firstAttribute">8</int>
<int key="relation">0</int>
<nil key="secondItem"/>
<int key="secondAttribute">0</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">17</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="958810247"/>
<int key="scoringType">3</int>
<float key="scoringTypeFloat">9</float>
<int key="contentType">1</int>
</object>
</array>
<reference key="parent" ref="60918609"/>
</object>
@@ -1138,6 +1176,7 @@
<reference ref="158936574"/>
<reference ref="492507667"/>
<reference ref="328220222"/>
<reference ref="17771272"/>
</array>
<reference key="parent" ref="52406626"/>
</object>
@@ -1156,24 +1195,6 @@
<reference key="object" ref="328220222"/>
<reference key="parent" ref="552398563"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">605</int>
<reference key="object" ref="449248526"/>
<array class="NSMutableArray" key="children">
<reference ref="947992670"/>
</array>
<reference key="parent" ref="60918609"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">606</int>
<reference key="object" ref="947992670"/>
<reference key="parent" ref="449248526"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">627</int>
<reference key="object" ref="566620574"/>
<reference key="parent" ref="60918609"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">660</int>
<reference key="object" ref="467548005"/>
@@ -1227,21 +1248,6 @@
<reference key="object" ref="376978074"/>
<reference key="parent" ref="60918609"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">765</int>
<reference key="object" ref="1062332302"/>
<reference key="parent" ref="60918609"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">769</int>
<reference key="object" ref="736506015"/>
<reference key="parent" ref="60918609"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">771</int>
<reference key="object" ref="819759363"/>
<reference key="parent" ref="60918609"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">773</int>
<reference key="object" ref="871797750"/>
@@ -1282,6 +1288,54 @@
<reference key="object" ref="250630005"/>
<reference key="parent" ref="1005"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">800</int>
<reference key="object" ref="213536579"/>
<reference key="parent" ref="1005"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">801</int>
<reference key="object" ref="806133159"/>
<reference key="parent" ref="60918609"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">802</int>
<reference key="object" ref="370071994"/>
<reference key="parent" ref="60918609"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">803</int>
<reference key="object" ref="15468834"/>
<reference key="parent" ref="958810247"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">804</int>
<reference key="object" ref="17771272"/>
<reference key="parent" ref="552398563"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">805</int>
<reference key="object" ref="982397212"/>
<array class="NSMutableArray" key="children">
<reference ref="263977101"/>
</array>
<reference key="parent" ref="60918609"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">806</int>
<reference key="object" ref="263977101"/>
<reference key="parent" ref="982397212"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">807</int>
<reference key="object" ref="561950720"/>
<reference key="parent" ref="60918609"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">808</int>
<reference key="object" ref="287888619"/>
<reference key="parent" ref="60918609"/>
</object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
@@ -1299,6 +1353,7 @@
<reference ref="484547610"/>
<reference ref="19198291"/>
<reference ref="528706521"/>
<reference ref="213536579"/>
</array>
<boolean value="NO" key="1.IBNSViewMetadataLastInspectedTranslatesAutoresizingMaskIntoConstraints"/>
<boolean value="NO" key="1.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
@@ -1314,6 +1369,9 @@
<string key="423.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="424.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="429.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<array key="431.IBNSViewMetadataConstraints">
<reference ref="15468834"/>
</array>
<boolean value="NO" key="431.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
<string key="431.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="432.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -1323,23 +1381,23 @@
<boolean value="NO" key="447.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
<string key="447.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="448.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<array class="NSMutableArray" key="465.IBNSViewMetadataConstraints">
<array key="465.IBNSViewMetadataConstraints">
<reference ref="891799107"/>
<reference ref="1014678196"/>
<reference ref="432174165"/>
<reference ref="467548005"/>
<reference ref="376978074"/>
<reference ref="566620574"/>
<reference ref="1062332302"/>
<reference ref="561950720"/>
<reference ref="287888619"/>
<reference ref="476689522"/>
<reference ref="819759363"/>
<reference ref="772519144"/>
<reference ref="806133159"/>
<reference ref="520285939"/>
<reference ref="811582841"/>
<reference ref="311160635"/>
<reference ref="771059501"/>
<reference ref="459585909"/>
<reference ref="736506015"/>
<reference ref="370071994"/>
</array>
<boolean value="NO" key="465.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
<string key="465.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -1366,10 +1424,6 @@
<string key="588.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="589.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="603.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="NO" key="605.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
<string key="605.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="606.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="627.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="NO" key="630.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
<string key="630.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="631.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -1380,9 +1434,6 @@
<string key="718.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="721.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="759.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="765.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="769.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="771.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="773.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="784.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="788.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -1390,12 +1441,22 @@
<string key="792.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="798.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="799.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="800.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="801.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="802.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="803.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="804.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="NO" key="805.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
<string key="805.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="806.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="807.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="808.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">799</int>
<int key="maxID">808</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">

File diff suppressed because it is too large Load Diff

View File

@@ -57,11 +57,10 @@
<int key="NSvFlags">268</int>
<string key="NSFrame">{{7, 5}, {32, 19}}</string>
<reference key="NSSuperview" ref="163272962"/>
<reference key="NSWindow"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="160641004">
<int key="NSCellFlags">-1543503872</int>
<int key="NSCellFlags">-2080374784</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents">Round Rect Button</string>
<object class="NSFont" key="NSSupport">
@@ -87,7 +86,6 @@
</array>
<string key="NSFrameSize">{684, 30}</string>
<reference key="NSSuperview" ref="997686550"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="276578969"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<string key="NSClassName">HNHGradientView</string>
@@ -106,7 +104,6 @@
<array class="NSMutableArray" key="NSSubviews"/>
<string key="NSFrameSize">{684, 548}</string>
<reference key="NSSuperview" ref="262664416"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="736877784"/>
<string key="NSReuseIdentifierKey">_NS:13</string>
<bool key="NSEnabled">YES</bool>
@@ -117,7 +114,6 @@
<int key="NSvFlags">256</int>
<string key="NSFrameSize">{684, 17}</string>
<reference key="NSSuperview" ref="736877784"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="262664416"/>
<reference key="NSTableView" ref="528076956"/>
</object>
@@ -340,7 +336,6 @@
</array>
<string key="NSFrame">{{0, 17}, {684, 548}}</string>
<reference key="NSSuperview" ref="613995671"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="528076956"/>
<string key="NSReuseIdentifierKey">_NS:11</string>
<reference key="NSDocView" ref="528076956"/>
@@ -352,7 +347,6 @@
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{224, 17}, {15, 102}}</string>
<reference key="NSSuperview" ref="613995671"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="802411427"/>
<string key="NSReuseIdentifierKey">_NS:58</string>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
@@ -365,7 +359,6 @@
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{0, 310}, {480, 16}}</string>
<reference key="NSSuperview" ref="613995671"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="163272962"/>
<string key="NSReuseIdentifierKey">_NS:60</string>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
@@ -382,7 +375,6 @@
</array>
<string key="NSFrameSize">{684, 17}</string>
<reference key="NSSuperview" ref="613995671"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="253618752"/>
<reference key="NSDocView" ref="253618752"/>
<reference key="NSBGColor" ref="136901388"/>
@@ -391,7 +383,6 @@
</array>
<string key="NSFrame">{{0, 30}, {684, 565}}</string>
<reference key="NSSuperview" ref="997686550"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="262664416"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<int key="NSsFlags">133680</int>
@@ -407,7 +398,6 @@
</array>
<string key="NSFrameSize">{684, 594}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="613995671"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<string key="NSClassName">NSView</string>
@@ -462,6 +452,14 @@
</object>
<int key="connectionID">744</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">addEntryButton</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="276578969"/>
</object>
<int key="connectionID">745</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">textField</string>
@@ -472,7 +470,7 @@
<object class="NSTextField" id="306813103">
<reference key="NSNextResponder" ref="788738248"/>
<int key="NSvFlags">266</int>
<string key="NSFrameSize">{105, 17}</string>
<string key="NSFrameSize">{104, 17}</string>
<reference key="NSSuperview" ref="788738248"/>
<reference key="NSNextKeyView" ref="804102913"/>
<string key="NSAntiCompressionPriority">{250, 750}</string>
@@ -494,7 +492,7 @@
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
</array>
<string key="NSFrame">{{1, 1}, {105, 17}}</string>
<string key="NSFrame">{{1, 1}, {104.5, 17}}</string>
<reference key="NSNextKeyView" ref="306813103"/>
</object>
<reference key="destination" ref="306813103"/>
@@ -563,7 +561,7 @@
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
</array>
<string key="NSFrame">{{109, 1}, {144, 17}}</string>
<string key="NSFrame">{{108.5, 1}, {144, 17}}</string>
<reference key="NSNextKeyView" ref="591921532"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
</object>
@@ -606,7 +604,7 @@
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
</array>
<string key="NSFrame">{{378, 1}, {113, 17}}</string>
<string key="NSFrame">{{377, 1}, {113, 17}}</string>
<reference key="NSNextKeyView" ref="441850286"/>
</object>
<reference key="destination" ref="441850286"/>
@@ -623,7 +621,7 @@
<object class="NSTextField" id="1042596093">
<reference key="NSNextResponder" ref="878614701"/>
<int key="NSvFlags">266</int>
<string key="NSFrameSize">{119, 17}</string>
<string key="NSFrameSize">{118, 17}</string>
<reference key="NSSuperview" ref="878614701"/>
<reference key="NSNextKeyView" ref="542633869"/>
<string key="NSAntiCompressionPriority">{250, 750}</string>
@@ -640,7 +638,7 @@
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
</array>
<string key="NSFrame">{{256, 1}, {119, 17}}</string>
<string key="NSFrame">{{255.5, 1}, {118.5, 17}}</string>
<reference key="NSNextKeyView" ref="1042596093"/>
</object>
<reference key="destination" ref="1042596093"/>
@@ -674,7 +672,7 @@
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
</array>
<string key="NSFrame">{{494, 1}, {188, 17}}</string>
<string key="NSFrame">{{493, 1}, {188, 17}}</string>
<reference key="NSNextKeyView" ref="488604658"/>
</object>
<reference key="destination" ref="488604658"/>
@@ -1742,106 +1740,9 @@
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">744</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
<string key="className">HNHGradientView</string>
<string key="superclassName">NSView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/HNHGradientView.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">MPEntryViewController</string>
<string key="superclassName">MPViewController</string>
<dictionary class="NSMutableDictionary" key="outlets">
<string key="bottomBar">HNHGradientView</string>
<string key="entryTable">NSTableView</string>
<string key="filterBar">NSView</string>
<string key="filterDoneButton">NSButton</string>
<string key="filterLabelTextField">NSTextField</string>
<string key="filterSearchField">NSSearchField</string>
<string key="filterTitleButton">NSButton</string>
<string key="filterURLButton">NSButton</string>
<string key="filterUsernameButton">NSButton</string>
<string key="tableToTop">NSLayoutConstraint</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
<object class="IBToOneOutletInfo" key="bottomBar">
<string key="name">bottomBar</string>
<string key="candidateClassName">HNHGradientView</string>
</object>
<object class="IBToOneOutletInfo" key="entryTable">
<string key="name">entryTable</string>
<string key="candidateClassName">NSTableView</string>
</object>
<object class="IBToOneOutletInfo" key="filterBar">
<string key="name">filterBar</string>
<string key="candidateClassName">NSView</string>
</object>
<object class="IBToOneOutletInfo" key="filterDoneButton">
<string key="name">filterDoneButton</string>
<string key="candidateClassName">NSButton</string>
</object>
<object class="IBToOneOutletInfo" key="filterLabelTextField">
<string key="name">filterLabelTextField</string>
<string key="candidateClassName">NSTextField</string>
</object>
<object class="IBToOneOutletInfo" key="filterSearchField">
<string key="name">filterSearchField</string>
<string key="candidateClassName">NSSearchField</string>
</object>
<object class="IBToOneOutletInfo" key="filterTitleButton">
<string key="name">filterTitleButton</string>
<string key="candidateClassName">NSButton</string>
</object>
<object class="IBToOneOutletInfo" key="filterURLButton">
<string key="name">filterURLButton</string>
<string key="candidateClassName">NSButton</string>
</object>
<object class="IBToOneOutletInfo" key="filterUsernameButton">
<string key="name">filterUsernameButton</string>
<string key="candidateClassName">NSButton</string>
</object>
<object class="IBToOneOutletInfo" key="tableToTop">
<string key="name">tableToTop</string>
<string key="candidateClassName">NSLayoutConstraint</string>
</object>
</dictionary>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/MPEntryViewController.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">MPTableView</string>
<string key="superclassName">NSTableView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/MPTableView.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">MPViewController</string>
<string key="superclassName">NSViewController</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/MPViewController.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSLayoutConstraint</string>
<string key="superclassName">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/NSLayoutConstraint.h</string>
</object>
</object>
</array>
<int key="maxID">745</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes"/>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>

View File

@@ -14,10 +14,12 @@
#import "MPUppercaseStringValueTransformer.h"
#import "MPStringLengthValueTransformer.h"
#import "MPServerDaemon.h"
#import "MPLockDaemon.h"
@interface MPAppDelegate () {
@private
MPServerDaemon *serverDaemon;
MPLockDaemon *lockDaemon;
}
@property (retain, nonatomic) MPSettingsWindowController *settingsController;
@@ -41,6 +43,7 @@
- (void)applicationDidFinishLaunching:(NSNotification *)notification {
serverDaemon = [[MPServerDaemon alloc] init];
lockDaemon = [[MPLockDaemon alloc] init];
}
@@ -48,6 +51,7 @@
[_settingsController release];
[_passwordCreatorController release];
[serverDaemon release];
[lockDaemon release];
[super dealloc];
}

View File

@@ -16,6 +16,10 @@
@class MPOutlineViewController;
@class MPCreationViewController;
@class KdbGroup;
@class KdbEntry;
APPKIT_EXTERN NSString *const MPCurrentItemChangedNotification;
@interface MPDocumentWindowController : NSWindowController <NSWindowDelegate>
@@ -26,11 +30,13 @@
@property (readonly, retain) MPInspectorViewController *inspectorViewController;
@property (readonly, retain) MPCreationViewController *creationViewController;
/* Holds the current item. That is either a KdbGroup or a KdbEntry */
@property (readonly, assign) id currentItem;
- (void)showEntries;
- (void)showPasswordInput;
- (void)performFindPanelAction:(id)sender;
- (void)clearOutlineSelection:(id)sender;
- (IBAction)editPassword:(id)sender;
- (void)lock:(id)sender;

View File

@@ -18,6 +18,8 @@
#import "MPAppDelegate.h"
#import "MPActionHelper.h"
NSString *const MPCurrentItemChangedNotification = @"com.hicknhack.macpass.MPCurrentItemChangedNotification";
@interface MPDocumentWindowController () {
@private
id _firstResponder;
@@ -26,6 +28,7 @@
@property (retain) IBOutlet NSSplitView *splitView;
@property (retain) NSToolbar *toolbar;
@property (assign) id currentItem;
@property (retain) MPPasswordInputController *passwordInputController;
@property (retain) MPPasswordEditViewController *passwordEditController;
@@ -49,6 +52,11 @@
_passwordEditController = [[MPPasswordEditViewController alloc] init];
_entryViewController = [[MPEntryViewController alloc] init];
_inspectorViewController = [[MPInspectorViewController alloc] init];
_currentItem = nil;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_updateCurrentItem:) name:MPOutlineViewDidChangeGroupSelection object:_outlineViewController.outlineDelegate];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_updateCurrentItem:) name:MPDidChangeSelectedEntryNotification object:_entryViewController];
}
return self;
}
@@ -134,6 +142,21 @@
[self.window makeFirstResponder:[viewController reconmendedFirstResponder]];
}
#pragma mark Resonder handling
- (void)_updateCurrentItem:(NSNotification *)notification {
id sender = [notification object];
if( sender == _outlineViewController.outlineView || sender == _outlineViewController.outlineDelegate ) {
self.currentItem = _outlineViewController.outlineDelegate.selectedGroup;
}
else if( sender == _entryViewController.entryTable || sender == _entryViewController) {
self.currentItem = _entryViewController.selectedEntry;
}
else {
return; // no notification!
}
[[NSNotificationCenter defaultCenter] postNotificationName:MPCurrentItemChangedNotification object:self];
}
#pragma mark Actions
- (void)performFindPanelAction:(id)sender {
[self.entryViewController showFilter:sender];
@@ -151,10 +174,10 @@
return showsNoLockScreen && document.isProtected;
}
if(itemAction == [MPActionHelper actionOfType:MPActionAddEntry]) {
return (nil != _entryViewController.activeGroup);
return (nil != _outlineViewController.outlineDelegate.selectedGroup);
}
if(itemAction == [MPActionHelper actionOfType:MPActionDelete]) {
return (_entryViewController.activeGroup || _entryViewController.selectedEntry);
return (nil != _currentItem);
}
if(itemAction == [MPActionHelper actionOfType:MPActionToggleInspector]) {
return (nil != [_splitView superview]);
@@ -171,10 +194,6 @@
[self.passwordInputController requestPassword];
}
- (void)clearOutlineSelection:(id)sender {
[self.outlineViewController clearSelection];
}
- (void)editPassword:(id)sender {
if(!self.passwordEditController) {
_passwordEditController = [[MPPasswordEditViewController alloc] init];
@@ -190,6 +209,10 @@
[_outlineViewController createGroup:nil];
}
- (void)createEntry:(id)sender {
[_outlineViewController createEntry:nil];
}
- (void)toggleInspector:(id)sender {
NSView *inspectorView = [_inspectorViewController view];
if([inspectorView superview]) {
@@ -263,22 +286,18 @@
}
#pragma mark NSWindowDelegate
- (void)windowDidUpdate:(NSNotification *)notification {
if(_firstResponder != [[self window] firstResponder]) {
_firstResponder = [[self window] firstResponder];
if(![_firstResponder isKindOfClass:[NSView class]]) {
return; // wrong responder
}
if( [_firstResponder isDescendantOf:[_entryViewController view]] ) {
//[_inspectorTabViewController showEntry];
}
else if([_firstResponder isDescendantOf:[_outlineViewController view]]) {
//[_inspectorTabViewController showGroup];
}
id firstResonder = [[self window] firstResponder];
if(_firstResponder == firstResonder) {
return;
}
_firstResponder = firstResonder;
if([_firstResponder isKindOfClass:[NSView class]]) {
[self _updateCurrentItem:[NSNotification notificationWithName:@"dummy" object:_firstResponder ]];
}
}
#pragma mark Helper
- (NSSearchField *)locateToolbarSearchField {
for(NSToolbarItem *toolbarItem in [[self.window toolbar] items]) {

View File

@@ -31,9 +31,9 @@ typedef enum {
@interface MPEntryViewController : MPViewController <NSTableViewDelegate>
@property (assign) KdbGroup *activeGroup;
@property (readonly, assign, nonatomic) KdbEntry *selectedEntry;
@property (assign,readonly) NSTableView *entryTable;
@property (readonly, retain) NSArrayController *entryArrayController;
@property (nonatomic, retain) NSString *filter;
@@ -52,7 +52,6 @@ typedef enum {
- (void)openURL:(id)sender;
/* Entry Handling*/
- (void)createEntry:(id)sender;
- (void)deleteEntry:(id)sender;
@end

View File

@@ -17,6 +17,7 @@
#import "MPOverlayWindowController.h"
#import "MPContextMenuHelper.h"
#import "MPActionHelper.h"
#import "MPConstants.h"
#import "MPEntryTableDataSource.h"
#import "MPStringLengthValueTransformer.h"
@@ -74,6 +75,7 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername";
@property (assign) IBOutlet NSTextField *filterLabelTextField;
@property (assign) IBOutlet NSSearchField *filterSearchField;
@property (assign) IBOutlet HNHGradientView *bottomBar;
@property (assign) IBOutlet NSButton *addEntryButton;
@property (assign) KdbEntry *selectedEntry;
@@ -102,7 +104,7 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername";
_entryArrayController = [[NSArrayController alloc] init];
_dataSource = [[MPEntryTableDataSource alloc] init];
_dataSource.viewController = self;
_selectedEntry = nil;
_selectedEntry = nil;
}
return self;
}
@@ -123,6 +125,7 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername";
[self.view setWantsLayer:YES];
[self _hideFilterBarAnimated:NO];
[_bottomBar setBorderType:HNHBorderTop];
[self.addEntryButton setAction:[MPActionHelper actionOfType:MPActionAddEntry]];
[self.entryTable setDelegate:self];
[self.entryTable setDoubleAction:@selector(_columnDoubleClick:)];
@@ -130,13 +133,13 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername";
[self.entryTable setFloatsGroupRows:NO];
[self.entryTable registerForDraggedTypes:@[MPPasteBoardType]];
[self _setupEntryMenu];
NSTableColumn *parentColumn = [self.entryTable tableColumns][0];
NSTableColumn *titleColumn = [self.entryTable tableColumns][1];
NSTableColumn *userNameColumn = [self.entryTable tableColumns][2];
NSTableColumn *passwordColumn = [self.entryTable tableColumns][3];
NSTableColumn *urlColumn = [self.entryTable tableColumns][4];
[parentColumn setIdentifier:MPEntryTableParentColumnIdentifier];
[titleColumn setIdentifier:MPEntryTableTitleColumnIdentifier];
@@ -161,15 +164,15 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername";
[self.entryTable bind:NSContentBinding toObject:self.entryArrayController withKeyPath:@"arrangedObjects" options:nil];
[self.entryTable bind:NSSortDescriptorsBinding toObject:self.entryArrayController withKeyPath:@"sortDescriptors" options:nil];
[self.entryTable setDataSource:_dataSource];
[parentColumn setHidden:YES];
}
- (void)setupNotifications:(MPDocumentWindowController *)windowController {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(_didChangeGroupSelectionInOutlineView:)
name:MPOutlineViewDidChangeGroupSelection
object:windowController.outlineViewController.outlineDelegate];
selector:@selector(_didChangeCurrentItem:)
name:MPCurrentItemChangedNotification
object:windowController];
}
#pragma mark NSTableViewDelgate
@@ -227,20 +230,27 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername";
}
#pragma mark Notifications
- (void)_didChangeGroupSelectionInOutlineView:(NSNotification *)notification {
- (void)_didChangeCurrentItem:(NSNotification *)notification {
if([self _showsFilterBar]) {
//[self.filterSearchField setStringValue:@""];
[self clearFilter:nil];
}
MPOutlineViewDelegate *delegate = [notification object];
self.activeGroup = delegate.selectedGroup;
if(_activeGroup) {
[self.entryArrayController bind:NSContentArrayBinding toObject:_activeGroup withKeyPath:@"entries" options:nil];
}
else {
[self.entryArrayController unbind:NSContentArrayBinding];
[self.entryArrayController setContent:nil];
MPDocumentWindowController *sender = [notification object];
if([sender.currentItem isKindOfClass:[KdbGroup class]]) {
KdbGroup *item = sender.currentItem;
if(item) {
if([[self.entryArrayController content] count] > 0) {
KdbEntry *entry = [[self.entryArrayController content] lastObject];
if(entry.parent == item) {
return; // we are showing the correct object right now.
}
}
[self.entryArrayController bind:NSContentArrayBinding toObject:item withKeyPath:@"entries" options:nil];
}
else {
[self.entryArrayController unbind:NSContentArrayBinding];
[self.entryArrayController setContent:nil];
}
}
}
@@ -263,10 +273,6 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername";
}
}
- (void)deselectAll:(id)sender {
[self.entryTable deselectAll:nil];
}
- (void)clearFilter:(id)sender {
self.filter = nil;
[[self.entryTable tableColumnWithIdentifier:MPEntryTableParentColumnIdentifier] setHidden:YES];
@@ -347,9 +353,7 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername";
if([self _showsFilterBar]) {
return; // nothing to to
}
[[[self.view window] windowController] clearOutlineSelection:nil];
NSView *scrollView = [_entryTable enclosingScrollView];
NSDictionary *views = NSDictionaryOfVariableBindings(scrollView, _filterBar);
[self.view layout];
@@ -357,7 +361,7 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername";
[self.view addSubview:self.filterBar];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[_filterBar]|" options:0 metrics:nil views:views]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[_filterBar(==30)]-0-[scrollView]" options:0 metrics:nil views:views]];
if(animate) {
[NSAnimationContext runAnimationGroup:^(NSAnimationContext* context) {
@@ -475,15 +479,6 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername";
}
}
- (void)createEntry:(id)sender {
if(!_activeGroup) {
return; // Entries are not allowed in root group
}
MPDocument *document = [[NSDocumentController sharedDocumentController] currentDocument];
[document createEntry:_activeGroup];
}
- (void)deleteEntry:(id)sender {
KdbEntry *entry =[self _clickedOrSelectedEntry];
[entry.parent removeEntryUndoable:entry];

View File

@@ -10,4 +10,7 @@
@protocol MPFirstResonderNotification <NSObject>
@required
- (BOOL)becomeFirstResponder;
@end

View File

@@ -24,11 +24,14 @@
@property (assign) IBOutlet NSTextField *URLTextField;
@property (assign) IBOutlet NSTextField *passwordTextField;
@property (assign) IBOutlet NSTextField *titleOrNameLabel;
@property (assign) IBOutlet NSTextField *notesTextField;
@property (assign) IBOutlet HNHGradientView *bottomBar;
@property (assign) IBOutlet NSTextField *infoTextField;
@property (assign) IBOutlet NSTableView *attachmentTableView;
@property (assign) IBOutlet NSView *scrollContentView;
@property (assign) IBOutlet NSSegmentedControl *notesOrAttachmentControl;
@property (retain) IBOutlet NSScrollView *attachmenScrollView;
@property (assign) IBOutlet NSScrollView *notesScrollView;
@property (assign) IBOutlet NSTextView *notesTextView;
- (void)closeActivePopup:(id)sender;
/* Seperate call to ensure alle registered objects are in place */

View File

@@ -23,6 +23,11 @@
#import "KdbEntry+Undo.h"
#import "HNHGradientView.h"
enum {
MPNotesTab,
MPAttachmentTab
};
@interface MPInspectorViewController () {
BOOL _visible;
}
@@ -30,7 +35,6 @@
@property (assign, nonatomic) KdbEntry *selectedEntry;
@property (assign, nonatomic) KdbGroup *selectedGroup;
@property (assign, nonatomic) BOOL showsEntry;
@property (retain) NSPopover *activePopover;
@property (assign) IBOutlet NSButton *generatePasswordButton;
@property (nonatomic, assign) NSDate *modificationDate;
@@ -50,7 +54,6 @@
if (self) {
_selectedEntry = nil;
_selectedGroup = nil;
_showsEntry = NO;
_attachmentController = [[NSArrayController alloc] init];
}
return self;
@@ -72,6 +75,11 @@
[_attachmentTableView setDelegate:self];
[_attachmentTableView bind:NSContentBinding toObject:_attachmentController withKeyPath:@"arrangedObjects" options:nil];
[_attachmentTableView setHidden:YES];
[_notesOrAttachmentControl setAction:@selector(_toggleInfoTab:)];
[_notesOrAttachmentControl setTarget:self];
[[_notesOrAttachmentControl cell] setTag:MPAttachmentTab forSegment:MPAttachmentTab];
[[_notesOrAttachmentControl cell] setTag:MPNotesTab forSegment:MPNotesTab];
[self _clearContent];
}
@@ -79,21 +87,15 @@
- (void)setupNotifications:(MPDocumentWindowController *)windowController {
/* Register for Entry selection */
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(_didChangeSelectedEntry:)
name:MPDidChangeSelectedEntryNotification
object:windowController.entryViewController];
/* Register for Group selection */
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(_didChangeSelectedGroup:)
name:MPOutlineViewDidChangeGroupSelection
object:windowController.outlineViewController.outlineDelegate];
selector:@selector(_didChangeCurrentItem:)
name:MPCurrentItemChangedNotification
object:windowController];
}
- (void)_updateInfoString {
NSDate *modificationDate;
NSDate *creationDate;
if(_showsEntry) {
if(self.selectedEntry) {
modificationDate = self.selectedEntry.lastModificationTime;
creationDate = self.selectedEntry.creationTime;
}
@@ -113,10 +115,10 @@
}
- (void)_updateContent {
if(self.showsEntry && self.selectedEntry) {
if(self.selectedEntry) {
[self _showEntry];
}
else if(!self.showsEntry && self.selectedGroup) {
else if(self.selectedGroup) {
[self _showGroup];
}
else {
@@ -137,7 +139,7 @@
[self.titleOrNameLabel setStringValue:NSLocalizedString(@"TITLE",@"")];
[self.titleTextField bind:NSValueBinding toObject:self.selectedEntry withKeyPath:MPEntryTitleUndoableKey options:nil];
[self.URLTextField bind:NSValueBinding toObject:self.selectedEntry withKeyPath:MPEntryUrlUndoableKey options:nil];
[self.notesTextField bind:NSValueBinding toObject:self.selectedEntry withKeyPath:MPEntryNotesUndoableKey options:nil];
[self.notesTextView bind:NSValueBinding toObject:self.selectedEntry withKeyPath:MPEntryNotesUndoableKey options:nil];
[self _setInputEnabled:YES];
}
@@ -160,7 +162,11 @@
[self.passwordTextField setStringValue:@""];
[self.usernameTextField setStringValue:@""];
[self.URLTextField setStringValue:@""];
[self.notesTextField setStringValue:@""];
[self.notesTextView setString:@""];
// Reste toggle
[self.notesOrAttachmentControl setSelected:NO forSegment:MPNotesTab];
[self.notesOrAttachmentControl setSelected:NO forSegment:MPAttachmentTab];
[self _setInputEnabled:YES];
}
@@ -174,7 +180,7 @@
[self.usernameTextField unbind:NSValueBinding];
[self.titleTextField unbind:NSValueBinding];
[self.URLTextField unbind:NSValueBinding];
[self.notesTextField unbind:NSValueBinding];
[self.notesTextView unbind:NSValueBinding];
[self.itemNameTextfield setStringValue:NSLocalizedString(@"INSPECTOR_NO_SELECTION", @"No item selected in inspector")];
[self.itemImageView setImage:[NSImage imageNamed:NSImageNameActionTemplate]];
@@ -184,7 +190,7 @@
[self.usernameTextField setStringValue:@""];
[self.titleTextField setStringValue:@""];
[self.URLTextField setStringValue:@""];
[self.notesTextField setStringValue:@""];
[self.notesTextView setString:@""];
}
@@ -196,17 +202,18 @@
[self.itemNameTextfield setEnabled:enabled];
[self.titleTextField setEnabled:enabled];
enabled &= self.showsEntry;
enabled &= (self.selectedEntry != nil);
[self.passwordTextField setEnabled:enabled];
[self.usernameTextField setEnabled:enabled];
[self.URLTextField setEnabled:enabled];
[self.generatePasswordButton setEnabled:enabled];
[self.notesTextField setEditable:enabled];
[self.notesTextView setEditable:enabled];
[self.notesOrAttachmentControl setEnabled:enabled forSegment:MPNotesTab];
[self.notesOrAttachmentControl setEnabled:enabled forSegment:MPAttachmentTab];
}
- (void)_updateAttachments {
if(self.selectedEntry && self.showsEntry) {
if(self.selectedEntry) {
if([self.selectedEntry isKindOfClass:[Kdb4Entry class]]) {
[self.attachmentController bind:NSContentArrayBinding toObject:self.selectedEntry withKeyPath:@"binaries" options:nil];
}
@@ -220,6 +227,38 @@
#pragma mark Actions
- (void)_toggleInfoTab:(id)sender {
NSUInteger selectedSegment = [sender selectedSegment];
NSUInteger tab = [[sender cell] tagForSegment:selectedSegment];
NSView *infoView = nil;
NSView *oldView = nil;
switch (tab) {
case MPNotesTab:
infoView = _notesScrollView;
oldView = _attachmenScrollView;
break;
case MPAttachmentTab:
oldView = _notesScrollView;
infoView = _attachmenScrollView;
default:
break;
}
if([oldView superview]) {
[oldView removeFromSuperview];
}
[self.scrollContentView addSubview:infoView];
NSDictionary *views = NSDictionaryOfVariableBindings(_notesOrAttachmentControl, infoView);
[self.scrollContentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[_notesOrAttachmentControl]-10-[infoView(>=100)]-10-|"
options:0
metrics:nil
views:views]];
[self.scrollContentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-10-[infoView]-10-|"
options:0
metrics:nil
views:views]];
[[self view] layout];
}
- (void)_showImagePopup:(id)sender {
[self _showPopopver:[[[MPIconSelectViewController alloc] init] autorelease] atView:self.itemImageView onEdge:NSMinYEdge];
}
@@ -241,36 +280,40 @@
}
#pragma mark Notificiations
- (void)_didChangeSelectedEntry:(NSNotification *)notification {
MPEntryViewController *entryViewController = [notification object];
if(entryViewController) {
self.selectedEntry = entryViewController.selectedEntry;
- (void)_didChangeCurrentItem:(NSNotification *)notification {
MPDocumentWindowController *sender = [notification object];
id item = sender.currentItem;
if(!item) {
self.selectedGroup = nil;
self.selectedEntry = nil;
}
}
- (void)_didChangeSelectedGroup:(NSNotification *)notification {
MPOutlineViewDelegate *outlineViewDelegae = [notification object];
if(outlineViewDelegae) {
self.selectedGroup = outlineViewDelegae.selectedGroup;
if([item isKindOfClass:[KdbGroup class]]) {
self.selectedEntry = nil;
self.selectedGroup = sender.currentItem;
}
else if([item isKindOfClass:[KdbEntry class]]) {
self.selectedGroup = nil;
self.selectedEntry = sender.currentItem;
}
[self _updateContent];
}
#pragma mark Properties
- (void)setSelectedEntry:(KdbEntry *)selectedEntry {
if(_selectedEntry != selectedEntry) {
_selectedEntry = selectedEntry;
self.showsEntry = YES;
[self _updateContent];
}
}
- (void)setSelectedGroup:(KdbGroup *)selectedGroup {
if(_selectedGroup != selectedGroup) {
_selectedGroup = selectedGroup;
self.showsEntry = NO;
[self _updateContent];
}
}
//- (void)setSelectedEntry:(KdbEntry *)selectedEntry {
// if(_selectedEntry != selectedEntry) {
// _selectedEntry = selectedEntry;
// self.showsEntry = YES;
// [self _updateContent];
// }
//}
//
//- (void)setSelectedGroup:(KdbGroup *)selectedGroup {
// if(_selectedGroup != selectedGroup) {
// _selectedGroup = selectedGroup;
// self.showsEntry = NO;
// [self _updateContent];
// }
//}
#pragma mark NSTableViewDelegate
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {

View File

@@ -7,9 +7,17 @@
//
#import "MPLockDaemon.h"
#import "MPSettingsHelper.h"
NSString *const MPShouldLockDatabaseNotification = @"com.hicknhack.macpass.MPShouldLockDatabaseNotification";
@interface MPLockDaemon ()
@property (nonatomic,assign) BOOL lockOnSleep;
@property (nonatomic,assign) NSUInteger idleLockTime;
@end
@implementation MPLockDaemon
+ (MPLockDaemon *)sharedInstance {
@@ -24,8 +32,11 @@ NSString *const MPShouldLockDatabaseNotification = @"com.hicknhack.macpass.MPSho
- (id)init {
self = [super init];
if (self) {
NSNotificationCenter *notificationCenter = [[NSWorkspace sharedWorkspace] notificationCenter];
[notificationCenter addObserver:self selector:@selector(_willSleepNotification:) name:NSWorkspaceWillSleepNotification object:nil];
NSString *lockOnSleepKey = [NSString stringWithFormat:@"values.%@", kMPSettingsKeyLockOnSleep];
NSString *idleTimeOutKey = [NSString stringWithFormat:@"values.%@", kMPSEttingsKeyIdleLockTimeOut];
NSUserDefaultsController *defaultsController = [NSUserDefaultsController sharedUserDefaultsController];
[self bind:@"lockOnSleep" toObject:defaultsController withKeyPath:lockOnSleepKey options:nil];
[self bind:@"idleLockTime" toObject:defaultsController withKeyPath:idleTimeOutKey options:nil];
}
return self;
}
@@ -36,6 +47,30 @@ NSString *const MPShouldLockDatabaseNotification = @"com.hicknhack.macpass.MPSho
[super dealloc];
}
- (void)setLockOnSleep:(BOOL)lockOnSleep {
if(_lockOnSleep != lockOnSleep) {
_lockOnSleep = lockOnSleep;
NSNotificationCenter *notificationCenter = [[NSWorkspace sharedWorkspace] notificationCenter];
if(_lockOnSleep) {
[notificationCenter addObserver:self selector:@selector(_willSleepNotification:) name:NSWorkspaceWillSleepNotification object:nil];
}
else {
[notificationCenter removeObserver:self];
}
}
}
- (void)setIdleLockTime:(NSUInteger)idleLockTime {
if(_idleLockTime != idleLockTime) {
_idleLockTime = idleLockTime;
if(_idleLockTime == 0) {
// disable
}
else {
// update timer
}
}
}
- (void)_willSleepNotification:(NSNotification *)notification {
[[NSNotificationCenter defaultCenter] postNotificationName:MPShouldLockDatabaseNotification object:self];

View File

@@ -14,10 +14,10 @@
@interface MPOutlineViewController : MPViewController
@property (readonly, assign) NSOutlineView *outlineView;
@property (retain, readonly) MPOutlineViewDelegate *outlineDelegate;
@property (assign) IBOutlet HNHGradientView *bottomBar;
- (void)clearSelection;
- (void)showOutline;
- (void)createGroup:(id)sender;

View File

@@ -9,12 +9,16 @@
#import "MPOutlineViewController.h"
#import "MPOutlineViewDelegate.h"
#import "MPOutlineDataSource.h"
#import "MPDocument.h"
#import "MPAppDelegate.h"
#import "KdbLib.h"
#import "KdbGroup+Undo.h"
#import "MPContextMenuHelper.h"
#import "MPConstants.h"
#import "MPActionHelper.h"
#import "KdbLib.h"
#import "KdbGroup+Undo.h"
#import "HNHGradientView.h"
@@ -22,6 +26,7 @@
BOOL _bindingEstablished;
}
@property (assign) IBOutlet NSOutlineView *outlineView;
@property (assign) IBOutlet NSButton *addGroupButton;
@property (retain) NSTreeController *treeController;
@property (retain) MPOutlineDataSource *datasource;
@@ -50,20 +55,22 @@
- (void)dealloc
{
self.datasource = nil;
self.outlineDelegate = nil;
self.menu = nil;
[_datasource release];
[_outlineDelegate release];
[_menu release];
[super dealloc];
}
- (void)didLoadView {
[self.outlineView setDelegate:self.outlineDelegate];
[self.outlineView setMenu:[self _contextMenu]];
[self.outlineView setAllowsEmptySelection:YES];
[self.outlineView setFloatsGroupRows:NO];
[_outlineView setDelegate:_outlineDelegate];
[_outlineView setMenu:[self _contextMenu]];
[_outlineView setAllowsEmptySelection:YES];
[_outlineView setFloatsGroupRows:NO];
[_outlineView registerForDraggedTypes:@[ MPPasteBoardType ]];
[self.outlineView setDraggingSourceOperationMask:NSDragOperationEvery forLocal:YES];
[_outlineView setDraggingSourceOperationMask:NSDragOperationEvery forLocal:YES];
[_bottomBar setBorderType:HNHBorderTop];
[_addGroupButton setAction:[MPActionHelper actionOfType:MPActionAddGroup]];
}
- (void)showOutline {
@@ -79,10 +86,6 @@
[_outlineView expandItem:node expandChildren:NO];
}
- (void)clearSelection {
[self.outlineView deselectAll:nil];
}
- (NSMenu *)_contextMenu {
NSMenu *menu = [[NSMenu alloc] init];
NSArray *items = [MPContextMenuHelper contextMenuItemsWithItems:MPContextMenuMinimal];

View File

@@ -59,8 +59,9 @@ NSString *const _MPOutlinveViewHeaderViewIdentifier = @"HeaderCell";
- (BOOL)outlineView:(NSOutlineView *)outlineView shouldSelectItem:(id)item {
NSTreeNode *treeNode = item;
KdbGroup *group = [treeNode representedObject];
return YES;
//KdbGroup *group = item;
return (nil != [group parent]);
//return (nil != [group parent]);
}
- (void)outlineViewSelectionDidChange:(NSNotification *)notification {

View File

@@ -8,14 +8,24 @@
#import <Cocoa/Cocoa.h>
/* Clipboard */
APPKIT_EXTERN NSString *const kMPSettingsKeyPasteboardClearTimeout;
APPKIT_EXTERN NSString *const kMPSettingsKeyClearPasteboardOnQuit;
/* Behaviour */
APPKIT_EXTERN NSString *const kMPSettingsKeyPasswordEncoding;
APPKIT_EXTERN NSString *const kMPSettingsKeyOpenEmptyDatabaseOnLaunch;
/* Server Settings */
APPKIT_EXTERN NSString *const kMPSettingsKeyHttpPort;
APPKIT_EXTERN NSString *const kMPSettingsKeyEnableHttpServer;
APPKIT_EXTERN NSString *const kMPSettingsKeyShowMenuItem;
/* Autolock */
APPKIT_EXTERN NSString *const kMPSettingsKeyLockOnSleep;
APPKIT_EXTERN NSString *const kMPSEttingsKeyIdleLockTimeOut;
typedef NS_ENUM(NSUInteger, MPPasswordEncoding) {
MPPasswordEncodingUTF8,
MPPasswordEncodingASCII,

View File

@@ -14,7 +14,8 @@ NSString *const kMPSettingsKeyOpenEmptyDatabaseOnLaunch = @"OpenEmptyDatabaseOnL
NSString *const kMPSettingsKeyHttpPort =@"HttpPort";
NSString *const kMPSettingsKeyEnableHttpServer = @"EnableHttpServer";
NSString *const kMPSettingsKeyShowMenuItem = @"ShowMenuItem";
NSString *const kMPSettingsKeyLockOnSleep = @"LockOnSleep";
NSString *const kMPSEttingsKeyIdleLockTimeOut = @"IdleLockTimeOut";
@implementation MPSettingsHelper
@@ -24,12 +25,14 @@ NSString *const kMPSettingsKeyShowMenuItem = @"ShowMenuItem";
+ (NSDictionary *)_standardDefaults {
return @{
kMPSettingsKeyPasteboardClearTimeout: @10,
kMPSettingsKeyPasteboardClearTimeout: @30, // 30 seconds
kMPSettingsKeyClearPasteboardOnQuit: @YES,
kMPSettingsKeyOpenEmptyDatabaseOnLaunch: @YES,
kMPSettingsKeyHttpPort: @19455,
kMPSettingsKeyEnableHttpServer: @NO,
kMPSettingsKeyShowMenuItem: @YES,
kMPSettingsKeyLockOnSleep: @YES,
kMPSEttingsKeyIdleLockTimeOut: @300 // 5 minutes
};
}

View File

@@ -29,11 +29,6 @@
return nil; // override
}
- (BOOL)becomeFirstResponder {
NSLog(@"%@: about to become firt responder.", [self class]);
return YES;
}
- (void)updateResponderChain {
if(self.view && [self.view nextResponder] != self) {
NSResponder *nextResponder = [[self view] nextResponder];

View File

@@ -48,7 +48,7 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>592</string>
<string>747</string>
<key>LSMinimumSystemVersion</key>
<string>${MACOSX_DEPLOYMENT_TARGET}</string>
<key>NSHumanReadableCopyright</key>
@@ -57,5 +57,7 @@
<string>MainMenu</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSSupportsAutomaticGraphicsSwitching</key>
<true/>
</dict>
</plist>

View File

@@ -60,7 +60,7 @@
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="573415016">
<int key="NSCellFlags">-1543503872</int>
<int key="NSCellFlags">-2080374784</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents"/>
<object class="NSFont" key="NSSupport">
@@ -304,6 +304,14 @@
</object>
<int key="connectionID">433</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">addGroupButton</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="483226599"/>
</object>
<int key="connectionID">434</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">textField</string>
@@ -1126,7 +1134,7 @@
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">433</int>
<int key="maxID">434</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
@@ -1158,10 +1166,15 @@
<string key="className">MPOutlineViewController</string>
<string key="superclassName">MPViewController</string>
<dictionary class="NSMutableDictionary" key="outlets">
<string key="addGroupButton">NSButton</string>
<string key="bottomBar">HNHGradientView</string>
<string key="outlineView">NSOutlineView</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
<object class="IBToOneOutletInfo" key="addGroupButton">
<string key="name">addGroupButton</string>
<string key="candidateClassName">NSButton</string>
</object>
<object class="IBToOneOutletInfo" key="bottomBar">
<string key="name">bottomBar</string>
<string key="candidateClassName">HNHGradientView</string>