More work on Recylcebin support #24

Document settings display tree to chose recycle bin location
This commit is contained in:
michael starke
2013-07-02 00:48:48 +02:00
parent d5e40721dd
commit f3001b35e1
21 changed files with 477 additions and 220 deletions

View File

@@ -162,6 +162,8 @@
4CC299FF176F99E50050C939 /* MPRequestHandlerService.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC299FE176F99E50050C939 /* MPRequestHandlerService.m */; }; 4CC299FF176F99E50050C939 /* MPRequestHandlerService.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC299FE176F99E50050C939 /* MPRequestHandlerService.m */; };
4CC29A02176F9D140050C939 /* MPTestAssociateRequestHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC29A01176F9D140050C939 /* MPTestAssociateRequestHandler.m */; }; 4CC29A02176F9D140050C939 /* MPTestAssociateRequestHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC29A01176F9D140050C939 /* MPTestAssociateRequestHandler.m */; };
4CC3AABD175F4983003EF01B /* HNHRoundedTextFieldCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC3AAB9175F4983003EF01B /* HNHRoundedTextFieldCell.m */; }; 4CC3AABD175F4983003EF01B /* HNHRoundedTextFieldCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC3AAB9175F4983003EF01B /* HNHRoundedTextFieldCell.m */; };
4CC672791781D0C0006DEDCF /* KdbGroup+MPAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC672781781D0C0006DEDCF /* KdbGroup+MPAdditions.m */; };
4CC6727C1781D0D2006DEDCF /* KdbEntry+MPAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC6727B1781D0D2006DEDCF /* KdbEntry+MPAdditions.m */; };
4CC7EA1B17807E7E0089D4F3 /* HNHRoundendTextFieldCellHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC7EA1A17807E7E0089D4F3 /* HNHRoundendTextFieldCellHelper.m */; }; 4CC7EA1B17807E7E0089D4F3 /* HNHRoundendTextFieldCellHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC7EA1A17807E7E0089D4F3 /* HNHRoundendTextFieldCellHelper.m */; };
4CD5D702177A5EE400100649 /* DocumentSettingsWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4CD5D701177A5EE400100649 /* DocumentSettingsWindow.xib */; }; 4CD5D702177A5EE400100649 /* DocumentSettingsWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4CD5D701177A5EE400100649 /* DocumentSettingsWindow.xib */; };
4CD5D705177A5F3300100649 /* MPDocumentSettingsWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD5D704177A5F3300100649 /* MPDocumentSettingsWindowController.m */; }; 4CD5D705177A5F3300100649 /* MPDocumentSettingsWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD5D704177A5F3300100649 /* MPDocumentSettingsWindowController.m */; };
@@ -500,6 +502,10 @@
4CC29A01176F9D140050C939 /* MPTestAssociateRequestHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPTestAssociateRequestHandler.m; sourceTree = "<group>"; }; 4CC29A01176F9D140050C939 /* MPTestAssociateRequestHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPTestAssociateRequestHandler.m; sourceTree = "<group>"; };
4CC3AAB8175F4983003EF01B /* HNHRoundedTextFieldCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HNHRoundedTextFieldCell.h; sourceTree = "<group>"; }; 4CC3AAB8175F4983003EF01B /* HNHRoundedTextFieldCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HNHRoundedTextFieldCell.h; sourceTree = "<group>"; };
4CC3AAB9175F4983003EF01B /* HNHRoundedTextFieldCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HNHRoundedTextFieldCell.m; sourceTree = "<group>"; }; 4CC3AAB9175F4983003EF01B /* HNHRoundedTextFieldCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HNHRoundedTextFieldCell.m; sourceTree = "<group>"; };
4CC672771781D0C0006DEDCF /* KdbGroup+MPAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "KdbGroup+MPAdditions.h"; sourceTree = "<group>"; };
4CC672781781D0C0006DEDCF /* KdbGroup+MPAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "KdbGroup+MPAdditions.m"; sourceTree = "<group>"; };
4CC6727A1781D0D2006DEDCF /* KdbEntry+MPAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "KdbEntry+MPAdditions.h"; sourceTree = "<group>"; };
4CC6727B1781D0D2006DEDCF /* KdbEntry+MPAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "KdbEntry+MPAdditions.m"; sourceTree = "<group>"; };
4CC7EA1917807E7E0089D4F3 /* HNHRoundendTextFieldCellHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HNHRoundendTextFieldCellHelper.h; sourceTree = "<group>"; }; 4CC7EA1917807E7E0089D4F3 /* HNHRoundendTextFieldCellHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HNHRoundendTextFieldCellHelper.h; sourceTree = "<group>"; };
4CC7EA1A17807E7E0089D4F3 /* HNHRoundendTextFieldCellHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HNHRoundendTextFieldCellHelper.m; sourceTree = "<group>"; }; 4CC7EA1A17807E7E0089D4F3 /* HNHRoundendTextFieldCellHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HNHRoundendTextFieldCellHelper.m; sourceTree = "<group>"; };
4CD5D701177A5EE400100649 /* DocumentSettingsWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = DocumentSettingsWindow.xib; sourceTree = "<group>"; }; 4CD5D701177A5EE400100649 /* DocumentSettingsWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = DocumentSettingsWindow.xib; sourceTree = "<group>"; };
@@ -755,6 +761,10 @@
4C2C4C2B16D3BE3700D49295 /* KdbGroup+MPTreeTools.m */, 4C2C4C2B16D3BE3700D49295 /* KdbGroup+MPTreeTools.m */,
4CC1AEBC16D4467C006D2AAB /* KdbTree+MPAdditions.h */, 4CC1AEBC16D4467C006D2AAB /* KdbTree+MPAdditions.h */,
4CC1AEBD16D4467C006D2AAB /* KdbTree+MPAdditions.m */, 4CC1AEBD16D4467C006D2AAB /* KdbTree+MPAdditions.m */,
4CC672771781D0C0006DEDCF /* KdbGroup+MPAdditions.h */,
4CC672781781D0C0006DEDCF /* KdbGroup+MPAdditions.m */,
4CC6727A1781D0D2006DEDCF /* KdbEntry+MPAdditions.h */,
4CC6727B1781D0D2006DEDCF /* KdbEntry+MPAdditions.m */,
4C01C23D1764D2980016D5D0 /* KdbEntry+Undo.h */, 4C01C23D1764D2980016D5D0 /* KdbEntry+Undo.h */,
4C01C23E1764D2980016D5D0 /* KdbEntry+Undo.m */, 4C01C23E1764D2980016D5D0 /* KdbEntry+Undo.m */,
4C22040B1746ED160054C916 /* KdbGroup+Undo.h */, 4C22040B1746ED160054C916 /* KdbGroup+Undo.h */,
@@ -1480,6 +1490,8 @@
4C0D9B37177F84D700D0857C /* HNHSecureTextView.m in Sources */, 4C0D9B37177F84D700D0857C /* HNHSecureTextView.m in Sources */,
4C0D9B3A177F867100D0857C /* HNHSecureLayoutManager.m in Sources */, 4C0D9B3A177F867100D0857C /* HNHSecureLayoutManager.m in Sources */,
4CC7EA1B17807E7E0089D4F3 /* HNHRoundendTextFieldCellHelper.m in Sources */, 4CC7EA1B17807E7E0089D4F3 /* HNHRoundendTextFieldCellHelper.m in Sources */,
4CC672791781D0C0006DEDCF /* KdbGroup+MPAdditions.m in Sources */,
4CC6727C1781D0D2006DEDCF /* KdbEntry+MPAdditions.m in Sources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };

View File

@@ -69,6 +69,7 @@
<string key="NSFrame">{{378, 13}, {75, 32}}</string> <string key="NSFrame">{{378, 13}, {75, 32}}</string>
<reference key="NSSuperview" ref="1006"/> <reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/> <reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:9</string> <string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="800358251"> <object class="NSButtonCell" key="NSCell" id="800358251">
@@ -97,6 +98,7 @@
<string key="NSFrame">{{13, 41}, {441, 246}}</string> <string key="NSFrame">{{13, 41}, {441, 246}}</string>
<reference key="NSSuperview" ref="1006"/> <reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/> <reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="627437575"/>
<string key="NSReuseIdentifierKey">_NS:9</string> <string key="NSReuseIdentifierKey">_NS:9</string>
<array class="NSMutableArray" key="NSTabViewItems"> <array class="NSMutableArray" key="NSTabViewItems">
<object class="NSTabViewItem" id="993610707"> <object class="NSTabViewItem" id="993610707">
@@ -147,6 +149,7 @@
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{50, 121}, {81, 17}}</string> <string key="NSFrame">{{50, 121}, {81, 17}}</string>
<reference key="NSSuperview" ref="161117556"/> <reference key="NSSuperview" ref="161117556"/>
<reference key="NSNextKeyView" ref="781083309"/>
<string key="NSReuseIdentifierKey">_NS:1535</string> <string key="NSReuseIdentifierKey">_NS:1535</string>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="164178519"> <object class="NSTextFieldCell" key="NSCell" id="164178519">
@@ -299,6 +302,7 @@
<int key="NSvFlags">256</int> <int key="NSvFlags">256</int>
<string key="NSFrame">{{193, 1}, {16, 121}}</string> <string key="NSFrame">{{193, 1}, {16, 121}}</string>
<reference key="NSSuperview" ref="781083309"/> <reference key="NSSuperview" ref="781083309"/>
<reference key="NSNextKeyView" ref="86072074"/>
<string key="NSReuseIdentifierKey">_NS:83</string> <string key="NSReuseIdentifierKey">_NS:83</string>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool> <bool key="NSAllowsLogicalLayoutDirection">NO</bool>
<reference key="NSTarget" ref="781083309"/> <reference key="NSTarget" ref="781083309"/>
@@ -343,7 +347,7 @@
</object> </object>
<object class="NSTabViewItem" id="961038136"> <object class="NSTabViewItem" id="961038136">
<object class="NSView" key="NSView" id="830804879"> <object class="NSView" key="NSView" id="830804879">
<reference key="NSNextResponder" ref="86072074"/> <nil key="NSNextResponder"/>
<int key="NSvFlags">256</int> <int key="NSvFlags">256</int>
<array class="NSMutableArray" key="NSSubviews"> <array class="NSMutableArray" key="NSSubviews">
<object class="NSTextField" id="156220187"> <object class="NSTextField" id="156220187">
@@ -351,7 +355,6 @@
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{69, 130}, {68, 17}}</string> <string key="NSFrame">{{69, 130}, {68, 17}}</string>
<reference key="NSSuperview" ref="830804879"/> <reference key="NSSuperview" ref="830804879"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="527618216"/> <reference key="NSNextKeyView" ref="527618216"/>
<string key="NSReuseIdentifierKey">_NS:1535</string> <string key="NSReuseIdentifierKey">_NS:1535</string>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
@@ -372,7 +375,6 @@
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{142, 128}, {164, 22}}</string> <string key="NSFrame">{{142, 128}, {164, 22}}</string>
<reference key="NSSuperview" ref="830804879"/> <reference key="NSSuperview" ref="830804879"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="653570365"/> <reference key="NSNextKeyView" ref="653570365"/>
<string key="NSReuseIdentifierKey">_NS:9</string> <string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
@@ -398,7 +400,6 @@
</set> </set>
<string key="NSFrame">{{139, 67}, {170, 22}}</string> <string key="NSFrame">{{139, 67}, {170, 22}}</string>
<reference key="NSSuperview" ref="830804879"/> <reference key="NSSuperview" ref="830804879"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="484114537"/> <reference key="NSNextKeyView" ref="484114537"/>
<string key="NSReuseIdentifierKey">_NS:9</string> <string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
@@ -427,7 +428,6 @@
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{86, 71}, {51, 17}}</string> <string key="NSFrame">{{86, 71}, {51, 17}}</string>
<reference key="NSSuperview" ref="830804879"/> <reference key="NSSuperview" ref="830804879"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="562503982"/> <reference key="NSNextKeyView" ref="562503982"/>
<string key="NSReuseIdentifierKey">_NS:1535</string> <string key="NSReuseIdentifierKey">_NS:1535</string>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
@@ -448,7 +448,6 @@
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{142, 44}, {164, 19}}</string> <string key="NSFrame">{{142, 44}, {164, 19}}</string>
<reference key="NSSuperview" ref="830804879"/> <reference key="NSSuperview" ref="830804879"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="321202844"/> <reference key="NSNextKeyView" ref="321202844"/>
<string key="NSReuseIdentifierKey">_NS:9</string> <string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
@@ -477,7 +476,6 @@
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{142, 96}, {164, 22}}</string> <string key="NSFrame">{{142, 96}, {164, 22}}</string>
<reference key="NSSuperview" ref="830804879"/> <reference key="NSSuperview" ref="830804879"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="323392534"/> <reference key="NSNextKeyView" ref="323392534"/>
<string key="NSReuseIdentifierKey">_NS:9</string> <string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
@@ -499,7 +497,6 @@
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{22, 98}, {115, 17}}</string> <string key="NSFrame">{{22, 98}, {115, 17}}</string>
<reference key="NSSuperview" ref="830804879"/> <reference key="NSSuperview" ref="830804879"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="596828"/> <reference key="NSNextKeyView" ref="596828"/>
<string key="NSReuseIdentifierKey">_NS:1535</string> <string key="NSReuseIdentifierKey">_NS:1535</string>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
@@ -517,8 +514,6 @@
</object> </object>
</array> </array>
<string key="NSFrame">{{10, 33}, {421, 200}}</string> <string key="NSFrame">{{10, 33}, {421, 200}}</string>
<reference key="NSSuperview" ref="86072074"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="156220187"/> <reference key="NSNextKeyView" ref="156220187"/>
</object> </object>
<string key="NSLabel">Protection</string> <string key="NSLabel">Protection</string>
@@ -644,7 +639,6 @@
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{138, 38}, {107, 18}}</string> <string key="NSFrame">{{138, 38}, {107, 18}}</string>
<reference key="NSSuperview" ref="915152531"/> <reference key="NSSuperview" ref="915152531"/>
<reference key="NSNextKeyView" ref="321202844"/>
<string key="NSReuseIdentifierKey">_NS:9</string> <string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="621059375"> <object class="NSButtonCell" key="NSCell" id="621059375">
@@ -675,7 +669,7 @@
</object> </object>
<object class="NSTabViewItem" id="5938958"> <object class="NSTabViewItem" id="5938958">
<object class="NSView" key="NSView" id="627437575"> <object class="NSView" key="NSView" id="627437575">
<nil key="NSNextResponder"/> <reference key="NSNextResponder" ref="86072074"/>
<int key="NSvFlags">256</int> <int key="NSvFlags">256</int>
<array class="NSMutableArray" key="NSSubviews"> <array class="NSMutableArray" key="NSSubviews">
<object class="NSButton" id="802671964"> <object class="NSButton" id="802671964">
@@ -683,6 +677,7 @@
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{15, 154}, {149, 18}}</string> <string key="NSFrame">{{15, 154}, {149, 18}}</string>
<reference key="NSSuperview" ref="627437575"/> <reference key="NSSuperview" ref="627437575"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="928085070"/> <reference key="NSNextKeyView" ref="928085070"/>
<string key="NSReuseIdentifierKey">_NS:9</string> <string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
@@ -709,6 +704,7 @@
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{15, 55}, {138, 18}}</string> <string key="NSFrame">{{15, 55}, {138, 18}}</string>
<reference key="NSSuperview" ref="627437575"/> <reference key="NSSuperview" ref="627437575"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="515943809"/> <reference key="NSNextKeyView" ref="515943809"/>
<string key="NSReuseIdentifierKey">_NS:9</string> <string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
@@ -735,6 +731,7 @@
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{43, 35}, {187, 18}}</string> <string key="NSFrame">{{43, 35}, {187, 18}}</string>
<reference key="NSSuperview" ref="627437575"/> <reference key="NSSuperview" ref="627437575"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="321202844"/> <reference key="NSNextKeyView" ref="321202844"/>
<string key="NSReuseIdentifierKey">_NS:9</string> <string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
@@ -761,6 +758,7 @@
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{42, 131}, {94, 17}}</string> <string key="NSFrame">{{42, 131}, {94, 17}}</string>
<reference key="NSSuperview" ref="627437575"/> <reference key="NSSuperview" ref="627437575"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="841263489"/> <reference key="NSNextKeyView" ref="841263489"/>
<string key="NSReuseIdentifierKey">_NS:1535</string> <string key="NSReuseIdentifierKey">_NS:1535</string>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
@@ -781,6 +779,7 @@
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{42, 106}, {142, 17}}</string> <string key="NSFrame">{{42, 106}, {142, 17}}</string>
<reference key="NSSuperview" ref="627437575"/> <reference key="NSSuperview" ref="627437575"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="312118872"/> <reference key="NSNextKeyView" ref="312118872"/>
<string key="NSReuseIdentifierKey">_NS:1535</string> <string key="NSReuseIdentifierKey">_NS:1535</string>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
@@ -801,6 +800,7 @@
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{187, 101}, {122, 26}}</string> <string key="NSFrame">{{187, 101}, {122, 26}}</string>
<reference key="NSSuperview" ref="627437575"/> <reference key="NSSuperview" ref="627437575"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="23176483"/> <reference key="NSNextKeyView" ref="23176483"/>
<string key="NSReuseIdentifierKey">_NS:9</string> <string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
@@ -876,6 +876,7 @@
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{189, 129}, {96, 22}}</string> <string key="NSFrame">{{189, 129}, {96, 22}}</string>
<reference key="NSSuperview" ref="627437575"/> <reference key="NSSuperview" ref="627437575"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="272306362"/> <reference key="NSNextKeyView" ref="272306362"/>
<string key="NSReuseIdentifierKey">_NS:9</string> <string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
@@ -897,6 +898,7 @@
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{290, 126}, {19, 27}}</string> <string key="NSFrame">{{290, 126}, {19, 27}}</string>
<reference key="NSSuperview" ref="627437575"/> <reference key="NSSuperview" ref="627437575"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="694724669"/> <reference key="NSNextKeyView" ref="694724669"/>
<string key="NSReuseIdentifierKey">_NS:1099</string> <string key="NSReuseIdentifierKey">_NS:1099</string>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
@@ -914,10 +916,12 @@
<object class="NSPopUpButton" id="515943809"> <object class="NSPopUpButton" id="515943809">
<reference key="NSNextResponder" ref="627437575"/> <reference key="NSNextResponder" ref="627437575"/>
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{187, 54}, {122, 26}}</string> <string key="NSFrame">{{187, 54}, {220, 26}}</string>
<reference key="NSSuperview" ref="627437575"/> <reference key="NSSuperview" ref="627437575"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="929442684"/> <reference key="NSNextKeyView" ref="929442684"/>
<string key="NSReuseIdentifierKey">_NS:9</string> <string key="NSReuseIdentifierKey">_NS:9</string>
<string key="NSAntiCompressionPriority">{750, 750}</string>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
<object class="NSPopUpButtonCell" key="NSCell" id="272342426"> <object class="NSPopUpButtonCell" key="NSCell" id="272342426">
<int key="NSCellFlags">-2076180416</int> <int key="NSCellFlags">-2076180416</int>
@@ -931,9 +935,14 @@
<string key="NSKeyEquivalent"/> <string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">400</int> <int key="NSPeriodicDelay">400</int>
<int key="NSPeriodicInterval">75</int> <int key="NSPeriodicInterval">75</int>
<object class="NSMenuItem" key="NSMenuItem" id="623907764"> <nil key="NSMenuItem"/>
<bool key="NSMenuItemRespectAlignment">YES</bool>
<object class="NSMenu" key="NSMenu" id="1073562715">
<string key="NSTitle">OtherViews</string>
<array class="NSMutableArray" key="NSMenuItems">
<object class="NSMenuItem" id="623907764">
<reference key="NSMenu" ref="1073562715"/> <reference key="NSMenu" ref="1073562715"/>
<string key="NSTitle">Item 1</string> <string key="NSTitle">A Folder</string>
<string key="NSKeyEquiv"/> <string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int> <int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int> <int key="NSMnemonicLoc">2147483647</int>
@@ -943,16 +952,10 @@
<string key="NSAction">_popUpItemAction:</string> <string key="NSAction">_popUpItemAction:</string>
<reference key="NSTarget" ref="272342426"/> <reference key="NSTarget" ref="272342426"/>
</object> </object>
<bool key="NSMenuItemRespectAlignment">YES</bool>
<object class="NSMenu" key="NSMenu" id="1073562715">
<string key="NSTitle">OtherViews</string>
<array class="NSMutableArray" key="NSMenuItems">
<reference ref="623907764"/>
<object class="NSMenuItem" id="206087551"> <object class="NSMenuItem" id="206087551">
<reference key="NSMenu" ref="1073562715"/> <reference key="NSMenu" ref="1073562715"/>
<string key="NSTitle">Item 2</string> <string key="NSTitle">Item 2</string>
<string key="NSKeyEquiv"/> <string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int> <int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="401691260"/> <reference key="NSOnImage" ref="401691260"/>
<reference key="NSMixedImage" ref="479156406"/> <reference key="NSMixedImage" ref="479156406"/>
@@ -973,6 +976,7 @@
</array> </array>
<reference key="NSMenuFont" ref="481048132"/> <reference key="NSMenuFont" ref="481048132"/>
</object> </object>
<int key="NSSelectedIndex">-1</int>
<int key="NSPreferredEdge">1</int> <int key="NSPreferredEdge">1</int>
<bool key="NSUsesItemFromMenu">YES</bool> <bool key="NSUsesItemFromMenu">YES</bool>
<bool key="NSAltersState">YES</bool> <bool key="NSAltersState">YES</bool>
@@ -982,6 +986,8 @@
</object> </object>
</array> </array>
<string key="NSFrame">{{10, 33}, {421, 200}}</string> <string key="NSFrame">{{10, 33}, {421, 200}}</string>
<reference key="NSSuperview" ref="86072074"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="802671964"/> <reference key="NSNextKeyView" ref="802671964"/>
</object> </object>
<string key="NSLabel">Advanced</string> <string key="NSLabel">Advanced</string>
@@ -989,13 +995,13 @@
<reference key="NSTabView" ref="86072074"/> <reference key="NSTabView" ref="86072074"/>
</object> </object>
</array> </array>
<reference key="NSSelectedTabViewItem" ref="961038136"/> <reference key="NSSelectedTabViewItem" ref="5938958"/>
<reference key="NSFont" ref="481048132"/> <reference key="NSFont" ref="481048132"/>
<int key="NSTvFlags">0</int> <int key="NSTvFlags">0</int>
<bool key="NSAllowTruncatedLabels">YES</bool> <bool key="NSAllowTruncatedLabels">YES</bool>
<bool key="NSDrawsBackground">YES</bool> <bool key="NSDrawsBackground">YES</bool>
<array class="NSMutableArray" key="NSSubviews"> <array class="NSMutableArray" key="NSSubviews">
<reference ref="830804879"/> <reference ref="627437575"/>
</array> </array>
</object> </object>
</array> </array>
@@ -1004,7 +1010,7 @@
<reference key="NSWindow"/> <reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="86072074"/> <reference key="NSNextKeyView" ref="86072074"/>
</object> </object>
<string key="NSScreenRect">{{0, 0}, {1920, 1058}}</string> <string key="NSScreenRect">{{0, 0}, {2560, 1418}}</string>
<string key="NSMaxSize">{10000000000000, 10000000000000}</string> <string key="NSMaxSize">{10000000000000, 10000000000000}</string>
<bool key="NSWindowIsRestorable">YES</bool> <bool key="NSWindowIsRestorable">YES</bool>
</object> </object>
@@ -1091,14 +1097,6 @@
</object> </object>
<int key="connectionID">677</int> <int key="connectionID">677</int>
</object> </object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">useRecycleBinCheckButton</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="23176483"/>
</object>
<int key="connectionID">688</int>
</object>
<object class="IBConnectionRecord"> <object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection"> <object class="IBOutletConnection" key="connection">
<string key="label">emptyRecycleBinOnQuitCheckButton</string> <string key="label">emptyRecycleBinOnQuitCheckButton</string>
@@ -1131,6 +1129,14 @@
</object> </object>
<int key="connectionID">707</int> <int key="connectionID">707</int>
</object> </object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">enableRecycleBinCheckButton</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="23176483"/>
</object>
<int key="connectionID">815</int>
</object>
</array> </array>
<object class="IBMutableOrderedSet" key="objectRecords"> <object class="IBMutableOrderedSet" key="objectRecords">
<array key="orderedObjects"> <array key="orderedObjects">
@@ -1246,8 +1252,8 @@
</object> </object>
<float key="priority">1000</float> <float key="priority">1000</float>
<reference key="containingView" ref="1006"/> <reference key="containingView" ref="1006"/>
<int key="scoringType">8</int> <int key="scoringType">9</int>
<float key="scoringTypeFloat">29</float> <float key="scoringTypeFloat">40</float>
<int key="contentType">3</int> <int key="contentType">3</int>
</object> </object>
<object class="IBNSLayoutConstraint" id="195261135"> <object class="IBNSLayoutConstraint" id="195261135">
@@ -1262,12 +1268,12 @@
</object> </object>
<float key="priority">1000</float> <float key="priority">1000</float>
<reference key="containingView" ref="1006"/> <reference key="containingView" ref="1006"/>
<int key="scoringType">8</int> <int key="scoringType">9</int>
<float key="scoringTypeFloat">29</float> <float key="scoringTypeFloat">40</float>
<int key="contentType">3</int> <int key="contentType">3</int>
</object> </object>
<reference ref="86072074"/>
<reference ref="321202844"/> <reference ref="321202844"/>
<reference ref="86072074"/>
</array> </array>
<reference key="parent" ref="1005"/> <reference key="parent" ref="1005"/>
</object> </object>
@@ -1524,6 +1530,22 @@
<float key="scoringTypeFloat">24</float> <float key="scoringTypeFloat">24</float>
<int key="contentType">2</int> <int key="contentType">2</int>
</object> </object>
<object class="IBNSLayoutConstraint" id="456177732">
<reference key="firstItem" ref="627437575"/>
<int key="firstAttribute">6</int>
<int key="relation">0</int>
<reference key="secondItem" ref="515943809"/>
<int key="secondAttribute">6</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="627437575"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="316316973"> <object class="IBNSLayoutConstraint" id="316316973">
<reference key="firstItem" ref="515943809"/> <reference key="firstItem" ref="515943809"/>
<int key="firstAttribute">5</int> <int key="firstAttribute">5</int>
@@ -1536,8 +1558,8 @@
</object> </object>
<float key="priority">1000</float> <float key="priority">1000</float>
<reference key="containingView" ref="627437575"/> <reference key="containingView" ref="627437575"/>
<int key="scoringType">6</int> <int key="scoringType">9</int>
<float key="scoringTypeFloat">24</float> <float key="scoringTypeFloat">40</float>
<int key="contentType">2</int> <int key="contentType">2</int>
</object> </object>
<object class="IBNSLayoutConstraint" id="662964313"> <object class="IBNSLayoutConstraint" id="662964313">
@@ -1557,22 +1579,6 @@
<int key="contentType">2</int> <int key="contentType">2</int>
</object> </object>
<object class="IBNSLayoutConstraint" id="821261981"> <object class="IBNSLayoutConstraint" id="821261981">
<reference key="firstItem" ref="312118872"/>
<int key="firstAttribute">6</int>
<int key="relation">0</int>
<reference key="secondItem" ref="515943809"/>
<int key="secondAttribute">6</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">0.0</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="627437575"/>
<int key="scoringType">6</int>
<float key="scoringTypeFloat">24</float>
<int key="contentType">2</int>
</object>
<object class="IBNSLayoutConstraint" id="1042942101">
<reference key="firstItem" ref="312118872"/> <reference key="firstItem" ref="312118872"/>
<int key="firstAttribute">6</int> <int key="firstAttribute">6</int>
<int key="relation">0</int> <int key="relation">0</int>
@@ -1616,8 +1622,8 @@
</object> </object>
<float key="priority">1000</float> <float key="priority">1000</float>
<reference key="containingView" ref="627437575"/> <reference key="containingView" ref="627437575"/>
<int key="scoringType">6</int> <int key="scoringType">9</int>
<float key="scoringTypeFloat">24</float> <float key="scoringTypeFloat">40</float>
<int key="contentType">3</int> <int key="contentType">3</int>
</object> </object>
<object class="IBNSLayoutConstraint" id="995495772"> <object class="IBNSLayoutConstraint" id="995495772">
@@ -1684,6 +1690,22 @@
<float key="scoringTypeFloat">24</float> <float key="scoringTypeFloat">24</float>
<int key="contentType">3</int> <int key="contentType">3</int>
</object> </object>
<object class="IBNSLayoutConstraint" id="164419555">
<reference key="firstItem" ref="929442684"/>
<int key="firstAttribute">5</int>
<int key="relation">0</int>
<reference key="secondItem" ref="694724669"/>
<int key="secondAttribute">5</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">0.0</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="627437575"/>
<int key="scoringType">6</int>
<float key="scoringTypeFloat">24</float>
<int key="contentType">2</int>
</object>
<object class="IBNSLayoutConstraint" id="891999853"> <object class="IBNSLayoutConstraint" id="891999853">
<reference key="firstItem" ref="23176483"/> <reference key="firstItem" ref="23176483"/>
<int key="firstAttribute">5</int> <int key="firstAttribute">5</int>
@@ -1716,22 +1738,6 @@
<float key="scoringTypeFloat">24</float> <float key="scoringTypeFloat">24</float>
<int key="contentType">3</int> <int key="contentType">3</int>
</object> </object>
<object class="IBNSLayoutConstraint" id="164419555">
<reference key="firstItem" ref="694724669"/>
<int key="firstAttribute">5</int>
<int key="relation">0</int>
<reference key="secondItem" ref="929442684"/>
<int key="secondAttribute">5</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">0.0</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="627437575"/>
<int key="scoringType">6</int>
<float key="scoringTypeFloat">24</float>
<int key="contentType">2</int>
</object>
<object class="IBNSLayoutConstraint" id="253266470"> <object class="IBNSLayoutConstraint" id="253266470">
<reference key="firstItem" ref="694724669"/> <reference key="firstItem" ref="694724669"/>
<int key="firstAttribute">5</int> <int key="firstAttribute">5</int>
@@ -1744,8 +1750,8 @@
</object> </object>
<float key="priority">1000</float> <float key="priority">1000</float>
<reference key="containingView" ref="627437575"/> <reference key="containingView" ref="627437575"/>
<int key="scoringType">6</int> <int key="scoringType">9</int>
<float key="scoringTypeFloat">24</float> <float key="scoringTypeFloat">40</float>
<int key="contentType">2</int> <int key="contentType">2</int>
</object> </object>
<object class="IBNSLayoutConstraint" id="603572468"> <object class="IBNSLayoutConstraint" id="603572468">
@@ -1776,8 +1782,8 @@
</object> </object>
<float key="priority">1000</float> <float key="priority">1000</float>
<reference key="containingView" ref="627437575"/> <reference key="containingView" ref="627437575"/>
<int key="scoringType">6</int> <int key="scoringType">9</int>
<float key="scoringTypeFloat">24</float> <float key="scoringTypeFloat">40</float>
<int key="contentType">2</int> <int key="contentType">2</int>
</object> </object>
<object class="IBNSLayoutConstraint" id="826829209"> <object class="IBNSLayoutConstraint" id="826829209">
@@ -1792,8 +1798,8 @@
</object> </object>
<float key="priority">1000</float> <float key="priority">1000</float>
<reference key="containingView" ref="627437575"/> <reference key="containingView" ref="627437575"/>
<int key="scoringType">8</int> <int key="scoringType">9</int>
<float key="scoringTypeFloat">29</float> <float key="scoringTypeFloat">40</float>
<int key="contentType">3</int> <int key="contentType">3</int>
</object> </object>
<object class="IBNSLayoutConstraint" id="886063893"> <object class="IBNSLayoutConstraint" id="886063893">
@@ -1813,13 +1819,13 @@
<int key="contentType">3</int> <int key="contentType">3</int>
</object> </object>
<reference ref="23176483"/> <reference ref="23176483"/>
<reference ref="929442684"/>
<reference ref="928085070"/> <reference ref="928085070"/>
<reference ref="694724669"/> <reference ref="694724669"/>
<reference ref="312118872"/> <reference ref="312118872"/>
<reference ref="841263489"/> <reference ref="841263489"/>
<reference ref="272306362"/> <reference ref="272306362"/>
<reference ref="515943809"/> <reference ref="515943809"/>
<reference ref="929442684"/>
</array> </array>
<reference key="parent" ref="5938958"/> <reference key="parent" ref="5938958"/>
</object> </object>
@@ -2058,16 +2064,6 @@
<reference key="object" ref="3470984"/> <reference key="object" ref="3470984"/>
<reference key="parent" ref="322366428"/> <reference key="parent" ref="322366428"/>
</object> </object>
<object class="IBObjectRecord">
<int key="objectID">365</int>
<reference key="object" ref="195261135"/>
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">374</int>
<reference key="object" ref="880810841"/>
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord"> <object class="IBObjectRecord">
<int key="objectID">425</int> <int key="objectID">425</int>
<reference key="object" ref="449798296"/> <reference key="object" ref="449798296"/>
@@ -2242,16 +2238,6 @@
<reference key="object" ref="428663088"/> <reference key="object" ref="428663088"/>
<reference key="parent" ref="1006"/> <reference key="parent" ref="1006"/>
</object> </object>
<object class="IBObjectRecord">
<int key="objectID">390</int>
<reference key="object" ref="1054156999"/>
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">552</int>
<reference key="object" ref="117571712"/>
<reference key="parent" ref="627437575"/>
</object>
<object class="IBObjectRecord"> <object class="IBObjectRecord">
<int key="objectID">557</int> <int key="objectID">557</int>
<reference key="object" ref="928085070"/> <reference key="object" ref="928085070"/>
@@ -2280,6 +2266,22 @@
<reference key="object" ref="694724669"/> <reference key="object" ref="694724669"/>
<array class="NSMutableArray" key="children"> <array class="NSMutableArray" key="children">
<reference ref="514211079"/> <reference ref="514211079"/>
<object class="IBNSLayoutConstraint" id="809612668">
<reference key="firstItem" ref="694724669"/>
<int key="firstAttribute">7</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">136</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="694724669"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">1</int>
</object>
</array> </array>
<reference key="parent" ref="627437575"/> <reference key="parent" ref="627437575"/>
</object> </object>
@@ -2293,11 +2295,6 @@
<reference key="object" ref="253266470"/> <reference key="object" ref="253266470"/>
<reference key="parent" ref="627437575"/> <reference key="parent" ref="627437575"/>
</object> </object>
<object class="IBObjectRecord">
<int key="objectID">567</int>
<reference key="object" ref="164419555"/>
<reference key="parent" ref="627437575"/>
</object>
<object class="IBObjectRecord"> <object class="IBObjectRecord">
<int key="objectID">568</int> <int key="objectID">568</int>
<reference key="object" ref="703849112"/> <reference key="object" ref="703849112"/>
@@ -2421,11 +2418,6 @@
<reference key="object" ref="578414441"/> <reference key="object" ref="578414441"/>
<reference key="parent" ref="627437575"/> <reference key="parent" ref="627437575"/>
</object> </object>
<object class="IBObjectRecord">
<int key="objectID">603</int>
<reference key="object" ref="1042942101"/>
<reference key="parent" ref="627437575"/>
</object>
<object class="IBObjectRecord"> <object class="IBObjectRecord">
<int key="objectID">527</int> <int key="objectID">527</int>
<reference key="object" ref="458219550"/> <reference key="object" ref="458219550"/>
@@ -2784,6 +2776,22 @@
<reference key="object" ref="515943809"/> <reference key="object" ref="515943809"/>
<array class="NSMutableArray" key="children"> <array class="NSMutableArray" key="children">
<reference ref="272342426"/> <reference ref="272342426"/>
<object class="IBNSLayoutConstraint" id="631142839">
<reference key="firstItem" ref="515943809"/>
<int key="firstAttribute">7</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">215</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="515943809"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">1</int>
</object>
</array> </array>
<reference key="parent" ref="627437575"/> <reference key="parent" ref="627437575"/>
</object> </object>
@@ -2820,31 +2828,11 @@
<reference key="object" ref="165265102"/> <reference key="object" ref="165265102"/>
<reference key="parent" ref="1073562715"/> <reference key="parent" ref="1073562715"/>
</object> </object>
<object class="IBObjectRecord">
<int key="objectID">685</int>
<reference key="object" ref="662964313"/>
<reference key="parent" ref="627437575"/>
</object>
<object class="IBObjectRecord"> <object class="IBObjectRecord">
<int key="objectID">686</int> <int key="objectID">686</int>
<reference key="object" ref="316316973"/> <reference key="object" ref="316316973"/>
<reference key="parent" ref="627437575"/> <reference key="parent" ref="627437575"/>
</object> </object>
<object class="IBObjectRecord">
<int key="objectID">687</int>
<reference key="object" ref="821261981"/>
<reference key="parent" ref="627437575"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">708</int>
<reference key="object" ref="300990439"/>
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">556</int>
<reference key="object" ref="551703787"/>
<reference key="parent" ref="627437575"/>
</object>
<object class="IBObjectRecord"> <object class="IBObjectRecord">
<int key="objectID">710</int> <int key="objectID">710</int>
<reference key="object" ref="395189341"/> <reference key="object" ref="395189341"/>
@@ -3063,6 +3051,66 @@
<reference key="object" ref="908771696"/> <reference key="object" ref="908771696"/>
<reference key="parent" ref="527618216"/> <reference key="parent" ref="527618216"/>
</object> </object>
<object class="IBObjectRecord">
<int key="objectID">685</int>
<reference key="object" ref="662964313"/>
<reference key="parent" ref="627437575"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">374</int>
<reference key="object" ref="880810841"/>
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">708</int>
<reference key="object" ref="300990439"/>
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">365</int>
<reference key="object" ref="195261135"/>
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">390</int>
<reference key="object" ref="1054156999"/>
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">842</int>
<reference key="object" ref="809612668"/>
<reference key="parent" ref="694724669"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">843</int>
<reference key="object" ref="456177732"/>
<reference key="parent" ref="627437575"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">844</int>
<reference key="object" ref="631142839"/>
<reference key="parent" ref="515943809"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">845</int>
<reference key="object" ref="164419555"/>
<reference key="parent" ref="627437575"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">848</int>
<reference key="object" ref="117571712"/>
<reference key="parent" ref="627437575"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">849</int>
<reference key="object" ref="551703787"/>
<reference key="parent" ref="627437575"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">850</int>
<reference key="object" ref="821261981"/>
<reference key="parent" ref="627437575"/>
</object>
</array> </array>
</object> </object>
<dictionary class="NSMutableDictionary" key="flattenedProperties"> <dictionary class="NSMutableDictionary" key="flattenedProperties">
@@ -3122,19 +3170,19 @@
<reference ref="1057722854"/> <reference ref="1057722854"/>
<reference ref="603572468"/> <reference ref="603572468"/>
<reference ref="253266470"/> <reference ref="253266470"/>
<reference ref="164419555"/>
<reference ref="703849112"/> <reference ref="703849112"/>
<reference ref="891999853"/> <reference ref="891999853"/>
<reference ref="164419555"/>
<reference ref="117571712"/> <reference ref="117571712"/>
<reference ref="551703787"/> <reference ref="551703787"/>
<reference ref="1260617"/> <reference ref="1260617"/>
<reference ref="995495772"/> <reference ref="995495772"/>
<reference ref="447178899"/> <reference ref="447178899"/>
<reference ref="91575695"/> <reference ref="91575695"/>
<reference ref="1042942101"/>
<reference ref="821261981"/> <reference ref="821261981"/>
<reference ref="662964313"/> <reference ref="662964313"/>
<reference ref="316316973"/> <reference ref="316316973"/>
<reference ref="456177732"/>
<reference ref="565766365"/> <reference ref="565766365"/>
<reference ref="578414441"/> <reference ref="578414441"/>
</array> </array>
@@ -3196,18 +3244,18 @@
<boolean value="NO" key="539.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/> <boolean value="NO" key="539.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
<string key="539.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="539.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="540.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="540.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="552.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="556.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="NO" key="557.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/> <boolean value="NO" key="557.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
<string key="557.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="557.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="558.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="558.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="561.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="561.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="562.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="562.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<array key="564.IBNSViewMetadataConstraints">
<reference ref="809612668"/>
</array>
<boolean value="NO" key="564.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/> <boolean value="NO" key="564.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
<string key="564.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="564.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="565.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="565.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="566.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="566.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="567.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="568.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="568.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="NO" key="579.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/> <boolean value="NO" key="579.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
<string key="579.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="579.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -3232,7 +3280,6 @@
<string key="600.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="600.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="601.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="601.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="602.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="602.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="603.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="619.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="619.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<array class="NSMutableArray" key="620.IBNSViewMetadataConstraints"> <array class="NSMutableArray" key="620.IBNSViewMetadataConstraints">
<reference ref="426906662"/> <reference ref="426906662"/>
@@ -3262,7 +3309,7 @@
</array> </array>
<boolean value="NO" key="625.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/> <boolean value="NO" key="625.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
<string key="625.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="625.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="626.CustomClassName">HNHRoundedSecureTextFieldCell</string> <string key="626.CustomClassName">HNHRoundedTextFieldCell</string>
<string key="626.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="626.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="NO" key="638.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/> <boolean value="NO" key="638.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
<string key="638.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="638.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -3271,7 +3318,6 @@
<string key="648.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="648.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="NO" key="650.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/> <boolean value="NO" key="650.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
<string key="650.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="650.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="651.CustomClassName">HNHRoundedSecureTextFieldCell</string>
<string key="651.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="651.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="657.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="657.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="NO" key="665.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/> <boolean value="NO" key="665.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
@@ -3284,6 +3330,9 @@
<string key="673.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="673.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="674.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="674.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="675.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="675.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<array key="678.IBNSViewMetadataConstraints">
<reference ref="631142839"/>
</array>
<boolean value="NO" key="678.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/> <boolean value="NO" key="678.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
<string key="678.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="678.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="679.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="679.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -3293,7 +3342,6 @@
<string key="683.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="683.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="685.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="685.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="686.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="686.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="687.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="708.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="708.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="710.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="710.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="NO" key="731.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/> <boolean value="NO" key="731.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
@@ -3303,7 +3351,7 @@
<string key="735.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="735.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="NO" key="742.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/> <boolean value="NO" key="742.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
<string key="742.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="742.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="744.CustomClassName">HNHRoundedSecureTextFieldCell</string> <string key="744.CustomClassName">HNHRoundedTextFieldCell</string>
<string key="744.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="744.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="748.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="748.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="749.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="749.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -3323,41 +3371,38 @@
<string key="775.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="775.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="776.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="776.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="777.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="777.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="842.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="843.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="844.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="845.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="848.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="849.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="850.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
</dictionary> </dictionary>
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/> <dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
<nil key="activeLocalization"/> <nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/> <dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/> <nil key="sourceID"/>
<int key="maxID">814</int> <int key="maxID">850</int>
</object> </object>
<object class="IBClassDescriber" key="IBDocument.Classes"> <object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions"> <array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription"> <object class="IBPartialClassDescription">
<string key="className">HNHRoundedSecureTextFieldCell</string> <string key="className">HNHRoundedTextFieldCell</string>
<string key="superclassName">NSSecureTextFieldCell</string> <string key="superclassName">NSTextFieldCell</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier"> <object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string> <string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/HNHRoundedSecureTextFieldCell.h</string> <string key="minorKey">./Classes/HNHRoundedTextFieldCell.h</string>
</object> </object>
</object> </object>
<object class="IBPartialClassDescription"> <object class="IBPartialClassDescription">
<string key="className">MPDocumentSettingsWindowController</string> <string key="className">MPDocumentSettingsWindowController</string>
<string key="superclassName">NSWindowController</string> <string key="superclassName">NSWindowController</string>
<object class="NSMutableDictionary" key="actions">
<string key="NS.key.0">close:</string>
<string key="NS.object.0">id</string>
</object>
<object class="NSMutableDictionary" key="actionInfosByName">
<string key="NS.key.0">close:</string>
<object class="IBActionInfo" key="NS.object.0">
<string key="name">close:</string>
<string key="candidateClassName">id</string>
</object>
</object>
<dictionary class="NSMutableDictionary" key="outlets"> <dictionary class="NSMutableDictionary" key="outlets">
<string key="databaseDescriptionTextView">NSTextView</string> <string key="databaseDescriptionTextView">NSTextView</string>
<string key="databaseNameTextField">NSTextField</string> <string key="databaseNameTextField">NSTextField</string>
<string key="emptyRecycleBinOnQuitCheckButton">NSButton</string> <string key="emptyRecycleBinOnQuitCheckButton">NSButton</string>
<string key="enableRecycleBinCheckButton">NSButton</string>
<string key="keyfilePathControl">NSPathControl</string> <string key="keyfilePathControl">NSPathControl</string>
<string key="passwordTextField">NSTextField</string> <string key="passwordTextField">NSTextField</string>
<string key="protectNotesCheckButton">NSButton</string> <string key="protectNotesCheckButton">NSButton</string>
@@ -3367,7 +3412,6 @@
<string key="protectUserNameCheckButton">NSButton</string> <string key="protectUserNameCheckButton">NSButton</string>
<string key="sectionTabView">NSTabView</string> <string key="sectionTabView">NSTabView</string>
<string key="selectRecycleBinGroupPopUpButton">NSPopUpButton</string> <string key="selectRecycleBinGroupPopUpButton">NSPopUpButton</string>
<string key="useRecycleBinCheckButton">NSButton</string>
</dictionary> </dictionary>
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName"> <dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
<object class="IBToOneOutletInfo" key="databaseDescriptionTextView"> <object class="IBToOneOutletInfo" key="databaseDescriptionTextView">
@@ -3382,6 +3426,10 @@
<string key="name">emptyRecycleBinOnQuitCheckButton</string> <string key="name">emptyRecycleBinOnQuitCheckButton</string>
<string key="candidateClassName">NSButton</string> <string key="candidateClassName">NSButton</string>
</object> </object>
<object class="IBToOneOutletInfo" key="enableRecycleBinCheckButton">
<string key="name">enableRecycleBinCheckButton</string>
<string key="candidateClassName">NSButton</string>
</object>
<object class="IBToOneOutletInfo" key="keyfilePathControl"> <object class="IBToOneOutletInfo" key="keyfilePathControl">
<string key="name">keyfilePathControl</string> <string key="name">keyfilePathControl</string>
<string key="candidateClassName">NSPathControl</string> <string key="candidateClassName">NSPathControl</string>
@@ -3418,10 +3466,6 @@
<string key="name">selectRecycleBinGroupPopUpButton</string> <string key="name">selectRecycleBinGroupPopUpButton</string>
<string key="candidateClassName">NSPopUpButton</string> <string key="candidateClassName">NSPopUpButton</string>
</object> </object>
<object class="IBToOneOutletInfo" key="useRecycleBinCheckButton">
<string key="name">useRecycleBinCheckButton</string>
<string key="candidateClassName">NSButton</string>
</object>
</dictionary> </dictionary>
<object class="IBClassDescriptionSource" key="sourceIdentifier"> <object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string> <string key="majorKey">IBProjectSource</string>

View File

@@ -0,0 +1,15 @@
//
// KdbEntry+MPAdditions.h
// MacPass
//
// Created by Michael Starke on 01.07.13.
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
//
#import "Kdb.h"
@interface KdbEntry (MPAdditions)
@property (nonatomic, readonly) NSImage *icon;
@end

View File

@@ -0,0 +1,19 @@
//
// KdbEntry+MPAdditions.m
// MacPass
//
// Created by Michael Starke on 01.07.13.
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
//
#import "KdbEntry+MPAdditions.h"
#import "MPIconHelper.h"
@implementation KdbEntry (MPAdditions)
- (NSImage *)icon {
return [MPIconHelper icon:(MPIconType)self.image];
}
@end

View File

@@ -0,0 +1,22 @@
//
// KdbGroup+MPAdditions.h
// MacPass
//
// Created by Michael Starke on 01.07.13.
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
//
#import "Kdb.h"
@interface KdbGroup (MPAdditions)
/* Adapter to load images based on icon index */
@property (nonatomic, readonly) NSImage *icon;
/* Walks the tree up to the root element */
- (KdbGroup *)root;
/* Removes all Groups and Entries from this group*/
- (void)clear;
@end

View File

@@ -0,0 +1,36 @@
//
// KdbGroup+MPAdditions.m
// MacPass
//
// Created by Michael Starke on 01.07.13.
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
//
#import "KdbGroup+MPAdditions.h"
#import "KdbGroup+KVOAdditions.h"
#import "MPIconHelper.h"
@implementation KdbGroup (MPAdditions)
- (NSImage *)icon {
return [MPIconHelper icon:(MPIconType)self.image];
}
- (KdbGroup *)root {
if(self.parent) {
return [self.parent root];
}
return self;
}
- (void)clear {
NSUInteger groupCount = [_groups count];
for(NSInteger index = (groupCount - 1); index > -1; index--) {
[self removeObjectFromGroupsAtIndex:index];
}
NSUInteger entryCount = [_entries count];
for(NSInteger index = (entryCount - 1); index > -1; index--) {
[self removeObjectFromEntriesAtIndex:index];
}
}
@end

View File

@@ -19,6 +19,7 @@ typedef NS_ENUM(NSUInteger, MPActionType) {
MPActionOpenURL, // open url in default browser MPActionOpenURL, // open url in default browser
MPActionToggleInspector, MPActionToggleInspector,
MPActionLock, // show the lock screen MPActionLock, // show the lock screen
MPActionEmptyTrash // empties the trashcan, if there is one
}; };
@interface MPActionHelper : NSObject @interface MPActionHelper : NSObject

View File

@@ -24,7 +24,8 @@
@(MPActionEdit) : @"editEntry:", @(MPActionEdit) : @"editEntry:",
@(MPActionOpenURL) : @"openURL:", @(MPActionOpenURL) : @"openURL:",
@(MPActionToggleInspector) : @"toggleInspector:", @(MPActionToggleInspector) : @"toggleInspector:",
@(MPActionLock) : @"lock:" @(MPActionLock) : @"lock:",
@(MPActionEmptyTrash) : @"emptyTrash:"
} retain]; } retain];
}); });
return NSSelectorFromString(actionDict[@(type)]); return NSSelectorFromString(actionDict[@(type)]);

View File

@@ -8,13 +8,15 @@
#import <Cocoa/Cocoa.h> #import <Cocoa/Cocoa.h>
typedef enum { typedef NS_OPTIONS(NSUInteger, MPContextMenuItemsFlags) {
MPContextMenuCreate = 1 << 0, MPContextMenuCreate = 1 << 0,
MPContextMenuDelete = 1 << 1, MPContextMenuDelete = 1 << 1,
MPContextMenuCopy = 1 << 2, MPContextMenuCopy = 1 << 2,
MPContextMenuTrash = 1 << 3,
MPContextMenuMinimal = MPContextMenuCreate | MPContextMenuDelete, MPContextMenuMinimal = MPContextMenuCreate | MPContextMenuDelete,
MPContextMenuFull = MPContextMenuMinimal | MPContextMenuCopy, MPContextMenuFull = MPContextMenuMinimal | MPContextMenuCopy,
} MPContextMenuItemsFlags; MPContextMenuExtended = MPContextMenuFull | MPContextMenuTrash
};
@interface MPContextMenuHelper : NSTableCellView @interface MPContextMenuHelper : NSTableCellView

View File

@@ -15,8 +15,9 @@
BOOL insertCreate = (0 != (flags & MPContextMenuCreate)); BOOL insertCreate = (0 != (flags & MPContextMenuCreate));
BOOL insertDelete = (0 != (flags & MPContextMenuDelete)); BOOL insertDelete = (0 != (flags & MPContextMenuDelete));
BOOL insertCopy = (0 != (flags & MPContextMenuCopy)); BOOL insertCopy = (0 != (flags & MPContextMenuCopy));
BOOL insertTrash = (0 != (flags & MPContextMenuTrash));
NSMutableArray *items = [NSMutableArray arrayWithCapacity:7]; NSMutableArray *items = [NSMutableArray arrayWithCapacity:10];
if(insertCreate) { if(insertCreate) {
NSMenuItem *newGroup = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"ADD_GROUP", @"") NSMenuItem *newGroup = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"ADD_GROUP", @"")
@@ -30,20 +31,30 @@
[newEntry release]; [newEntry release];
[newGroup release]; [newGroup release];
} }
if(insertDelete || insertTrash) {
[self _beginSection:items];
if(insertDelete) { if(insertDelete) {
if([items count] > 0) {
[items addObject:[NSMenuItem separatorItem]];
}
NSMenuItem *delete = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"DELETE", @"") NSMenuItem *delete = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"DELETE", @"")
action:[MPActionHelper actionOfType:MPActionDelete] action:[MPActionHelper actionOfType:MPActionDelete]
keyEquivalent:@""]; keyEquivalent:@""];
[items addObject:delete]; [items addObject:delete];
[delete release]; [delete release];
}
if(insertTrash) {
NSMenuItem *emptyTrash = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"EMPTY_TRASH", @"")
action:[MPActionHelper actionOfType:MPActionEmptyTrash]
keyEquivalent:@""];
[emptyTrash setKeyEquivalentModifierMask:(NSShiftKeyMask | NSCommandKeyMask)];
unichar backSpace = NSBackspaceCharacter;
[emptyTrash setKeyEquivalent:[NSString stringWithCharacters:&backSpace length:1]];
[items addObject:emptyTrash];
[emptyTrash release];
}
} }
if(insertCopy) { if(insertCopy) {
if([items count] > 0) { [self _beginSection:items];
[items addObject:[NSMenuItem separatorItem]];
}
NSMenuItem *copyUsername = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"COPY_USERNAME", @"") NSMenuItem *copyUsername = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"COPY_USERNAME", @"")
action:[MPActionHelper actionOfType:MPActionCopyUsername] action:[MPActionHelper actionOfType:MPActionCopyUsername]
keyEquivalent:@"C"]; keyEquivalent:@"C"];
@@ -74,8 +85,14 @@
[copyPassword release]; [copyPassword release];
[copyUsername release]; [copyUsername release];
} }
return items; return items;
} }
+ (void)_beginSection:(NSMutableArray *)items {
if([items count] > 0) {
[items addObject:[NSMenuItem separatorItem]];
}
}
@end @end

View File

@@ -44,6 +44,7 @@ APPKIT_EXTERN NSString *const MPDocumentGroupKey;
@property (readonly, retain) MPRootAdapter *rootAdapter; @property (readonly, retain) MPRootAdapter *rootAdapter;
@property (nonatomic, retain) NSString *password; @property (nonatomic, retain) NSString *password;
@property (nonatomic, retain) NSURL *key; @property (nonatomic, retain) NSURL *key;
@property (assign, readonly) MPDatabaseVersion version; @property (assign, readonly) MPDatabaseVersion version;
@property (assign, readonly, getter = isReadOnly) BOOL readOnly; @property (assign, readonly, getter = isReadOnly) BOOL readOnly;
@@ -69,7 +70,6 @@ APPKIT_EXTERN NSString *const MPDocumentGroupKey;
- (KdbGroup *)createGroup:(KdbGroup *)parent; - (KdbGroup *)createGroup:(KdbGroup *)parent;
- (KdbEntry *)createEntry:(KdbGroup *)parent; - (KdbEntry *)createEntry:(KdbGroup *)parent;
- (StringField *)createStringField:(KdbEntry *)entry; - (StringField *)createStringField:(KdbEntry *)entry;
/* /*
All non-setter undoable actions All non-setter undoable actions
*/ */
@@ -86,4 +86,6 @@ APPKIT_EXTERN NSString *const MPDocumentGroupKey;
- (void)entry:(Kdb4Entry *)entry addStringField:(StringField *)field atIndex:(NSUInteger)index; - (void)entry:(Kdb4Entry *)entry addStringField:(StringField *)field atIndex:(NSUInteger)index;
- (void)entry:(Kdb4Entry *)entry removeStringField:(StringField *)field; - (void)entry:(Kdb4Entry *)entry removeStringField:(StringField *)field;
- (void)emptyTrash:(id)sender;
@end @end

View File

@@ -12,6 +12,7 @@
#import "MPDatabaseVersion.h" #import "MPDatabaseVersion.h"
#import "MPRootAdapter.h" #import "MPRootAdapter.h"
#import "MPIconHelper.h" #import "MPIconHelper.h"
#import "MPActionHelper.h"
#import "KdbLib.h" #import "KdbLib.h"
#import "Kdb3Node.h" #import "Kdb3Node.h"
@@ -21,6 +22,7 @@
#import "KdbGroup+KVOAdditions.h" #import "KdbGroup+KVOAdditions.h"
#import "Kdb4Entry+KVOAdditions.h" #import "Kdb4Entry+KVOAdditions.h"
#import "KdbGroup+MPTreeTools.h" #import "KdbGroup+MPTreeTools.h"
#import "KdbGroup+MPAdditions.h"
#import "KdbEntry+Undo.h" #import "KdbEntry+Undo.h"
#import "Kdb3Tree+NewTree.h" #import "Kdb3Tree+NewTree.h"
#import "Kdb4Tree+NewTree.h" #import "Kdb4Tree+NewTree.h"
@@ -51,8 +53,9 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey";
@property (assign) BOOL readOnly; @property (assign) BOOL readOnly;
@property (retain) NSURL *lockFileURL; @property (retain) NSURL *lockFileURL;
@property (readonly, assign, nonatomic) KdbGroup *recyleBin;
@property (readonly) BOOL useRecylceBin; @property (readonly) BOOL useTrash;
@property (readonly) KdbGroup *trash;
@end @end
@@ -258,20 +261,21 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey";
} }
} }
- (BOOL)useRecylceBin { - (BOOL)useTrash {
if(self.treeV4) { if(self.treeV4) {
return self.treeV4.recycleBinEnabled; return self.treeV4.recycleBinEnabled;
} }
return NO; return NO;
} }
- (KdbGroup *)recyleBin { - (KdbGroup *)trash {
static KdbGroup *_recycleBin; static KdbGroup *_trash = nil;
if(self.useRecylceBin) { if(self.useTrash) {
if(!_recycleBin) { BOOL trashValid = [((Kdb4Group *)_trash).uuid isEqual:self.treeV4.recycleBinUuid];
_recycleBin = [self findGroup:self.treeV4.recycleBinUuid]; if(!trashValid) {
_trash = [self findGroup:self.treeV4.recycleBinUuid];
} }
return _recycleBin; return _trash;
} }
return nil; return nil;
} }
@@ -322,7 +326,7 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey";
return; // No changes return; // No changes
} }
[[[self undoManager] prepareWithInvocationTarget:self] moveGroup:group toGroup:group.parent index:oldIndex]; [[[self undoManager] prepareWithInvocationTarget:self] moveGroup:group toGroup:group.parent index:oldIndex];
if(self.recyleBin == target) { if(self.trash == target) {
[[self undoManager] setActionName:@"UNDO_DELETE_GROUP"]; [[self undoManager] setActionName:@"UNDO_DELETE_GROUP"];
} }
else { else {
@@ -358,7 +362,7 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey";
return; // No changes return; // No changes
} }
[[[self undoManager] prepareWithInvocationTarget:self] moveEntry:entry toGroup:entry.parent index:oldIndex]; [[[self undoManager] prepareWithInvocationTarget:self] moveEntry:entry toGroup:entry.parent index:oldIndex];
if(self.recyleBin == target || self.recyleBin == entry.parent) { if(self.trash == target || self.trash == entry.parent) {
[[self undoManager] setActionName:@"UNDO_DELETE_ENTRY"]; [[self undoManager] setActionName:@"UNDO_DELETE_ENTRY"];
} }
else { else {
@@ -388,11 +392,11 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey";
if(NSNotFound == index) { if(NSNotFound == index) {
return; // No object found; return; // No object found;
} }
if(self.useRecylceBin) { if(self.useTrash) {
if(!self.recyleBin) { if(!self.trash) {
[self _createRecylceBin]; [self _createTrashGroup];
} }
[self moveEntry:entry toGroup:self.recyleBin index:[self.recyleBin.entries count]]; [self moveEntry:entry toGroup:self.trash index:[self.trash.entries count]];
return; return;
} }
[[[self undoManager] prepareWithInvocationTarget:self] group:group addEntry:entry atIndex:index]; [[[self undoManager] prepareWithInvocationTarget:self] group:group addEntry:entry atIndex:index];
@@ -405,15 +409,19 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey";
if(NSNotFound == index) { if(NSNotFound == index) {
return; // No object found return; // No object found
} }
if(self.trash == aGroup) {
return;
// delete Trash?
}
/* /*
Cleaning the recyclebin is not undoable Cleaning the recyclebin is not undoable
So we do this in a separate action So we do this in a separate action
*/ */
if(self.useRecylceBin) { if(self.useTrash) {
if(!self.recyleBin) { if(!self.trash) {
[self _createRecylceBin]; [self _createTrashGroup];
} }
[self moveGroup:aGroup toGroup:self.recyleBin index:[self.recyleBin.groups count]]; [self moveGroup:aGroup toGroup:self.trash index:[self.trash.groups count]];
return; // Done! return; // Done!
} }
[[[self undoManager] prepareWithInvocationTarget:self] group:group addGroup:aGroup atIndex:index]; [[[self undoManager] prepareWithInvocationTarget:self] group:group addGroup:aGroup atIndex:index];
@@ -437,6 +445,20 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey";
[entry removeObjectFromStringFieldsAtIndex:index]; [entry removeObjectFromStringFieldsAtIndex:index];
} }
#pragma mark Actions
- (void)emptyTrash:(id)sender {
[self.trash clear];
}
- (BOOL)validateMenuItem:(NSMenuItem *)menuItem {
if([menuItem action] == [MPActionHelper actionOfType:MPActionEmptyTrash]) {
BOOL hasGroups = [self.trash.groups count] > 0;
BOOL hasEntries = [self.trash.entries count] > 0;
return (hasEntries || hasGroups);
}
return YES;
}
#pragma mark Private #pragma mark Private
- (void)_cleanupLock { - (void)_cleanupLock {
@@ -446,19 +468,22 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey";
} }
} }
- (void)_createRecylceBin { - (KdbGroup *)_createTrashGroup {
/* Maybe push the stuff to the Tree? */ /* Maybe push the stuff to the Tree? */
if(self.version == MPDatabaseVersion3) { if(self.version == MPDatabaseVersion3) {
return nil;
} }
else if(self.version == MPDatabaseVersion4) { else if(self.version == MPDatabaseVersion4) {
KdbGroup *recycleBin = [self.tree createGroup:self.tree.root]; KdbGroup *trash = [self.tree createGroup:self.tree.root];
recycleBin.name = NSLocalizedString(@"RECYLEBIN", @"Name for the recycle bin group"); trash.name = NSLocalizedString(@"RECYLEBIN", @"Name for the recycle bin group");
recycleBin.image = MPIconTrash; trash.image = MPIconTrash;
[self.tree.root insertObject:recycleBin inGroupsAtIndex:[self.tree.root.groups count]]; [self.tree.root insertObject:trash inGroupsAtIndex:[self.tree.root.groups count]];
self.treeV4.recycleBinUuid = ((Kdb4Group *)recycleBin).uuid; self.treeV4.recycleBinUuid = ((Kdb4Group *)trash).uuid;
return trash;
} }
else { else {
NSAssert(NO, @"Database with unknown version: %ld", _version); NSAssert(NO, @"Database with unknown version: %ld", _version);
return nil;
} }
} }

View File

@@ -18,6 +18,7 @@
/* General Tab */ /* General Tab */
@property (assign) IBOutlet NSTextField *databaseNameTextField; @property (assign) IBOutlet NSTextField *databaseNameTextField;
@property (assign) IBOutlet NSTextView *databaseDescriptionTextView; @property (assign) IBOutlet NSTextView *databaseDescriptionTextView;
/* Protection */ /* Protection */
@property (assign) IBOutlet NSTextField *passwordTextField; @property (assign) IBOutlet NSTextField *passwordTextField;
@property (assign) IBOutlet NSPathControl *keyfilePathControl; @property (assign) IBOutlet NSPathControl *keyfilePathControl;
@@ -31,12 +32,11 @@
/* Advanced Tab*/ /* Advanced Tab*/
@property (assign) IBOutlet NSButton *useRecycleBinCheckButton; @property (assign) IBOutlet NSButton *enableRecycleBinCheckButton;
@property (assign) IBOutlet NSButton *emptyRecycleBinOnQuitCheckButton; @property (assign) IBOutlet NSButton *emptyRecycleBinOnQuitCheckButton;
@property (assign) IBOutlet NSPopUpButton *selectRecycleBinGroupPopUpButton; @property (assign) IBOutlet NSPopUpButton *selectRecycleBinGroupPopUpButton;
- (id)initWithDocument:(MPDocument *)document; - (id)initWithDocument:(MPDocument *)document;
- (void)update;
@end @end

View File

@@ -10,7 +10,11 @@
#import "MPDocument.h" #import "MPDocument.h"
#import "MPDocumentWindowController.h" #import "MPDocumentWindowController.h"
#import "MPDatabaseVersion.h" #import "MPDatabaseVersion.h"
#import "MPIconHelper.h"
#import "Kdb.h"
#import "Kdb4Node.h" #import "Kdb4Node.h"
#import "KdbGroup+MPAdditions.h"
@interface MPDocumentSettingsWindowController () { @interface MPDocumentSettingsWindowController () {
MPDocument *_document; MPDocument *_document;
@@ -34,12 +38,14 @@
- (void)windowDidLoad { - (void)windowDidLoad {
[super windowDidLoad]; [super windowDidLoad];
NSAssert(_document != nil, @"Document needs to be present"); NSAssert(_document != nil, @"Document needs to be present");
Kdb4Tree *tree = _document.treeV4; Kdb4Tree *tree = _document.treeV4;
if( tree ) { if( tree ) {
[self _setupDatabase:tree]; [self _setupDatabase:tree];
[self _setupProtectionTab:tree]; [self _setupProtectionTab:tree];
[self _setupHistoryTab:tree]; [self _setupAdvancedTab:tree];
[self _setupPasswordTab:tree]; [self _setupPasswordTab:tree];
} }
else { else {
@@ -52,6 +58,15 @@
[[self window] orderOut:nil]; [[self window] orderOut:nil];
} }
- (void)update {
/* Update all stuff that might have changed */
Kdb4Tree *tree = _document.treeV4;
if(tree) {
[self _updateTrashFolders:tree];
}
}
#pragma mark Private Helper
- (void)_setupDatabase:(Kdb4Tree *)tree { - (void)_setupDatabase:(Kdb4Tree *)tree {
[self.databaseNameTextField bind:NSValueBinding toObject:tree withKeyPath:@"databaseName" options:nil]; [self.databaseNameTextField bind:NSValueBinding toObject:tree withKeyPath:@"databaseName" options:nil];
[self.databaseDescriptionTextView bind:NSValueBinding toObject:tree withKeyPath:@"databaseDescription" options:nil]; [self.databaseDescriptionTextView bind:NSValueBinding toObject:tree withKeyPath:@"databaseDescription" options:nil];
@@ -65,12 +80,52 @@
[self.protectUserNameCheckButton bind:NSValueBinding toObject:tree withKeyPath:@"protectUserName" options:nil]; [self.protectUserNameCheckButton bind:NSValueBinding toObject:tree withKeyPath:@"protectUserName" options:nil];
} }
- (void)_setupHistoryTab:(Kdb4Tree *)tree { - (void)_setupAdvancedTab:(Kdb4Tree *)tree {
[self.enableRecycleBinCheckButton bind:NSValueBinding toObject:tree withKeyPath:@"recycleBinEnabled" options:nil];
[self.selectRecycleBinGroupPopUpButton bind:NSEnabledBinding toObject:tree withKeyPath:@"recycleBinEnabled" options:nil];
[self _updateTrashFolders:tree];
} }
- (void)_setupPasswordTab:(Kdb4Tree *)tree { - (void)_setupPasswordTab:(Kdb4Tree *)tree {
} }
- (void)_didSelectTrashFolder:(id)sender {
NSMenuItem *menuItem = sender;
if([menuItem representedObject]) {
}
}
- (void)_updateTrashFolders:(Kdb4Tree *)tree {
NSMenu *menu = [self _buildTreeMenu:tree];
[self.selectRecycleBinGroupPopUpButton setMenu:menu];
}
- (NSMenu *)_buildTreeMenu:(Kdb4Tree *)tree {
NSMenu *menu = [[NSMenu alloc] init];
BOOL foundTrash = NO;
for(Kdb4Group *group in tree.root.groups) {
NSMenuItem *groupItem = [[NSMenuItem alloc] init];
[groupItem setImage:group.icon];
[groupItem setTitle:group.name];
[groupItem setAction:@selector(_didSelectTrashFolder:)];
[groupItem setTarget:self];
[groupItem setRepresentedObject:group];
if([group.uuid isEqual:tree.recycleBinUuid]) {
foundTrash = YES;
[groupItem setState:NSOnState];
}
[menu addItem:groupItem];
[groupItem release];
}
if(!foundTrash) {
NSMenuItem *selectItem = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"SELECT_RECYCLEBIN", @"Menu item if no reycleBin is selected") action:NULL keyEquivalent:@""];
[selectItem setEnabled:NO];
[menu insertItem:selectItem atIndex:0];
[selectItem release];
}
return [menu autorelease];
}
@end @end

View File

@@ -224,6 +224,7 @@ NSString *const MPCurrentItemChangedNotification = @"com.hicknhack.macpass.MPCur
if(!self.documentSettingsWindowController) { if(!self.documentSettingsWindowController) {
_documentSettingsWindowController = [[MPDocumentSettingsWindowController alloc] initWithDocument:[self document]]; _documentSettingsWindowController = [[MPDocumentSettingsWindowController alloc] initWithDocument:[self document]];
} }
[_documentSettingsWindowController update];
[[NSApplication sharedApplication] beginSheet:[_documentSettingsWindowController window] modalForWindow:[self window] modalDelegate:nil didEndSelector:NULL contextInfo:NULL]; [[NSApplication sharedApplication] beginSheet:[_documentSettingsWindowController window] modalForWindow:[self window] modalDelegate:nil didEndSelector:NULL contextInfo:NULL];
} }

View File

@@ -14,5 +14,7 @@
@property (readonly, retain) NSArray *groups; @property (readonly, retain) NSArray *groups;
@property (nonatomic, retain) KdbTree *tree; @property (nonatomic, retain) KdbTree *tree;
/* Subs to support interface */
@property (readonly, nonatomic) NSArray *entries;
@end @end

View File

@@ -30,4 +30,7 @@
} }
} }
- (NSArray *)entries {
return nil;
}
@end @end

View File

@@ -76,7 +76,7 @@ NSString *const MPToolbarItemInspector = @"TOOLBAR_INSPECTOR";
[actionImageItem setImage:self.toolbarImages[MPToolbarItemAction]]; [actionImageItem setImage:self.toolbarImages[MPToolbarItemAction]];
[menu addItem:actionImageItem]; [menu addItem:actionImageItem];
[actionImageItem release]; [actionImageItem release];
NSArray *menuItems = [MPContextMenuHelper contextMenuItemsWithItems:MPContextMenuFull]; NSArray *menuItems = [MPContextMenuHelper contextMenuItemsWithItems:MPContextMenuExtended];
for(NSMenuItem *item in menuItems) { for(NSMenuItem *item in menuItems) {
[menu addItem:item]; [menu addItem:item];
} }

View File

@@ -48,7 +48,7 @@
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <string>????</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>1706</string> <string>1782</string>
<key>LSMinimumSystemVersion</key> <key>LSMinimumSystemVersion</key>
<string>${MACOSX_DEPLOYMENT_TARGET}</string> <string>${MACOSX_DEPLOYMENT_TARGET}</string>
<key>NSHumanReadableCopyright</key> <key>NSHumanReadableCopyright</key>

Binary file not shown.

Binary file not shown.