Compare commits
400 Commits
0.3.1-alph
...
0.4.1-alph
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1d823af4b9 | ||
|
|
fd789f195e | ||
|
|
39a0d1a0de | ||
|
|
82b3a3deba | ||
|
|
3053ea712e | ||
|
|
2f5691f1dd | ||
|
|
a837d8cd44 | ||
|
|
e6a14dc7ae | ||
|
|
00da9013a8 | ||
|
|
51a59d73c6 | ||
|
|
6bbaccdb25 | ||
|
|
b0a664ab3f | ||
|
|
1f75722e67 | ||
|
|
43b835d518 | ||
|
|
8dee783c4c | ||
|
|
3678161802 | ||
|
|
24274f472c | ||
|
|
e99414a318 | ||
|
|
c93bdc6e1c | ||
|
|
ef0d6e55d6 | ||
|
|
5b69453868 | ||
|
|
fa4a805f8f | ||
|
|
4d29c351ff | ||
|
|
f0964d04b9 | ||
|
|
2e0613dad5 | ||
|
|
9161a8b8f3 | ||
|
|
1a2659d311 | ||
|
|
41ba8f57ba | ||
|
|
fd2256917e | ||
|
|
856a470ee5 | ||
|
|
a55773919c | ||
|
|
4bffe388ba | ||
|
|
febead0751 | ||
|
|
f90c126f03 | ||
|
|
33a367c676 | ||
|
|
08c7dfa650 | ||
|
|
b00c7258f6 | ||
|
|
0af0d08082 | ||
|
|
de30cf5407 | ||
|
|
9dff3070c9 | ||
|
|
aa716dd5f8 | ||
|
|
7643d1982d | ||
|
|
0c4ddf3127 | ||
|
|
7f03985eff | ||
|
|
90d5bc9ef2 | ||
|
|
4273e41142 | ||
|
|
c1d6574172 | ||
|
|
ffabda0242 | ||
|
|
61310d2300 | ||
|
|
51bb22a9b7 | ||
|
|
ff6b29d23c | ||
|
|
f6dc2193de | ||
|
|
21f299bdff | ||
|
|
de00a42f02 | ||
|
|
81dc24d9b2 | ||
|
|
c084d49d95 | ||
|
|
1122cfbbde | ||
|
|
4db333fbc5 | ||
|
|
a2b8a15e46 | ||
|
|
ae38cdce32 | ||
|
|
f899fdca0f | ||
|
|
4b6db6c07a | ||
|
|
6e50d2bc5e | ||
|
|
a046555aee | ||
|
|
ae544ae810 | ||
|
|
5dd0f8234c | ||
|
|
7f16310a4d | ||
|
|
24d0c3a6ee | ||
|
|
84cd196d54 | ||
|
|
a73986de28 | ||
|
|
9575777cc7 | ||
|
|
81bcd15d80 | ||
|
|
e976398a5e | ||
|
|
c4b7dc1c64 | ||
|
|
530bb7ce30 | ||
|
|
356a8f524e | ||
|
|
1f1c6d5dcb | ||
|
|
edd2d89d30 | ||
|
|
f634ed09d0 | ||
|
|
62bec29ec8 | ||
|
|
20908fe161 | ||
|
|
944114309f | ||
|
|
5d64951ef2 | ||
|
|
d98f4b40da | ||
|
|
ed5d048028 | ||
|
|
aa6fd74ce7 | ||
|
|
4e7cc1edb0 | ||
|
|
5661765dbf | ||
|
|
422d74ee5c | ||
|
|
b82bc8c9e9 | ||
|
|
4f55d93451 | ||
|
|
0d66451e0c | ||
|
|
fe2acc1827 | ||
|
|
929c4f121c | ||
|
|
2df1a1f36a | ||
|
|
d6dcb96ba5 | ||
|
|
c5cc511dcd | ||
|
|
4c107644b4 | ||
|
|
e84bebb4d4 | ||
|
|
9ba441b002 | ||
|
|
1bd68d0194 | ||
|
|
b1b1ac35b4 | ||
|
|
500140d5a2 | ||
|
|
8abd9ab2c9 | ||
|
|
09d5efa38e | ||
|
|
3385f09c2c | ||
|
|
76ab4b8489 | ||
|
|
33aceee511 | ||
|
|
4abe4940ae | ||
|
|
5c7e387ac3 | ||
|
|
744ecc4f2a | ||
|
|
3e5133c5ff | ||
|
|
da93396ee7 | ||
|
|
ce838f6b7a | ||
|
|
1bb753173a | ||
|
|
35400ec2eb | ||
|
|
f125e2fb41 | ||
|
|
dea89d2360 | ||
|
|
3b5f1698d3 | ||
|
|
88240deb3e | ||
|
|
80808efe6c | ||
|
|
dd5c46c23a | ||
|
|
37f7f8123a | ||
|
|
aa52079664 | ||
|
|
758cce4e9f | ||
|
|
6cb7d49e69 | ||
|
|
ab9560c414 | ||
|
|
b293baad34 | ||
|
|
08f897437b | ||
|
|
9fbf42322f | ||
|
|
92d963a9ef | ||
|
|
21355101ed | ||
|
|
6b1aff9449 | ||
|
|
28fdf9f57a | ||
|
|
a01e5ce54f | ||
|
|
467b600673 | ||
|
|
5a4cf2152a | ||
|
|
b1e392abbe | ||
|
|
24126c00cb | ||
|
|
20fbf29b92 | ||
|
|
7215677b86 | ||
|
|
8bb2428a96 | ||
|
|
fe08f5fee7 | ||
|
|
4d9aa8cc02 | ||
|
|
fa52de144c | ||
|
|
c59ce56f4d | ||
|
|
385a56c489 | ||
|
|
02a670ac7c | ||
|
|
1964adb439 | ||
|
|
336fe02e2d | ||
|
|
3f1e7d36c9 | ||
|
|
bb88534daa | ||
|
|
f266375a09 | ||
|
|
d16ebfc4d7 | ||
|
|
2c22a75d82 | ||
|
|
2bc5e8a337 | ||
|
|
1a6d5114b9 | ||
|
|
36e493101a | ||
|
|
871b3a5c45 | ||
|
|
ebfc0f91eb | ||
|
|
96f854133e | ||
|
|
c14bcf497e | ||
|
|
213bb3d51f | ||
|
|
839c87102c | ||
|
|
4173141108 | ||
|
|
b0856ad2df | ||
|
|
ce61fafc53 | ||
|
|
4f0fc87037 | ||
|
|
e38be4e147 | ||
|
|
7c103abd53 | ||
|
|
582bc52532 | ||
|
|
77461a12e2 | ||
|
|
503acbad42 | ||
|
|
fd269c0701 | ||
|
|
41d17b678e | ||
|
|
504459564b | ||
|
|
245524e260 | ||
|
|
71939a4497 | ||
|
|
62a4f9f3e3 | ||
|
|
4290e92535 | ||
|
|
5fba430335 | ||
|
|
d186a2f318 | ||
|
|
73f21c06e0 | ||
|
|
ee4d100ce1 | ||
|
|
e67413bc94 | ||
|
|
7f08157363 | ||
|
|
806534d5ea | ||
|
|
65e1c01282 | ||
|
|
12a29121e5 | ||
|
|
9192504939 | ||
|
|
cb64396172 | ||
|
|
8450fa210d | ||
|
|
d2e3582221 | ||
|
|
42dbe388ed | ||
|
|
04bc714352 | ||
|
|
c7b5bdac74 | ||
|
|
3e56f2269d | ||
|
|
14130d0aa0 | ||
|
|
190bca5201 | ||
|
|
eeb440fa1c | ||
|
|
c4a4996082 | ||
|
|
e8a44117f4 | ||
|
|
56938909df | ||
|
|
952489089e | ||
|
|
82f5d812e5 | ||
|
|
2ed2346c92 | ||
|
|
00c43ef50f | ||
|
|
52b734239f | ||
|
|
2c8dba441a | ||
|
|
2accaada1a | ||
|
|
514318a156 | ||
|
|
8f6622102b | ||
|
|
55b4ce648f | ||
|
|
620be11f0d | ||
|
|
89105c6e90 | ||
|
|
5711f82d13 | ||
|
|
373b7f6381 | ||
|
|
09263b4559 | ||
|
|
5d90b23569 | ||
|
|
8a7b2f8085 | ||
|
|
63a756039c | ||
|
|
e54790b745 | ||
|
|
d9f457e1cb | ||
|
|
accfdbc4f2 | ||
|
|
71eec7d86a | ||
|
|
61490cfb65 | ||
|
|
868950e873 | ||
|
|
6a6b1e1ba5 | ||
|
|
98a58ba3ea | ||
|
|
9a0b64de6e | ||
|
|
c2922d5ead | ||
|
|
d7f82bf88f | ||
|
|
eeb6cfbe95 | ||
|
|
dc84dd86e9 | ||
|
|
c1ae159260 | ||
|
|
7a3fdca30b | ||
|
|
64e56fd876 | ||
|
|
bd9587dddd | ||
|
|
a7114b3ef2 | ||
|
|
2d84f2f8f8 | ||
|
|
5796333a2e | ||
|
|
5511dd1207 | ||
|
|
fb88d8d498 | ||
|
|
add5074daa | ||
|
|
2e5f03b515 | ||
|
|
b903fa1ee2 | ||
|
|
b21d375278 | ||
|
|
6bfa2b87ee | ||
|
|
7ba43eceec | ||
|
|
34f031a372 | ||
|
|
b162fcb7c3 | ||
|
|
5b15e466c7 | ||
|
|
4a8b1207c5 | ||
|
|
06862e7a42 | ||
|
|
957e8bab5a | ||
|
|
aea17f4428 | ||
|
|
91c9a720e7 | ||
|
|
a915c4fcf8 | ||
|
|
e7cdf352f8 | ||
|
|
de13be4db8 | ||
|
|
9c28e27ffa | ||
|
|
2829e66877 | ||
|
|
0ae2946466 | ||
|
|
95b60a9624 | ||
|
|
5e4254b45f | ||
|
|
319d165141 | ||
|
|
a427cdec6d | ||
|
|
79d423df95 | ||
|
|
b9ff153346 | ||
|
|
a82a552011 | ||
|
|
4c12ec324c | ||
|
|
4cfd124d9d | ||
|
|
9ef3aeb857 | ||
|
|
899c65d8fd | ||
|
|
3cacbd33a8 | ||
|
|
84f91361a6 | ||
|
|
214a192a4d | ||
|
|
30a5f1d0b0 | ||
|
|
e8124b0415 | ||
|
|
f80226ee6c | ||
|
|
724644c1bf | ||
|
|
aa4b6dc08e | ||
|
|
46dfb19c95 | ||
|
|
032b9a32ee | ||
|
|
d30bcac236 | ||
|
|
bbd0062301 | ||
|
|
f335825c44 | ||
|
|
dcef431c5c | ||
|
|
5ce44e909c | ||
|
|
9c69bd6528 | ||
|
|
16f10942ee | ||
|
|
fc7aa100b9 | ||
|
|
706a06e389 | ||
|
|
3a4d72767b | ||
|
|
e0f2351c80 | ||
|
|
5254ce0fe4 | ||
|
|
b6d6485c60 | ||
|
|
86e97ad767 | ||
|
|
116b3b3253 | ||
|
|
714563250b | ||
|
|
f586127cd1 | ||
|
|
4b42493376 | ||
|
|
bc0af02be4 | ||
|
|
7f7bd010b2 | ||
|
|
e688eaa776 | ||
|
|
864dea83f4 | ||
|
|
28488d4eb9 | ||
|
|
9b31caf577 | ||
|
|
fab5618634 | ||
|
|
b913d37797 | ||
|
|
f87e60442e | ||
|
|
450bc3d4dd | ||
|
|
9d22494bf4 | ||
|
|
560d9ce941 | ||
|
|
115537c95b | ||
|
|
83eb0edad2 | ||
|
|
8efcd79581 | ||
|
|
780c8782e6 | ||
|
|
31f456929c | ||
|
|
80d9dfb1cb | ||
|
|
2fc8e801ab | ||
|
|
ad07c0de6c | ||
|
|
e33a9fdc93 | ||
|
|
514477d6fc | ||
|
|
07dae46b4c | ||
|
|
e050840b6f | ||
|
|
7ffcc0e43e | ||
|
|
5378410937 | ||
|
|
3dfadd7af1 | ||
|
|
5920697811 | ||
|
|
b96810db1b | ||
|
|
4172d10aa7 | ||
|
|
a6622148a0 | ||
|
|
af4336e94b | ||
|
|
4a35d0d4ff | ||
|
|
8087085fc0 | ||
|
|
9ced3fce0b | ||
|
|
acc800c9e6 | ||
|
|
45cb4a2652 | ||
|
|
1f94a626bb | ||
|
|
a6afe0bcf4 | ||
|
|
1fd89bfab6 | ||
|
|
db0640840f | ||
|
|
fb735d9e41 | ||
|
|
862cbe839e | ||
|
|
cb5a71dfee | ||
|
|
30697648b9 | ||
|
|
e5e8d01dff | ||
|
|
030dbd5be7 | ||
|
|
e306b2b3f2 | ||
|
|
0fe99cda97 | ||
|
|
c207b2b24a | ||
|
|
dc51c60c19 | ||
|
|
86d983f776 | ||
|
|
efa727eaba | ||
|
|
5e6d2bed3d | ||
|
|
5e6e31fb47 | ||
|
|
8d34f77a1f | ||
|
|
859fe5ede8 | ||
|
|
fef291df88 | ||
|
|
c1b47bdb77 | ||
|
|
0e102d3f0f | ||
|
|
d4c7d49d6f | ||
|
|
0144e3c21f | ||
|
|
dd5eef4e60 | ||
|
|
bfc610a25e | ||
|
|
0986271199 | ||
|
|
63c3c83eb8 | ||
|
|
0a42e55f0e | ||
|
|
442d16e297 | ||
|
|
6f92b70039 | ||
|
|
8496140f9c | ||
|
|
d814556376 | ||
|
|
c0051f852e | ||
|
|
726f8846b8 | ||
|
|
c50da8f0ac | ||
|
|
f4c67ea603 | ||
|
|
99163ab84c | ||
|
|
3ae08796a1 | ||
|
|
665dad02ac | ||
|
|
2630dc8778 | ||
|
|
9836d3c194 | ||
|
|
55d0eddbf8 | ||
|
|
03c5f78960 | ||
|
|
1d688293af | ||
|
|
6b14f84afb | ||
|
|
a31e287ec8 | ||
|
|
860d6bb21c | ||
|
|
3d14904640 | ||
|
|
3d4c183bdb | ||
|
|
00eec52781 | ||
|
|
ab0199e3dd | ||
|
|
910c89288f | ||
|
|
eaa072f298 | ||
|
|
d0b6927a5e | ||
|
|
b7d15f7e49 | ||
|
|
515190a74e | ||
|
|
75c9aa6873 | ||
|
|
c34d840e35 | ||
|
|
fb0887ebf0 |
15
.gitmodules
vendored
@@ -1,12 +1,21 @@
|
|||||||
[submodule "KissXML"]
|
[submodule "KissXML"]
|
||||||
path = KissXML
|
path = KissXML
|
||||||
url = https://github.com/robbiehanson/KissXML.git
|
url = https://github.com/robbiehanson/KissXML.git
|
||||||
[submodule "MiniKeePassLib"]
|
|
||||||
path = MiniKeePassLib
|
|
||||||
url = https://mstarke@github.com/mstarke/MiniKeePassLib.git
|
|
||||||
[submodule "HNHUi"]
|
[submodule "HNHUi"]
|
||||||
path = HNHUi
|
path = HNHUi
|
||||||
url = https://mstarke@github.com/mstarke/HNHUi.git
|
url = https://mstarke@github.com/mstarke/HNHUi.git
|
||||||
[submodule "CocoaHTTPServer"]
|
[submodule "CocoaHTTPServer"]
|
||||||
path = CocoaHTTPServer
|
path = CocoaHTTPServer
|
||||||
url = git://github.com/robbiehanson/CocoaHTTPServer.git
|
url = git://github.com/robbiehanson/CocoaHTTPServer.git
|
||||||
|
[submodule "KeePassKit"]
|
||||||
|
path = KeePassKit
|
||||||
|
url = https://mstarke@github.com/mstarke/KeePassKit
|
||||||
|
[submodule "DDHotKey"]
|
||||||
|
path = DDHotKey
|
||||||
|
url = https://github.com/davedelong/DDHotKey.git
|
||||||
|
[submodule "Sparkle"]
|
||||||
|
path = Sparkle
|
||||||
|
url = https://github.com/mstarke/Sparkle.git
|
||||||
|
[submodule "TransformerKit"]
|
||||||
|
path = TransformerKit
|
||||||
|
url = https://github.com/mattt/TransformerKit.git
|
||||||
|
|||||||
BIN
Assets/Screenshots/Attachments.png
Normal file
|
After Width: | Height: | Size: 128 KiB |
BIN
Assets/Screenshots/CopyCustomFields.png
Normal file
|
After Width: | Height: | Size: 53 KiB |
|
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 124 KiB |
BIN
Assets/Screenshots/DatabaseSettings.png
Normal file
|
After Width: | Height: | Size: 137 KiB |
BIN
Assets/Screenshots/DatePicker.png
Normal file
|
After Width: | Height: | Size: 194 KiB |
|
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 83 KiB |
|
Before Width: | Height: | Size: 109 KiB After Width: | Height: | Size: 126 KiB |
BIN
Assets/Screenshots/NoInspector.png
Normal file
|
After Width: | Height: | Size: 107 KiB |
|
Before Width: | Height: | Size: 163 KiB After Width: | Height: | Size: 174 KiB |
BIN
Assets/Screenshots/SetPassword.png
Normal file
|
After Width: | Height: | Size: 149 KiB |
|
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 102 KiB |
1
DDHotKey
Submodule
2
HNHUi
1
KeePassKit
Submodule
128
MacPass.xcodeproj/xcshareddata/xcschemes/MacPass.xcscheme
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Scheme
|
||||||
|
LastUpgradeVersion = "0510"
|
||||||
|
version = "1.7">
|
||||||
|
<BuildAction
|
||||||
|
parallelizeBuildables = "YES"
|
||||||
|
buildImplicitDependencies = "YES">
|
||||||
|
<BuildActionEntries>
|
||||||
|
<BuildActionEntry
|
||||||
|
buildForTesting = "YES"
|
||||||
|
buildForRunning = "YES"
|
||||||
|
buildForProfiling = "YES"
|
||||||
|
buildForArchiving = "YES"
|
||||||
|
buildForAnalyzing = "YES">
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "4C77E36115B84A240093A587"
|
||||||
|
BuildableName = "MacPass.app"
|
||||||
|
BlueprintName = "MacPass"
|
||||||
|
ReferencedContainer = "container:MacPass.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildActionEntry>
|
||||||
|
</BuildActionEntries>
|
||||||
|
</BuildAction>
|
||||||
|
<TestAction
|
||||||
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||||
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||||
|
shouldUseLaunchSchemeArgsEnv = "NO"
|
||||||
|
buildConfiguration = "Debug">
|
||||||
|
<Testables>
|
||||||
|
<TestableReference
|
||||||
|
skipped = "NO">
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "4C45FB19178E09ED0010007D"
|
||||||
|
BuildableName = "MacPassTests.xctest"
|
||||||
|
BlueprintName = "MacPassTests"
|
||||||
|
ReferencedContainer = "container:MacPass.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</TestableReference>
|
||||||
|
</Testables>
|
||||||
|
<MacroExpansion>
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "4C77E36115B84A240093A587"
|
||||||
|
BuildableName = "MacPass.app"
|
||||||
|
BlueprintName = "MacPass"
|
||||||
|
ReferencedContainer = "container:MacPass.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</MacroExpansion>
|
||||||
|
<EnvironmentVariables>
|
||||||
|
<EnvironmentVariable
|
||||||
|
key = "NSZombieEnabled"
|
||||||
|
value = "YES"
|
||||||
|
isEnabled = "YES">
|
||||||
|
</EnvironmentVariable>
|
||||||
|
</EnvironmentVariables>
|
||||||
|
</TestAction>
|
||||||
|
<LaunchAction
|
||||||
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||||
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||||
|
launchStyle = "0"
|
||||||
|
useCustomWorkingDirectory = "NO"
|
||||||
|
buildConfiguration = "Debug"
|
||||||
|
ignoresPersistentStateOnLaunch = "NO"
|
||||||
|
debugDocumentVersioning = "YES"
|
||||||
|
allowLocationSimulation = "YES">
|
||||||
|
<BuildableProductRunnable>
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "4C77E36115B84A240093A587"
|
||||||
|
BuildableName = "MacPass.app"
|
||||||
|
BlueprintName = "MacPass"
|
||||||
|
ReferencedContainer = "container:MacPass.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildableProductRunnable>
|
||||||
|
<CommandLineArguments>
|
||||||
|
<CommandLineArgument
|
||||||
|
argument = "-NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints YES"
|
||||||
|
isEnabled = "NO">
|
||||||
|
</CommandLineArgument>
|
||||||
|
</CommandLineArguments>
|
||||||
|
<AdditionalOptions>
|
||||||
|
</AdditionalOptions>
|
||||||
|
</LaunchAction>
|
||||||
|
<ProfileAction
|
||||||
|
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||||
|
savedToolIdentifier = ""
|
||||||
|
useCustomWorkingDirectory = "NO"
|
||||||
|
buildConfiguration = "Release"
|
||||||
|
debugDocumentVersioning = "YES">
|
||||||
|
<BuildableProductRunnable>
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "4C77E36115B84A240093A587"
|
||||||
|
BuildableName = "MacPass.app"
|
||||||
|
BlueprintName = "MacPass"
|
||||||
|
ReferencedContainer = "container:MacPass.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildableProductRunnable>
|
||||||
|
</ProfileAction>
|
||||||
|
<AnalyzeAction
|
||||||
|
buildConfiguration = "Debug">
|
||||||
|
</AnalyzeAction>
|
||||||
|
<ArchiveAction
|
||||||
|
buildConfiguration = "Release"
|
||||||
|
revealArchiveInOrganizer = "YES">
|
||||||
|
<PreActions>
|
||||||
|
<ExecutionAction
|
||||||
|
ActionType = "Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.ShellScriptAction">
|
||||||
|
<ActionContent
|
||||||
|
title = "Run Script"
|
||||||
|
scriptText = "PLIST_FILE=$PROJECT_DIR/$INFOPLIST_FILE VERSION=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" $PLIST_FILE) VERSION=$(($VERSION + 1)) /usr/libexec/PlistBuddy -c "Set :CFBundleVersion $VERSION" $PLIST_FILE"
|
||||||
|
shellToInvoke = "/bin/bash">
|
||||||
|
<EnvironmentBuildable>
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "4C77E36115B84A240093A587"
|
||||||
|
BuildableName = "MacPass.app"
|
||||||
|
BlueprintName = "MacPass"
|
||||||
|
ReferencedContainer = "container:MacPass.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</EnvironmentBuildable>
|
||||||
|
</ActionContent>
|
||||||
|
</ExecutionAction>
|
||||||
|
</PreActions>
|
||||||
|
</ArchiveAction>
|
||||||
|
</Scheme>
|
||||||
98
MacPass/AutotypeCandidateSelectionWindow.xib
Normal file
@@ -0,0 +1,98 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="4514" systemVersion="13B42" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||||
|
<dependencies>
|
||||||
|
<deployment defaultVersion="1080" identifier="macosx"/>
|
||||||
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="4514"/>
|
||||||
|
</dependencies>
|
||||||
|
<objects>
|
||||||
|
<customObject id="-2" userLabel="File's Owner" customClass="MPAutotypeDaemon">
|
||||||
|
<connections>
|
||||||
|
<outlet property="matchSelectionButton" destination="tAw-72-pSm" id="2a0-3C-UUB"/>
|
||||||
|
<outlet property="matchSelectionWindow" destination="1" id="ZYa-oC-Nfs"/>
|
||||||
|
<outlet property="performAutotypeButton" destination="Jlm-i9-jVy" id="Qjk-sL-Yqk"/>
|
||||||
|
</connections>
|
||||||
|
</customObject>
|
||||||
|
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||||
|
<customObject id="-3" userLabel="Application"/>
|
||||||
|
<window title="Autotype Selection" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" restorable="NO" oneShot="NO" releasedWhenClosed="NO" wantsToBeColor="NO" visibleAtLaunch="NO" animationBehavior="default" id="1">
|
||||||
|
<windowStyleMask key="styleMask" titled="YES"/>
|
||||||
|
<rect key="contentRect" x="196" y="240" width="370" height="156"/>
|
||||||
|
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1418"/>
|
||||||
|
<view key="contentView" id="2">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="370" height="156"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
<subviews>
|
||||||
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="NdQ-vM-dHT">
|
||||||
|
<rect key="frame" x="123" y="13" width="82" height="32"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<buttonCell key="cell" type="push" title="Cancel" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="WJJ-kW-fak">
|
||||||
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<string key="keyEquivalent" base64-UTF8="YES">
|
||||||
|
Gw
|
||||||
|
</string>
|
||||||
|
</buttonCell>
|
||||||
|
<connections>
|
||||||
|
<action selector="orderOut:" target="-1" id="dcI-TT-kq3"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Jlm-i9-jVy">
|
||||||
|
<rect key="frame" x="205" y="13" width="151" height="32"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<buttonCell key="cell" type="push" title="Perform Autotype" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="AER-eU-kcu">
|
||||||
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
</buttonCell>
|
||||||
|
</button>
|
||||||
|
<popUpButton verticalHuggingPriority="750" horizontalCompressionResistancePriority="499" translatesAutoresizingMaskIntoConstraints="NO" id="tAw-72-pSm">
|
||||||
|
<rect key="frame" x="111" y="58" width="242" height="26"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<popUpButtonCell key="cell" type="push" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" id="TAr-ZQ-aDu">
|
||||||
|
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||||
|
<font key="font" metaFont="menu"/>
|
||||||
|
<menu key="menu" title="OtherViews" id="7RT-wh-F0R">
|
||||||
|
<items>
|
||||||
|
<menuItem title="Item 3" id="HzV-Dh-6B9"/>
|
||||||
|
</items>
|
||||||
|
</menu>
|
||||||
|
</popUpButtonCell>
|
||||||
|
</popUpButton>
|
||||||
|
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="q1d-ED-T5M">
|
||||||
|
<rect key="frame" x="18" y="102" width="334" height="34"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="There are multiple matches for the current Window. Please select which macht should be used." id="ehp-xc-B5g">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Epz-xU-9TM">
|
||||||
|
<rect key="frame" x="18" y="64" width="89" height="17"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Match to use:" id="pLz-Kc-yPh">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="NdQ-vM-dHT" firstAttribute="top" secondItem="tAw-72-pSm" secondAttribute="bottom" constant="20" symbolic="YES" id="7nN-gT-KRY"/>
|
||||||
|
<constraint firstItem="tAw-72-pSm" firstAttribute="trailing" secondItem="Jlm-i9-jVy" secondAttribute="trailing" id="BUy-GV-a8U"/>
|
||||||
|
<constraint firstItem="tAw-72-pSm" firstAttribute="top" secondItem="q1d-ED-T5M" secondAttribute="bottom" constant="20" id="Bwf-bJ-2AY"/>
|
||||||
|
<constraint firstItem="Jlm-i9-jVy" firstAttribute="leading" secondItem="NdQ-vM-dHT" secondAttribute="trailing" constant="12" symbolic="YES" id="DHs-Xz-gcZ"/>
|
||||||
|
<constraint firstAttribute="bottom" secondItem="NdQ-vM-dHT" secondAttribute="bottom" constant="20" symbolic="YES" id="Eua-I4-kKg"/>
|
||||||
|
<constraint firstItem="tAw-72-pSm" firstAttribute="trailing" secondItem="q1d-ED-T5M" secondAttribute="trailing" id="MsD-dU-YC8"/>
|
||||||
|
<constraint firstItem="Epz-xU-9TM" firstAttribute="baseline" secondItem="tAw-72-pSm" secondAttribute="baseline" id="O99-nG-qmf"/>
|
||||||
|
<constraint firstItem="Epz-xU-9TM" firstAttribute="leading" secondItem="q1d-ED-T5M" secondAttribute="leading" id="Vcg-aa-5pd"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="q1d-ED-T5M" secondAttribute="trailing" constant="20" symbolic="YES" id="Wcu-aH-ONq"/>
|
||||||
|
<constraint firstItem="q1d-ED-T5M" firstAttribute="top" secondItem="2" secondAttribute="top" constant="20" symbolic="YES" id="eAk-Qk-bjO"/>
|
||||||
|
<constraint firstItem="q1d-ED-T5M" firstAttribute="top" relation="greaterThanOrEqual" secondItem="2" secondAttribute="top" constant="20" symbolic="YES" id="fCH-CB-BfF"/>
|
||||||
|
<constraint firstItem="Jlm-i9-jVy" firstAttribute="baseline" secondItem="NdQ-vM-dHT" secondAttribute="baseline" id="tOu-bn-J1u"/>
|
||||||
|
<constraint firstItem="q1d-ED-T5M" firstAttribute="leading" secondItem="2" secondAttribute="leading" constant="20" symbolic="YES" id="uCQ-aQ-3je"/>
|
||||||
|
<constraint firstItem="tAw-72-pSm" firstAttribute="leading" secondItem="Epz-xU-9TM" secondAttribute="trailing" constant="8" symbolic="YES" id="wJ9-T1-rT8"/>
|
||||||
|
</constraints>
|
||||||
|
</view>
|
||||||
|
</window>
|
||||||
|
</objects>
|
||||||
|
</document>
|
||||||
69
MacPass/CloneEntryWindow.xib
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="4514" systemVersion="13C64" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||||
|
<dependencies>
|
||||||
|
<deployment defaultVersion="1080" identifier="macosx"/>
|
||||||
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="4514"/>
|
||||||
|
</dependencies>
|
||||||
|
<objects>
|
||||||
|
<customObject id="-2" userLabel="File's Owner"/>
|
||||||
|
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||||
|
<customObject id="-3" userLabel="Application"/>
|
||||||
|
<window title="Clone Entry" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" oneShot="NO" releasedWhenClosed="NO" wantsToBeColor="NO" animationBehavior="default" id="1">
|
||||||
|
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES"/>
|
||||||
|
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
|
||||||
|
<rect key="contentRect" x="196" y="240" width="287" height="115"/>
|
||||||
|
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1418"/>
|
||||||
|
<view key="contentView" id="2">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="287" height="115"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
<subviews>
|
||||||
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="SZv-a7-ifG">
|
||||||
|
<rect key="frame" x="196" y="13" width="77" height="32"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<buttonCell key="cell" type="push" title="Clone" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="SfB-Er-9Rw">
|
||||||
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
</buttonCell>
|
||||||
|
</button>
|
||||||
|
<button translatesAutoresizingMaskIntoConstraints="NO" id="XpT-SI-BXo">
|
||||||
|
<rect key="frame" x="75" y="79" width="103" height="18"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<buttonCell key="cell" type="check" title="clone history" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="oD5-qB-8vK">
|
||||||
|
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
</buttonCell>
|
||||||
|
</button>
|
||||||
|
<button translatesAutoresizingMaskIntoConstraints="NO" id="r9h-fj-Sew">
|
||||||
|
<rect key="frame" x="75" y="59" width="137" height="18"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<buttonCell key="cell" type="check" title="clone attachments" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="hah-2H-RqN">
|
||||||
|
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
</buttonCell>
|
||||||
|
</button>
|
||||||
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="j5y-Yw-WYI">
|
||||||
|
<rect key="frame" x="111" y="13" width="82" height="32"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<buttonCell key="cell" type="push" title="Cancel" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="XYx-Ie-si3">
|
||||||
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<string key="keyEquivalent" base64-UTF8="YES">
|
||||||
|
Gw
|
||||||
|
</string>
|
||||||
|
</buttonCell>
|
||||||
|
</button>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="XpT-SI-BXo" firstAttribute="top" secondItem="2" secondAttribute="top" constant="20" symbolic="YES" id="9Ro-Kb-xO4"/>
|
||||||
|
<constraint firstItem="r9h-fj-Sew" firstAttribute="top" secondItem="XpT-SI-BXo" secondAttribute="bottom" constant="6" symbolic="YES" id="JFD-Va-WFi"/>
|
||||||
|
<constraint firstItem="r9h-fj-Sew" firstAttribute="centerX" secondItem="2" secondAttribute="centerX" id="fDQ-Tk-yhX"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="SZv-a7-ifG" secondAttribute="trailing" constant="20" symbolic="YES" id="hhb-E3-WP7"/>
|
||||||
|
<constraint firstItem="j5y-Yw-WYI" firstAttribute="baseline" secondItem="SZv-a7-ifG" secondAttribute="baseline" id="kkG-ta-sym"/>
|
||||||
|
<constraint firstItem="j5y-Yw-WYI" firstAttribute="top" secondItem="r9h-fj-Sew" secondAttribute="bottom" constant="20" symbolic="YES" id="mAF-ad-rDG"/>
|
||||||
|
<constraint firstItem="SZv-a7-ifG" firstAttribute="leading" secondItem="j5y-Yw-WYI" secondAttribute="trailing" constant="15" id="vId-Wx-Snz"/>
|
||||||
|
<constraint firstItem="XpT-SI-BXo" firstAttribute="leading" secondItem="r9h-fj-Sew" secondAttribute="leading" id="vUr-UJ-DzQ"/>
|
||||||
|
</constraints>
|
||||||
|
</view>
|
||||||
|
</window>
|
||||||
|
</objects>
|
||||||
|
</document>
|
||||||
230
MacPass/ContextBar.xib
Normal file
@@ -0,0 +1,230 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="4514" systemVersion="13C64" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||||
|
<dependencies>
|
||||||
|
<deployment defaultVersion="1080" identifier="macosx"/>
|
||||||
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="4514"/>
|
||||||
|
</dependencies>
|
||||||
|
<objects>
|
||||||
|
<customObject id="-2" userLabel="File's Owner" customClass="MPContextBarViewController">
|
||||||
|
<connections>
|
||||||
|
<outlet property="duplicatePasswordsButton" destination="hMB-2T-pBD" id="dWH-3p-fy6"/>
|
||||||
|
<outlet property="emptyTrashButton" destination="szx-Hx-OrV" id="i1Y-qB-TW3"/>
|
||||||
|
<outlet property="exitHistoryButton" destination="pqx-su-vAh" id="JmV-vC-F48"/>
|
||||||
|
<outlet property="filterLabelTextField" destination="6" id="60"/>
|
||||||
|
<outlet property="historyBar" destination="S8L-rB-h0h" id="6yZ-El-fVs"/>
|
||||||
|
<outlet property="historyLabel" destination="gGR-f0-dcr" id="slx-9D-8k8"/>
|
||||||
|
<outlet property="notesButton" destination="SaV-5p-jIX" id="sQc-nE-BOP"/>
|
||||||
|
<outlet property="passwordButton" destination="Uhl-ck-vVQ" id="I35-Nv-6jK"/>
|
||||||
|
<outlet property="titleButton" destination="O7W-cn-eUP" id="Vlg-KG-62R"/>
|
||||||
|
<outlet property="trashBar" destination="DXf-SC-gVG" id="3aZ-Xc-VDk"/>
|
||||||
|
<outlet property="urlButton" destination="Bn2-iY-mQ3" id="PNG-kv-PQN"/>
|
||||||
|
<outlet property="usernameButton" destination="0R1-PX-dgn" id="TWQ-1y-9cl"/>
|
||||||
|
<outlet property="view" destination="8MB-fC-M2Q" id="wYX-Cc-yoV"/>
|
||||||
|
</connections>
|
||||||
|
</customObject>
|
||||||
|
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||||
|
<customObject id="-3" userLabel="Application"/>
|
||||||
|
<tabView type="noTabsNoBorder" translatesAutoresizingMaskIntoConstraints="NO" id="8MB-fC-M2Q">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="576" height="30"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<tabViewItems>
|
||||||
|
<tabViewItem label="Filter" identifier="1" id="Ud6-Nz-6PS">
|
||||||
|
<view key="view" id="caQ-XO-RkM">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="576" height="30"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<customView translatesAutoresizingMaskIntoConstraints="NO" id="1" customClass="HNHGradientView">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="576" height="30"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="6">
|
||||||
|
<rect key="frame" x="6" y="8" width="45" height="14"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Search:" id="7">
|
||||||
|
<font key="font" metaFont="smallSystemBold"/>
|
||||||
|
<color key="textColor" name="disabledControlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="O7W-cn-eUP">
|
||||||
|
<rect key="frame" x="57" y="6" width="42" height="17"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<buttonCell key="cell" type="recessed" title="Title" bezelStyle="recessed" alignment="center" controlSize="small" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="53D-ne-nv6">
|
||||||
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES" changeBackground="YES" changeGray="YES"/>
|
||||||
|
<font key="font" metaFont="systemBold" size="12"/>
|
||||||
|
</buttonCell>
|
||||||
|
<connections>
|
||||||
|
<action selector="toggleSearchFlags:" target="-1" id="gUm-y4-CDb"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="0R1-PX-dgn">
|
||||||
|
<rect key="frame" x="107" y="6" width="77" height="17"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<buttonCell key="cell" type="recessed" title="Username" bezelStyle="recessed" alignment="center" controlSize="small" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="jfQ-Jh-2gl">
|
||||||
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES" changeBackground="YES" changeGray="YES"/>
|
||||||
|
<font key="font" metaFont="systemBold" size="12"/>
|
||||||
|
</buttonCell>
|
||||||
|
<connections>
|
||||||
|
<action selector="toggleSearchFlags:" target="-1" id="DEi-hq-N39"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Uhl-ck-vVQ">
|
||||||
|
<rect key="frame" x="192" y="6" width="74" height="17"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<buttonCell key="cell" type="recessed" title="Password" bezelStyle="recessed" alignment="center" controlSize="small" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="rvQ-4V-SsS">
|
||||||
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES" changeBackground="YES" changeGray="YES"/>
|
||||||
|
<font key="font" metaFont="systemBold" size="12"/>
|
||||||
|
</buttonCell>
|
||||||
|
<connections>
|
||||||
|
<action selector="toggleSearchFlags:" target="-1" id="xYd-Fp-jxn"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Bn2-iY-mQ3">
|
||||||
|
<rect key="frame" x="274" y="6" width="38" height="17"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<buttonCell key="cell" type="recessed" title="URL" bezelStyle="recessed" alignment="center" controlSize="small" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="92o-gN-Psj">
|
||||||
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES" changeBackground="YES" changeGray="YES"/>
|
||||||
|
<font key="font" metaFont="systemBold" size="12"/>
|
||||||
|
</buttonCell>
|
||||||
|
<connections>
|
||||||
|
<action selector="toggleSearchFlags:" target="-1" id="Ykb-ye-FqF"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="SaV-5p-jIX">
|
||||||
|
<rect key="frame" x="320" y="6" width="50" height="17"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<buttonCell key="cell" type="recessed" title="Notes" bezelStyle="recessed" alignment="center" controlSize="small" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="iDN-2E-hwt">
|
||||||
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES" changeBackground="YES" changeGray="YES"/>
|
||||||
|
<font key="font" metaFont="systemBold" size="12"/>
|
||||||
|
</buttonCell>
|
||||||
|
<connections>
|
||||||
|
<action selector="toggleSearchFlags:" target="-1" id="cuN-5p-vZD"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="hMB-2T-pBD">
|
||||||
|
<rect key="frame" x="378" y="6" width="144" height="17"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<buttonCell key="cell" type="recessed" title="Duplicate Passwords" bezelStyle="recessed" alignment="center" controlSize="small" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="G1B-En-dc2">
|
||||||
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES" changeBackground="YES" changeGray="YES"/>
|
||||||
|
<font key="font" metaFont="systemBold" size="12"/>
|
||||||
|
</buttonCell>
|
||||||
|
</button>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="centerY" secondItem="O7W-cn-eUP" secondAttribute="centerY" id="2uC-wS-HDi"/>
|
||||||
|
<constraint firstAttribute="centerY" secondItem="hMB-2T-pBD" secondAttribute="centerY" id="4rl-iO-76L"/>
|
||||||
|
<constraint firstItem="O7W-cn-eUP" firstAttribute="leading" secondItem="6" secondAttribute="trailing" constant="8" symbolic="YES" id="5hN-x3-XlX"/>
|
||||||
|
<constraint firstItem="0R1-PX-dgn" firstAttribute="leading" secondItem="O7W-cn-eUP" secondAttribute="trailing" constant="8" symbolic="YES" id="67f-i6-eOb"/>
|
||||||
|
<constraint firstAttribute="centerY" secondItem="SaV-5p-jIX" secondAttribute="centerY" id="7ch-eZ-Hzh"/>
|
||||||
|
<constraint firstAttribute="centerY" secondItem="0R1-PX-dgn" secondAttribute="centerY" id="Huh-PB-cbs"/>
|
||||||
|
<constraint firstItem="6" firstAttribute="leading" secondItem="1" secondAttribute="leading" constant="8" id="Seo-dI-FzX"/>
|
||||||
|
<constraint firstItem="Bn2-iY-mQ3" firstAttribute="leading" secondItem="Uhl-ck-vVQ" secondAttribute="trailing" constant="8" id="TCJ-vg-IIt"/>
|
||||||
|
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="hMB-2T-pBD" secondAttribute="trailing" constant="20" symbolic="YES" id="jAm-sk-ErW"/>
|
||||||
|
<constraint firstItem="SaV-5p-jIX" firstAttribute="leading" secondItem="Bn2-iY-mQ3" secondAttribute="trailing" constant="8" symbolic="YES" id="pAA-uU-moF"/>
|
||||||
|
<constraint firstAttribute="centerY" secondItem="6" secondAttribute="centerY" id="qak-8F-xbj"/>
|
||||||
|
<constraint firstItem="Uhl-ck-vVQ" firstAttribute="leading" secondItem="0R1-PX-dgn" secondAttribute="trailing" constant="8" id="u8d-C2-O9h"/>
|
||||||
|
<constraint firstAttribute="centerY" secondItem="Uhl-ck-vVQ" secondAttribute="centerY" id="uvE-ch-ysK"/>
|
||||||
|
<constraint firstAttribute="centerY" secondItem="Bn2-iY-mQ3" secondAttribute="centerY" id="xZJ-EZ-Nic"/>
|
||||||
|
<constraint firstItem="hMB-2T-pBD" firstAttribute="leading" secondItem="SaV-5p-jIX" secondAttribute="trailing" constant="8" symbolic="YES" id="zRT-y1-oMu"/>
|
||||||
|
</constraints>
|
||||||
|
</customView>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="1" firstAttribute="leading" secondItem="caQ-XO-RkM" secondAttribute="leading" id="3yS-J0-xZL"/>
|
||||||
|
<constraint firstAttribute="bottom" secondItem="1" secondAttribute="bottom" id="Z4A-sK-v8K"/>
|
||||||
|
<constraint firstItem="1" firstAttribute="top" secondItem="caQ-XO-RkM" secondAttribute="top" id="a5u-p3-ay5"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="1" secondAttribute="trailing" id="hTR-dg-7Ql"/>
|
||||||
|
</constraints>
|
||||||
|
</view>
|
||||||
|
</tabViewItem>
|
||||||
|
<tabViewItem label="Trash" identifier="2" id="na6-h9-r9q">
|
||||||
|
<view key="view" id="F6S-GS-AwI">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="576" height="30"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<customView translatesAutoresizingMaskIntoConstraints="NO" id="DXf-SC-gVG" customClass="HNHGradientView">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="576" height="30"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="szx-Hx-OrV">
|
||||||
|
<rect key="frame" x="478" y="5" width="78" height="19"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<buttonCell key="cell" type="roundTextured" title="Empty Trash" bezelStyle="texturedRounded" alignment="center" controlSize="small" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="8Ok-oe-6AB">
|
||||||
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
</buttonCell>
|
||||||
|
<connections>
|
||||||
|
<action selector="emptyTrash:" target="-1" id="uIZ-CN-kXB"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="szx-Hx-OrV" secondAttribute="trailing" constant="20" symbolic="YES" id="J9z-j0-T14"/>
|
||||||
|
<constraint firstItem="szx-Hx-OrV" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="DXf-SC-gVG" secondAttribute="leading" constant="20" symbolic="YES" id="s8f-1l-4Yy"/>
|
||||||
|
<constraint firstAttribute="centerY" secondItem="szx-Hx-OrV" secondAttribute="centerY" id="sG5-pc-EzQ"/>
|
||||||
|
</constraints>
|
||||||
|
</customView>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="DXf-SC-gVG" firstAttribute="leading" secondItem="F6S-GS-AwI" secondAttribute="leading" id="8z9-Fw-xiU"/>
|
||||||
|
<constraint firstAttribute="bottom" secondItem="DXf-SC-gVG" secondAttribute="bottom" id="FUk-Mw-Kld"/>
|
||||||
|
<constraint firstItem="DXf-SC-gVG" firstAttribute="top" secondItem="F6S-GS-AwI" secondAttribute="top" id="j4h-gk-JVJ"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="DXf-SC-gVG" secondAttribute="trailing" id="wap-ZJ-5Rw"/>
|
||||||
|
</constraints>
|
||||||
|
</view>
|
||||||
|
<connections>
|
||||||
|
<outlet property="initialFirstResponder" destination="szx-Hx-OrV" id="Cqa-Po-xMe"/>
|
||||||
|
</connections>
|
||||||
|
</tabViewItem>
|
||||||
|
<tabViewItem label="History" identifier="3" id="z4I-cp-nhf">
|
||||||
|
<view key="view" id="iPb-SZ-Lfm">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="576" height="30"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<customView translatesAutoresizingMaskIntoConstraints="NO" id="S8L-rB-h0h" customClass="HNHGradientView">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="576" height="30"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="gGR-f0-dcr">
|
||||||
|
<rect key="frame" x="18" y="6" width="38" height="17"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Label" id="8LU-cT-rsU">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="pqx-su-vAh">
|
||||||
|
<rect key="frame" x="483" y="5" width="73" height="19"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<buttonCell key="cell" type="roundTextured" title="Exit History" bezelStyle="texturedRounded" alignment="center" controlSize="small" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="ewQ-8F-e1E">
|
||||||
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
</buttonCell>
|
||||||
|
</button>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="centerY" secondItem="pqx-su-vAh" secondAttribute="centerY" id="7T6-QP-uaM"/>
|
||||||
|
<constraint firstAttribute="centerY" secondItem="gGR-f0-dcr" secondAttribute="centerY" id="KMF-ev-v2h"/>
|
||||||
|
<constraint firstItem="pqx-su-vAh" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="gGR-f0-dcr" secondAttribute="trailing" constant="8" symbolic="YES" id="Wb1-xK-zZF"/>
|
||||||
|
<constraint firstItem="gGR-f0-dcr" firstAttribute="leading" secondItem="S8L-rB-h0h" secondAttribute="leading" constant="20" symbolic="YES" id="gFm-N8-pwn"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="pqx-su-vAh" secondAttribute="trailing" constant="20" symbolic="YES" id="mao-02-HsJ"/>
|
||||||
|
</constraints>
|
||||||
|
</customView>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="S8L-rB-h0h" firstAttribute="leading" secondItem="iPb-SZ-Lfm" secondAttribute="leading" id="5jN-VU-DkD"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="S8L-rB-h0h" secondAttribute="trailing" id="VAt-ZA-0A2"/>
|
||||||
|
<constraint firstAttribute="bottom" secondItem="S8L-rB-h0h" secondAttribute="bottom" id="bz5-FS-Gg2"/>
|
||||||
|
<constraint firstItem="S8L-rB-h0h" firstAttribute="top" secondItem="iPb-SZ-Lfm" secondAttribute="top" id="mW1-xp-CdF"/>
|
||||||
|
</constraints>
|
||||||
|
</view>
|
||||||
|
<connections>
|
||||||
|
<outlet property="initialFirstResponder" destination="pqx-su-vAh" id="bi5-CA-b4P"/>
|
||||||
|
</connections>
|
||||||
|
</tabViewItem>
|
||||||
|
</tabViewItems>
|
||||||
|
</tabView>
|
||||||
|
</objects>
|
||||||
|
</document>
|
||||||
103
MacPass/DatePickingView.xib
Normal file
@@ -0,0 +1,103 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="5053" systemVersion="13C64" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||||
|
<dependencies>
|
||||||
|
<deployment version="1070" defaultVersion="1080" identifier="macosx"/>
|
||||||
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="5053"/>
|
||||||
|
</dependencies>
|
||||||
|
<objects>
|
||||||
|
<customObject id="-2" userLabel="File's Owner" customClass="MPDatePickingViewController">
|
||||||
|
<connections>
|
||||||
|
<outlet property="datePicker" destination="3" id="YOw-gi-A02"/>
|
||||||
|
<outlet property="presetPopupButton" destination="15" id="VJh-of-PEU"/>
|
||||||
|
<outlet property="view" destination="1" id="2"/>
|
||||||
|
</connections>
|
||||||
|
</customObject>
|
||||||
|
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||||
|
<customObject id="-3" userLabel="Application"/>
|
||||||
|
<customView id="1">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="316" height="259"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<datePicker horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="3">
|
||||||
|
<rect key="frame" x="20" y="91" width="277" height="148"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<datePickerCell key="cell" borderStyle="bezel" alignment="left" datePickerStyle="clockAndCalendar" id="4">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<calendarDate key="date" timeIntervalSinceReferenceDate="-595929600" calendarFormat="%Y-%m-%d %H:%M:%S %z">
|
||||||
|
<!--1982-02-12 08:00:00 -0800-->
|
||||||
|
<timeZone key="timeZone" name="US/Pacific">
|
||||||
|
<data key="data">
|
||||||
|
VFppZgAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAC5AAAABAAAABCepkign7sVkKCGKqChmveQ
|
||||||
|
y4kaoNIj9HDSYSYQ1v50INiArZDa/tGg28CQENzes6DdqayQ3r6VoN+JjpDgnneg4WlwkOJ+WaDjSVKQ
|
||||||
|
5F47oOUpNJDmR1gg5xJREOgnOiDo8jMQ6gccIOrSFRDr5v4g7LH3EO3G4CDukdkQ76/8oPBxuxDxj96g
|
||||||
|
8n/BkPNvwKD0X6OQ9U+ioPY/hZD3L4Sg+CiiEPkPZqD6CIQQ+viDIPvoZhD82GUg/chIEP64RyD/qCoQ
|
||||||
|
AJgpIAGIDBACeAsgA3EokARhJ6AFUQqQBkEJoAcw7JAHjUOgCRDOkAmtvyAK8LCQC+CvoAzZzRANwJGg
|
||||||
|
DrmvEA+priAQmZEQEYmQIBJ5cxATaXIgFFlVEBVJVCAWOTcQFyk2IBgiU5AZCRggGgI1kBryNKAb4heQ
|
||||||
|
HNIWoB3B+ZAesfigH6HbkCB2KyAhgb2QIlYNICNq2hAkNe8gJUq8ECYV0SAnKp4QJ/7toCkKgBAp3s+g
|
||||||
|
KupiECu+saAs036QLZ6ToC6zYJAvfnWgMJNCkDFnkiAycySQM0d0IDRTBpA1J1YgNjLokDcHOCA4HAUQ
|
||||||
|
OOcaIDn75xA6xvwgO9vJEDywGKA9u6sQPo/6oD+bjRBAb9ygQYSpkEJPvqBDZIuQRC+goEVEbZBF89Mg
|
||||||
|
Ry2KEEfTtSBJDWwQSbOXIErtThBLnLOgTNZqkE18laBOtkyQT1x3oFCWLpBRPFmgUnYQkFMcO6BUVfKQ
|
||||||
|
VPwdoFY11JBW5TogWB7xEFjFHCBZ/tMQWqT+IFvetRBchOAgXb6XEF5kwiBfnnkQYE3eoGGHlZBiLcCg
|
||||||
|
Y2d3kGQNoqBlR1mQZe2EoGcnO5BnzWagaQcdkGmtSKBq5v+Qa5ZlIGzQHBBtdkcgbq/+EG9WKSBwj+AQ
|
||||||
|
cTYLIHJvwhBzFe0gdE+kEHT/CaB2OMCQdt7roHgYopB4vs2gefiEkHqer6B72GaQfH6RoH24SJB+XnOg
|
||||||
|
f5gqkAABAAECAwEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA
|
||||||
|
AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA
|
||||||
|
AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA
|
||||||
|
AQABAAEAAQAB//+dkAEA//+PgAAE//+dkAEI//+dkAEMUERUAFBTVABQV1QAUFBUAAAAAAEAAAABA
|
||||||
|
</data>
|
||||||
|
</timeZone>
|
||||||
|
</calendarDate>
|
||||||
|
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<datePickerElements key="datePickerElements" year="YES" month="YES" day="YES" hour="YES" minute="YES" second="YES"/>
|
||||||
|
</datePickerCell>
|
||||||
|
</datePicker>
|
||||||
|
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="15">
|
||||||
|
<rect key="frame" x="18" y="47" width="281" height="26"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<popUpButtonCell key="cell" type="push" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" id="16">
|
||||||
|
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||||
|
<font key="font" metaFont="menu"/>
|
||||||
|
<menu key="menu" title="OtherViews" id="17"/>
|
||||||
|
</popUpButtonCell>
|
||||||
|
</popUpButton>
|
||||||
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="25">
|
||||||
|
<rect key="frame" x="226" y="18" width="70" height="25"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<buttonCell key="cell" type="roundTextured" title="Use Date" bezelStyle="texturedRounded" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="26">
|
||||||
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
</buttonCell>
|
||||||
|
<connections>
|
||||||
|
<action selector="useDate:" target="-2" id="34n-E5-FQq"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="29">
|
||||||
|
<rect key="frame" x="162" y="18" width="56" height="25"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<buttonCell key="cell" type="roundTextured" title="Cancel" bezelStyle="texturedRounded" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="30">
|
||||||
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
</buttonCell>
|
||||||
|
<connections>
|
||||||
|
<action selector="cancel:" target="-2" id="eww-6g-58Z"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="3" firstAttribute="leading" secondItem="1" secondAttribute="leading" constant="20" symbolic="YES" id="13"/>
|
||||||
|
<constraint firstItem="3" firstAttribute="top" secondItem="1" secondAttribute="top" constant="20" symbolic="YES" id="14"/>
|
||||||
|
<constraint firstItem="15" firstAttribute="top" secondItem="3" secondAttribute="bottom" constant="20" symbolic="YES" id="21"/>
|
||||||
|
<constraint firstItem="15" firstAttribute="leading" secondItem="1" secondAttribute="leading" constant="20" symbolic="YES" id="22"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="15" secondAttribute="trailing" constant="20" symbolic="YES" id="24"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="25" secondAttribute="trailing" constant="20" symbolic="YES" id="27"/>
|
||||||
|
<constraint firstItem="29" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="1" secondAttribute="leading" constant="20" symbolic="YES" id="35"/>
|
||||||
|
<constraint firstAttribute="bottom" secondItem="25" secondAttribute="bottom" constant="20" symbolic="YES" id="36"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="3" secondAttribute="trailing" constant="20" id="6Qs-OP-VRr"/>
|
||||||
|
<constraint firstItem="25" firstAttribute="centerY" secondItem="29" secondAttribute="centerY" id="M8N-5g-ClS"/>
|
||||||
|
<constraint firstItem="25" firstAttribute="leading" secondItem="29" secondAttribute="trailing" constant="8" symbolic="YES" id="on5-xg-jcC"/>
|
||||||
|
<constraint firstItem="25" firstAttribute="top" secondItem="15" secondAttribute="bottom" constant="8" symbolic="YES" id="sxX-fk-xaJ"/>
|
||||||
|
</constraints>
|
||||||
|
</customView>
|
||||||
|
</objects>
|
||||||
|
</document>
|
||||||
@@ -1,198 +1,31 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
|
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="4514" systemVersion="13A603" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||||
<data>
|
<dependencies>
|
||||||
<int key="IBDocument.SystemTarget">1080</int>
|
<deployment defaultVersion="1080" identifier="macosx"/>
|
||||||
<string key="IBDocument.SystemVersion">12E55</string>
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="4514"/>
|
||||||
<string key="IBDocument.InterfaceBuilderVersion">3084</string>
|
</dependencies>
|
||||||
<string key="IBDocument.AppKitVersion">1187.39</string>
|
<objects>
|
||||||
<string key="IBDocument.HIToolboxVersion">626.00</string>
|
<customObject id="-2" userLabel="File's Owner" customClass="MPDocumentWindowController">
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
<connections>
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<outlet property="splitView" destination="697" id="700"/>
|
||||||
<string key="NS.object.0">3084</string>
|
<outlet property="window" destination="1" id="501"/>
|
||||||
</object>
|
</connections>
|
||||||
<array key="IBDocument.IntegratedClassDependencies">
|
</customObject>
|
||||||
<string>NSCustomObject</string>
|
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||||
<string>NSSplitView</string>
|
<customObject id="-3" userLabel="Application"/>
|
||||||
<string>NSView</string>
|
<window title="Window" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" oneShot="NO" releasedWhenClosed="NO" wantsToBeColor="NO" visibleAtLaunch="NO" frameAutosaveName="DatabaseWindow" animationBehavior="default" id="1">
|
||||||
<string>NSWindowTemplate</string>
|
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
|
||||||
</array>
|
<windowCollectionBehavior key="collectionBehavior" fullScreenPrimary="YES"/>
|
||||||
<array key="IBDocument.PluginDependencies">
|
<rect key="contentRect" x="196" y="240" width="700" height="500"/>
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<rect key="screenRect" x="0.0" y="0.0" width="1680" height="1028"/>
|
||||||
</array>
|
<view key="contentView" id="2">
|
||||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
<rect key="frame" x="0.0" y="0.0" width="700" height="500"/>
|
||||||
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
<integer value="1" key="NS.object.0"/>
|
</view>
|
||||||
</object>
|
</window>
|
||||||
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
<splitView autosaveName="" dividerStyle="thin" vertical="YES" translatesAutoresizingMaskIntoConstraints="NO" id="697">
|
||||||
<object class="NSCustomObject" id="1001">
|
<rect key="frame" x="0.0" y="0.0" width="560" height="194"/>
|
||||||
<string key="NSClassName">MPDocumentWindowController</string>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
</object>
|
</splitView>
|
||||||
<object class="NSCustomObject" id="1003">
|
</objects>
|
||||||
<string key="NSClassName">FirstResponder</string>
|
</document>
|
||||||
</object>
|
|
||||||
<object class="NSCustomObject" id="1004">
|
|
||||||
<string key="NSClassName">NSApplication</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSWindowTemplate" id="1005">
|
|
||||||
<int key="NSWindowStyleMask">15</int>
|
|
||||||
<int key="NSWindowBacking">2</int>
|
|
||||||
<string key="NSWindowRect">{{196, 240}, {700, 500}}</string>
|
|
||||||
<int key="NSWTFlags">1618477056</int>
|
|
||||||
<string key="NSWindowTitle">Window</string>
|
|
||||||
<string key="NSWindowClass">NSWindow</string>
|
|
||||||
<nil key="NSViewClass"/>
|
|
||||||
<nil key="NSUserInterfaceItemIdentifier"/>
|
|
||||||
<object class="NSView" key="NSWindowView" id="1006">
|
|
||||||
<reference key="NSNextResponder"/>
|
|
||||||
<int key="NSvFlags">256</int>
|
|
||||||
<array class="NSMutableArray" key="NSSubviews"/>
|
|
||||||
<string key="NSFrameSize">{700, 500}</string>
|
|
||||||
<reference key="NSSuperview"/>
|
|
||||||
<reference key="NSWindow"/>
|
|
||||||
</object>
|
|
||||||
<string key="NSScreenRect">{{0, 0}, {1920, 1058}}</string>
|
|
||||||
<string key="NSMaxSize">{10000000000000, 10000000000000}</string>
|
|
||||||
<bool key="NSWindowIsRestorable">YES</bool>
|
|
||||||
</object>
|
|
||||||
<object class="NSSplitView" id="903506498">
|
|
||||||
<reference key="NSNextResponder"/>
|
|
||||||
<int key="NSvFlags">268</int>
|
|
||||||
<array class="NSMutableArray" key="NSSubviews"/>
|
|
||||||
<string key="NSFrameSize">{560, 194}</string>
|
|
||||||
<reference key="NSSuperview"/>
|
|
||||||
<reference key="NSWindow"/>
|
|
||||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
|
||||||
<bool key="NSIsVertical">YES</bool>
|
|
||||||
<int key="NSDividerStyle">2</int>
|
|
||||||
</object>
|
|
||||||
</array>
|
|
||||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
|
||||||
<array class="NSMutableArray" key="connectionRecords">
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBOutletConnection" key="connection">
|
|
||||||
<string key="label">window</string>
|
|
||||||
<reference key="source" ref="1001"/>
|
|
||||||
<reference key="destination" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">501</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBOutletConnection" key="connection">
|
|
||||||
<string key="label">splitView</string>
|
|
||||||
<reference key="source" ref="1001"/>
|
|
||||||
<reference key="destination" ref="903506498"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">700</int>
|
|
||||||
</object>
|
|
||||||
</array>
|
|
||||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
|
||||||
<array key="orderedObjects">
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">0</int>
|
|
||||||
<array key="object" id="0"/>
|
|
||||||
<reference key="children" ref="1000"/>
|
|
||||||
<nil key="parent"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">-2</int>
|
|
||||||
<reference key="object" ref="1001"/>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
<string key="objectName">File's Owner</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">-1</int>
|
|
||||||
<reference key="object" ref="1003"/>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
<string key="objectName">First Responder</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">-3</int>
|
|
||||||
<reference key="object" ref="1004"/>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
<string key="objectName">Application</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">1</int>
|
|
||||||
<reference key="object" ref="1005"/>
|
|
||||||
<array class="NSMutableArray" key="children">
|
|
||||||
<reference ref="1006"/>
|
|
||||||
</array>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">2</int>
|
|
||||||
<reference key="object" ref="1006"/>
|
|
||||||
<array class="NSMutableArray" key="children"/>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">697</int>
|
|
||||||
<reference key="object" ref="903506498"/>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
</object>
|
|
||||||
</array>
|
|
||||||
</object>
|
|
||||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
|
||||||
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="-3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<boolean value="YES" key="1.IBNSWindowAutoPositionCentersHorizontal"/>
|
|
||||||
<boolean value="YES" key="1.IBNSWindowAutoPositionCentersVertical"/>
|
|
||||||
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="1.IBWindowTemplateEditedContentRect">{{357, 418}, {480, 270}}</string>
|
|
||||||
<boolean value="NO" key="1.NSWindowTemplate.visibleAtLaunch"/>
|
|
||||||
<string key="2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<boolean value="NO" key="697.IBNSViewMetadataLastInspectedTranslatesAutoresizingMaskIntoConstraints"/>
|
|
||||||
<boolean value="NO" key="697.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
|
||||||
<string key="697.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">743</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
|
||||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">MPDocumentWindowController</string>
|
|
||||||
<string key="superclassName">NSWindowController</string>
|
|
||||||
<dictionary class="NSMutableDictionary" key="actions">
|
|
||||||
<string key="editPassword:">id</string>
|
|
||||||
<string key="showDatabaseSettings:">id</string>
|
|
||||||
</dictionary>
|
|
||||||
<dictionary class="NSMutableDictionary" key="actionInfosByName">
|
|
||||||
<object class="IBActionInfo" key="editPassword:">
|
|
||||||
<string key="name">editPassword:</string>
|
|
||||||
<string key="candidateClassName">id</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBActionInfo" key="showDatabaseSettings:">
|
|
||||||
<string key="name">showDatabaseSettings:</string>
|
|
||||||
<string key="candidateClassName">id</string>
|
|
||||||
</object>
|
|
||||||
</dictionary>
|
|
||||||
<object class="NSMutableDictionary" key="outlets">
|
|
||||||
<string key="NS.key.0">splitView</string>
|
|
||||||
<string key="NS.object.0">NSSplitView</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
|
||||||
<string key="NS.key.0">splitView</string>
|
|
||||||
<object class="IBToOneOutletInfo" key="NS.object.0">
|
|
||||||
<string key="name">splitView</string>
|
|
||||||
<string key="candidateClassName">NSSplitView</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBProjectSource</string>
|
|
||||||
<string key="minorKey">./Classes/MPDocumentWindowController.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</array>
|
|
||||||
</object>
|
|
||||||
<int key="IBDocument.localizationMode">0</int>
|
|
||||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
|
|
||||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
|
||||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
|
||||||
<bool key="IBDocument.UseAutolayout">YES</bool>
|
|
||||||
</data>
|
|
||||||
</archive>
|
|
||||||
886
MacPass/EntryInspectorView.xib
Normal file
@@ -0,0 +1,886 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="5053" systemVersion="13C64" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||||
|
<dependencies>
|
||||||
|
<deployment version="1070" defaultVersion="1080" identifier="macosx"/>
|
||||||
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="5053"/>
|
||||||
|
</dependencies>
|
||||||
|
<objects>
|
||||||
|
<customObject id="-2" userLabel="File's Owner" customClass="MPEntryInspectorViewController">
|
||||||
|
<connections>
|
||||||
|
<outlet property="URLTextField" destination="56" id="262"/>
|
||||||
|
<outlet property="addAssociationButton" destination="Iy9-9L-Aev" id="HQH-Ad-9my"/>
|
||||||
|
<outlet property="associationSequenceTextField" destination="NjR-ea-Y7k" id="kTb-Y5-XrZ"/>
|
||||||
|
<outlet property="attachmentTableView" destination="137" id="265"/>
|
||||||
|
<outlet property="autotypView" destination="zv7-wE-Bmg" id="m1g-dk-hFv"/>
|
||||||
|
<outlet property="customEntrySequenceTextField" destination="cDK-DM-F5z" id="CDU-Oq-AHP"/>
|
||||||
|
<outlet property="customFieldsTableView" destination="193" id="266"/>
|
||||||
|
<outlet property="enableAutotypeCheckButton" destination="kdV-Xa-8p3" id="vlC-HP-lBv"/>
|
||||||
|
<outlet property="expiresCheckButton" destination="7" id="286"/>
|
||||||
|
<outlet property="generalView" destination="4" id="270"/>
|
||||||
|
<outlet property="generatePasswordButton" destination="59" id="282"/>
|
||||||
|
<outlet property="infoTabControl" destination="82" id="264"/>
|
||||||
|
<outlet property="passwordTextField" destination="60" id="263"/>
|
||||||
|
<outlet property="removeAssociationButton" destination="AAj-Ak-z46" id="7Xj-Tf-8CI"/>
|
||||||
|
<outlet property="tabView" destination="83" id="269"/>
|
||||||
|
<outlet property="tagsTokenField" destination="5" id="287"/>
|
||||||
|
<outlet property="titleTextField" destination="53" id="260"/>
|
||||||
|
<outlet property="togglePassword" destination="61" id="268"/>
|
||||||
|
<outlet property="usernameTextField" destination="55" id="261"/>
|
||||||
|
<outlet property="view" destination="3" id="250"/>
|
||||||
|
<outlet property="windowAssociationsTableView" destination="caM-L6-UHC" id="n5M-f8-z24"/>
|
||||||
|
<outlet property="windowTitleComboBox" destination="rD3-Wn-ZFX" id="rd3-kO-jfj"/>
|
||||||
|
</connections>
|
||||||
|
</customObject>
|
||||||
|
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||||
|
<customObject id="-3" userLabel="Application"/>
|
||||||
|
<view translatesAutoresizingMaskIntoConstraints="NO" id="3">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="293" height="529"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
<subviews>
|
||||||
|
<segmentedControl verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="82">
|
||||||
|
<rect key="frame" x="35" y="505" width="223" height="19"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<segmentedCell key="cell" controlSize="small" alignment="left" style="texturedSquare" trackingMode="selectOne" id="238">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<segments>
|
||||||
|
<segment label="General" selected="YES"/>
|
||||||
|
<segment label="Files" tag="1"/>
|
||||||
|
<segment label="Custom"/>
|
||||||
|
<segment label="Autotype"/>
|
||||||
|
</segments>
|
||||||
|
</segmentedCell>
|
||||||
|
</segmentedControl>
|
||||||
|
<tabView drawsBackground="NO" type="noTabsNoBorder" initialItem="110" translatesAutoresizingMaskIntoConstraints="NO" id="83">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="293" height="503"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<tabViewItems>
|
||||||
|
<tabViewItem label="General" identifier="1" id="110">
|
||||||
|
<view key="view" id="111">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="293" height="503"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
</view>
|
||||||
|
</tabViewItem>
|
||||||
|
<tabViewItem label="Attachments" identifier="" id="109">
|
||||||
|
<view key="view" id="123">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="293" height="503"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<button focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="124">
|
||||||
|
<rect key="frame" x="241" y="466" width="32" height="19"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="width" constant="32" id="176"/>
|
||||||
|
</constraints>
|
||||||
|
<buttonCell key="cell" type="roundRect" bezelStyle="roundedRect" image="NSAddTemplate" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" focusRingType="none" imageScaling="proportionallyDown" inset="2" id="177">
|
||||||
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
|
<font key="font" metaFont="cellTitle"/>
|
||||||
|
</buttonCell>
|
||||||
|
<connections>
|
||||||
|
<action selector="addAttachment:" target="-2" id="271"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="126">
|
||||||
|
<rect key="frame" x="18" y="469" width="77" height="14"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="width" constant="73" id="136"/>
|
||||||
|
</constraints>
|
||||||
|
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Attachments" id="135">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<color key="textColor" name="disabledControlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
<scrollView autohidesScrollers="YES" horizontalLineScroll="38" horizontalPageScroll="10" verticalLineScroll="38" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="125" customClass="HNHScrollView">
|
||||||
|
<rect key="frame" x="20" y="26" width="253" height="432"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<clipView key="contentView" drawsBackground="NO" copiesOnScroll="NO" id="F3N-QI-Di5">
|
||||||
|
<rect key="frame" x="1" y="1" width="251" height="430"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" columnSelection="YES" multipleSelection="NO" autosaveColumns="NO" rowHeight="36" rowSizeStyle="automatic" viewBased="YES" id="137">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="251" height="430"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
<size key="intercellSpacing" width="3" height="2"/>
|
||||||
|
<color key="backgroundColor" name="alternateSelectedControlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<tableColumns>
|
||||||
|
<tableColumn width="248" minWidth="40" maxWidth="1000" id="140">
|
||||||
|
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" white="0.33333298560000002" alpha="1" colorSpace="calibratedWhite"/>
|
||||||
|
</tableHeaderCell>
|
||||||
|
<textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" alignment="left" title="Text Cell" id="142">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||||
|
<prototypeCellViews>
|
||||||
|
<tableCellView identifier="NormalCell" id="143">
|
||||||
|
<rect key="frame" x="1" y="1" width="248" height="36"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<imageView translatesAutoresizingMaskIntoConstraints="NO" id="144">
|
||||||
|
<rect key="frame" x="3" y="2" width="32" height="32"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="width" constant="32" id="153"/>
|
||||||
|
<constraint firstAttribute="height" constant="32" id="154"/>
|
||||||
|
</constraints>
|
||||||
|
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="NSActionTemplate" id="152"/>
|
||||||
|
</imageView>
|
||||||
|
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="145">
|
||||||
|
<rect key="frame" x="41" y="10" width="206" height="17"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="151">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="144" firstAttribute="leading" secondItem="143" secondAttribute="leading" constant="3" id="146"/>
|
||||||
|
<constraint firstItem="144" firstAttribute="centerY" secondItem="143" secondAttribute="centerY" id="147"/>
|
||||||
|
<constraint firstItem="144" firstAttribute="centerY" secondItem="145" secondAttribute="centerY" id="148"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="145" secondAttribute="trailing" constant="3" id="149"/>
|
||||||
|
<constraint firstItem="145" firstAttribute="leading" secondItem="144" secondAttribute="trailing" constant="8" symbolic="YES" id="150"/>
|
||||||
|
</constraints>
|
||||||
|
<connections>
|
||||||
|
<outlet property="imageView" destination="144" id="239"/>
|
||||||
|
<outlet property="textField" destination="145" id="240"/>
|
||||||
|
</connections>
|
||||||
|
</tableCellView>
|
||||||
|
<tableCellView identifier="SelectedCell" id="141" customClass="MPSelectedAttachmentTableCellView">
|
||||||
|
<rect key="frame" x="1" y="39" width="248" height="36"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<imageView translatesAutoresizingMaskIntoConstraints="NO" id="167">
|
||||||
|
<rect key="frame" x="3" y="2" width="32" height="32"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="height" constant="32" id="168"/>
|
||||||
|
<constraint firstAttribute="width" constant="32" id="169"/>
|
||||||
|
</constraints>
|
||||||
|
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="NSActionTemplate" id="170"/>
|
||||||
|
</imageView>
|
||||||
|
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="166">
|
||||||
|
<rect key="frame" x="41" y="10" width="126" height="17"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="171">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="156">
|
||||||
|
<rect key="frame" x="213" y="8" width="32" height="19"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="width" constant="32" id="172"/>
|
||||||
|
</constraints>
|
||||||
|
<buttonCell key="cell" type="roundRect" bezelStyle="roundedRect" image="NSRemoveTemplate" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="173">
|
||||||
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
|
<font key="font" metaFont="cellTitle"/>
|
||||||
|
<string key="keyEquivalent" base64-UTF8="YES">
|
||||||
|
CA
|
||||||
|
</string>
|
||||||
|
</buttonCell>
|
||||||
|
</button>
|
||||||
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="155">
|
||||||
|
<rect key="frame" x="173" y="8" width="32" height="19"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="width" constant="32" id="174"/>
|
||||||
|
</constraints>
|
||||||
|
<buttonCell key="cell" type="roundRect" bezelStyle="roundedRect" image="26_FileSaveTemplate" imagePosition="only" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="175">
|
||||||
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
|
<font key="font" metaFont="cellTitle"/>
|
||||||
|
</buttonCell>
|
||||||
|
</button>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="167" firstAttribute="leading" secondItem="141" secondAttribute="leading" constant="3" id="157"/>
|
||||||
|
<constraint firstItem="167" firstAttribute="centerY" secondItem="166" secondAttribute="centerY" id="158"/>
|
||||||
|
<constraint firstItem="167" firstAttribute="centerY" secondItem="141" secondAttribute="centerY" id="159"/>
|
||||||
|
<constraint firstItem="166" firstAttribute="leading" secondItem="167" secondAttribute="trailing" constant="8" symbolic="YES" id="160"/>
|
||||||
|
<constraint firstItem="155" firstAttribute="baseline" secondItem="156" secondAttribute="baseline" id="161"/>
|
||||||
|
<constraint firstItem="155" firstAttribute="top" secondItem="166" secondAttribute="top" id="162"/>
|
||||||
|
<constraint firstItem="155" firstAttribute="leading" secondItem="166" secondAttribute="trailing" constant="8" symbolic="YES" id="163"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="156" secondAttribute="trailing" constant="3" id="164"/>
|
||||||
|
<constraint firstItem="156" firstAttribute="leading" secondItem="155" secondAttribute="trailing" constant="8" symbolic="YES" id="165"/>
|
||||||
|
</constraints>
|
||||||
|
<connections>
|
||||||
|
<outlet property="imageView" destination="167" id="244"/>
|
||||||
|
<outlet property="removeButton" destination="156" id="247"/>
|
||||||
|
<outlet property="saveButton" destination="155" id="246"/>
|
||||||
|
<outlet property="textField" destination="166" id="245"/>
|
||||||
|
</connections>
|
||||||
|
</tableCellView>
|
||||||
|
</prototypeCellViews>
|
||||||
|
</tableColumn>
|
||||||
|
</tableColumns>
|
||||||
|
</tableView>
|
||||||
|
</subviews>
|
||||||
|
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</clipView>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="100" id="KFw-Ma-DSd"/>
|
||||||
|
</constraints>
|
||||||
|
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="138">
|
||||||
|
<rect key="frame" x="1" y="147" width="52" height="16"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
</scroller>
|
||||||
|
<scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="NO" id="139">
|
||||||
|
<rect key="frame" x="37" y="1" width="16" height="2"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
</scroller>
|
||||||
|
</scrollView>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="126" firstAttribute="top" secondItem="123" secondAttribute="top" constant="20" symbolic="YES" id="127"/>
|
||||||
|
<constraint firstItem="126" firstAttribute="leading" secondItem="123" secondAttribute="leading" constant="20" symbolic="YES" id="128"/>
|
||||||
|
<constraint firstItem="125" firstAttribute="leading" secondItem="123" secondAttribute="leading" constant="20" symbolic="YES" id="129"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="125" secondAttribute="trailing" constant="20" symbolic="YES" id="130"/>
|
||||||
|
<constraint firstItem="125" firstAttribute="top" secondItem="123" secondAttribute="top" constant="45" id="131"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="124" secondAttribute="trailing" constant="20" symbolic="YES" id="133"/>
|
||||||
|
<constraint firstItem="124" firstAttribute="baseline" secondItem="126" secondAttribute="baseline" id="134"/>
|
||||||
|
<constraint firstAttribute="bottom" secondItem="125" secondAttribute="bottom" constant="26" id="281"/>
|
||||||
|
</constraints>
|
||||||
|
</view>
|
||||||
|
<connections>
|
||||||
|
<outlet property="initialFirstResponder" destination="124" id="HDR-d9-QyI"/>
|
||||||
|
</connections>
|
||||||
|
</tabViewItem>
|
||||||
|
<tabViewItem label="Fields" identifier="" id="108">
|
||||||
|
<view key="view" id="178">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="293" height="503"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<button focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="179">
|
||||||
|
<rect key="frame" x="241" y="466" width="32" height="19"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="width" constant="32" id="231"/>
|
||||||
|
</constraints>
|
||||||
|
<buttonCell key="cell" type="roundRect" bezelStyle="roundedRect" image="NSAddTemplate" imagePosition="only" alignment="center" state="on" borderStyle="border" focusRingType="none" imageScaling="proportionallyDown" inset="2" id="232">
|
||||||
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
|
<font key="font" metaFont="cellTitle"/>
|
||||||
|
</buttonCell>
|
||||||
|
<connections>
|
||||||
|
<action selector="addCustomField:" target="-2" id="273"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="181">
|
||||||
|
<rect key="frame" x="18" y="469" width="79" height="14"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Custom Fields" id="190">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<color key="textColor" name="disabledControlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
<scrollView borderType="line" autohidesScrollers="YES" horizontalLineScroll="56" horizontalPageScroll="10" verticalLineScroll="56" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="180" customClass="HNHScrollView">
|
||||||
|
<rect key="frame" x="16" y="26" width="261" height="433"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<clipView key="contentView" drawsBackground="NO" copiesOnScroll="NO" id="k8G-zp-BXZ">
|
||||||
|
<rect key="frame" x="1" y="1" width="259" height="431"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" selectionHighlightStyle="none" columnSelection="YES" columnResizing="NO" multipleSelection="NO" autosaveColumns="NO" rowHeight="54" rowSizeStyle="automatic" viewBased="YES" id="193">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="259" height="431"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
<size key="intercellSpacing" width="3" height="2"/>
|
||||||
|
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||||
|
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<tableColumns>
|
||||||
|
<tableColumn width="256" minWidth="40" maxWidth="1000" id="194">
|
||||||
|
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" white="0.33333298560000002" alpha="1" colorSpace="calibratedWhite"/>
|
||||||
|
</tableHeaderCell>
|
||||||
|
<textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" alignment="left" title="Text Cell" id="197">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||||
|
<prototypeCellViews>
|
||||||
|
<tableCellView identifier="SelectedCell" id="196" customClass="MPCustomFieldTableCellView">
|
||||||
|
<rect key="frame" x="1" y="1" width="256" height="54"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="199">
|
||||||
|
<rect key="frame" x="3" y="10" width="212" height="22"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="height" constant="22" id="212"/>
|
||||||
|
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="50" id="213"/>
|
||||||
|
</constraints>
|
||||||
|
<textFieldCell key="cell" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" placeholderString="Value" drawsBackground="YES" id="214" customClass="HNHRoundedTextFieldCell">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="200">
|
||||||
|
<rect key="frame" x="1" y="40" width="256" height="14"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="height" constant="14" id="210"/>
|
||||||
|
</constraints>
|
||||||
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" placeholderString="Title" id="211">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<color key="textColor" name="disabledControlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="198">
|
||||||
|
<rect key="frame" x="223" y="11" width="32" height="19"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="width" constant="32" id="215"/>
|
||||||
|
</constraints>
|
||||||
|
<buttonCell key="cell" type="roundRect" bezelStyle="roundedRect" image="NSRemoveTemplate" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="216">
|
||||||
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
|
<font key="font" metaFont="cellTitle"/>
|
||||||
|
</buttonCell>
|
||||||
|
</button>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="200" firstAttribute="leading" secondItem="196" secondAttribute="leading" constant="3" id="201"/>
|
||||||
|
<constraint firstItem="200" firstAttribute="trailing" secondItem="198" secondAttribute="trailing" id="202"/>
|
||||||
|
<constraint firstItem="200" firstAttribute="top" secondItem="196" secondAttribute="top" id="203"/>
|
||||||
|
<constraint firstItem="199" firstAttribute="leading" secondItem="196" secondAttribute="leading" constant="3" id="204"/>
|
||||||
|
<constraint firstItem="199" firstAttribute="top" secondItem="200" secondAttribute="bottom" constant="8" symbolic="YES" id="205"/>
|
||||||
|
<constraint firstAttribute="bottom" secondItem="199" secondAttribute="bottom" constant="10" id="206"/>
|
||||||
|
<constraint firstItem="198" firstAttribute="centerY" secondItem="199" secondAttribute="centerY" id="207"/>
|
||||||
|
<constraint firstItem="198" firstAttribute="leading" secondItem="199" secondAttribute="trailing" constant="8" symbolic="YES" id="208"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="198" secondAttribute="trailing" constant="1" id="209"/>
|
||||||
|
</constraints>
|
||||||
|
<connections>
|
||||||
|
<outlet property="labelTextField" destination="200" id="242"/>
|
||||||
|
<outlet property="removeButton" destination="198" id="243"/>
|
||||||
|
<outlet property="valueTextField" destination="199" id="241"/>
|
||||||
|
</connections>
|
||||||
|
</tableCellView>
|
||||||
|
<tableCellView identifier="NormalCell" id="195" customClass="MPCustomFieldTableCellView">
|
||||||
|
<rect key="frame" x="1" y="57" width="256" height="54"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="224">
|
||||||
|
<rect key="frame" x="3" y="10" width="250" height="22"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="height" constant="22" id="226"/>
|
||||||
|
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="50" id="227"/>
|
||||||
|
</constraints>
|
||||||
|
<textFieldCell key="cell" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" placeholderString="Value" drawsBackground="YES" id="225" customClass="HNHRoundedTextFieldCell">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="223">
|
||||||
|
<rect key="frame" x="1" y="40" width="256" height="14"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="height" constant="14" id="229"/>
|
||||||
|
<constraint firstAttribute="width" constant="252" id="230"/>
|
||||||
|
</constraints>
|
||||||
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" placeholderString="Title" id="228">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<color key="textColor" name="disabledControlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="223" firstAttribute="leading" secondItem="195" secondAttribute="leading" constant="3" id="217"/>
|
||||||
|
<constraint firstItem="223" firstAttribute="top" secondItem="195" secondAttribute="top" id="218"/>
|
||||||
|
<constraint firstItem="224" firstAttribute="leading" secondItem="195" secondAttribute="leading" constant="3" id="219"/>
|
||||||
|
<constraint firstItem="224" firstAttribute="top" secondItem="223" secondAttribute="bottom" constant="8" symbolic="YES" id="220"/>
|
||||||
|
<constraint firstAttribute="bottom" secondItem="224" secondAttribute="bottom" constant="10" id="221"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="224" secondAttribute="trailing" constant="3" id="222"/>
|
||||||
|
</constraints>
|
||||||
|
<connections>
|
||||||
|
<outlet property="labelTextField" destination="223" id="249"/>
|
||||||
|
<outlet property="valueTextField" destination="224" id="248"/>
|
||||||
|
</connections>
|
||||||
|
</tableCellView>
|
||||||
|
</prototypeCellViews>
|
||||||
|
</tableColumn>
|
||||||
|
</tableColumns>
|
||||||
|
</tableView>
|
||||||
|
</subviews>
|
||||||
|
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</clipView>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="100" id="Car-Dj-KWv"/>
|
||||||
|
</constraints>
|
||||||
|
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="192">
|
||||||
|
<rect key="frame" x="1" y="119" width="223" height="15"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
</scroller>
|
||||||
|
<scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="NO" id="191">
|
||||||
|
<rect key="frame" x="224" y="17" width="15" height="102"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
</scroller>
|
||||||
|
</scrollView>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="181" firstAttribute="top" secondItem="178" secondAttribute="top" constant="20" symbolic="YES" id="182"/>
|
||||||
|
<constraint firstItem="181" firstAttribute="leading" secondItem="178" secondAttribute="leading" constant="20" symbolic="YES" id="183"/>
|
||||||
|
<constraint firstItem="180" firstAttribute="leading" secondItem="178" secondAttribute="leading" constant="16" id="184" userLabel="Horizontal Space - Scroll View - Table View - View"/>
|
||||||
|
<constraint firstItem="180" firstAttribute="top" secondItem="179" secondAttribute="bottom" constant="8" symbolic="YES" id="185"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="180" secondAttribute="trailing" constant="16" id="186"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="179" secondAttribute="trailing" constant="20" symbolic="YES" id="188"/>
|
||||||
|
<constraint firstItem="179" firstAttribute="baseline" secondItem="181" secondAttribute="baseline" id="189"/>
|
||||||
|
<constraint firstAttribute="bottom" secondItem="180" secondAttribute="bottom" constant="26" id="280"/>
|
||||||
|
</constraints>
|
||||||
|
</view>
|
||||||
|
<connections>
|
||||||
|
<outlet property="initialFirstResponder" destination="179" id="wSu-XB-L1r"/>
|
||||||
|
</connections>
|
||||||
|
</tabViewItem>
|
||||||
|
<tabViewItem label="Autotype" identifier="" id="hK7-Dx-yjH">
|
||||||
|
<view key="view" id="2py-ab-4ZU">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="293" height="503"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
</view>
|
||||||
|
</tabViewItem>
|
||||||
|
</tabViewItems>
|
||||||
|
</tabView>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="83" firstAttribute="leading" secondItem="3" secondAttribute="leading" id="85"/>
|
||||||
|
<constraint firstItem="83" firstAttribute="trailing" secondItem="3" secondAttribute="trailing" id="86"/>
|
||||||
|
<constraint firstItem="82" firstAttribute="top" secondItem="3" secondAttribute="top" constant="5" id="89"/>
|
||||||
|
<constraint firstAttribute="centerX" secondItem="82" secondAttribute="centerX" id="90"/>
|
||||||
|
<constraint firstItem="83" firstAttribute="bottom" secondItem="3" secondAttribute="bottom" id="254"/>
|
||||||
|
<constraint firstItem="83" firstAttribute="top" secondItem="3" secondAttribute="top" constant="26" id="279"/>
|
||||||
|
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="82" secondAttribute="trailing" constant="20" symbolic="YES" id="4df-0Y-ggz"/>
|
||||||
|
<constraint firstItem="82" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="3" secondAttribute="leading" constant="20" symbolic="YES" id="zU6-5h-Swa"/>
|
||||||
|
</constraints>
|
||||||
|
</view>
|
||||||
|
<customView translatesAutoresizingMaskIntoConstraints="NO" id="4" customClass="HNHScrollDocumentViewAdapter">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="252" height="398"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="52">
|
||||||
|
<rect key="frame" x="18" y="379" width="28" height="14"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Title" id="71">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<color key="textColor" name="disabledControlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="249" translatesAutoresizingMaskIntoConstraints="NO" id="53" customClass="HNHRoundedTextField">
|
||||||
|
<rect key="frame" x="20" y="349" width="212" height="22"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" lineBreakMode="truncatingTail" truncatesLastVisibleLine="YES" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" usesSingleLineMode="YES" id="70">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
<connections>
|
||||||
|
<outlet property="nextKeyView" destination="55" id="zdp-8L-2De"/>
|
||||||
|
</connections>
|
||||||
|
</textField>
|
||||||
|
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="54">
|
||||||
|
<rect key="frame" x="18" y="323" width="57" height="14"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Username" id="69">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<color key="textColor" name="disabledControlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="249" translatesAutoresizingMaskIntoConstraints="NO" id="55" customClass="HNHRoundedTextField">
|
||||||
|
<rect key="frame" x="20" y="293" width="212" height="22"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" lineBreakMode="truncatingTail" truncatesLastVisibleLine="YES" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" usesSingleLineMode="YES" id="68">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
<connections>
|
||||||
|
<outlet property="nextKeyView" destination="56" id="XBy-DG-08B"/>
|
||||||
|
</connections>
|
||||||
|
</textField>
|
||||||
|
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="56" customClass="HNHRoundedTextField">
|
||||||
|
<rect key="frame" x="20" y="237" width="212" height="22"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" lineBreakMode="truncatingTail" truncatesLastVisibleLine="YES" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" usesSingleLineMode="YES" id="67">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
<connections>
|
||||||
|
<outlet property="nextKeyView" destination="60" id="1Df-fB-wSk"/>
|
||||||
|
</connections>
|
||||||
|
</textField>
|
||||||
|
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="57">
|
||||||
|
<rect key="frame" x="18" y="267" width="25" height="14"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="URL" id="66">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<color key="textColor" name="disabledControlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="58">
|
||||||
|
<rect key="frame" x="18" y="211" width="57" height="14"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Password" id="65">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<color key="textColor" name="disabledControlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="59">
|
||||||
|
<rect key="frame" x="20" y="152" width="212" height="19"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<buttonCell key="cell" type="roundRect" title="Generate" bezelStyle="roundedRect" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="64">
|
||||||
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
|
<font key="font" metaFont="cellTitle"/>
|
||||||
|
</buttonCell>
|
||||||
|
<connections>
|
||||||
|
<action selector="_popUpPasswordGenerator:" target="-2" id="272"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<secureTextField verticalHuggingPriority="750" horizontalCompressionResistancePriority="249" translatesAutoresizingMaskIntoConstraints="NO" id="60" customClass="HNHRoundedSecureTextField">
|
||||||
|
<rect key="frame" x="20" y="179" width="173" height="24"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<secureTextFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" drawsBackground="YES" usesSingleLineMode="YES" id="63">
|
||||||
|
<font key="font" size="13" name="Menlo-Regular"/>
|
||||||
|
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<allowedInputSourceLocales>
|
||||||
|
<string>NSAllRomanInputSourcesLocaleIdentifier</string>
|
||||||
|
</allowedInputSourceLocales>
|
||||||
|
</secureTextFieldCell>
|
||||||
|
<connections>
|
||||||
|
<outlet property="nextKeyView" destination="61" id="5yc-GS-oVG"/>
|
||||||
|
</connections>
|
||||||
|
</secureTextField>
|
||||||
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="61">
|
||||||
|
<rect key="frame" x="201" y="177" width="31" height="25"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<buttonCell key="cell" type="roundTextured" bezelStyle="texturedRounded" image="NSQuickLookTemplate" imagePosition="only" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="62">
|
||||||
|
<behavior key="behavior" pushIn="YES" changeContents="YES" lightByContents="YES"/>
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
</buttonCell>
|
||||||
|
<connections>
|
||||||
|
<outlet property="nextKeyView" destination="59" id="ZRe-l9-kNq"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<button horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="7">
|
||||||
|
<rect key="frame" x="18" y="129" width="67" height="18"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<buttonCell key="cell" type="check" title="Expires" bezelStyle="regularSquare" imagePosition="left" lineBreakMode="truncatingMiddle" state="on" inset="2" id="78">
|
||||||
|
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
</buttonCell>
|
||||||
|
<connections>
|
||||||
|
<outlet property="nextKeyView" destination="8" id="SbJ-ZA-mXZ"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="8">
|
||||||
|
<rect key="frame" x="201" y="128" width="31" height="19"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="width" constant="31" id="Ped-nx-uti"/>
|
||||||
|
</constraints>
|
||||||
|
<buttonCell key="cell" type="roundRect" bezelStyle="roundedRect" image="NSActionTemplate" imagePosition="only" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="77">
|
||||||
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
|
<font key="font" metaFont="cellTitle"/>
|
||||||
|
</buttonCell>
|
||||||
|
<connections>
|
||||||
|
<action selector="pickExpiryDate:" target="-1" id="DQK-sp-SIL"/>
|
||||||
|
<outlet property="nextKeyView" destination="5" id="Yg4-Ua-HVe"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<tokenField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="5">
|
||||||
|
<rect key="frame" x="20" y="20" width="212" height="77"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="height" constant="77" id="80"/>
|
||||||
|
</constraints>
|
||||||
|
<tokenFieldCell key="cell" selectable="YES" editable="YES" borderStyle="bezel" alignment="left" drawsBackground="YES" allowsEditingTextAttributes="YES" id="81">
|
||||||
|
<font key="font" metaFont="cellTitle"/>
|
||||||
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</tokenFieldCell>
|
||||||
|
</tokenField>
|
||||||
|
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="6">
|
||||||
|
<rect key="frame" x="18" y="105" width="29" height="14"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Tags" id="79">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<color key="textColor" name="disabledControlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="52" firstAttribute="top" secondItem="4" secondAttribute="top" constant="5" id="11"/>
|
||||||
|
<constraint firstItem="52" firstAttribute="leading" secondItem="4" secondAttribute="leading" constant="20" symbolic="YES" id="12"/>
|
||||||
|
<constraint firstItem="53" firstAttribute="leading" secondItem="4" secondAttribute="leading" constant="20" symbolic="YES" id="13"/>
|
||||||
|
<constraint firstItem="53" firstAttribute="top" secondItem="52" secondAttribute="bottom" constant="8" symbolic="YES" id="14"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="53" secondAttribute="trailing" constant="20" symbolic="YES" id="15"/>
|
||||||
|
<constraint firstItem="54" firstAttribute="leading" secondItem="4" secondAttribute="leading" constant="20" symbolic="YES" id="16"/>
|
||||||
|
<constraint firstItem="54" firstAttribute="top" secondItem="53" secondAttribute="bottom" constant="12" id="17"/>
|
||||||
|
<constraint firstItem="55" firstAttribute="leading" secondItem="4" secondAttribute="leading" constant="20" symbolic="YES" id="18"/>
|
||||||
|
<constraint firstItem="55" firstAttribute="top" secondItem="54" secondAttribute="bottom" constant="8" symbolic="YES" id="19"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="55" secondAttribute="trailing" constant="20" symbolic="YES" id="20"/>
|
||||||
|
<constraint firstItem="57" firstAttribute="leading" secondItem="4" secondAttribute="leading" constant="20" symbolic="YES" id="21"/>
|
||||||
|
<constraint firstItem="57" firstAttribute="top" secondItem="55" secondAttribute="bottom" constant="12" id="22"/>
|
||||||
|
<constraint firstItem="56" firstAttribute="leading" secondItem="4" secondAttribute="leading" constant="20" symbolic="YES" id="23"/>
|
||||||
|
<constraint firstItem="56" firstAttribute="top" secondItem="57" secondAttribute="bottom" constant="8" symbolic="YES" id="24"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="56" secondAttribute="trailing" constant="20" symbolic="YES" id="25"/>
|
||||||
|
<constraint firstItem="58" firstAttribute="leading" secondItem="4" secondAttribute="leading" constant="20" symbolic="YES" id="26"/>
|
||||||
|
<constraint firstItem="58" firstAttribute="trailing" secondItem="54" secondAttribute="trailing" id="27"/>
|
||||||
|
<constraint firstItem="58" firstAttribute="top" secondItem="56" secondAttribute="bottom" constant="12" id="28"/>
|
||||||
|
<constraint firstItem="60" firstAttribute="top" secondItem="58" secondAttribute="bottom" constant="8" symbolic="YES" id="29"/>
|
||||||
|
<constraint firstItem="60" firstAttribute="leading" secondItem="4" secondAttribute="leading" constant="20" symbolic="YES" id="30"/>
|
||||||
|
<constraint firstItem="59" firstAttribute="top" secondItem="61" secondAttribute="bottom" constant="8" symbolic="YES" id="31"/>
|
||||||
|
<constraint firstItem="59" firstAttribute="top" secondItem="60" secondAttribute="bottom" constant="8" symbolic="YES" id="32"/>
|
||||||
|
<constraint firstItem="59" firstAttribute="leading" secondItem="4" secondAttribute="leading" constant="20" symbolic="YES" id="33"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="59" secondAttribute="trailing" constant="20" symbolic="YES" id="34"/>
|
||||||
|
<constraint firstItem="61" firstAttribute="leading" secondItem="60" secondAttribute="trailing" constant="8" symbolic="YES" id="40"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="61" secondAttribute="trailing" constant="20" symbolic="YES" id="41"/>
|
||||||
|
<constraint firstItem="7" firstAttribute="leading" secondItem="4" secondAttribute="leading" constant="20" symbolic="YES" id="42"/>
|
||||||
|
<constraint firstItem="7" firstAttribute="centerY" secondItem="8" secondAttribute="centerY" id="43"/>
|
||||||
|
<constraint firstItem="6" firstAttribute="top" secondItem="7" secondAttribute="bottom" constant="12" id="44"/>
|
||||||
|
<constraint firstItem="6" firstAttribute="leading" secondItem="4" secondAttribute="leading" constant="20" symbolic="YES" id="45"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="8" secondAttribute="trailing" constant="20" symbolic="YES" id="47"/>
|
||||||
|
<constraint firstItem="5" firstAttribute="top" secondItem="6" secondAttribute="bottom" constant="8" symbolic="YES" id="48"/>
|
||||||
|
<constraint firstItem="5" firstAttribute="leading" secondItem="4" secondAttribute="leading" constant="20" symbolic="YES" id="49"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="5" secondAttribute="trailing" constant="20" symbolic="YES" id="50"/>
|
||||||
|
<constraint firstAttribute="bottom" secondItem="5" secondAttribute="bottom" constant="20" symbolic="YES" id="51"/>
|
||||||
|
<constraint firstItem="7" firstAttribute="top" secondItem="59" secondAttribute="bottom" constant="8" symbolic="YES" id="QPJ-9m-AzZ"/>
|
||||||
|
<constraint firstItem="8" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="7" secondAttribute="trailing" constant="8" symbolic="YES" id="Xa5-Ir-XNC"/>
|
||||||
|
</constraints>
|
||||||
|
</customView>
|
||||||
|
<view translatesAutoresizingMaskIntoConstraints="NO" id="zv7-wE-Bmg" customClass="HNHScrollDocumentViewAdapter">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="301" height="420"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<button translatesAutoresizingMaskIntoConstraints="NO" id="kdV-Xa-8p3">
|
||||||
|
<rect key="frame" x="18" y="394" width="125" height="18"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="height" constant="14" id="KzZ-r3-FPC"/>
|
||||||
|
</constraints>
|
||||||
|
<buttonCell key="cell" type="check" title="Enable Autotype" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="9Nx-mE-DK3">
|
||||||
|
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
</buttonCell>
|
||||||
|
</button>
|
||||||
|
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="cDK-DM-F5z" customClass="HNHRoundedTextField">
|
||||||
|
<rect key="frame" x="20" y="340" width="261" height="22"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" placeholderString="Custom Entry Sequence" drawsBackground="YES" id="R2X-Ex-c6q">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="45R-v4-ywl">
|
||||||
|
<rect key="frame" x="18" y="370" width="107" height="14"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Autotype Sequence" id="bQ5-0E-h3O">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<color key="textColor" name="disabledControlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
<scrollView autohidesScrollers="YES" horizontalLineScroll="19" horizontalPageScroll="10" verticalLineScroll="19" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2YH-c2-Cwc">
|
||||||
|
<rect key="frame" x="20" y="152" width="261" height="150"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<clipView key="contentView" id="aDE-WT-YIv">
|
||||||
|
<rect key="frame" x="1" y="1" width="259" height="148"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" alternatingRowBackgroundColors="YES" columnReordering="NO" columnSelection="YES" columnResizing="NO" multipleSelection="NO" autosaveColumns="NO" rowSizeStyle="automatic" viewBased="YES" id="caM-L6-UHC">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="259" height="148"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
<size key="intercellSpacing" width="3" height="2"/>
|
||||||
|
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||||
|
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<tableColumns>
|
||||||
|
<tableColumn width="256" minWidth="40" maxWidth="1000" id="Wdn-k1-39b">
|
||||||
|
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" white="0.33333298560000002" alpha="1" colorSpace="calibratedWhite"/>
|
||||||
|
</tableHeaderCell>
|
||||||
|
<textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" alignment="left" title="Text Cell" id="ep5-bQ-cfZ">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||||
|
<prototypeCellViews>
|
||||||
|
<tableCellView identifier="WindowAssociationCell" id="jI3-t8-8bp">
|
||||||
|
<rect key="frame" x="1" y="1" width="256" height="17"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="JgP-7K-Ugw">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="256" height="17"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="dyA-lo-PGa">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
</subviews>
|
||||||
|
<connections>
|
||||||
|
<outlet property="textField" destination="JgP-7K-Ugw" id="EIY-vk-jbY"/>
|
||||||
|
</connections>
|
||||||
|
</tableCellView>
|
||||||
|
</prototypeCellViews>
|
||||||
|
</tableColumn>
|
||||||
|
</tableColumns>
|
||||||
|
</tableView>
|
||||||
|
</subviews>
|
||||||
|
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</clipView>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="height" constant="150" id="oXw-x1-wDN"/>
|
||||||
|
</constraints>
|
||||||
|
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="Y4S-4R-dwJ">
|
||||||
|
<rect key="frame" x="1" y="1" width="0.0" height="16"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
</scroller>
|
||||||
|
<scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="NO" id="abK-py-K7A">
|
||||||
|
<rect key="frame" x="236" y="17" width="16" height="0.0"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
</scroller>
|
||||||
|
</scrollView>
|
||||||
|
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="iR3-FU-MYu">
|
||||||
|
<rect key="frame" x="18" y="314" width="115" height="14"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Window Associations" id="ned-1Q-FXA">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<color key="textColor" name="disabledControlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
<comboBox verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="rD3-Wn-ZFX">
|
||||||
|
<rect key="frame" x="20" y="72" width="264" height="26"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<comboBoxCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" drawsBackground="YES" completes="NO" numberOfVisibleItems="1" id="VLq-Hn-aei">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</comboBoxCell>
|
||||||
|
</comboBox>
|
||||||
|
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="HQa-of-iwh">
|
||||||
|
<rect key="frame" x="18" y="104" width="73" height="14"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Window Title" id="bkO-Bk-AuX">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<color key="textColor" name="disabledControlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="NjR-ea-Y7k" customClass="HNHRoundedTextField">
|
||||||
|
<rect key="frame" x="20" y="20" width="261" height="22"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" placeholderString="Custom Window Sequence" drawsBackground="YES" id="fW9-9p-wwR">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="z03-zW-GN3">
|
||||||
|
<rect key="frame" x="18" y="50" width="100" height="14"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Window Sequence" id="RQB-bR-MC0">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<color key="textColor" name="disabledControlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Iy9-9L-Aev">
|
||||||
|
<rect key="frame" x="249" y="125" width="32" height="19"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="width" constant="32" id="Hrx-IM-m0t"/>
|
||||||
|
</constraints>
|
||||||
|
<buttonCell key="cell" type="roundRect" bezelStyle="roundedRect" image="NSAddTemplate" imagePosition="only" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="5J6-uD-iK6">
|
||||||
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
|
<font key="font" metaFont="cellTitle"/>
|
||||||
|
</buttonCell>
|
||||||
|
<connections>
|
||||||
|
<action selector="addWindowAssociation:" target="-2" id="U5q-Gf-tsI"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="AAj-Ak-z46">
|
||||||
|
<rect key="frame" x="209" y="125" width="32" height="19"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="width" constant="32" id="MWF-fs-BGy"/>
|
||||||
|
</constraints>
|
||||||
|
<buttonCell key="cell" type="roundRect" bezelStyle="roundedRect" image="NSRemoveTemplate" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="86n-d4-lOW">
|
||||||
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
|
<font key="font" metaFont="cellTitle"/>
|
||||||
|
</buttonCell>
|
||||||
|
<connections>
|
||||||
|
<action selector="removeWindowAssociation:" target="-2" id="hAz-SO-hJ0"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="Iy9-9L-Aev" secondAttribute="trailing" constant="20" symbolic="YES" id="2tF-0S-Uh3"/>
|
||||||
|
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="HQa-of-iwh" secondAttribute="trailing" constant="20" symbolic="YES" id="49X-og-jiH"/>
|
||||||
|
<constraint firstAttribute="bottom" secondItem="NjR-ea-Y7k" secondAttribute="bottom" constant="20" id="6O4-ax-cRS"/>
|
||||||
|
<constraint firstItem="iR3-FU-MYu" firstAttribute="leading" secondItem="zv7-wE-Bmg" secondAttribute="leading" constant="20" id="A9A-s9-Uxd"/>
|
||||||
|
<constraint firstItem="rD3-Wn-ZFX" firstAttribute="top" secondItem="HQa-of-iwh" secondAttribute="bottom" constant="8" symbolic="YES" id="CsD-L7-GWP"/>
|
||||||
|
<constraint firstItem="45R-v4-ywl" firstAttribute="leading" secondItem="zv7-wE-Bmg" secondAttribute="leading" constant="20" symbolic="YES" id="Edh-ho-Lv4"/>
|
||||||
|
<constraint firstItem="AAj-Ak-z46" firstAttribute="top" secondItem="2YH-c2-Cwc" secondAttribute="bottom" constant="8" symbolic="YES" id="IhT-0P-coR"/>
|
||||||
|
<constraint firstItem="z03-zW-GN3" firstAttribute="top" secondItem="rD3-Wn-ZFX" secondAttribute="bottom" constant="12" id="LUT-jk-X5v"/>
|
||||||
|
<constraint firstItem="2YH-c2-Cwc" firstAttribute="top" secondItem="iR3-FU-MYu" secondAttribute="bottom" constant="12" id="MCI-NO-05E"/>
|
||||||
|
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="2YH-c2-Cwc" secondAttribute="trailing" constant="20" symbolic="YES" id="O3C-Hb-iDd"/>
|
||||||
|
<constraint firstItem="HQa-of-iwh" firstAttribute="leading" secondItem="zv7-wE-Bmg" secondAttribute="leading" constant="20" symbolic="YES" id="UCa-5s-YxT"/>
|
||||||
|
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="z03-zW-GN3" secondAttribute="trailing" constant="20" symbolic="YES" id="W9F-Zp-Y1T"/>
|
||||||
|
<constraint firstItem="Iy9-9L-Aev" firstAttribute="top" secondItem="2YH-c2-Cwc" secondAttribute="bottom" constant="8" symbolic="YES" id="Xta-1Z-L0X"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="rD3-Wn-ZFX" secondAttribute="trailing" constant="20" symbolic="YES" id="Yey-Zd-zuV"/>
|
||||||
|
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="iR3-FU-MYu" secondAttribute="trailing" constant="20" symbolic="YES" id="ZsL-PU-USs"/>
|
||||||
|
<constraint firstItem="rD3-Wn-ZFX" firstAttribute="top" secondItem="AAj-Ak-z46" secondAttribute="bottom" constant="30" id="aiS-LW-IeX"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="NjR-ea-Y7k" secondAttribute="trailing" constant="20" symbolic="YES" id="cN1-2d-o3C"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="cDK-DM-F5z" secondAttribute="trailing" constant="20" id="fqg-py-wYA"/>
|
||||||
|
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="45R-v4-ywl" secondAttribute="trailing" constant="20" symbolic="YES" id="iU3-O5-N9P"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="2YH-c2-Cwc" secondAttribute="trailing" constant="20" symbolic="YES" id="joZ-Xp-GWa"/>
|
||||||
|
<constraint firstItem="2YH-c2-Cwc" firstAttribute="leading" secondItem="zv7-wE-Bmg" secondAttribute="leading" constant="20" symbolic="YES" id="l4D-Ut-RDl"/>
|
||||||
|
<constraint firstItem="rD3-Wn-ZFX" firstAttribute="leading" secondItem="zv7-wE-Bmg" secondAttribute="leading" constant="20" symbolic="YES" id="mOq-z9-gZ7"/>
|
||||||
|
<constraint firstItem="Iy9-9L-Aev" firstAttribute="leading" secondItem="AAj-Ak-z46" secondAttribute="trailing" constant="8" symbolic="YES" id="od1-7v-pgA"/>
|
||||||
|
<constraint firstItem="kdV-Xa-8p3" firstAttribute="leading" secondItem="zv7-wE-Bmg" secondAttribute="leading" constant="20" symbolic="YES" id="oy3-gl-jXr"/>
|
||||||
|
<constraint firstItem="cDK-DM-F5z" firstAttribute="top" secondItem="45R-v4-ywl" secondAttribute="bottom" constant="8" symbolic="YES" id="pPJ-Lz-E1A"/>
|
||||||
|
<constraint firstItem="z03-zW-GN3" firstAttribute="leading" secondItem="zv7-wE-Bmg" secondAttribute="leading" constant="20" symbolic="YES" id="qB3-Td-jrt"/>
|
||||||
|
<constraint firstItem="45R-v4-ywl" firstAttribute="top" secondItem="kdV-Xa-8p3" secondAttribute="bottom" constant="12" id="smb-K4-i2A"/>
|
||||||
|
<constraint firstItem="NjR-ea-Y7k" firstAttribute="leading" secondItem="zv7-wE-Bmg" secondAttribute="leading" constant="20" symbolic="YES" id="tD5-lh-PpM"/>
|
||||||
|
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="kdV-Xa-8p3" secondAttribute="trailing" constant="20" symbolic="YES" id="u88-Ma-UHS"/>
|
||||||
|
<constraint firstItem="iR3-FU-MYu" firstAttribute="top" secondItem="cDK-DM-F5z" secondAttribute="bottom" constant="12" id="w6Y-lj-fSi"/>
|
||||||
|
<constraint firstItem="kdV-Xa-8p3" firstAttribute="top" secondItem="zv7-wE-Bmg" secondAttribute="top" constant="10" id="xEZ-mY-WzX"/>
|
||||||
|
<constraint firstItem="cDK-DM-F5z" firstAttribute="leading" secondItem="zv7-wE-Bmg" secondAttribute="leading" constant="20" id="zPT-KL-YRT"/>
|
||||||
|
<constraint firstItem="NjR-ea-Y7k" firstAttribute="top" secondItem="z03-zW-GN3" secondAttribute="bottom" constant="8" symbolic="YES" id="zc6-0f-Uhk"/>
|
||||||
|
</constraints>
|
||||||
|
</view>
|
||||||
|
</objects>
|
||||||
|
<resources>
|
||||||
|
<image name="26_FileSaveTemplate" width="16" height="16"/>
|
||||||
|
<image name="NSActionTemplate" width="14" height="14"/>
|
||||||
|
<image name="NSAddTemplate" width="8" height="8"/>
|
||||||
|
<image name="NSQuickLookTemplate" width="21" height="16"/>
|
||||||
|
<image name="NSRemoveTemplate" width="8" height="8"/>
|
||||||
|
</resources>
|
||||||
|
</document>
|
||||||
@@ -1,989 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
|
|
||||||
<data>
|
|
||||||
<int key="IBDocument.SystemTarget">1080</int>
|
|
||||||
<string key="IBDocument.SystemVersion">12E55</string>
|
|
||||||
<string key="IBDocument.InterfaceBuilderVersion">3084</string>
|
|
||||||
<string key="IBDocument.AppKitVersion">1187.39</string>
|
|
||||||
<string key="IBDocument.HIToolboxVersion">626.00</string>
|
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="NS.object.0">3084</string>
|
|
||||||
</object>
|
|
||||||
<array key="IBDocument.IntegratedClassDependencies">
|
|
||||||
<string>IBNSLayoutConstraint</string>
|
|
||||||
<string>NSButton</string>
|
|
||||||
<string>NSButtonCell</string>
|
|
||||||
<string>NSCustomObject</string>
|
|
||||||
<string>NSCustomView</string>
|
|
||||||
<string>NSSearchField</string>
|
|
||||||
<string>NSSearchFieldCell</string>
|
|
||||||
<string>NSTextField</string>
|
|
||||||
<string>NSTextFieldCell</string>
|
|
||||||
</array>
|
|
||||||
<array key="IBDocument.PluginDependencies">
|
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
</array>
|
|
||||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
|
||||||
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
|
|
||||||
<integer value="1" key="NS.object.0"/>
|
|
||||||
</object>
|
|
||||||
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
|
||||||
<object class="NSCustomObject" id="1001">
|
|
||||||
<string key="NSClassName">MPEntryViewController</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSCustomObject" id="1003">
|
|
||||||
<string key="NSClassName">FirstResponder</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSCustomObject" id="1004">
|
|
||||||
<string key="NSClassName">NSApplication</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSCustomView" id="1005">
|
|
||||||
<reference key="NSNextResponder"/>
|
|
||||||
<int key="NSvFlags">268</int>
|
|
||||||
<array class="NSMutableArray" key="NSSubviews">
|
|
||||||
<object class="NSSearchField" id="498286707">
|
|
||||||
<reference key="NSNextResponder" ref="1005"/>
|
|
||||||
<int key="NSvFlags">268</int>
|
|
||||||
<string key="NSFrame">{{242, 6}, {100, 19}}</string>
|
|
||||||
<reference key="NSSuperview" ref="1005"/>
|
|
||||||
<reference key="NSWindow"/>
|
|
||||||
<reference key="NSNextKeyView" ref="113591000"/>
|
|
||||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
|
||||||
<bool key="NSEnabled">YES</bool>
|
|
||||||
<object class="NSSearchFieldCell" key="NSCell" id="456364439">
|
|
||||||
<int key="NSCellFlags">342884416</int>
|
|
||||||
<int key="NSCellFlags2">268567616</int>
|
|
||||||
<string key="NSContents"/>
|
|
||||||
<object class="NSFont" key="NSSupport" id="26">
|
|
||||||
<string key="NSName">LucidaGrande</string>
|
|
||||||
<double key="NSSize">11</double>
|
|
||||||
<int key="NSfFlags">3100</int>
|
|
||||||
</object>
|
|
||||||
<string key="NSCellIdentifier">_NS:9</string>
|
|
||||||
<reference key="NSControlView" ref="498286707"/>
|
|
||||||
<bool key="NSDrawsBackground">YES</bool>
|
|
||||||
<int key="NSTextBezelStyle">1</int>
|
|
||||||
<object class="NSColor" key="NSBackgroundColor">
|
|
||||||
<int key="NSColorSpace">6</int>
|
|
||||||
<string key="NSCatalogName">System</string>
|
|
||||||
<string key="NSColorName">textBackgroundColor</string>
|
|
||||||
<object class="NSColor" key="NSColor">
|
|
||||||
<int key="NSColorSpace">3</int>
|
|
||||||
<bytes key="NSWhite">MQA</bytes>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="NSColor" key="NSTextColor">
|
|
||||||
<int key="NSColorSpace">6</int>
|
|
||||||
<string key="NSCatalogName">System</string>
|
|
||||||
<string key="NSColorName">controlTextColor</string>
|
|
||||||
<object class="NSColor" key="NSColor">
|
|
||||||
<int key="NSColorSpace">3</int>
|
|
||||||
<bytes key="NSWhite">MAA</bytes>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="NSButtonCell" key="NSSearchButtonCell">
|
|
||||||
<int key="NSCellFlags">0</int>
|
|
||||||
<int key="NSCellFlags2">0</int>
|
|
||||||
<string key="NSContents">search</string>
|
|
||||||
<reference key="NSControlView" ref="498286707"/>
|
|
||||||
<string key="NSAction">_searchFieldSearch:</string>
|
|
||||||
<reference key="NSTarget" ref="456364439"/>
|
|
||||||
<int key="NSButtonFlags">138690560</int>
|
|
||||||
<int key="NSButtonFlags2">0</int>
|
|
||||||
<string key="NSKeyEquivalent"/>
|
|
||||||
<int key="NSPeriodicDelay">400</int>
|
|
||||||
<int key="NSPeriodicInterval">75</int>
|
|
||||||
</object>
|
|
||||||
<object class="NSButtonCell" key="NSCancelButtonCell">
|
|
||||||
<int key="NSCellFlags">0</int>
|
|
||||||
<int key="NSCellFlags2">0</int>
|
|
||||||
<string key="NSContents">clear</string>
|
|
||||||
<array class="NSMutableArray" key="NSAccessibilityOverriddenAttributes">
|
|
||||||
<dictionary class="NSMutableDictionary">
|
|
||||||
<string key="AXDescription">cancel</string>
|
|
||||||
<integer value="1" key="NSAccessibilityEncodedAttributesValueType"/>
|
|
||||||
</dictionary>
|
|
||||||
</array>
|
|
||||||
<reference key="NSControlView" ref="498286707"/>
|
|
||||||
<string key="NSAction">_searchFieldCancel:</string>
|
|
||||||
<reference key="NSTarget" ref="456364439"/>
|
|
||||||
<int key="NSButtonFlags">138690560</int>
|
|
||||||
<int key="NSButtonFlags2">0</int>
|
|
||||||
<string key="NSKeyEquivalent"/>
|
|
||||||
<int key="NSPeriodicDelay">400</int>
|
|
||||||
<int key="NSPeriodicInterval">75</int>
|
|
||||||
</object>
|
|
||||||
<int key="NSMaximumRecents">255</int>
|
|
||||||
</object>
|
|
||||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
|
||||||
</object>
|
|
||||||
<object class="NSButton" id="113591000">
|
|
||||||
<reference key="NSNextResponder" ref="1005"/>
|
|
||||||
<int key="NSvFlags">268</int>
|
|
||||||
<string key="NSFrame">{{350, 6}, {42, 17}}</string>
|
|
||||||
<reference key="NSSuperview" ref="1005"/>
|
|
||||||
<reference key="NSWindow"/>
|
|
||||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
|
||||||
<bool key="NSEnabled">YES</bool>
|
|
||||||
<object class="NSButtonCell" key="NSCell" id="791616402">
|
|
||||||
<int key="NSCellFlags">-2080374784</int>
|
|
||||||
<int key="NSCellFlags2">134348800</int>
|
|
||||||
<string key="NSContents">Done</string>
|
|
||||||
<reference key="NSSupport" ref="26"/>
|
|
||||||
<string key="NSCellIdentifier">_NS:9</string>
|
|
||||||
<reference key="NSControlView" ref="113591000"/>
|
|
||||||
<int key="NSButtonFlags">-2038153216</int>
|
|
||||||
<int key="NSButtonFlags2">164</int>
|
|
||||||
<string key="NSAlternateContents"/>
|
|
||||||
<string key="NSKeyEquivalent"/>
|
|
||||||
<int key="NSPeriodicDelay">400</int>
|
|
||||||
<int key="NSPeriodicInterval">75</int>
|
|
||||||
</object>
|
|
||||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
|
||||||
</object>
|
|
||||||
<object class="NSButton" id="340435610">
|
|
||||||
<reference key="NSNextResponder" ref="1005"/>
|
|
||||||
<int key="NSvFlags">268</int>
|
|
||||||
<string key="NSFrame">{{188, 6}, {38, 17}}</string>
|
|
||||||
<reference key="NSSuperview" ref="1005"/>
|
|
||||||
<reference key="NSWindow"/>
|
|
||||||
<reference key="NSNextKeyView" ref="498286707"/>
|
|
||||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
|
||||||
<bool key="NSEnabled">YES</bool>
|
|
||||||
<object class="NSButtonCell" key="NSCell" id="149174717">
|
|
||||||
<int key="NSCellFlags">-2080374784</int>
|
|
||||||
<int key="NSCellFlags2">134348800</int>
|
|
||||||
<string key="NSContents">URL</string>
|
|
||||||
<object class="NSFont" key="NSSupport" id="29">
|
|
||||||
<string key="NSName">LucidaGrande-Bold</string>
|
|
||||||
<double key="NSSize">12</double>
|
|
||||||
<int key="NSfFlags">16</int>
|
|
||||||
</object>
|
|
||||||
<string key="NSCellIdentifier">_NS:9</string>
|
|
||||||
<reference key="NSControlView" ref="340435610"/>
|
|
||||||
<int key="NSButtonFlags">-1232846848</int>
|
|
||||||
<int key="NSButtonFlags2">173</int>
|
|
||||||
<string key="NSAlternateContents"/>
|
|
||||||
<string key="NSKeyEquivalent"/>
|
|
||||||
<int key="NSPeriodicDelay">400</int>
|
|
||||||
<int key="NSPeriodicInterval">75</int>
|
|
||||||
</object>
|
|
||||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
|
||||||
</object>
|
|
||||||
<object class="NSButton" id="902262560">
|
|
||||||
<reference key="NSNextResponder" ref="1005"/>
|
|
||||||
<int key="NSvFlags">268</int>
|
|
||||||
<string key="NSFrame">{{104, 6}, {76, 17}}</string>
|
|
||||||
<reference key="NSSuperview" ref="1005"/>
|
|
||||||
<reference key="NSWindow"/>
|
|
||||||
<reference key="NSNextKeyView" ref="340435610"/>
|
|
||||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
|
||||||
<bool key="NSEnabled">YES</bool>
|
|
||||||
<object class="NSButtonCell" key="NSCell" id="397857591">
|
|
||||||
<int key="NSCellFlags">-2080374784</int>
|
|
||||||
<int key="NSCellFlags2">134348800</int>
|
|
||||||
<string key="NSContents">Username</string>
|
|
||||||
<reference key="NSSupport" ref="29"/>
|
|
||||||
<string key="NSCellIdentifier">_NS:9</string>
|
|
||||||
<reference key="NSControlView" ref="902262560"/>
|
|
||||||
<int key="NSButtonFlags">-1232846848</int>
|
|
||||||
<int key="NSButtonFlags2">173</int>
|
|
||||||
<string key="NSAlternateContents"/>
|
|
||||||
<string key="NSKeyEquivalent"/>
|
|
||||||
<int key="NSPeriodicDelay">400</int>
|
|
||||||
<int key="NSPeriodicInterval">75</int>
|
|
||||||
</object>
|
|
||||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
|
||||||
</object>
|
|
||||||
<object class="NSTextField" id="906526407">
|
|
||||||
<reference key="NSNextResponder" ref="1005"/>
|
|
||||||
<int key="NSvFlags">268</int>
|
|
||||||
<string key="NSFrame">{{5, 7}, {44, 14}}</string>
|
|
||||||
<reference key="NSSuperview" ref="1005"/>
|
|
||||||
<reference key="NSWindow"/>
|
|
||||||
<reference key="NSNextKeyView" ref="7073340"/>
|
|
||||||
<string key="NSReuseIdentifierKey">_NS:1535</string>
|
|
||||||
<bool key="NSEnabled">YES</bool>
|
|
||||||
<object class="NSTextFieldCell" key="NSCell" id="169652421">
|
|
||||||
<int key="NSCellFlags">68157504</int>
|
|
||||||
<int key="NSCellFlags2">272761856</int>
|
|
||||||
<string key="NSContents">Search:</string>
|
|
||||||
<object class="NSFont" key="NSSupport">
|
|
||||||
<string key="NSName">LucidaGrande-Bold</string>
|
|
||||||
<double key="NSSize">11</double>
|
|
||||||
<int key="NSfFlags">3357</int>
|
|
||||||
</object>
|
|
||||||
<string key="NSCellIdentifier">_NS:1535</string>
|
|
||||||
<reference key="NSControlView" ref="906526407"/>
|
|
||||||
<object class="NSColor" key="NSBackgroundColor">
|
|
||||||
<int key="NSColorSpace">6</int>
|
|
||||||
<string key="NSCatalogName">System</string>
|
|
||||||
<string key="NSColorName">controlColor</string>
|
|
||||||
<object class="NSColor" key="NSColor">
|
|
||||||
<int key="NSColorSpace">3</int>
|
|
||||||
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="NSColor" key="NSTextColor">
|
|
||||||
<int key="NSColorSpace">6</int>
|
|
||||||
<string key="NSCatalogName">System</string>
|
|
||||||
<string key="NSColorName">disabledControlTextColor</string>
|
|
||||||
<object class="NSColor" key="NSColor">
|
|
||||||
<int key="NSColorSpace">3</int>
|
|
||||||
<bytes key="NSWhite">MC4zMzMzMzMzMzMzAA</bytes>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
|
||||||
</object>
|
|
||||||
<object class="NSButton" id="7073340">
|
|
||||||
<reference key="NSNextResponder" ref="1005"/>
|
|
||||||
<int key="NSvFlags">268</int>
|
|
||||||
<string key="NSFrame">{{54, 5}, {42, 19}}</string>
|
|
||||||
<reference key="NSSuperview" ref="1005"/>
|
|
||||||
<reference key="NSWindow"/>
|
|
||||||
<reference key="NSNextKeyView" ref="902262560"/>
|
|
||||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
|
||||||
<bool key="NSEnabled">YES</bool>
|
|
||||||
<object class="NSButtonCell" key="NSCell" id="819315342">
|
|
||||||
<int key="NSCellFlags">-2080374784</int>
|
|
||||||
<int key="NSCellFlags2">134348800</int>
|
|
||||||
<string key="NSContents">Title</string>
|
|
||||||
<reference key="NSSupport" ref="29"/>
|
|
||||||
<string key="NSCellIdentifier">_NS:9</string>
|
|
||||||
<reference key="NSControlView" ref="7073340"/>
|
|
||||||
<int key="NSButtonFlags">-1232846848</int>
|
|
||||||
<int key="NSButtonFlags2">173</int>
|
|
||||||
<string key="NSAlternateContents"/>
|
|
||||||
<string key="NSKeyEquivalent"/>
|
|
||||||
<int key="NSPeriodicDelay">400</int>
|
|
||||||
<int key="NSPeriodicInterval">75</int>
|
|
||||||
</object>
|
|
||||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
|
||||||
</object>
|
|
||||||
</array>
|
|
||||||
<string key="NSFrameSize">{400, 30}</string>
|
|
||||||
<reference key="NSSuperview"/>
|
|
||||||
<reference key="NSWindow"/>
|
|
||||||
<reference key="NSNextKeyView" ref="906526407"/>
|
|
||||||
<string key="NSClassName">HNHGradientView</string>
|
|
||||||
</object>
|
|
||||||
</array>
|
|
||||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
|
||||||
<array class="NSMutableArray" key="connectionRecords">
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBOutletConnection" key="connection">
|
|
||||||
<string key="label">filterBar</string>
|
|
||||||
<reference key="source" ref="1001"/>
|
|
||||||
<reference key="destination" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">48</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBOutletConnection" key="connection">
|
|
||||||
<string key="label">filterTitleButton</string>
|
|
||||||
<reference key="source" ref="1001"/>
|
|
||||||
<reference key="destination" ref="7073340"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">57</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBOutletConnection" key="connection">
|
|
||||||
<string key="label">filterUsernameButton</string>
|
|
||||||
<reference key="source" ref="1001"/>
|
|
||||||
<reference key="destination" ref="902262560"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">58</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBOutletConnection" key="connection">
|
|
||||||
<string key="label">filterURLButton</string>
|
|
||||||
<reference key="source" ref="1001"/>
|
|
||||||
<reference key="destination" ref="340435610"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">59</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBOutletConnection" key="connection">
|
|
||||||
<string key="label">filterLabelTextField</string>
|
|
||||||
<reference key="source" ref="1001"/>
|
|
||||||
<reference key="destination" ref="906526407"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">60</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBActionConnection" key="connection">
|
|
||||||
<string key="label">clearFilter:</string>
|
|
||||||
<reference key="source" ref="1001"/>
|
|
||||||
<reference key="destination" ref="113591000"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">75</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBOutletConnection" key="connection">
|
|
||||||
<string key="label">filterDoneButton</string>
|
|
||||||
<reference key="source" ref="1001"/>
|
|
||||||
<reference key="destination" ref="113591000"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">76</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBActionConnection" key="connection">
|
|
||||||
<string key="label">_toggleFilterSpace:</string>
|
|
||||||
<reference key="source" ref="1001"/>
|
|
||||||
<reference key="destination" ref="902262560"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">77</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBActionConnection" key="connection">
|
|
||||||
<string key="label">_toggleFilterSpace:</string>
|
|
||||||
<reference key="source" ref="1001"/>
|
|
||||||
<reference key="destination" ref="340435610"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">78</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBActionConnection" key="connection">
|
|
||||||
<string key="label">_toggleFilterSpace:</string>
|
|
||||||
<reference key="source" ref="1001"/>
|
|
||||||
<reference key="destination" ref="7073340"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">79</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBOutletConnection" key="connection">
|
|
||||||
<string key="label">filterSearchField</string>
|
|
||||||
<reference key="source" ref="1001"/>
|
|
||||||
<reference key="destination" ref="498286707"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">95</int>
|
|
||||||
</object>
|
|
||||||
</array>
|
|
||||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
|
||||||
<array key="orderedObjects">
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">0</int>
|
|
||||||
<array key="object" id="0"/>
|
|
||||||
<reference key="children" ref="1000"/>
|
|
||||||
<nil key="parent"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">-2</int>
|
|
||||||
<reference key="object" ref="1001"/>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
<string key="objectName">File's Owner</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">-1</int>
|
|
||||||
<reference key="object" ref="1003"/>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
<string key="objectName">First Responder</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">-3</int>
|
|
||||||
<reference key="object" ref="1004"/>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
<string key="objectName">Application</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">1</int>
|
|
||||||
<reference key="object" ref="1005"/>
|
|
||||||
<array class="NSMutableArray" key="children">
|
|
||||||
<object class="IBNSLayoutConstraint" id="548170831">
|
|
||||||
<reference key="firstItem" ref="113591000"/>
|
|
||||||
<int key="firstAttribute">5</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="498286707"/>
|
|
||||||
<int key="secondAttribute">6</int>
|
|
||||||
<float key="multiplier">1</float>
|
|
||||||
<object class="IBNSLayoutSymbolicConstant" key="constant">
|
|
||||||
<double key="value">8</double>
|
|
||||||
</object>
|
|
||||||
<float key="priority">1000</float>
|
|
||||||
<reference key="containingView" ref="1005"/>
|
|
||||||
<int key="scoringType">9</int>
|
|
||||||
<float key="scoringTypeFloat">40</float>
|
|
||||||
<int key="contentType">3</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="533969344">
|
|
||||||
<reference key="firstItem" ref="1005"/>
|
|
||||||
<int key="firstAttribute">10</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="113591000"/>
|
|
||||||
<int key="secondAttribute">10</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="1005"/>
|
|
||||||
<int key="scoringType">9</int>
|
|
||||||
<float key="scoringTypeFloat">40</float>
|
|
||||||
<int key="contentType">2</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="207946731">
|
|
||||||
<reference key="firstItem" ref="1005"/>
|
|
||||||
<int key="firstAttribute">6</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="113591000"/>
|
|
||||||
<int key="secondAttribute">6</int>
|
|
||||||
<float key="multiplier">1</float>
|
|
||||||
<object class="IBLayoutConstant" key="constant">
|
|
||||||
<double key="value">8</double>
|
|
||||||
</object>
|
|
||||||
<float key="priority">1000</float>
|
|
||||||
<reference key="containingView" ref="1005"/>
|
|
||||||
<int key="scoringType">9</int>
|
|
||||||
<float key="scoringTypeFloat">40</float>
|
|
||||||
<int key="contentType">3</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="312382951">
|
|
||||||
<reference key="firstItem" ref="498286707"/>
|
|
||||||
<int key="firstAttribute">5</int>
|
|
||||||
<int key="relation">1</int>
|
|
||||||
<reference key="secondItem" ref="340435610"/>
|
|
||||||
<int key="secondAttribute">6</int>
|
|
||||||
<float key="multiplier">1</float>
|
|
||||||
<object class="IBNSLayoutSymbolicConstant" key="constant">
|
|
||||||
<double key="value">8</double>
|
|
||||||
</object>
|
|
||||||
<float key="priority">1000</float>
|
|
||||||
<reference key="containingView" ref="1005"/>
|
|
||||||
<int key="scoringType">9</int>
|
|
||||||
<float key="scoringTypeFloat">40</float>
|
|
||||||
<int key="contentType">3</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="120785100">
|
|
||||||
<reference key="firstItem" ref="1005"/>
|
|
||||||
<int key="firstAttribute">10</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="498286707"/>
|
|
||||||
<int key="secondAttribute">10</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="1005"/>
|
|
||||||
<int key="scoringType">9</int>
|
|
||||||
<float key="scoringTypeFloat">40</float>
|
|
||||||
<int key="contentType">2</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="959342076">
|
|
||||||
<reference key="firstItem" ref="1005"/>
|
|
||||||
<int key="firstAttribute">10</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="340435610"/>
|
|
||||||
<int key="secondAttribute">10</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="1005"/>
|
|
||||||
<int key="scoringType">9</int>
|
|
||||||
<float key="scoringTypeFloat">40</float>
|
|
||||||
<int key="contentType">2</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="112675040">
|
|
||||||
<reference key="firstItem" ref="340435610"/>
|
|
||||||
<int key="firstAttribute">5</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="902262560"/>
|
|
||||||
<int key="secondAttribute">6</int>
|
|
||||||
<float key="multiplier">1</float>
|
|
||||||
<object class="IBNSLayoutSymbolicConstant" key="constant">
|
|
||||||
<double key="value">8</double>
|
|
||||||
</object>
|
|
||||||
<float key="priority">1000</float>
|
|
||||||
<reference key="containingView" ref="1005"/>
|
|
||||||
<int key="scoringType">9</int>
|
|
||||||
<float key="scoringTypeFloat">40</float>
|
|
||||||
<int key="contentType">3</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="160109106">
|
|
||||||
<reference key="firstItem" ref="902262560"/>
|
|
||||||
<int key="firstAttribute">11</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="340435610"/>
|
|
||||||
<int key="secondAttribute">11</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="1005"/>
|
|
||||||
<int key="scoringType">6</int>
|
|
||||||
<float key="scoringTypeFloat">24</float>
|
|
||||||
<int key="contentType">2</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="900015786">
|
|
||||||
<reference key="firstItem" ref="1005"/>
|
|
||||||
<int key="firstAttribute">10</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="902262560"/>
|
|
||||||
<int key="secondAttribute">10</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="1005"/>
|
|
||||||
<int key="scoringType">9</int>
|
|
||||||
<float key="scoringTypeFloat">40</float>
|
|
||||||
<int key="contentType">2</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="1039511012">
|
|
||||||
<reference key="firstItem" ref="902262560"/>
|
|
||||||
<int key="firstAttribute">5</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="7073340"/>
|
|
||||||
<int key="secondAttribute">6</int>
|
|
||||||
<float key="multiplier">1</float>
|
|
||||||
<object class="IBNSLayoutSymbolicConstant" key="constant">
|
|
||||||
<double key="value">8</double>
|
|
||||||
</object>
|
|
||||||
<float key="priority">1000</float>
|
|
||||||
<reference key="containingView" ref="1005"/>
|
|
||||||
<int key="scoringType">9</int>
|
|
||||||
<float key="scoringTypeFloat">40</float>
|
|
||||||
<int key="contentType">3</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="441665485">
|
|
||||||
<reference key="firstItem" ref="1005"/>
|
|
||||||
<int key="firstAttribute">10</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="7073340"/>
|
|
||||||
<int key="secondAttribute">10</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="1005"/>
|
|
||||||
<int key="scoringType">9</int>
|
|
||||||
<float key="scoringTypeFloat">40</float>
|
|
||||||
<int key="contentType">2</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="181006535">
|
|
||||||
<reference key="firstItem" ref="7073340"/>
|
|
||||||
<int key="firstAttribute">5</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="906526407"/>
|
|
||||||
<int key="secondAttribute">6</int>
|
|
||||||
<float key="multiplier">1</float>
|
|
||||||
<object class="IBNSLayoutSymbolicConstant" key="constant">
|
|
||||||
<double key="value">8</double>
|
|
||||||
</object>
|
|
||||||
<float key="priority">1000</float>
|
|
||||||
<reference key="containingView" ref="1005"/>
|
|
||||||
<int key="scoringType">9</int>
|
|
||||||
<float key="scoringTypeFloat">40</float>
|
|
||||||
<int key="contentType">3</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="274700398">
|
|
||||||
<reference key="firstItem" ref="906526407"/>
|
|
||||||
<int key="firstAttribute">4</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="902262560"/>
|
|
||||||
<int key="secondAttribute">4</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="1005"/>
|
|
||||||
<int key="scoringType">6</int>
|
|
||||||
<float key="scoringTypeFloat">24</float>
|
|
||||||
<int key="contentType">2</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="201173489">
|
|
||||||
<reference key="firstItem" ref="906526407"/>
|
|
||||||
<int key="firstAttribute">11</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="7073340"/>
|
|
||||||
<int key="secondAttribute">11</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="1005"/>
|
|
||||||
<int key="scoringType">6</int>
|
|
||||||
<float key="scoringTypeFloat">24</float>
|
|
||||||
<int key="contentType">2</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="777287174">
|
|
||||||
<reference key="firstItem" ref="906526407"/>
|
|
||||||
<int key="firstAttribute">5</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="1005"/>
|
|
||||||
<int key="secondAttribute">5</int>
|
|
||||||
<float key="multiplier">1</float>
|
|
||||||
<object class="IBLayoutConstant" key="constant">
|
|
||||||
<double key="value">8</double>
|
|
||||||
</object>
|
|
||||||
<float key="priority">1000</float>
|
|
||||||
<reference key="containingView" ref="1005"/>
|
|
||||||
<int key="scoringType">9</int>
|
|
||||||
<float key="scoringTypeFloat">40</float>
|
|
||||||
<int key="contentType">3</int>
|
|
||||||
</object>
|
|
||||||
<reference ref="7073340"/>
|
|
||||||
<reference ref="906526407"/>
|
|
||||||
<reference ref="902262560"/>
|
|
||||||
<reference ref="340435610"/>
|
|
||||||
<reference ref="113591000"/>
|
|
||||||
<reference ref="498286707"/>
|
|
||||||
</array>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">2</int>
|
|
||||||
<reference key="object" ref="7073340"/>
|
|
||||||
<array class="NSMutableArray" key="children">
|
|
||||||
<reference ref="819315342"/>
|
|
||||||
</array>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">3</int>
|
|
||||||
<reference key="object" ref="819315342"/>
|
|
||||||
<reference key="parent" ref="7073340"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">6</int>
|
|
||||||
<reference key="object" ref="906526407"/>
|
|
||||||
<array class="NSMutableArray" key="children">
|
|
||||||
<reference ref="169652421"/>
|
|
||||||
</array>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">7</int>
|
|
||||||
<reference key="object" ref="169652421"/>
|
|
||||||
<reference key="parent" ref="906526407"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">30</int>
|
|
||||||
<reference key="object" ref="777287174"/>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">32</int>
|
|
||||||
<reference key="object" ref="181006535"/>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">34</int>
|
|
||||||
<reference key="object" ref="201173489"/>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">35</int>
|
|
||||||
<reference key="object" ref="902262560"/>
|
|
||||||
<array class="NSMutableArray" key="children">
|
|
||||||
<reference ref="397857591"/>
|
|
||||||
</array>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">36</int>
|
|
||||||
<reference key="object" ref="397857591"/>
|
|
||||||
<reference key="parent" ref="902262560"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">38</int>
|
|
||||||
<reference key="object" ref="1039511012"/>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">40</int>
|
|
||||||
<reference key="object" ref="340435610"/>
|
|
||||||
<array class="NSMutableArray" key="children">
|
|
||||||
<reference ref="149174717"/>
|
|
||||||
</array>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">41</int>
|
|
||||||
<reference key="object" ref="149174717"/>
|
|
||||||
<reference key="parent" ref="340435610"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">43</int>
|
|
||||||
<reference key="object" ref="112675040"/>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">54</int>
|
|
||||||
<reference key="object" ref="959342076"/>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">55</int>
|
|
||||||
<reference key="object" ref="441665485"/>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">56</int>
|
|
||||||
<reference key="object" ref="900015786"/>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">61</int>
|
|
||||||
<reference key="object" ref="113591000"/>
|
|
||||||
<array class="NSMutableArray" key="children">
|
|
||||||
<reference ref="791616402"/>
|
|
||||||
</array>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">62</int>
|
|
||||||
<reference key="object" ref="791616402"/>
|
|
||||||
<reference key="parent" ref="113591000"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">66</int>
|
|
||||||
<reference key="object" ref="274700398"/>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">69</int>
|
|
||||||
<reference key="object" ref="533969344"/>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">73</int>
|
|
||||||
<reference key="object" ref="160109106"/>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">80</int>
|
|
||||||
<reference key="object" ref="498286707"/>
|
|
||||||
<array class="NSMutableArray" key="children">
|
|
||||||
<reference ref="456364439"/>
|
|
||||||
<object class="IBNSLayoutConstraint" id="817657248">
|
|
||||||
<reference key="firstItem" ref="498286707"/>
|
|
||||||
<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">100</double>
|
|
||||||
</object>
|
|
||||||
<float key="priority">1000</float>
|
|
||||||
<reference key="containingView" ref="498286707"/>
|
|
||||||
<int key="scoringType">3</int>
|
|
||||||
<float key="scoringTypeFloat">9</float>
|
|
||||||
<int key="contentType">1</int>
|
|
||||||
</object>
|
|
||||||
</array>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">81</int>
|
|
||||||
<reference key="object" ref="456364439"/>
|
|
||||||
<reference key="parent" ref="498286707"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">86</int>
|
|
||||||
<reference key="object" ref="120785100"/>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">87</int>
|
|
||||||
<reference key="object" ref="312382951"/>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">83</int>
|
|
||||||
<reference key="object" ref="548170831"/>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">63</int>
|
|
||||||
<reference key="object" ref="207946731"/>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">93</int>
|
|
||||||
<reference key="object" ref="817657248"/>
|
|
||||||
<reference key="parent" ref="498286707"/>
|
|
||||||
</object>
|
|
||||||
</array>
|
|
||||||
</object>
|
|
||||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
|
||||||
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="-3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<array class="NSMutableArray" key="1.IBNSViewMetadataConstraints">
|
|
||||||
<reference ref="777287174"/>
|
|
||||||
<reference ref="201173489"/>
|
|
||||||
<reference ref="274700398"/>
|
|
||||||
<reference ref="181006535"/>
|
|
||||||
<reference ref="441665485"/>
|
|
||||||
<reference ref="1039511012"/>
|
|
||||||
<reference ref="900015786"/>
|
|
||||||
<reference ref="160109106"/>
|
|
||||||
<reference ref="112675040"/>
|
|
||||||
<reference ref="959342076"/>
|
|
||||||
<reference ref="120785100"/>
|
|
||||||
<reference ref="312382951"/>
|
|
||||||
<reference ref="207946731"/>
|
|
||||||
<reference ref="533969344"/>
|
|
||||||
<reference ref="548170831"/>
|
|
||||||
</array>
|
|
||||||
<boolean value="NO" key="1.IBNSViewMetadataLastInspectedTranslatesAutoresizingMaskIntoConstraints"/>
|
|
||||||
<boolean value="NO" key="1.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
|
||||||
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<boolean value="NO" key="2.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
|
||||||
<string key="2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="30.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="32.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="34.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<boolean value="NO" key="35.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
|
||||||
<string key="35.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="36.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="38.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<boolean value="NO" key="40.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
|
||||||
<string key="40.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="41.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="43.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="54.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="55.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="56.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<boolean value="NO" key="6.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
|
||||||
<string key="6.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<boolean value="NO" key="61.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
|
||||||
<string key="61.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="62.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="63.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="66.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="69.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="7.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="73.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<array key="80.IBNSViewMetadataConstraints">
|
|
||||||
<reference ref="817657248"/>
|
|
||||||
</array>
|
|
||||||
<boolean value="NO" key="80.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
|
||||||
<string key="80.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="81.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="83.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="86.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="87.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="93.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">95</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>
|
|
||||||
<object class="NSMutableDictionary" key="actions">
|
|
||||||
<string key="NS.key.0">_toggleFilterSpace:</string>
|
|
||||||
<string key="NS.object.0">id</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableDictionary" key="actionInfosByName">
|
|
||||||
<string key="NS.key.0">_toggleFilterSpace:</string>
|
|
||||||
<object class="IBActionInfo" key="NS.object.0">
|
|
||||||
<string key="name">_toggleFilterSpace:</string>
|
|
||||||
<string key="candidateClassName">id</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<dictionary class="NSMutableDictionary" key="outlets">
|
|
||||||
<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="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">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>
|
|
||||||
</object>
|
|
||||||
<int key="IBDocument.localizationMode">0</int>
|
|
||||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
|
|
||||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
|
||||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
|
||||||
<bool key="IBDocument.UseAutolayout">YES</bool>
|
|
||||||
</data>
|
|
||||||
</archive>
|
|
||||||
168
MacPass/GroupInspectorView.xib
Normal file
@@ -0,0 +1,168 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="5053" systemVersion="13C64" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||||
|
<dependencies>
|
||||||
|
<deployment version="1070" defaultVersion="1080" identifier="macosx"/>
|
||||||
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="5053"/>
|
||||||
|
</dependencies>
|
||||||
|
<objects>
|
||||||
|
<customObject id="-2" userLabel="File's Owner" customClass="MPGroupInspectorViewController">
|
||||||
|
<connections>
|
||||||
|
<outlet property="autotypePopupButton" destination="240" id="285"/>
|
||||||
|
<outlet property="contentView" destination="38" id="Dv7-1B-VeH"/>
|
||||||
|
<outlet property="expireDateSelectButton" destination="4" id="Bzg-8k-0OS"/>
|
||||||
|
<outlet property="expiresCheckButton" destination="5" id="283"/>
|
||||||
|
<outlet property="searchPopupButton" destination="229" id="284"/>
|
||||||
|
<outlet property="titleTextField" destination="23" id="35"/>
|
||||||
|
<outlet property="view" destination="37" id="45"/>
|
||||||
|
</connections>
|
||||||
|
</customObject>
|
||||||
|
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||||
|
<customObject id="-3" userLabel="Application"/>
|
||||||
|
<scrollView borderType="none" horizontalLineScroll="10" horizontalPageScroll="10" verticalLineScroll="10" verticalPageScroll="10" hasVerticalScroller="NO" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="37" customClass="HNHScrollView">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="257" height="201"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<clipView key="contentView" id="HjA-kA-fcX">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="257" height="201"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<view translatesAutoresizingMaskIntoConstraints="NO" id="38" customClass="HNHScrollDocumentViewAdapter">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="257" height="201"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="24">
|
||||||
|
<rect key="frame" x="18" y="182" width="35" height="14"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Name" id="25">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<color key="textColor" name="disabledControlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="249" translatesAutoresizingMaskIntoConstraints="NO" id="23" customClass="HNHRoundedTextField">
|
||||||
|
<rect key="frame" x="20" y="152" width="217" height="22"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" lineBreakMode="truncatingTail" truncatesLastVisibleLine="YES" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" usesSingleLineMode="YES" id="26">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
<button horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="5">
|
||||||
|
<rect key="frame" x="18" y="128" width="67" height="18"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<buttonCell key="cell" type="check" title="Expires" bezelStyle="regularSquare" imagePosition="left" lineBreakMode="truncatingMiddle" state="on" inset="2" id="32">
|
||||||
|
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
</buttonCell>
|
||||||
|
</button>
|
||||||
|
<button focusRingType="exterior" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="4">
|
||||||
|
<rect key="frame" x="206" y="127" width="31" height="19"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="width" constant="31" id="l5I-EF-dHs"/>
|
||||||
|
</constraints>
|
||||||
|
<buttonCell key="cell" type="roundRect" bezelStyle="roundedRect" image="NSActionTemplate" imagePosition="only" alignment="center" state="on" borderStyle="border" focusRingType="exterior" imageScaling="proportionallyDown" inset="2" id="33">
|
||||||
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
|
<font key="font" metaFont="cellTitle"/>
|
||||||
|
</buttonCell>
|
||||||
|
<connections>
|
||||||
|
<action selector="pickExpiryDate:" target="-1" id="KIc-p2-zJQ"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<popUpButton verticalHuggingPriority="750" horizontalCompressionResistancePriority="249" translatesAutoresizingMaskIntoConstraints="NO" id="229">
|
||||||
|
<rect key="frame" x="18" y="72" width="222" height="26"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<popUpButtonCell key="cell" type="push" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" id="230">
|
||||||
|
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||||
|
<font key="font" metaFont="menu"/>
|
||||||
|
<menu key="menu" title="OtherViews" id="231">
|
||||||
|
<items>
|
||||||
|
<menuItem title="Inherit Search Settings" tag="-1" id="232">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
</menuItem>
|
||||||
|
<menuItem title="Include in Search" id="233"/>
|
||||||
|
<menuItem title="Exclude from Search" tag="1" id="234"/>
|
||||||
|
</items>
|
||||||
|
</menu>
|
||||||
|
</popUpButtonCell>
|
||||||
|
</popUpButton>
|
||||||
|
<popUpButton verticalHuggingPriority="750" horizontalCompressionResistancePriority="249" translatesAutoresizingMaskIntoConstraints="NO" id="240">
|
||||||
|
<rect key="frame" x="18" y="17" width="222" height="26"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<popUpButtonCell key="cell" type="push" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" id="242">
|
||||||
|
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||||
|
<font key="font" metaFont="menu"/>
|
||||||
|
<menu key="menu" title="OtherViews" id="243">
|
||||||
|
<items>
|
||||||
|
<menuItem title="Inherit Autotype Settings" tag="-1" id="246"/>
|
||||||
|
<menuItem title="Enable Autotype" id="245"/>
|
||||||
|
<menuItem title="Disable Autotype" tag="1" id="244"/>
|
||||||
|
</items>
|
||||||
|
</menu>
|
||||||
|
</popUpButtonCell>
|
||||||
|
</popUpButton>
|
||||||
|
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="264">
|
||||||
|
<rect key="frame" x="18" y="104" width="40" height="14"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Search" id="265">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<color key="textColor" name="disabledControlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="276">
|
||||||
|
<rect key="frame" x="18" y="49" width="53" height="14"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Autotype" id="277">
|
||||||
|
<font key="font" metaFont="smallSystem"/>
|
||||||
|
<color key="textColor" name="disabledControlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="240" firstAttribute="top" secondItem="276" secondAttribute="bottom" constant="8" id="6Pu-PB-xxy"/>
|
||||||
|
<constraint firstItem="23" firstAttribute="leading" secondItem="38" secondAttribute="leading" constant="20" id="ABR-Ef-1ss"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="229" secondAttribute="trailing" constant="20" symbolic="YES" id="Anv-gp-aTi"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="4" secondAttribute="trailing" constant="20" id="D99-L7-ojR"/>
|
||||||
|
<constraint firstItem="240" firstAttribute="leading" secondItem="38" secondAttribute="leading" constant="20" id="E0a-1e-KR9"/>
|
||||||
|
<constraint firstItem="5" firstAttribute="centerY" secondItem="4" secondAttribute="centerY" id="FdF-Pn-yY2"/>
|
||||||
|
<constraint firstItem="5" firstAttribute="top" secondItem="23" secondAttribute="bottom" constant="8" symbolic="YES" id="GFF-xs-Nuj"/>
|
||||||
|
<constraint firstItem="4" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="5" secondAttribute="trailing" constant="8" symbolic="YES" id="HDo-Yu-P02"/>
|
||||||
|
<constraint firstItem="24" firstAttribute="leading" secondItem="38" secondAttribute="leading" constant="20" id="OhC-BP-oPg"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="240" secondAttribute="trailing" constant="20" symbolic="YES" id="V4d-R9-46P"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="23" secondAttribute="trailing" constant="20" id="Vej-zI-z2w"/>
|
||||||
|
<constraint firstItem="24" firstAttribute="top" secondItem="38" secondAttribute="top" constant="5" id="Wk6-kJ-fTY"/>
|
||||||
|
<constraint firstItem="5" firstAttribute="leading" secondItem="38" secondAttribute="leading" constant="20" id="ZaF-lS-pN8"/>
|
||||||
|
<constraint firstItem="276" firstAttribute="top" secondItem="229" secondAttribute="bottom" constant="12" id="c0H-cE-rnF"/>
|
||||||
|
<constraint firstItem="23" firstAttribute="top" secondItem="24" secondAttribute="bottom" constant="8" id="kbc-Eb-FPr"/>
|
||||||
|
<constraint firstItem="229" firstAttribute="top" secondItem="264" secondAttribute="bottom" constant="8" id="pDa-nw-ByQ"/>
|
||||||
|
<constraint firstItem="264" firstAttribute="leading" secondItem="38" secondAttribute="leading" constant="20" id="qnB-Pd-MqU"/>
|
||||||
|
<constraint firstItem="229" firstAttribute="leading" secondItem="38" secondAttribute="leading" constant="20" id="sCg-Na-ouj"/>
|
||||||
|
<constraint firstItem="276" firstAttribute="leading" secondItem="38" secondAttribute="leading" constant="20" id="xLc-Rz-374"/>
|
||||||
|
<constraint firstItem="264" firstAttribute="top" secondItem="5" secondAttribute="bottom" constant="12" id="xe7-ue-Wip"/>
|
||||||
|
<constraint firstAttribute="bottom" secondItem="240" secondAttribute="bottom" constant="20" symbolic="YES" id="zhA-eR-h1f"/>
|
||||||
|
</constraints>
|
||||||
|
</view>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="38" firstAttribute="top" secondItem="HjA-kA-fcX" secondAttribute="top" id="Alo-CY-dgK"/>
|
||||||
|
<constraint firstAttribute="bottom" secondItem="38" secondAttribute="bottom" id="FbE-Hu-Y9V"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="38" secondAttribute="trailing" id="HP8-rS-ooi"/>
|
||||||
|
<constraint firstItem="38" firstAttribute="leading" secondItem="HjA-kA-fcX" secondAttribute="leading" id="h7m-U5-sA4"/>
|
||||||
|
</constraints>
|
||||||
|
</clipView>
|
||||||
|
<scroller key="horizontalScroller" verticalHuggingPriority="750" horizontal="YES" id="39">
|
||||||
|
<rect key="frame" x="0.0" y="185" width="257" height="16"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
</scroller>
|
||||||
|
<scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" doubleValue="1" horizontal="NO" id="40">
|
||||||
|
<rect key="frame" x="-100" y="-100" width="16" height="413"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
</scroller>
|
||||||
|
</scrollView>
|
||||||
|
</objects>
|
||||||
|
<resources>
|
||||||
|
<image name="NSActionTemplate" width="14" height="14"/>
|
||||||
|
</resources>
|
||||||
|
</document>
|
||||||
@@ -1,694 +1,114 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
|
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="4514" systemVersion="13A603" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||||
<data>
|
<dependencies>
|
||||||
<int key="IBDocument.SystemTarget">1080</int>
|
<deployment defaultVersion="1080" identifier="macosx"/>
|
||||||
<string key="IBDocument.SystemVersion">12D78</string>
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="4514"/>
|
||||||
<string key="IBDocument.InterfaceBuilderVersion">3084</string>
|
</dependencies>
|
||||||
<string key="IBDocument.AppKitVersion">1187.37</string>
|
<objects>
|
||||||
<string key="IBDocument.HIToolboxVersion">626.00</string>
|
<customObject id="-2" userLabel="File's Owner" customClass="MPIconSelectViewController">
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
<connections>
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<outlet property="iconCollectionView" destination="58" id="77"/>
|
||||||
<string key="NS.object.0">3084</string>
|
<outlet property="view" destination="1" id="56"/>
|
||||||
</object>
|
</connections>
|
||||||
<array key="IBDocument.IntegratedClassDependencies">
|
</customObject>
|
||||||
<string>IBNSLayoutConstraint</string>
|
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||||
<string>NSButton</string>
|
<customObject id="-3" userLabel="Application"/>
|
||||||
<string>NSButtonCell</string>
|
<customView id="1">
|
||||||
<string>NSCollectionView</string>
|
<rect key="frame" x="0.0" y="0.0" width="400" height="340"/>
|
||||||
<string>NSCollectionViewItem</string>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
<string>NSCustomObject</string>
|
<subviews>
|
||||||
<string>NSCustomView</string>
|
<scrollView focusRingType="none" borderType="none" autohidesScrollers="YES" horizontalLineScroll="10" horizontalPageScroll="10" verticalLineScroll="10" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="57" customClass="HNHScrollView">
|
||||||
<string>NSScrollView</string>
|
<rect key="frame" x="10" y="50" width="380" height="280"/>
|
||||||
<string>NSScroller</string>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
</array>
|
<clipView key="contentView" drawsBackground="NO" copiesOnScroll="NO" id="Gwf-zs-lPT">
|
||||||
<array key="IBDocument.PluginDependencies">
|
<rect key="frame" x="0.0" y="0.0" width="380" height="280"/>
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
</array>
|
<subviews>
|
||||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
<collectionView focusRingType="none" id="58">
|
||||||
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
|
<rect key="frame" x="0.0" y="0.0" width="380" height="280"/>
|
||||||
<integer value="1" key="NS.object.0"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
</object>
|
<color key="primaryBackgroundColor" name="windowBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
<connections>
|
||||||
<object class="NSCustomObject" id="1001">
|
<outlet property="itemPrototype" destination="61" id="63"/>
|
||||||
<string key="NSClassName">MPIconSelectViewController</string>
|
</connections>
|
||||||
</object>
|
</collectionView>
|
||||||
<object class="NSCustomObject" id="1003">
|
</subviews>
|
||||||
<string key="NSClassName">FirstResponder</string>
|
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
</object>
|
</clipView>
|
||||||
<object class="NSCustomObject" id="1004">
|
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="59">
|
||||||
<string key="NSClassName">NSApplication</string>
|
<rect key="frame" x="1" y="144" width="233" height="15"/>
|
||||||
</object>
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
<object class="NSCustomView" id="1005">
|
</scroller>
|
||||||
<reference key="NSNextResponder"/>
|
<scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" doubleValue="1" horizontal="NO" id="60">
|
||||||
<int key="NSvFlags">268</int>
|
<rect key="frame" x="234" y="1" width="15" height="143"/>
|
||||||
<array class="NSMutableArray" key="NSSubviews">
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
<object class="NSButton" id="317760263">
|
</scroller>
|
||||||
<reference key="NSNextResponder" ref="1005"/>
|
</scrollView>
|
||||||
<int key="NSvFlags">268</int>
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="101">
|
||||||
<string key="NSFrame">{{147, 18}, {118, 25}}</string>
|
<rect key="frame" x="263" y="18" width="117" height="25"/>
|
||||||
<reference key="NSSuperview" ref="1005"/>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
<reference key="NSWindow"/>
|
<buttonCell key="cell" type="roundTextured" title="Use Default Icon" bezelStyle="texturedRounded" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="102">
|
||||||
<reference key="NSNextKeyView"/>
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
<string key="NSReuseIdentifierKey">_NS:22</string>
|
<font key="font" metaFont="system"/>
|
||||||
<bool key="NSEnabled">YES</bool>
|
</buttonCell>
|
||||||
<object class="NSButtonCell" key="NSCell" id="619274271">
|
<connections>
|
||||||
<int key="NSCellFlags">-2080374784</int>
|
<action selector="useDefault:" target="-2" id="129"/>
|
||||||
<int key="NSCellFlags2">134217728</int>
|
</connections>
|
||||||
<string key="NSContents">Use Default Icon</string>
|
</button>
|
||||||
<object class="NSFont" key="NSSupport" id="747112258">
|
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="His-4A-hcY">
|
||||||
<string key="NSName">LucidaGrande</string>
|
<rect key="frame" x="199" y="18" width="56" height="25"/>
|
||||||
<double key="NSSize">13</double>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
<int key="NSfFlags">1044</int>
|
<buttonCell key="cell" type="roundTextured" title="Cancel" bezelStyle="texturedRounded" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="1kM-cI-P1o">
|
||||||
</object>
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
<string key="NSCellIdentifier">_NS:22</string>
|
<font key="font" metaFont="system"/>
|
||||||
<reference key="NSControlView" ref="317760263"/>
|
</buttonCell>
|
||||||
<int key="NSButtonFlags">-2038153216</int>
|
<connections>
|
||||||
<int key="NSButtonFlags2">163</int>
|
<action selector="cancel:" target="-2" id="cRO-8u-npC"/>
|
||||||
<string key="NSAlternateContents"/>
|
</connections>
|
||||||
<string key="NSKeyEquivalent"/>
|
</button>
|
||||||
<int key="NSPeriodicDelay">400</int>
|
</subviews>
|
||||||
<int key="NSPeriodicInterval">75</int>
|
<constraints>
|
||||||
</object>
|
<constraint firstItem="57" firstAttribute="top" secondItem="1" secondAttribute="top" constant="10" id="88"/>
|
||||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
<constraint firstAttribute="bottom" secondItem="101" secondAttribute="bottom" constant="20" symbolic="YES" id="107"/>
|
||||||
</object>
|
<constraint firstAttribute="trailing" secondItem="101" secondAttribute="trailing" constant="20" symbolic="YES" id="108"/>
|
||||||
<object class="NSScrollView" id="170990502">
|
<constraint firstAttribute="trailing" secondItem="57" secondAttribute="trailing" constant="10" id="110"/>
|
||||||
<reference key="NSNextResponder" ref="1005"/>
|
<constraint firstItem="57" firstAttribute="leading" secondItem="1" secondAttribute="leading" constant="10" id="111"/>
|
||||||
<int key="NSvFlags">4364</int>
|
<constraint firstItem="101" firstAttribute="top" secondItem="57" secondAttribute="bottom" constant="8" symbolic="YES" id="112"/>
|
||||||
<array class="NSMutableArray" key="NSSubviews">
|
</constraints>
|
||||||
<object class="NSClipView" id="785205210">
|
</customView>
|
||||||
<reference key="NSNextResponder" ref="170990502"/>
|
<collectionViewItem id="61">
|
||||||
<int key="NSvFlags">2304</int>
|
<connections>
|
||||||
<array class="NSMutableArray" key="NSSubviews">
|
<outlet property="view" destination="113" id="128"/>
|
||||||
<object class="NSCollectionView" id="697027275">
|
</connections>
|
||||||
<reference key="NSNextResponder" ref="785205210"/>
|
</collectionViewItem>
|
||||||
<int key="NSvFlags">4370</int>
|
<customView id="113">
|
||||||
<string key="NSFrameSize">{243, 238}</string>
|
<rect key="frame" x="0.0" y="0.0" width="40" height="40"/>
|
||||||
<reference key="NSSuperview" ref="785205210"/>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
<reference key="NSWindow"/>
|
<subviews>
|
||||||
<reference key="NSNextKeyView" ref="319187659"/>
|
<button translatesAutoresizingMaskIntoConstraints="NO" id="114">
|
||||||
<string key="NSReuseIdentifierKey">_NS:80</string>
|
<rect key="frame" x="4" y="4" width="32" height="32"/>
|
||||||
<string key="NSMinGridSize">{0, 0}</string>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
<string key="NSMaxGridSize">{0, 0}</string>
|
<constraints>
|
||||||
<int key="NSMaxNumberOfGridRows">0</int>
|
<constraint firstAttribute="width" constant="32" id="161"/>
|
||||||
<int key="NSMaxNumberOfGridColumns">0</int>
|
<constraint firstAttribute="height" constant="32" id="162"/>
|
||||||
<array key="NSBackgroundColors">
|
</constraints>
|
||||||
<object class="NSColor" id="228713979">
|
<buttonCell key="cell" type="bevel" bezelStyle="regularSquare" image="NSAddTemplate" imagePosition="only" alignment="center" imageScaling="proportionallyUpOrDown" inset="2" id="115">
|
||||||
<int key="NSColorSpace">6</int>
|
<behavior key="behavior" lightByContents="YES"/>
|
||||||
<string key="NSCatalogName">System</string>
|
<font key="font" metaFont="system"/>
|
||||||
<string key="NSColorName">windowBackgroundColor</string>
|
</buttonCell>
|
||||||
<object class="NSColor" key="NSColor">
|
<connections>
|
||||||
<int key="NSColorSpace">3</int>
|
<action selector="_selectImage:" target="-2" id="eFg-h5-9jy"/>
|
||||||
<bytes key="NSWhite">MC41AA</bytes>
|
<binding destination="61" name="image" keyPath="representedObject" id="139"/>
|
||||||
</object>
|
</connections>
|
||||||
</object>
|
</button>
|
||||||
</array>
|
</subviews>
|
||||||
<int key="NSDraggingSourceMaskForLocal">-1</int>
|
<constraints>
|
||||||
<int key="NSDraggingSourceMaskForNonLocal">0</int>
|
<constraint firstItem="114" firstAttribute="centerY" secondItem="113" secondAttribute="centerY" id="168"/>
|
||||||
</object>
|
<constraint firstItem="114" firstAttribute="centerX" secondItem="113" secondAttribute="centerX" id="169"/>
|
||||||
</array>
|
</constraints>
|
||||||
<string key="NSFrame">{{1, 1}, {243, 238}}</string>
|
</customView>
|
||||||
<reference key="NSSuperview" ref="170990502"/>
|
</objects>
|
||||||
<reference key="NSWindow"/>
|
<resources>
|
||||||
<reference key="NSNextKeyView" ref="697027275"/>
|
<image name="NSAddTemplate" width="8" height="8"/>
|
||||||
<string key="NSReuseIdentifierKey">_NS:78</string>
|
</resources>
|
||||||
<reference key="NSDocView" ref="697027275"/>
|
</document>
|
||||||
<object class="NSColor" key="NSBGColor">
|
|
||||||
<int key="NSColorSpace">6</int>
|
|
||||||
<string key="NSCatalogName">System</string>
|
|
||||||
<string key="NSColorName">controlBackgroundColor</string>
|
|
||||||
<object class="NSColor" key="NSColor">
|
|
||||||
<int key="NSColorSpace">3</int>
|
|
||||||
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<int key="NScvFlags">2</int>
|
|
||||||
</object>
|
|
||||||
<object class="NSScroller" id="319187659">
|
|
||||||
<reference key="NSNextResponder" ref="170990502"/>
|
|
||||||
<int key="NSvFlags">-2147483392</int>
|
|
||||||
<string key="NSFrame">{{234, 1}, {15, 143}}</string>
|
|
||||||
<reference key="NSSuperview" ref="170990502"/>
|
|
||||||
<reference key="NSWindow"/>
|
|
||||||
<reference key="NSNextKeyView" ref="775158265"/>
|
|
||||||
<string key="NSReuseIdentifierKey">_NS:82</string>
|
|
||||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
|
||||||
<reference key="NSTarget" ref="170990502"/>
|
|
||||||
<string key="NSAction">_doScroller:</string>
|
|
||||||
<double key="NSCurValue">1</double>
|
|
||||||
<double key="NSPercent">0.89655172824859619</double>
|
|
||||||
</object>
|
|
||||||
<object class="NSScroller" id="775158265">
|
|
||||||
<reference key="NSNextResponder" ref="170990502"/>
|
|
||||||
<int key="NSvFlags">-2147483392</int>
|
|
||||||
<string key="NSFrame">{{1, 144}, {233, 15}}</string>
|
|
||||||
<reference key="NSSuperview" ref="170990502"/>
|
|
||||||
<reference key="NSWindow"/>
|
|
||||||
<reference key="NSNextKeyView" ref="317760263"/>
|
|
||||||
<string key="NSReuseIdentifierKey">_NS:91</string>
|
|
||||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
|
||||||
<int key="NSsFlags">1</int>
|
|
||||||
<reference key="NSTarget" ref="170990502"/>
|
|
||||||
<string key="NSAction">_doScroller:</string>
|
|
||||||
<double key="NSPercent">0.63157892227172852</double>
|
|
||||||
</object>
|
|
||||||
</array>
|
|
||||||
<string key="NSFrame">{{20, 50}, {245, 240}}</string>
|
|
||||||
<reference key="NSSuperview" ref="1005"/>
|
|
||||||
<reference key="NSWindow"/>
|
|
||||||
<reference key="NSNextKeyView" ref="785205210"/>
|
|
||||||
<string key="NSReuseIdentifierKey">_NS:76</string>
|
|
||||||
<int key="NSsFlags">133682</int>
|
|
||||||
<reference key="NSVScroller" ref="319187659"/>
|
|
||||||
<reference key="NSHScroller" ref="775158265"/>
|
|
||||||
<reference key="NSContentView" ref="785205210"/>
|
|
||||||
<double key="NSMinMagnification">0.25</double>
|
|
||||||
<double key="NSMaxMagnification">4</double>
|
|
||||||
<double key="NSMagnification">1</double>
|
|
||||||
</object>
|
|
||||||
</array>
|
|
||||||
<string key="NSFrameSize">{285, 310}</string>
|
|
||||||
<reference key="NSSuperview"/>
|
|
||||||
<reference key="NSWindow"/>
|
|
||||||
<reference key="NSNextKeyView" ref="170990502"/>
|
|
||||||
<string key="NSClassName">NSView</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSCollectionViewItem" id="417473882"/>
|
|
||||||
<object class="NSCustomView" id="340719917">
|
|
||||||
<reference key="NSNextResponder"/>
|
|
||||||
<int key="NSvFlags">268</int>
|
|
||||||
<array class="NSMutableArray" key="NSSubviews">
|
|
||||||
<object class="NSButton" id="612603831">
|
|
||||||
<reference key="NSNextResponder" ref="340719917"/>
|
|
||||||
<int key="NSvFlags">268</int>
|
|
||||||
<string key="NSFrame">{{10, 10}, {40, 40}}</string>
|
|
||||||
<reference key="NSSuperview" ref="340719917"/>
|
|
||||||
<reference key="NSWindow"/>
|
|
||||||
<reference key="NSNextKeyView"/>
|
|
||||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
|
||||||
<bool key="NSEnabled">YES</bool>
|
|
||||||
<object class="NSButtonCell" key="NSCell" id="344314901">
|
|
||||||
<int key="NSCellFlags">67108864</int>
|
|
||||||
<int key="NSCellFlags2">134217728</int>
|
|
||||||
<string key="NSContents"/>
|
|
||||||
<reference key="NSSupport" ref="747112258"/>
|
|
||||||
<string key="NSCellIdentifier">_NS:9</string>
|
|
||||||
<reference key="NSControlView" ref="612603831"/>
|
|
||||||
<int key="NSButtonFlags">-2039201792</int>
|
|
||||||
<int key="NSButtonFlags2">65</int>
|
|
||||||
<object class="NSCustomResource" key="NSNormalImage">
|
|
||||||
<string key="NSClassName">NSImage</string>
|
|
||||||
<string key="NSResourceName">NSAddTemplate</string>
|
|
||||||
</object>
|
|
||||||
<string key="NSAlternateContents"/>
|
|
||||||
<string key="NSKeyEquivalent"/>
|
|
||||||
<int key="NSPeriodicDelay">200</int>
|
|
||||||
<int key="NSPeriodicInterval">25</int>
|
|
||||||
</object>
|
|
||||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
|
||||||
</object>
|
|
||||||
</array>
|
|
||||||
<string key="NSFrameSize">{60, 60}</string>
|
|
||||||
<reference key="NSSuperview"/>
|
|
||||||
<reference key="NSWindow"/>
|
|
||||||
<reference key="NSNextKeyView" ref="612603831"/>
|
|
||||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
|
||||||
<string key="NSClassName">NSView</string>
|
|
||||||
</object>
|
|
||||||
</array>
|
|
||||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
|
||||||
<array class="NSMutableArray" key="connectionRecords">
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBOutletConnection" key="connection">
|
|
||||||
<string key="label">view</string>
|
|
||||||
<reference key="source" ref="1001"/>
|
|
||||||
<reference key="destination" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">56</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBOutletConnection" key="connection">
|
|
||||||
<string key="label">iconCollectionView</string>
|
|
||||||
<reference key="source" ref="1001"/>
|
|
||||||
<reference key="destination" ref="697027275"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">77</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBActionConnection" key="connection">
|
|
||||||
<string key="label">useDefault:</string>
|
|
||||||
<reference key="source" ref="1001"/>
|
|
||||||
<reference key="destination" ref="317760263"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">129</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBOutletConnection" key="connection">
|
|
||||||
<string key="label">itemPrototype</string>
|
|
||||||
<reference key="source" ref="697027275"/>
|
|
||||||
<reference key="destination" ref="417473882"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">63</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBOutletConnection" key="connection">
|
|
||||||
<string key="label">view</string>
|
|
||||||
<reference key="source" ref="417473882"/>
|
|
||||||
<reference key="destination" ref="340719917"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">128</int>
|
|
||||||
</object>
|
|
||||||
</array>
|
|
||||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
|
||||||
<array key="orderedObjects">
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">0</int>
|
|
||||||
<array key="object" id="0"/>
|
|
||||||
<reference key="children" ref="1000"/>
|
|
||||||
<nil key="parent"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">-2</int>
|
|
||||||
<reference key="object" ref="1001"/>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
<string key="objectName">File's Owner</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">-1</int>
|
|
||||||
<reference key="object" ref="1003"/>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
<string key="objectName">First Responder</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">-3</int>
|
|
||||||
<reference key="object" ref="1004"/>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
<string key="objectName">Application</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">1</int>
|
|
||||||
<reference key="object" ref="1005"/>
|
|
||||||
<array class="NSMutableArray" key="children">
|
|
||||||
<reference ref="170990502"/>
|
|
||||||
<object class="IBNSLayoutConstraint" id="494913411">
|
|
||||||
<reference key="firstItem" ref="317760263"/>
|
|
||||||
<int key="firstAttribute">3</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="170990502"/>
|
|
||||||
<int key="secondAttribute">4</int>
|
|
||||||
<float key="multiplier">1</float>
|
|
||||||
<object class="IBNSLayoutSymbolicConstant" key="constant">
|
|
||||||
<double key="value">8</double>
|
|
||||||
</object>
|
|
||||||
<float key="priority">1000</float>
|
|
||||||
<reference key="containingView" ref="1005"/>
|
|
||||||
<int key="scoringType">6</int>
|
|
||||||
<float key="scoringTypeFloat">24</float>
|
|
||||||
<int key="contentType">3</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="851764901">
|
|
||||||
<reference key="firstItem" ref="1005"/>
|
|
||||||
<int key="firstAttribute">6</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="317760263"/>
|
|
||||||
<int key="secondAttribute">6</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="809281010">
|
|
||||||
<reference key="firstItem" ref="1005"/>
|
|
||||||
<int key="firstAttribute">4</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="317760263"/>
|
|
||||||
<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="1060216757">
|
|
||||||
<reference key="firstItem" ref="170990502"/>
|
|
||||||
<int key="firstAttribute">5</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="1005"/>
|
|
||||||
<int key="secondAttribute">5</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="523638618">
|
|
||||||
<reference key="firstItem" ref="1005"/>
|
|
||||||
<int key="firstAttribute">6</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="170990502"/>
|
|
||||||
<int key="secondAttribute">6</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="655672626">
|
|
||||||
<reference key="firstItem" ref="170990502"/>
|
|
||||||
<int key="firstAttribute">3</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="1005"/>
|
|
||||||
<int key="secondAttribute">3</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>
|
|
||||||
<reference ref="317760263"/>
|
|
||||||
</array>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">57</int>
|
|
||||||
<reference key="object" ref="170990502"/>
|
|
||||||
<array class="NSMutableArray" key="children">
|
|
||||||
<reference ref="697027275"/>
|
|
||||||
<reference ref="775158265"/>
|
|
||||||
<reference ref="319187659"/>
|
|
||||||
</array>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">58</int>
|
|
||||||
<reference key="object" ref="697027275"/>
|
|
||||||
<reference key="parent" ref="170990502"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">59</int>
|
|
||||||
<reference key="object" ref="775158265"/>
|
|
||||||
<reference key="parent" ref="170990502"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">60</int>
|
|
||||||
<reference key="object" ref="319187659"/>
|
|
||||||
<reference key="parent" ref="170990502"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">61</int>
|
|
||||||
<reference key="object" ref="417473882"/>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">88</int>
|
|
||||||
<reference key="object" ref="655672626"/>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">101</int>
|
|
||||||
<reference key="object" ref="317760263"/>
|
|
||||||
<array class="NSMutableArray" key="children">
|
|
||||||
<reference ref="619274271"/>
|
|
||||||
</array>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">102</int>
|
|
||||||
<reference key="object" ref="619274271"/>
|
|
||||||
<reference key="parent" ref="317760263"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">107</int>
|
|
||||||
<reference key="object" ref="809281010"/>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">108</int>
|
|
||||||
<reference key="object" ref="851764901"/>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">110</int>
|
|
||||||
<reference key="object" ref="523638618"/>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">111</int>
|
|
||||||
<reference key="object" ref="1060216757"/>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">112</int>
|
|
||||||
<reference key="object" ref="494913411"/>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">113</int>
|
|
||||||
<reference key="object" ref="340719917"/>
|
|
||||||
<array class="NSMutableArray" key="children">
|
|
||||||
<object class="IBNSLayoutConstraint" id="436230129">
|
|
||||||
<reference key="firstItem" ref="340719917"/>
|
|
||||||
<int key="firstAttribute">10</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="612603831"/>
|
|
||||||
<int key="secondAttribute">10</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="340719917"/>
|
|
||||||
<int key="scoringType">9</int>
|
|
||||||
<float key="scoringTypeFloat">40</float>
|
|
||||||
<int key="contentType">2</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="766436605">
|
|
||||||
<reference key="firstItem" ref="340719917"/>
|
|
||||||
<int key="firstAttribute">9</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="612603831"/>
|
|
||||||
<int key="secondAttribute">9</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="340719917"/>
|
|
||||||
<int key="scoringType">9</int>
|
|
||||||
<float key="scoringTypeFloat">40</float>
|
|
||||||
<int key="contentType">2</int>
|
|
||||||
</object>
|
|
||||||
<reference ref="612603831"/>
|
|
||||||
</array>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">114</int>
|
|
||||||
<reference key="object" ref="612603831"/>
|
|
||||||
<array class="NSMutableArray" key="children">
|
|
||||||
<reference ref="344314901"/>
|
|
||||||
<object class="IBNSLayoutConstraint" id="463236706">
|
|
||||||
<reference key="firstItem" ref="612603831"/>
|
|
||||||
<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">40</double>
|
|
||||||
</object>
|
|
||||||
<float key="priority">1000</float>
|
|
||||||
<reference key="containingView" ref="612603831"/>
|
|
||||||
<int key="scoringType">3</int>
|
|
||||||
<float key="scoringTypeFloat">9</float>
|
|
||||||
<int key="contentType">1</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="477773969">
|
|
||||||
<reference key="firstItem" ref="612603831"/>
|
|
||||||
<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">40</double>
|
|
||||||
</object>
|
|
||||||
<float key="priority">1000</float>
|
|
||||||
<reference key="containingView" ref="612603831"/>
|
|
||||||
<int key="scoringType">3</int>
|
|
||||||
<float key="scoringTypeFloat">9</float>
|
|
||||||
<int key="contentType">1</int>
|
|
||||||
</object>
|
|
||||||
</array>
|
|
||||||
<reference key="parent" ref="340719917"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">115</int>
|
|
||||||
<reference key="object" ref="344314901"/>
|
|
||||||
<reference key="parent" ref="612603831"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">121</int>
|
|
||||||
<reference key="object" ref="477773969"/>
|
|
||||||
<reference key="parent" ref="612603831"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">123</int>
|
|
||||||
<reference key="object" ref="463236706"/>
|
|
||||||
<reference key="parent" ref="612603831"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">126</int>
|
|
||||||
<reference key="object" ref="766436605"/>
|
|
||||||
<reference key="parent" ref="340719917"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">127</int>
|
|
||||||
<reference key="object" ref="436230129"/>
|
|
||||||
<reference key="parent" ref="340719917"/>
|
|
||||||
</object>
|
|
||||||
</array>
|
|
||||||
</object>
|
|
||||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
|
||||||
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="-3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<array class="NSMutableArray" key="1.IBNSViewMetadataConstraints">
|
|
||||||
<reference ref="655672626"/>
|
|
||||||
<reference ref="523638618"/>
|
|
||||||
<reference ref="1060216757"/>
|
|
||||||
<reference ref="809281010"/>
|
|
||||||
<reference ref="851764901"/>
|
|
||||||
<reference ref="494913411"/>
|
|
||||||
</array>
|
|
||||||
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<boolean value="NO" key="101.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
|
||||||
<string key="101.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="102.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="107.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="108.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="110.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="111.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="112.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<array class="NSMutableArray" key="113.IBNSViewMetadataConstraints">
|
|
||||||
<reference ref="766436605"/>
|
|
||||||
<reference ref="436230129"/>
|
|
||||||
</array>
|
|
||||||
<string key="113.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<array key="114.IBNSViewMetadataConstraints">
|
|
||||||
<reference ref="477773969"/>
|
|
||||||
<reference ref="463236706"/>
|
|
||||||
</array>
|
|
||||||
<boolean value="NO" key="114.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
|
||||||
<string key="114.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="115.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="121.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="123.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="126.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="127.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<boolean value="NO" key="57.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
|
||||||
<string key="57.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<reference key="58.IBCollectionViewIntegration.primaryColor" ref="228713979"/>
|
|
||||||
<string key="58.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="59.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="60.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="61.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="88.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">129</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
|
||||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">MPIconSelectViewController</string>
|
|
||||||
<string key="superclassName">MPViewController</string>
|
|
||||||
<object class="NSMutableDictionary" key="outlets">
|
|
||||||
<string key="NS.key.0">iconCollectionView</string>
|
|
||||||
<string key="NS.object.0">NSCollectionView</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
|
||||||
<string key="NS.key.0">iconCollectionView</string>
|
|
||||||
<object class="IBToOneOutletInfo" key="NS.object.0">
|
|
||||||
<string key="name">iconCollectionView</string>
|
|
||||||
<string key="candidateClassName">NSCollectionView</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBProjectSource</string>
|
|
||||||
<string key="minorKey">./Classes/MPIconSelectViewController.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">NSCollectionViewItem</string>
|
|
||||||
<dictionary class="NSMutableDictionary" key="outlets">
|
|
||||||
<string key="imageView">NSImageView</string>
|
|
||||||
<string key="textField">NSTextField</string>
|
|
||||||
</dictionary>
|
|
||||||
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
|
||||||
<object class="IBToOneOutletInfo" key="imageView">
|
|
||||||
<string key="name">imageView</string>
|
|
||||||
<string key="candidateClassName">NSImageView</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBToOneOutletInfo" key="textField">
|
|
||||||
<string key="name">textField</string>
|
|
||||||
<string key="candidateClassName">NSTextField</string>
|
|
||||||
</object>
|
|
||||||
</dictionary>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBProjectSource</string>
|
|
||||||
<string key="minorKey">./Classes/NSCollectionViewItem.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>
|
|
||||||
</object>
|
|
||||||
<int key="IBDocument.localizationMode">0</int>
|
|
||||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
|
|
||||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
|
||||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
|
||||||
<object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
|
|
||||||
<string key="NS.key.0">NSAddTemplate</string>
|
|
||||||
<string key="NS.object.0">{8, 8}</string>
|
|
||||||
</object>
|
|
||||||
<bool key="IBDocument.UseAutolayout">YES</bool>
|
|
||||||
</data>
|
|
||||||
</archive>
|
|
||||||
BIN
MacPass/Icons/14_BatteryTemplate.pdf
Normal file
BIN
MacPass/Icons/15_ScannerTemplate.pdf
Normal file
BIN
MacPass/Icons/16_BrowserTemplate.pdf
Normal file
BIN
MacPass/Icons/17_CDRomTemplate.pdf
Normal file
BIN
MacPass/Icons/19_EmailTemplate.pdf
Normal file
BIN
MacPass/Icons/20_MiscTemplate.pdf
Normal file
BIN
MacPass/Icons/30_TerminalTemplate.pdf
Normal file
BIN
MacPass/Icons/31_PrintTemplate.pdf
Normal file
BIN
MacPass/Icons/99_CreatedTemplate.pdf
Normal file
BIN
MacPass/Icons/addEntryTemplate.pdf
Normal file
BIN
MacPass/Icons/contextTriangleTemplate.pdf
Normal file
106
MacPass/IntegrationSettings.xib
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="4514" systemVersion="13B42" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||||
|
<dependencies>
|
||||||
|
<deployment defaultVersion="1080" identifier="macosx"/>
|
||||||
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="4514"/>
|
||||||
|
</dependencies>
|
||||||
|
<objects>
|
||||||
|
<customObject id="-2" userLabel="File's Owner" customClass="MPIntegrationSettingsController">
|
||||||
|
<connections>
|
||||||
|
<outlet property="enableGlobalAutotypeCheckbutton" destination="tik-Ar-FJg" id="d2f-69-2BP"/>
|
||||||
|
<outlet property="enableServerCheckbutton" destination="2" id="17"/>
|
||||||
|
<outlet property="view" destination="1" id="18"/>
|
||||||
|
</connections>
|
||||||
|
</customObject>
|
||||||
|
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||||
|
<customObject id="-3" userLabel="Application"/>
|
||||||
|
<customView translatesAutoresizingMaskIntoConstraints="NO" id="1">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="400" height="179"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<box autoresizesSubviews="NO" verticalHuggingPriority="500" title="Keepass HTTP" borderType="line" translatesAutoresizingMaskIntoConstraints="NO" id="KbH-0Q-5Tw">
|
||||||
|
<rect key="frame" x="17" y="105" width="366" height="54"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<view key="contentView">
|
||||||
|
<rect key="frame" x="1" y="1" width="364" height="38"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<button translatesAutoresizingMaskIntoConstraints="NO" id="2">
|
||||||
|
<rect key="frame" x="16" y="12" width="187" height="18"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<buttonCell key="cell" type="check" title="Enable KeePassHttp server" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="3">
|
||||||
|
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
</buttonCell>
|
||||||
|
</button>
|
||||||
|
</subviews>
|
||||||
|
</view>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="2" firstAttribute="top" secondItem="KbH-0Q-5Tw" secondAttribute="top" constant="25" id="I1K-oc-SCv"/>
|
||||||
|
<constraint firstAttribute="bottom" secondItem="2" secondAttribute="bottom" constant="11" id="IfW-lq-9Nf"/>
|
||||||
|
<constraint firstItem="2" firstAttribute="leading" secondItem="KbH-0Q-5Tw" secondAttribute="leading" constant="16" id="Xod-Hc-0rx"/>
|
||||||
|
</constraints>
|
||||||
|
<color key="borderColor" white="0.0" alpha="0.41999999999999998" colorSpace="calibratedWhite"/>
|
||||||
|
<color key="fillColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||||
|
</box>
|
||||||
|
<box autoresizesSubviews="NO" verticalHuggingPriority="500" title="Autotype" borderType="line" translatesAutoresizingMaskIntoConstraints="NO" id="P9N-HM-wER">
|
||||||
|
<rect key="frame" x="17" y="16" width="366" height="85"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<view key="contentView">
|
||||||
|
<rect key="frame" x="1" y="1" width="364" height="69"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Kvg-he-3c8">
|
||||||
|
<rect key="frame" x="79" y="15" width="46" height="22"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" title="⌘⌥M" drawsBackground="YES" id="sW8-rh-bhD">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
<button translatesAutoresizingMaskIntoConstraints="NO" id="tik-Ar-FJg">
|
||||||
|
<rect key="frame" x="16" y="43" width="168" height="18"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<buttonCell key="cell" type="check" title="Enable global Autotype" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="1qb-Rd-jYu">
|
||||||
|
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
</buttonCell>
|
||||||
|
</button>
|
||||||
|
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="buI-Wb-o3V">
|
||||||
|
<rect key="frame" x="16" y="17" width="57" height="17"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Shortcut" id="6oN-CH-T0O">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
</subviews>
|
||||||
|
</view>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="tik-Ar-FJg" firstAttribute="top" secondItem="P9N-HM-wER" secondAttribute="top" constant="25" id="1HW-Ac-jq4"/>
|
||||||
|
<constraint firstAttribute="bottom" secondItem="Kvg-he-3c8" secondAttribute="bottom" constant="12" id="3bK-25-sTQ"/>
|
||||||
|
<constraint firstItem="buI-Wb-o3V" firstAttribute="baseline" secondItem="Kvg-he-3c8" secondAttribute="baseline" id="49G-2q-5ye"/>
|
||||||
|
<constraint firstItem="Kvg-he-3c8" firstAttribute="leading" secondItem="buI-Wb-o3V" secondAttribute="trailing" constant="8" symbolic="YES" id="Khi-Pi-iBU"/>
|
||||||
|
<constraint firstItem="Kvg-he-3c8" firstAttribute="top" secondItem="tik-Ar-FJg" secondAttribute="bottom" constant="8" symbolic="YES" id="cn1-4v-XHZ"/>
|
||||||
|
<constraint firstItem="tik-Ar-FJg" firstAttribute="leading" secondItem="buI-Wb-o3V" secondAttribute="leading" id="eVT-oc-Oz8"/>
|
||||||
|
<constraint firstItem="tik-Ar-FJg" firstAttribute="leading" secondItem="P9N-HM-wER" secondAttribute="leading" constant="16" id="rMB-zA-WBv"/>
|
||||||
|
</constraints>
|
||||||
|
<color key="borderColor" white="0.0" alpha="0.41999999999999998" colorSpace="calibratedWhite"/>
|
||||||
|
<color key="fillColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||||
|
</box>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="width" constant="400" id="19"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="KbH-0Q-5Tw" secondAttribute="trailing" constant="20" symbolic="YES" id="0x4-nr-DuM"/>
|
||||||
|
<constraint firstItem="KbH-0Q-5Tw" firstAttribute="leading" secondItem="1" secondAttribute="leading" constant="20" symbolic="YES" id="dln-JS-u45"/>
|
||||||
|
<constraint firstItem="P9N-HM-wER" firstAttribute="leading" secondItem="KbH-0Q-5Tw" secondAttribute="leading" id="iZD-AQ-EeG"/>
|
||||||
|
<constraint firstItem="KbH-0Q-5Tw" firstAttribute="top" secondItem="1" secondAttribute="top" constant="20" symbolic="YES" id="mtr-dI-3QM"/>
|
||||||
|
<constraint firstItem="P9N-HM-wER" firstAttribute="top" secondItem="KbH-0Q-5Tw" secondAttribute="bottom" constant="8" symbolic="YES" id="oFy-uk-HLJ"/>
|
||||||
|
<constraint firstItem="P9N-HM-wER" firstAttribute="trailing" secondItem="KbH-0Q-5Tw" secondAttribute="trailing" id="sIZ-ZD-A8K"/>
|
||||||
|
<constraint firstAttribute="bottom" secondItem="P9N-HM-wER" secondAttribute="bottom" constant="20" symbolic="YES" id="tUs-qA-SKq"/>
|
||||||
|
</constraints>
|
||||||
|
</customView>
|
||||||
|
</objects>
|
||||||
|
</document>
|
||||||
15
MacPass/KPKNode+IconImage.h
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
//
|
||||||
|
// KPKNode+IconImage.h
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 31.08.13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "KPKNode.h"
|
||||||
|
|
||||||
|
@interface KPKNode (IconImage)
|
||||||
|
|
||||||
|
@property (nonatomic, readonly) NSImage *iconImage;
|
||||||
|
|
||||||
|
@end
|
||||||
32
MacPass/KPKNode+IconImage.m
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
//
|
||||||
|
// KPKNode+IconImage.m
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 31.08.13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "KPKNode+IconImage.h"
|
||||||
|
|
||||||
|
#import "KPKIcon.h"
|
||||||
|
#import "KPKTree.h"
|
||||||
|
#import "KPKMetaData.h"
|
||||||
|
|
||||||
|
#import "MPIconHelper.h"
|
||||||
|
|
||||||
|
@implementation KPKNode (IconImage)
|
||||||
|
|
||||||
|
+ (NSSet *)keyPathsForValuesAffectingIconImage {
|
||||||
|
return [NSSet setWithArray:@[@"iconUUID", @"iconId"]];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSImage *)iconImage {
|
||||||
|
if(self.iconUUID) {
|
||||||
|
KPKIcon *icon = [self.tree.metaData findIcon:self.iconUUID];
|
||||||
|
if(icon && icon.image) {
|
||||||
|
return icon.image;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return [MPIconHelper icon:(MPIconType)self.iconId];
|
||||||
|
}
|
||||||
|
@end
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
//
|
|
||||||
// Kdb3Tree+NewTree.h
|
|
||||||
// MacPass
|
|
||||||
//
|
|
||||||
// Created by Michael Starke on 21.06.13.
|
|
||||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "Kdb3Node.h"
|
|
||||||
|
|
||||||
@interface Kdb3Tree (NewTree)
|
|
||||||
|
|
||||||
+ (Kdb3Tree *)templateTree;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,54 +0,0 @@
|
|||||||
//
|
|
||||||
// Kdb3Tree+NewTree.m
|
|
||||||
// MacPass
|
|
||||||
//
|
|
||||||
// Created by Michael Starke on 21.06.13.
|
|
||||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "Kdb3Tree+NewTree.h"
|
|
||||||
|
|
||||||
@implementation Kdb3Tree (NewTree)
|
|
||||||
|
|
||||||
+ (Kdb3Tree *)templateTree {
|
|
||||||
Kdb3Tree *tree = [[Kdb3Tree alloc] init];
|
|
||||||
|
|
||||||
Kdb3Group *rootGroup = [[Kdb3Group alloc] init];
|
|
||||||
rootGroup.name = @"%ROOT%";
|
|
||||||
tree.root = rootGroup;
|
|
||||||
|
|
||||||
KdbGroup *parentGroup = [tree createGroup:rootGroup];
|
|
||||||
parentGroup.name = @"General";
|
|
||||||
parentGroup.image = 48;
|
|
||||||
[rootGroup addGroup:parentGroup];
|
|
||||||
|
|
||||||
KdbGroup *group = [tree createGroup:parentGroup];
|
|
||||||
group.name = @"Windows";
|
|
||||||
group.image = 38;
|
|
||||||
[parentGroup addGroup:group];
|
|
||||||
|
|
||||||
group = [tree createGroup:parentGroup];
|
|
||||||
group.name = @"Network";
|
|
||||||
group.image = 3;
|
|
||||||
[parentGroup addGroup:group];
|
|
||||||
|
|
||||||
group = [tree createGroup:parentGroup];
|
|
||||||
group.name = @"Internet";
|
|
||||||
group.image = 1;
|
|
||||||
[parentGroup addGroup:group];
|
|
||||||
|
|
||||||
group = [tree createGroup:parentGroup];
|
|
||||||
group.name = @"eMail";
|
|
||||||
group.image = 19;
|
|
||||||
[parentGroup addGroup:group];
|
|
||||||
|
|
||||||
group = [tree createGroup:parentGroup];
|
|
||||||
group.name = @"Homebanking";
|
|
||||||
group.image = 37;
|
|
||||||
[parentGroup addGroup:group];
|
|
||||||
|
|
||||||
|
|
||||||
return tree;
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
//
|
|
||||||
// Kdb4Entry+KVOAdditions.h
|
|
||||||
// MacPass
|
|
||||||
//
|
|
||||||
// Created by Michael Starke on 28.06.13.
|
|
||||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "Kdb4Node.h"
|
|
||||||
|
|
||||||
@interface Kdb4Entry (KVOAdditions)
|
|
||||||
|
|
||||||
- (NSUInteger)countOfStringFields;
|
|
||||||
- (StringField *)objectInStringFieldsAtIndex:(NSUInteger)index;
|
|
||||||
- (void)removeObjectFromStringFieldsAtIndex:(NSUInteger)anIndex;
|
|
||||||
- (void)insertObject:(StringField *)stringfield inStringFieldsAtIndex:(NSUInteger)anIndex;
|
|
||||||
|
|
||||||
- (NSUInteger)countOfBinaries;
|
|
||||||
- (BinaryRef *)objectInBinariesAtIndex:(NSUInteger)index;
|
|
||||||
- (void)removeObjectFromBinariesAtIndex:(NSUInteger)index;
|
|
||||||
- (void)insertObject:(BinaryRef *)binary inBinariesAtIndex:(NSUInteger)index;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
//
|
|
||||||
// Kdb4Entry+KVOAdditions.m
|
|
||||||
// MacPass
|
|
||||||
//
|
|
||||||
// Created by Michael Starke on 28.06.13.
|
|
||||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "Kdb4Entry+KVOAdditions.h"
|
|
||||||
|
|
||||||
@implementation Kdb4Entry (KVOAdditions)
|
|
||||||
|
|
||||||
/* Entries */
|
|
||||||
- (NSUInteger)countOfStringFields {
|
|
||||||
return [self.stringFields count];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (StringField *)objectInStringFieldsAtIndex:(NSUInteger)index {
|
|
||||||
return (self.stringFields)[index];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)insertObject:(StringField *)stringfield inStringFieldsAtIndex:(NSUInteger)anIndex {
|
|
||||||
[self.stringFields insertObject:stringfield atIndex:anIndex];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)removeObjectFromStringFieldsAtIndex:(NSUInteger)anIndex {
|
|
||||||
[self.stringFields removeObjectAtIndex:anIndex];
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Binaries */
|
|
||||||
- (NSUInteger)countOfBinaries {
|
|
||||||
return [self.binaries count];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BinaryRef *)objectInBinariesAtIndex:(NSUInteger)index {
|
|
||||||
return (self.binaries)[index];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)insertObject:(BinaryRef *)binary inBinariesAtIndex:(NSUInteger)index {
|
|
||||||
[self.binaries insertObject:binary atIndex:index];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)removeObjectFromBinariesAtIndex:(NSUInteger)index {
|
|
||||||
[self.binaries removeObjectAtIndex:index];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
//
|
|
||||||
// Kdb4Tree+KVOAdditions.h
|
|
||||||
// MacPass
|
|
||||||
//
|
|
||||||
// Created by Michael Starke on 27.06.13.
|
|
||||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "Kdb4Node.h"
|
|
||||||
|
|
||||||
@interface Kdb4Tree (KVOAdditions)
|
|
||||||
|
|
||||||
- (void)insertObject:(Binary *)binary inBinariesAtIndex:(NSUInteger)index;
|
|
||||||
- (void)insertObject:(CustomIcon *)icon inCustomIconsAtIndex:(NSUInteger)index;
|
|
||||||
|
|
||||||
- (CustomIcon *)objectInCustomIconsAtIndex:(NSUInteger)index;
|
|
||||||
- (Binary *)objectInBinariesAtIndex:(NSUInteger)index;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
//
|
|
||||||
// Kdb4Tree+KVOAdditions.m
|
|
||||||
// MacPass
|
|
||||||
//
|
|
||||||
// Created by Michael Starke on 27.06.13.
|
|
||||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "Kdb4Tree+KVOAdditions.h"
|
|
||||||
|
|
||||||
@implementation Kdb4Tree (KVOAdditions)
|
|
||||||
|
|
||||||
- (void)insertObject:(Binary *)binary inBinariesAtIndex:(NSUInteger)index {
|
|
||||||
[self.binaries insertObject:binary atIndex:index];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)insertObject:(CustomIcon *)icon inCustomIconsAtIndex:(NSUInteger)index {
|
|
||||||
[self.customIcons insertObject:icon atIndex:index];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (Binary *)objectInBinariesAtIndex:(NSUInteger)index {
|
|
||||||
return (self.binaries)[index];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (CustomIcon *)objectInCustomIconsAtIndex:(NSUInteger)index {
|
|
||||||
return (self.customIcons)[index];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
//
|
|
||||||
// Kdb4Tree+NewTree.h
|
|
||||||
// MacPass
|
|
||||||
//
|
|
||||||
// Created by Michael Starke on 21.06.13.
|
|
||||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "Kdb4Node.h"
|
|
||||||
|
|
||||||
@interface Kdb4Tree (NewTree)
|
|
||||||
|
|
||||||
+(Kdb4Tree *)templateTree;
|
|
||||||
+(Kdb4Tree *)demoTree;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,123 +0,0 @@
|
|||||||
//
|
|
||||||
// Kdb4Tree+NewTree.m
|
|
||||||
// MacPass
|
|
||||||
//
|
|
||||||
// Created by Michael Starke on 21.06.13.
|
|
||||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "Kdb4Tree+NewTree.h"
|
|
||||||
|
|
||||||
@implementation Kdb4Tree (NewTree)
|
|
||||||
|
|
||||||
+ (Kdb4Tree *)templateTree {
|
|
||||||
NSDate *currentTime = [NSDate date];
|
|
||||||
|
|
||||||
Kdb4Tree *tree = [[Kdb4Tree alloc] init];
|
|
||||||
tree.generator = @"MacPass";
|
|
||||||
tree.databaseName = NSLocalizedString(@"NEW_DATABASE", "Name for a newly created Database");
|
|
||||||
tree.databaseNameChanged = currentTime;
|
|
||||||
tree.databaseDescription = @"";
|
|
||||||
tree.databaseDescriptionChanged = currentTime;
|
|
||||||
tree.defaultUserName = @"";
|
|
||||||
tree.defaultUserNameChanged = currentTime;
|
|
||||||
tree.maintenanceHistoryDays = 365;
|
|
||||||
tree.color = @"";
|
|
||||||
tree.masterKeyChanged = currentTime;
|
|
||||||
tree.masterKeyChangeRec = -1;
|
|
||||||
tree.masterKeyChangeForce = -1;
|
|
||||||
tree.protectTitle = NO;
|
|
||||||
tree.protectUserName = NO;
|
|
||||||
tree.protectPassword = YES;
|
|
||||||
tree.protectUrl = NO;
|
|
||||||
tree.protectNotes = NO;
|
|
||||||
tree.recycleBinEnabled = YES;
|
|
||||||
tree.recycleBinUuid = [UUID nullUuid];
|
|
||||||
tree.recycleBinChanged = currentTime;
|
|
||||||
tree.entryTemplatesGroup = [UUID nullUuid];
|
|
||||||
tree.entryTemplatesGroupChanged = currentTime;
|
|
||||||
tree.historyMaxItems = 10;
|
|
||||||
tree.historyMaxSize = 6 * 1024 * 1024; // 6 MB
|
|
||||||
tree.lastSelectedGroup = [UUID nullUuid];
|
|
||||||
tree.lastTopVisibleGroup = [UUID nullUuid];
|
|
||||||
|
|
||||||
KdbGroup *parentGroup = [tree createGroup:nil];
|
|
||||||
parentGroup.name = @"General";
|
|
||||||
parentGroup.image = 48;
|
|
||||||
tree.root = parentGroup;
|
|
||||||
|
|
||||||
KdbGroup *group = [tree createGroup:parentGroup];
|
|
||||||
group.name = @"Windows";
|
|
||||||
group.image = 38;
|
|
||||||
[parentGroup addGroup:group];
|
|
||||||
|
|
||||||
group = [tree createGroup:parentGroup];
|
|
||||||
group.name = @"Network";
|
|
||||||
group.image = 3;
|
|
||||||
[parentGroup addGroup:group];
|
|
||||||
|
|
||||||
group = [tree createGroup:parentGroup];
|
|
||||||
group.name = @"Internet";
|
|
||||||
group.image = 1;
|
|
||||||
[parentGroup addGroup:group];
|
|
||||||
|
|
||||||
group = [tree createGroup:parentGroup];
|
|
||||||
group.name = @"eMail";
|
|
||||||
group.image = 19;
|
|
||||||
[parentGroup addGroup:group];
|
|
||||||
|
|
||||||
group = [tree createGroup:parentGroup];
|
|
||||||
group.name = @"Homebanking";
|
|
||||||
group.image = 37;
|
|
||||||
[parentGroup addGroup:group];
|
|
||||||
|
|
||||||
return tree;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (Kdb4Tree *)demoTree {
|
|
||||||
NSDate *currentTime = [NSDate date];
|
|
||||||
|
|
||||||
Kdb4Tree *tree = [[Kdb4Tree alloc] init];
|
|
||||||
tree.generator = @"MacPass";
|
|
||||||
tree.databaseName = @"Icon Demonstation";
|
|
||||||
tree.databaseNameChanged = currentTime;
|
|
||||||
tree.databaseDescription = @"This database just has all default icons as groups in the tree";
|
|
||||||
tree.databaseDescriptionChanged = currentTime;
|
|
||||||
tree.defaultUserName = @"";
|
|
||||||
tree.defaultUserNameChanged = currentTime;
|
|
||||||
tree.maintenanceHistoryDays = 365;
|
|
||||||
tree.color = @"";
|
|
||||||
tree.masterKeyChanged = currentTime;
|
|
||||||
tree.masterKeyChangeRec = -1;
|
|
||||||
tree.masterKeyChangeForce = -1;
|
|
||||||
tree.protectTitle = NO;
|
|
||||||
tree.protectUserName = NO;
|
|
||||||
tree.protectPassword = YES;
|
|
||||||
tree.protectUrl = NO;
|
|
||||||
tree.protectNotes = NO;
|
|
||||||
tree.recycleBinEnabled = YES;
|
|
||||||
tree.recycleBinUuid = [UUID nullUuid];
|
|
||||||
tree.recycleBinChanged = currentTime;
|
|
||||||
tree.entryTemplatesGroup = [UUID nullUuid];
|
|
||||||
tree.entryTemplatesGroupChanged = currentTime;
|
|
||||||
tree.historyMaxItems = 10;
|
|
||||||
tree.historyMaxSize = 6 * 1024 * 1024; // 6 MB
|
|
||||||
tree.lastSelectedGroup = [UUID nullUuid];
|
|
||||||
tree.lastTopVisibleGroup = [UUID nullUuid];
|
|
||||||
|
|
||||||
KdbGroup *parentGroup = [tree createGroup:nil];
|
|
||||||
parentGroup.name = @"General";
|
|
||||||
parentGroup.image = 48;
|
|
||||||
tree.root = parentGroup;
|
|
||||||
|
|
||||||
for(NSUInteger iImageIndex = 0; iImageIndex < 69; iImageIndex++) {
|
|
||||||
KdbGroup *group = [tree createGroup:parentGroup];
|
|
||||||
group.name = [NSString stringWithFormat:@"Group %ld", iImageIndex];
|
|
||||||
group.image = iImageIndex;
|
|
||||||
[parentGroup addGroup:group];
|
|
||||||
}
|
|
||||||
|
|
||||||
return tree;
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
//
|
|
||||||
// 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
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
//
|
|
||||||
// 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 "Kdb3Node.h"
|
|
||||||
#import "Kdb4Node.h"
|
|
||||||
|
|
||||||
#import "MPIconHelper.h"
|
|
||||||
|
|
||||||
@implementation KdbEntry (MPAdditions)
|
|
||||||
|
|
||||||
- (NSImage *)icon {
|
|
||||||
return [MPIconHelper icon:(MPIconType)self.image];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
//
|
|
||||||
// KdbEntry+MPTreeTools.h
|
|
||||||
// MacPass
|
|
||||||
//
|
|
||||||
// Created by Michael Starke on 10.06.13.
|
|
||||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "Kdb.h"
|
|
||||||
|
|
||||||
@interface KdbEntry (MPTreeTools)
|
|
||||||
|
|
||||||
- (NSUInteger)indexInParent;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
//
|
|
||||||
// KdbEntry+MPTreeTools.m
|
|
||||||
// MacPass
|
|
||||||
//
|
|
||||||
// Created by Michael Starke on 10.06.13.
|
|
||||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "KdbEntry+MPTreeTools.h"
|
|
||||||
|
|
||||||
@implementation KdbEntry (MPTreeTools)
|
|
||||||
|
|
||||||
- (NSUInteger)indexInParent {
|
|
||||||
if(self.parent) {
|
|
||||||
return [self.parent.entries indexOfObject:self];
|
|
||||||
}
|
|
||||||
return NSNotFound;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
//
|
|
||||||
// KdbEntry+Undo.h
|
|
||||||
// MacPass
|
|
||||||
//
|
|
||||||
// Created by Michael Starke on 12.05.13.
|
|
||||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "Kdb.h"
|
|
||||||
|
|
||||||
APPKIT_EXTERN NSString *const MPEntryTitleUndoableKey;
|
|
||||||
APPKIT_EXTERN NSString *const MPEntryUsernameUndoableKey;
|
|
||||||
APPKIT_EXTERN NSString *const MPEntryPasswordUndoableKey;
|
|
||||||
APPKIT_EXTERN NSString *const MPEntryUrlUndoableKey;
|
|
||||||
APPKIT_EXTERN NSString *const MPEntryNotesUndoableKey;
|
|
||||||
|
|
||||||
|
|
||||||
@interface KdbEntry (Undo)
|
|
||||||
|
|
||||||
+ (NSUndoManager *)undoManager;
|
|
||||||
|
|
||||||
- (NSString *)titleUndoable;
|
|
||||||
- (NSString *)usernameUndoable;
|
|
||||||
- (NSString *)passwordUndoable;
|
|
||||||
- (NSString *)urlUndoable;
|
|
||||||
- (NSString *)notesUndoable;
|
|
||||||
|
|
||||||
- (void)setTitleUndoable:(NSString *)title;
|
|
||||||
- (void)setUsernameUndoable:(NSString *)username;
|
|
||||||
- (void)setPasswordUndoable:(NSString *)password;
|
|
||||||
- (void)setUrlUndoable:(NSString *)url;
|
|
||||||
- (void)setNotesUndoable:(NSString *)notes;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,80 +0,0 @@
|
|||||||
//
|
|
||||||
// KdbEntry+Undo.m
|
|
||||||
// MacPass
|
|
||||||
//
|
|
||||||
// Created by Michael Starke on 12.05.13.
|
|
||||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "KdbEntry+Undo.h"
|
|
||||||
#import "KdbGroup+MPTreeTools.h"
|
|
||||||
|
|
||||||
NSString *const MPEntryTitleUndoableKey = @"titleUndoable";
|
|
||||||
NSString *const MPEntryUsernameUndoableKey = @"usernameUndoable";
|
|
||||||
NSString *const MPEntryPasswordUndoableKey = @"passwordUndoable";
|
|
||||||
NSString *const MPEntryUrlUndoableKey = @"urlUndoable";
|
|
||||||
NSString *const MPEntryNotesUndoableKey = @"notesUndoable";
|
|
||||||
|
|
||||||
@implementation KdbEntry (Undo)
|
|
||||||
|
|
||||||
+ (NSUndoManager *)undoManager {
|
|
||||||
return [[[NSDocumentController sharedDocumentController] currentDocument] undoManager];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)titleUndoable {
|
|
||||||
return [self title];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)usernameUndoable {
|
|
||||||
return [self username];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)passwordUndoable {
|
|
||||||
return [self password];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)urlUndoable {
|
|
||||||
return [self url];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)notesUndoable {
|
|
||||||
return [self notes];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
- (void)setTitleUndoable:(NSString *)title {
|
|
||||||
[[KdbEntry undoManager] registerUndoWithTarget:self selector:@selector(setTitleUndoable:) object:self.title];
|
|
||||||
[[KdbEntry undoManager] setActionName:NSLocalizedString(@"UNDO_SET_TITLE", "Undo set title")];
|
|
||||||
[self setLastModificationTime:[NSDate date]];
|
|
||||||
[self setTitle:title];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)setUsernameUndoable:(NSString *)username {
|
|
||||||
[[KdbEntry undoManager] registerUndoWithTarget:self selector:@selector(setUsernameUndoable:) object:self.username];
|
|
||||||
[[KdbEntry undoManager] setActionName:NSLocalizedString(@"UNDO_SET_USERNAME", "Undo set username")];
|
|
||||||
[self setLastModificationTime:[NSDate date]];
|
|
||||||
[self setUsername:username];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)setPasswordUndoable:(NSString *)password {
|
|
||||||
[[KdbEntry undoManager] registerUndoWithTarget:self selector:@selector(setPasswordUndoable:) object:self.password];
|
|
||||||
[[KdbEntry undoManager] setActionName:NSLocalizedString(@"UNDO_SET_PASSWORT", "Undo set password")];
|
|
||||||
[self setLastModificationTime:[NSDate date]];
|
|
||||||
[self setPassword:password];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)setUrlUndoable:(NSString *)url {
|
|
||||||
[[KdbEntry undoManager] registerUndoWithTarget:self selector:@selector(setUrlUndoable:) object:self.url];
|
|
||||||
[[KdbEntry undoManager] setActionName:NSLocalizedString(@"UNDO_SET_URL", "Undo set URL")];
|
|
||||||
[self setLastModificationTime:[NSDate date]];
|
|
||||||
[self setUrl:url];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)setNotesUndoable:(NSString *)notes {
|
|
||||||
[[KdbEntry undoManager] registerUndoWithTarget:self selector:@selector(setNotesUndoable:) object:self.notes];
|
|
||||||
[[KdbEntry undoManager] setActionName:NSLocalizedString(@"UNDO_SET_NOTES", "Undo set notes")];
|
|
||||||
[self setLastModificationTime:[NSDate date]];
|
|
||||||
[self setNotes:notes];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
//
|
|
||||||
// KdbGroup+KVOAdditions.h
|
|
||||||
// MacPass
|
|
||||||
//
|
|
||||||
// Created by Michael Starke on 08.06.13.
|
|
||||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "Kdb.h"
|
|
||||||
|
|
||||||
@interface KdbGroup (KVOAdditions)
|
|
||||||
|
|
||||||
/* KVO Accesors for the entries */
|
|
||||||
- (KdbEntry *)objectInEntriesAtIndex:(NSUInteger)index;
|
|
||||||
- (NSUInteger)countOfEntries;
|
|
||||||
- (void)insertObject:(KdbEntry *)entry inEntriesAtIndex:(NSUInteger)index;
|
|
||||||
- (void)removeObjectFromEntriesAtIndex:(NSUInteger)index;
|
|
||||||
|
|
||||||
/* KVO Accessors for the groups */
|
|
||||||
- (KdbGroup *)objectInGroupsAtIndex:(NSUInteger)index;
|
|
||||||
- (NSUInteger)countOfGroups;
|
|
||||||
- (void)insertObject:(KdbGroup *)group inGroupsAtIndex:(NSUInteger)index;
|
|
||||||
- (void)removeObjectFromGroupsAtIndex:(NSUInteger)index;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
//
|
|
||||||
// KdbGroup+KVOAdditions.m
|
|
||||||
// MacPass
|
|
||||||
//
|
|
||||||
// Created by Michael Starke on 08.06.13.
|
|
||||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "KdbGroup+KVOAdditions.h"
|
|
||||||
|
|
||||||
@implementation KdbGroup (KVOAdditions)
|
|
||||||
|
|
||||||
- (void)insertObject:(KdbEntry *)entry inEntriesAtIndex:(NSUInteger)index {
|
|
||||||
entry.parent = self;
|
|
||||||
[_entries insertObject:entry atIndex:index];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)removeObjectFromEntriesAtIndex:(NSUInteger)index {
|
|
||||||
KdbEntry *entry = _entries[index];
|
|
||||||
[_entries removeObjectAtIndex:index];
|
|
||||||
entry.parent = nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSUInteger)countOfEntries {
|
|
||||||
return [self.entries count];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (KdbEntry *)objectInEntriesAtIndex:(NSUInteger)index {
|
|
||||||
return self.entries[index];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (KdbGroup *)objectInGroupsAtIndex:(NSUInteger)index {
|
|
||||||
return self.groups[index];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSUInteger)countOfGroups {
|
|
||||||
return [self.groups count];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)insertObject:(KdbGroup *)group inGroupsAtIndex:(NSUInteger)index {
|
|
||||||
group.parent = self;
|
|
||||||
[_groups insertObject:group atIndex:index];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)removeObjectFromGroupsAtIndex:(NSUInteger)index {
|
|
||||||
KdbGroup *group = (self.groups)[index];
|
|
||||||
[_groups removeObjectAtIndex:index];
|
|
||||||
group.parent = nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
//
|
|
||||||
// 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
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
//
|
|
||||||
// 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
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
//
|
|
||||||
// KdbGroup+MPTreeTools.h
|
|
||||||
// MacPass
|
|
||||||
//
|
|
||||||
// Created by michael starke on 19.02.13.
|
|
||||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "Kdb.h"
|
|
||||||
@class UUID;
|
|
||||||
|
|
||||||
@interface KdbGroup (MPTreeTools)
|
|
||||||
|
|
||||||
/* Returns all groups under this group and it's subgroups */
|
|
||||||
- (NSArray *)childGroups;
|
|
||||||
/* Returns all entries under this group and it's subgroups */
|
|
||||||
- (NSArray *)childEntries;
|
|
||||||
/* Returns the entry with the UUID */
|
|
||||||
- (KdbEntry *)entryForUUID:(UUID *)uuid;
|
|
||||||
/* Returns the group with the UUID */
|
|
||||||
- (KdbGroup *)groupForUUID:(UUID *)uuid;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
//
|
|
||||||
// KdbGroup+MPTreeTools.m
|
|
||||||
// MacPass
|
|
||||||
//
|
|
||||||
// Created by michael starke on 19.02.13.
|
|
||||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "KdbGroup+MPTreeTools.h"
|
|
||||||
#import "Kdb4Node.h"
|
|
||||||
#import "Kdb3Node.h"
|
|
||||||
|
|
||||||
@implementation KdbGroup (MPTreeTools)
|
|
||||||
|
|
||||||
- (NSArray *)childGroups {
|
|
||||||
NSMutableArray *childGroups = [NSMutableArray arrayWithCapacity:[self.groups count]];
|
|
||||||
[childGroups addObjectsFromArray:self.groups];
|
|
||||||
for(KdbGroup *childGroup in self.groups) {
|
|
||||||
[childGroups addObjectsFromArray:[childGroup childGroups]];
|
|
||||||
}
|
|
||||||
return childGroups;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSArray *)childEntries {
|
|
||||||
NSMutableArray *childEntries = [NSMutableArray arrayWithCapacity:[self.groups count] + [self.entries count]];
|
|
||||||
[childEntries addObjectsFromArray:self.entries];
|
|
||||||
for( KdbGroup *childGroup in self.groups) {
|
|
||||||
[childEntries addObjectsFromArray:[childGroup childEntries]];
|
|
||||||
}
|
|
||||||
return childEntries;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (KdbEntry *)entryForUUID:(UUID *)uuid {
|
|
||||||
NSArray *childEntries = [self childEntries];
|
|
||||||
NSArray *filterdEntries = [childEntries filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings) {
|
|
||||||
return [uuid isEqual:(UUID *)[evaluatedObject uuid]];
|
|
||||||
}]];
|
|
||||||
NSAssert([filterdEntries count] <= 1, @"UUID hast to be unique");
|
|
||||||
return [filterdEntries lastObject];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (KdbGroup *)groupForUUID:(UUID *)uuid {
|
|
||||||
NSArray *childGroups = [self childGroups];
|
|
||||||
NSPredicate *predicate = [NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings) {
|
|
||||||
return [uuid isEqual:(UUID *)[evaluatedObject uuid]];
|
|
||||||
}];
|
|
||||||
NSArray *filteredGroups = [childGroups filteredArrayUsingPredicate:predicate];
|
|
||||||
NSAssert([filteredGroups count] <= 1, @"UUID hast to be unique");
|
|
||||||
return [filteredGroups lastObject];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
//
|
|
||||||
// KdbGroup+Undo.h
|
|
||||||
// MacPass
|
|
||||||
//
|
|
||||||
// Created by Michael Starke on 18.05.13.
|
|
||||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "Kdb.h"
|
|
||||||
|
|
||||||
APPKIT_EXTERN NSString *const MPGroupNameUndoableKey;
|
|
||||||
|
|
||||||
@interface KdbGroup (Undo)
|
|
||||||
|
|
||||||
- (NSUndoManager *)undoManager;
|
|
||||||
|
|
||||||
- (NSString *)nameUndoable;
|
|
||||||
- (void)setNameUndoable:(NSString *)newName;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
//
|
|
||||||
// KdbGroup+Undo.m
|
|
||||||
// MacPass
|
|
||||||
//
|
|
||||||
// Created by Michael Starke on 18.05.13.
|
|
||||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "KdbGroup+Undo.h"
|
|
||||||
#import "KdbGroup+KVOAdditions.h"
|
|
||||||
|
|
||||||
NSString *const MPGroupNameUndoableKey = @"nameUndoable";
|
|
||||||
|
|
||||||
@implementation KdbGroup (Undo)
|
|
||||||
|
|
||||||
- (NSUndoManager *)undoManager {
|
|
||||||
return [[[NSDocumentController sharedDocumentController] currentDocument] undoManager];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)nameUndoable {
|
|
||||||
return [self name];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)setNameUndoable:(NSString *)newName {
|
|
||||||
[[self undoManager] registerUndoWithTarget:self selector:@selector(setNameUndoable:) object:self.name];
|
|
||||||
[[self undoManager] setActionName:NSLocalizedString(@"UNDO_SET_NAME", "Undo set name")];
|
|
||||||
self.name = newName;
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
//
|
|
||||||
// KdbTree+MPAdditions.h
|
|
||||||
// MacPass
|
|
||||||
//
|
|
||||||
// Created by michael starke on 20.02.13.
|
|
||||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "Kdb.h"
|
|
||||||
|
|
||||||
@class BinaryRef;
|
|
||||||
@class Binary;
|
|
||||||
|
|
||||||
@interface KdbTree (MPAdditions)
|
|
||||||
|
|
||||||
- (NSArray *)allEntries;
|
|
||||||
|
|
||||||
- (NSArray *)allGroups;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
//
|
|
||||||
// KdbTree+MPAdditions.m
|
|
||||||
// MacPass
|
|
||||||
//
|
|
||||||
// Created by michael starke on 20.02.13.
|
|
||||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "KdbTree+MPAdditions.h"
|
|
||||||
#import "KdbGroup+MPTreeTools.h"
|
|
||||||
|
|
||||||
#import "NSMutableData+Base64.h"
|
|
||||||
#import "Kdb3Node.h"
|
|
||||||
#import "Kdb4Node.h"
|
|
||||||
|
|
||||||
@implementation KdbTree (MPAdditions)
|
|
||||||
|
|
||||||
- (NSArray *)allGroups {
|
|
||||||
return [self.root childGroups];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSArray *)allEntries {
|
|
||||||
return [self.root childEntries];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -9,9 +9,11 @@
|
|||||||
#import <Foundation/Foundation.h>
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
typedef NS_ENUM(NSUInteger, MPActionType) {
|
typedef NS_ENUM(NSUInteger, MPActionType) {
|
||||||
|
MPUnkownAction, // Neutral element to be used for returns
|
||||||
MPActionAddEntry, // Add an new entry
|
MPActionAddEntry, // Add an new entry
|
||||||
MPActionAddGroup, // Add a new group
|
MPActionAddGroup, // Add a new group
|
||||||
MPActionEdit, // Edit entry or group
|
MPActionCloneEntry, // Simply clone an entry (inlcuding history)
|
||||||
|
MPActionCloneEntryWithOptions, // Request user inptu what clone
|
||||||
MPActionDelete, // Delete entry or group
|
MPActionDelete, // Delete entry or group
|
||||||
MPActionCopyUsername, // copy username to pasteboard
|
MPActionCopyUsername, // copy username to pasteboard
|
||||||
MPActionCopyPassword, // copy password to pasteboard
|
MPActionCopyPassword, // copy password to pasteboard
|
||||||
@@ -19,11 +21,28 @@ 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
|
MPActionEmptyTrash, // empties the trashcan, if there is one
|
||||||
|
MPActionEditPassword, // change the database password
|
||||||
|
MPActionDatabaseSettings, // Show the settings for the database
|
||||||
|
MPActionEditTemplateGroup, // Edit the Template group
|
||||||
|
MPActionExportXML, // Exporte as XML
|
||||||
|
MPActionImportXML // Import form XML
|
||||||
};
|
};
|
||||||
|
/**
|
||||||
|
* Helper to retrieve commonly used actions
|
||||||
|
*/
|
||||||
@interface MPActionHelper : NSObject
|
@interface MPActionHelper : NSObject
|
||||||
|
/**
|
||||||
|
* Call this to retrieve a selector for a common used action
|
||||||
|
* @param type The action type as MPActionType
|
||||||
|
* @return selector for this action type
|
||||||
|
*/
|
||||||
+ (SEL)actionOfType:(MPActionType)type;
|
+ (SEL)actionOfType:(MPActionType)type;
|
||||||
|
/**
|
||||||
|
* Helper to retrieve the MPActionType for a given selection
|
||||||
|
* @param action Selector to find the type for
|
||||||
|
* @return MPActionTpype for action, if no match was found MPUnknownAction is returned
|
||||||
|
*/
|
||||||
|
+ (MPActionType)typeForAction:(SEL)action;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -10,25 +10,50 @@
|
|||||||
|
|
||||||
@implementation MPActionHelper
|
@implementation MPActionHelper
|
||||||
|
|
||||||
+ (SEL)actionOfType:(MPActionType)type {
|
+ (NSDictionary *)_actionDictionary {
|
||||||
static NSDictionary *actionDict;
|
static NSDictionary *actionDict;
|
||||||
static dispatch_once_t onceToken;
|
static dispatch_once_t onceToken;
|
||||||
dispatch_once(&onceToken, ^{
|
dispatch_once(&onceToken, ^{
|
||||||
actionDict = @{
|
actionDict = @{
|
||||||
@(MPActionAddEntry) : @"createEntry:",
|
@(MPActionAddEntry): @"createEntry:",
|
||||||
@(MPActionAddGroup) : @"createGroup:",
|
@(MPActionAddGroup): @"createGroup:",
|
||||||
@(MPActionCopyPassword) : @"copyPassword:",
|
@(MPActionCloneEntry): @"cloneEntry:",
|
||||||
@(MPActionCopyURL) : @"copyURL:",
|
@(MPActionCloneEntryWithOptions): @"cloneEntryWithOptions:",
|
||||||
@(MPActionCopyUsername) : @"copyUsername:",
|
@(MPActionCopyPassword): @"copyPassword:",
|
||||||
@(MPActionDelete) : @"deleteNode:",
|
@(MPActionCopyURL): @"copyURL:",
|
||||||
@(MPActionEdit) : @"editEntry:",
|
@(MPActionCopyUsername): @"copyUsername:",
|
||||||
@(MPActionOpenURL) : @"openURL:",
|
@(MPActionDelete): @"delete:",
|
||||||
@(MPActionToggleInspector) : @"toggleInspector:",
|
@(MPActionEditPassword): @"editPassword:",
|
||||||
@(MPActionLock) : @"lock:",
|
@(MPActionOpenURL): @"openURL:",
|
||||||
@(MPActionEmptyTrash) : @"emptyTrash:"
|
@(MPActionToggleInspector): @"toggleInspector:",
|
||||||
};
|
@(MPActionLock): @"lock:",
|
||||||
|
@(MPActionEmptyTrash): @"emptyTrash:",
|
||||||
|
@(MPActionDatabaseSettings): @"showDatabaseSettings:",
|
||||||
|
@(MPActionEditTemplateGroup): @"editTemplateGroup:",
|
||||||
|
@(MPActionExportXML): @"exportAsXML",
|
||||||
|
@(MPActionImportXML): @"importFromXMl",
|
||||||
|
};
|
||||||
});
|
});
|
||||||
|
return actionDict;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ (SEL)actionOfType:(MPActionType)type {
|
||||||
|
NSDictionary *actionDict = [self _actionDictionary];
|
||||||
return NSSelectorFromString(actionDict[@(type)]);
|
return NSSelectorFromString(actionDict[@(type)]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
+ (MPActionType)typeForAction:(SEL)action {
|
||||||
|
NSString *selectorString = NSStringFromSelector(action);
|
||||||
|
NSArray *selectors = [[self _actionDictionary] allValues];
|
||||||
|
NSUInteger index = [selectors indexOfObject:selectorString];
|
||||||
|
if(index == NSNotFound) {
|
||||||
|
// Test for default Actions?
|
||||||
|
return MPUnkownAction;
|
||||||
|
}
|
||||||
|
NSArray *keys = [[self _actionDictionary] allKeysForObject:selectorString];
|
||||||
|
NSAssert([keys count] == 1, @"There should only be one object for the specified key");
|
||||||
|
return [[keys lastObject] integerValue];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
27
MacPass/MPAddEntryContextMenuDelegate.h
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
//
|
||||||
|
// MPAddEntryContextMenuDelegate.h
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 30.07.13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
//
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
@interface MPAddEntryContextMenuDelegate : NSObject <NSMenuDelegate>
|
||||||
|
|
||||||
|
@end
|
||||||
63
MacPass/MPAddEntryContextMenuDelegate.m
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
//
|
||||||
|
// MPAddEntryContextMenuDelegate.m
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 30.07.13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
//
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "MPAddEntryContextMenuDelegate.h"
|
||||||
|
#import "MPDocument.h"
|
||||||
|
#import "MPDocumentWindowController.h"
|
||||||
|
#import "MPActionHelper.h"
|
||||||
|
|
||||||
|
#import "KPKEntry.h"
|
||||||
|
#import "KPKGroup.h"
|
||||||
|
|
||||||
|
#define EDIT_TEMPLATES_ITEM_TAG 10;
|
||||||
|
|
||||||
|
@implementation MPAddEntryContextMenuDelegate
|
||||||
|
|
||||||
|
- (void)menuNeedsUpdate:(NSMenu *)menu {
|
||||||
|
/*
|
||||||
|
The Method is rather brute force
|
||||||
|
It's possible nicer to cache the entries and just update
|
||||||
|
the menu entries, that actually need updating
|
||||||
|
*/
|
||||||
|
MPDocument *document = [[NSDocumentController sharedDocumentController] currentDocument];
|
||||||
|
if(!document) {
|
||||||
|
[menu removeAllItems];
|
||||||
|
}
|
||||||
|
[menu removeAllItems];
|
||||||
|
[menu addItemWithTitle:NSLocalizedString(@"EDIT_TEMPLATE_GROUP", "") action:[MPActionHelper actionOfType:MPActionEditTemplateGroup] keyEquivalent:@""];
|
||||||
|
|
||||||
|
[menu addItem:[NSMenuItem separatorItem]];
|
||||||
|
for(KPKEntry *entry in [document.templates childEntries]) {
|
||||||
|
NSString *templateMask = NSLocalizedString(@"NEW_ENTRY_WITH_TEMPLATE_%@", "");
|
||||||
|
NSMenuItem *templateItem = [[NSMenuItem allocWithZone:[NSMenu menuZone]] initWithTitle:[NSString stringWithFormat:templateMask, entry.title]
|
||||||
|
action:@selector(createEntryFromTemplate:)
|
||||||
|
keyEquivalent:@""];
|
||||||
|
[templateItem setRepresentedObject:entry.uuid];
|
||||||
|
[menu addItem:templateItem];
|
||||||
|
}
|
||||||
|
/* If there are no entries, add a note as disabled menu item */
|
||||||
|
if([[menu itemArray] count] == 2) {
|
||||||
|
[menu addItemWithTitle:NSLocalizedString(@"NO_TEMPLATES", "") action:NULL keyEquivalent:@""];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
@@ -5,14 +5,42 @@
|
|||||||
// Created by Michael Starke on 19.07.12.
|
// Created by Michael Starke on 19.07.12.
|
||||||
// Copyright (c) 2012 HicknHack Software GmbH. All rights reserved.
|
// Copyright (c) 2012 HicknHack Software GmbH. All rights reserved.
|
||||||
//
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
//
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
#import <Cocoa/Cocoa.h>
|
||||||
|
|
||||||
@interface MPAppDelegate : NSObject <NSApplicationDelegate>
|
FOUNDATION_EXTERN NSString *const MPDidChangeStoredKeyFilesSettings;
|
||||||
|
|
||||||
|
@interface MPAppDelegate : NSObject <NSApplicationDelegate, NSMenuDelegate>
|
||||||
|
|
||||||
@property (strong) IBOutlet NSWindow *passwordCreatorWindow;
|
@property (strong) IBOutlet NSWindow *passwordCreatorWindow;
|
||||||
|
@property (strong) IBOutlet NSWindow *welcomeWindow;
|
||||||
|
@property (weak) IBOutlet NSMenuItem *saveMenuItem;
|
||||||
|
@property (nonatomic, assign) BOOL isAllowedToStoreKeyFile;
|
||||||
|
|
||||||
|
- (IBAction)showPreferences:(id)sender;
|
||||||
- (IBAction)showPasswordCreator:(id)sender;
|
- (IBAction)showPasswordCreator:(id)sender;
|
||||||
|
- (IBAction)createNewDatabase:(id)sender;
|
||||||
|
- (IBAction)openDatabase:(id)sender;
|
||||||
|
/**
|
||||||
|
* Clears the stored key files for any documents.
|
||||||
|
* @param sender sender of this action
|
||||||
|
*/
|
||||||
|
- (IBAction)clearRememberdKeyFiles:(id)sender;
|
||||||
|
|
||||||
|
|
||||||
- (NSString *)applicationName;
|
- (NSString *)applicationName;
|
||||||
- (void)lockAllDocuments;
|
- (void)lockAllDocuments;
|
||||||
|
|||||||
@@ -5,54 +5,164 @@
|
|||||||
// Created by Michael Starke on 19.07.12.
|
// Created by Michael Starke on 19.07.12.
|
||||||
// Copyright (c) 2012 HicknHack Software GmbH. All rights reserved.
|
// Copyright (c) 2012 HicknHack Software GmbH. All rights reserved.
|
||||||
//
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
//
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
#import "MPAppDelegate.h"
|
#import "MPAppDelegate.h"
|
||||||
|
|
||||||
#import "MPSettingsWindowController.h"
|
#import "MPSettingsWindowController.h"
|
||||||
#import "MPPasswordCreatorViewController.h"
|
#import "MPPasswordCreatorViewController.h"
|
||||||
#import "MPSettingsHelper.h"
|
#import "MPSettingsHelper.h"
|
||||||
#import "MPUppercaseStringValueTransformer.h"
|
|
||||||
#import "MPStringLengthValueTransformer.h"
|
#import "MPStringLengthValueTransformer.h"
|
||||||
|
#import "MPValueTransformerHelper.h"
|
||||||
#import "MPServerDaemon.h"
|
#import "MPServerDaemon.h"
|
||||||
#import "MPLockDaemon.h"
|
#import "MPLockDaemon.h"
|
||||||
|
#import "MPAutotypeDaemon.h"
|
||||||
#import "MPDocumentWindowController.h"
|
#import "MPDocumentWindowController.h"
|
||||||
|
|
||||||
|
#import "MPDocument.h"
|
||||||
|
#import "KPKCompositeKey.h"
|
||||||
|
|
||||||
|
NSString *const MPDidChangeStoredKeyFilesSettings = @"com.hicknhack.macpass.MPDidChangeStoredKeyFilesSettings";
|
||||||
|
|
||||||
@interface MPAppDelegate () {
|
@interface MPAppDelegate () {
|
||||||
@private
|
@private
|
||||||
MPServerDaemon *serverDaemon;
|
MPServerDaemon *serverDaemon;
|
||||||
MPLockDaemon *lockDaemon;
|
MPLockDaemon *lockDaemon;
|
||||||
|
MPAutotypeDaemon *autotypeDaemon;
|
||||||
|
BOOL _restoredWindows; // YES if windows where restored at launch
|
||||||
|
BOOL _shouldOpenFile; // YES if app was started to open a
|
||||||
}
|
}
|
||||||
|
|
||||||
@property (strong, nonatomic) MPSettingsWindowController *settingsController;
|
@property (strong, nonatomic) MPSettingsWindowController *settingsController;
|
||||||
@property (strong, nonatomic) MPPasswordCreatorViewController *passwordCreatorController;
|
@property (strong, nonatomic) MPPasswordCreatorViewController *passwordCreatorController;
|
||||||
|
|
||||||
- (IBAction)showPreferences:(id)sender;
|
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@implementation MPAppDelegate
|
@implementation MPAppDelegate
|
||||||
|
|
||||||
+ (void)initialize {
|
+ (void)initialize {
|
||||||
[MPSettingsHelper setupDefaults];
|
[MPSettingsHelper setupDefaults];
|
||||||
[MPUppercaseStringValueTransformer registerTransformer];
|
[MPSettingsHelper migrateDefaults];
|
||||||
[MPStringLengthValueTransformer registerTransformer];
|
[MPStringLengthValueTransformer registerTransformer];
|
||||||
|
[MPValueTransformerHelper registerValueTransformer];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)dealloc {
|
||||||
|
[self unbind:@"isAllowedToStoreKeyFile"];
|
||||||
|
[[NSNotificationCenter defaultCenter] removeObserver:self];
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma mark Properties
|
||||||
|
- (void)setIsAllowedToStoreKeyFile:(BOOL)isAllowedToStoreKeyFile {
|
||||||
|
if(_isAllowedToStoreKeyFile != isAllowedToStoreKeyFile) {
|
||||||
|
_isAllowedToStoreKeyFile = isAllowedToStoreKeyFile;
|
||||||
|
/* cleanup on disable */
|
||||||
|
if(!self.isAllowedToStoreKeyFile) {
|
||||||
|
[self clearRememberdKeyFiles:nil];
|
||||||
|
}
|
||||||
|
/* Inform anyone that might be interested that we can now no longer/ or can use keyfiles */
|
||||||
|
[[NSNotificationCenter defaultCenter] postNotificationName:MPDidChangeStoredKeyFilesSettings object:self];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)awakeFromNib {
|
||||||
|
_isAllowedToStoreKeyFile = NO;
|
||||||
|
/* Update the … at the save menu */
|
||||||
|
[[self.saveMenuItem menu] setDelegate:self];
|
||||||
|
|
||||||
|
/* We want to inform anyone about the changes to keyFile remmebering */
|
||||||
|
[self bind:@"isAllowedToStoreKeyFile"
|
||||||
|
toObject:[NSUserDefaultsController sharedUserDefaultsController]
|
||||||
|
withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyRememberKeyFilesForDatabases]
|
||||||
|
options:nil];
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma mark -
|
||||||
|
#pragma mark NSApplicationDelegate
|
||||||
|
|
||||||
|
- (BOOL)applicationShouldHandleReopen:(NSApplication *)sender hasVisibleWindows:(BOOL)flag {
|
||||||
|
if(!flag) {
|
||||||
|
BOOL reopen = [[NSUserDefaults standardUserDefaults] boolForKey:kMPSettingsKeyReopenLastDatabaseOnLaunch];
|
||||||
|
BOOL showWelcomeScreen = YES;
|
||||||
|
if(reopen) {
|
||||||
|
showWelcomeScreen = ![self _reopenLastDocument];
|
||||||
|
}
|
||||||
|
if(showWelcomeScreen) {
|
||||||
|
[self _showWelcomeWindow];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return YES;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender {
|
- (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender {
|
||||||
return [[NSUserDefaults standardUserDefaults] boolForKey:kMPSettingsKeyOpenEmptyDatabaseOnLaunch];
|
return [[NSUserDefaults standardUserDefaults] boolForKey:kMPSettingsKeyOpenEmptyDatabaseOnLaunch];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
- (void)applicationWillFinishLaunching:(NSNotification *)notification {
|
||||||
|
_restoredWindows = NO;
|
||||||
|
_shouldOpenFile = NO;
|
||||||
|
[[NSNotificationCenter defaultCenter] addObserver:self
|
||||||
|
selector:@selector(_applicationDidFinishRestoringWindows:)
|
||||||
|
name:NSApplicationDidFinishRestoringWindowsNotification
|
||||||
|
object:nil];
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)application:(NSApplication *)sender openFile:(NSString *)filename {
|
||||||
|
_shouldOpenFile = YES;
|
||||||
|
NSURL *fileURL = [NSURL fileURLWithPath:filename];
|
||||||
|
[[NSDocumentController sharedDocumentController] openDocumentWithContentsOfURL:fileURL display:YES completionHandler:nil];
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
|
||||||
- (void)applicationDidFinishLaunching:(NSNotification *)notification {
|
- (void)applicationDidFinishLaunching:(NSNotification *)notification {
|
||||||
serverDaemon = [[MPServerDaemon alloc] init];
|
serverDaemon = [[MPServerDaemon alloc] init];
|
||||||
lockDaemon = [[MPLockDaemon alloc] init];
|
lockDaemon = [[MPLockDaemon alloc] init];
|
||||||
|
autotypeDaemon = [[MPAutotypeDaemon alloc] init];
|
||||||
|
|
||||||
|
BOOL reopen = [[NSUserDefaults standardUserDefaults] boolForKey:kMPSettingsKeyReopenLastDatabaseOnLaunch];
|
||||||
|
BOOL showWelcomeScreen = !_restoredWindows && !_shouldOpenFile;
|
||||||
|
if(reopen && !_restoredWindows && !_shouldOpenFile) {
|
||||||
|
showWelcomeScreen = ![self _reopenLastDocument];
|
||||||
|
}
|
||||||
|
if(showWelcomeScreen) {
|
||||||
|
[self _showWelcomeWindow];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
- (NSString *)applicationName {
|
- (NSString *)applicationName {
|
||||||
return [[NSBundle mainBundle] infoDictionary][@"CFBundleName"];
|
return [[NSBundle mainBundle] infoDictionary][@"CFBundleName"];
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma mark Menu Actions
|
#pragma mark -
|
||||||
|
#pragma mark NSMenuDelegate
|
||||||
|
- (void)menuNeedsUpdate:(NSMenu *)menu {
|
||||||
|
if([self.saveMenuItem menu] != menu) {
|
||||||
|
return; // wrong menu
|
||||||
|
}
|
||||||
|
MPDocument *document = [[NSDocumentController sharedDocumentController] currentDocument];
|
||||||
|
BOOL displayDots = (document.fileURL == nil || !document.compositeKey.hasPasswordOrKeyFile);
|
||||||
|
NSString *saveTitle = displayDots ? NSLocalizedString(@"SAVE_WITH_DOTS", "") : NSLocalizedString(@"SAVE", "");
|
||||||
|
[self.saveMenuItem setTitle:saveTitle];
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma mark -
|
||||||
|
#pragma mark Actions
|
||||||
- (void)showPreferences:(id)sender {
|
- (void)showPreferences:(id)sender {
|
||||||
if(self.settingsController == nil) {
|
if(self.settingsController == nil) {
|
||||||
self.settingsController = [[MPSettingsWindowController alloc] init];
|
self.settingsController = [[MPSettingsWindowController alloc] init];
|
||||||
@@ -67,23 +177,22 @@
|
|||||||
if(!self.passwordCreatorController) {
|
if(!self.passwordCreatorController) {
|
||||||
self.passwordCreatorController = [[MPPasswordCreatorViewController alloc] init];
|
self.passwordCreatorController = [[MPPasswordCreatorViewController alloc] init];
|
||||||
NSView *creatorView = [_passwordCreatorController view];
|
NSView *creatorView = [_passwordCreatorController view];
|
||||||
//NSView *contentView = [_passwordCreatorWindow contentView];
|
|
||||||
[self.passwordCreatorWindow setContentView:creatorView];
|
[self.passwordCreatorWindow setContentView:creatorView];
|
||||||
//[contentView addSubview:creatorView];
|
|
||||||
// [[_passwordCreatorWindow contentView] addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[creatorView]|"
|
|
||||||
// options:0
|
|
||||||
// metrics:nil
|
|
||||||
// views:NSDictionaryOfVariableBindings(creatorView)]];
|
|
||||||
// [[_passwordCreatorWindow contentView] addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[creatorView]|"
|
|
||||||
// options:0
|
|
||||||
// metrics:nil
|
|
||||||
// views:NSDictionaryOfVariableBindings(creatorView)]];
|
|
||||||
// [contentView layoutSubtreeIfNeeded];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[self.passwordCreatorWindow makeKeyAndOrderFront:self.passwordCreatorWindow];
|
[self.passwordCreatorWindow makeKeyAndOrderFront:self.passwordCreatorWindow];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)createNewDatabase:(id)sender {
|
||||||
|
[self.welcomeWindow orderOut:sender];
|
||||||
|
[[NSDocumentController sharedDocumentController] newDocument:sender];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)openDatabase:(id)sender {
|
||||||
|
[self.welcomeWindow orderOut:sender];
|
||||||
|
[[NSDocumentController sharedDocumentController] openDocument:sender];
|
||||||
|
}
|
||||||
|
|
||||||
- (void)lockAllDocuments {
|
- (void)lockAllDocuments {
|
||||||
for(NSDocument *document in [[NSDocumentController sharedDocumentController] documents]) {
|
for(NSDocument *document in [[NSDocumentController sharedDocumentController] documents]) {
|
||||||
NSArray *windowControllers = [document windowControllers];
|
NSArray *windowControllers = [document windowControllers];
|
||||||
@@ -93,4 +202,52 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)clearRememberdKeyFiles:(id)sender {
|
||||||
|
[[NSUserDefaults standardUserDefaults] removeObjectForKey:kMPSettingsKeyRememeberdKeysForDatabases];
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma mark -
|
||||||
|
#pragma mark Private Helper
|
||||||
|
- (void)_applicationDidFinishRestoringWindows:(NSNotification *)notification {
|
||||||
|
NSDocumentController *documentController = [NSDocumentController sharedDocumentController];
|
||||||
|
NSArray *documents = [documentController documents];
|
||||||
|
_restoredWindows = [documents count] > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)_showWelcomeWindow {
|
||||||
|
[self _loadWelcomeWindow];
|
||||||
|
[self.welcomeWindow makeKeyAndOrderFront:nil];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)_loadWelcomeWindow {
|
||||||
|
if(!_welcomeWindow) {
|
||||||
|
NSArray *topLevelObject;
|
||||||
|
[[NSBundle mainBundle] loadNibNamed:@"WelcomeWindow" owner:self topLevelObjects:&topLevelObject];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)_reopenLastDocument {
|
||||||
|
NSDocumentController *documentController = [NSDocumentController sharedDocumentController];
|
||||||
|
NSArray *documents = [documentController documents];
|
||||||
|
if([documents count] > 0) {
|
||||||
|
return YES; // The document is already open
|
||||||
|
}
|
||||||
|
NSArray *recentDocuments = [[NSDocumentController sharedDocumentController] recentDocumentURLs];
|
||||||
|
NSURL *documentUrl = nil;
|
||||||
|
if([recentDocuments count] > 0) {
|
||||||
|
documentUrl = recentDocuments[0];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
NSString *lastPath = [[NSUserDefaults standardUserDefaults] stringForKey:kMPSettingsKeyLastDatabasePath];
|
||||||
|
documentUrl =[NSURL URLWithString:lastPath];
|
||||||
|
}
|
||||||
|
BOOL isFileURL = [documentUrl isFileURL];
|
||||||
|
if(isFileURL) {
|
||||||
|
[documentController openDocumentWithContentsOfURL:documentUrl
|
||||||
|
display:YES
|
||||||
|
completionHandler:^(NSDocument *document, BOOL documentWasAlreadyOpen, NSError *error) {}];
|
||||||
|
}
|
||||||
|
return isFileURL;
|
||||||
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -7,8 +7,8 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
#import <Foundation/Foundation.h>
|
||||||
#import "MPServerRequestHandler.h"
|
#import "MPServerRequestHandling.h"
|
||||||
|
|
||||||
@interface MPAssociateRequestHandler : NSObject <MPServerRequestHandler>
|
@interface MPAssociateRequestHandler : NSObject <MPServerRequestHandling>
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
27
MacPass/MPAttachmentTableDataSource.h
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
//
|
||||||
|
// MPAttachmentTableDataSource.h
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 01.08.13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
//
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
@interface MPAttachmentTableDataSource : NSObject <NSTableViewDataSource>
|
||||||
|
|
||||||
|
@end
|
||||||
91
MacPass/MPAttachmentTableDataSource.m
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
//
|
||||||
|
// MPAttachmentTableDataSource.m
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 01.08.13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
//
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "MPAttachmentTableDataSource.h"
|
||||||
|
#import "MPDocument+Attachment.h"
|
||||||
|
|
||||||
|
@implementation MPAttachmentTableDataSource
|
||||||
|
|
||||||
|
- (NSDragOperation)tableView:(NSTableView *)tableView validateDrop:(id<NSDraggingInfo>)info proposedRow:(NSInteger)row proposedDropOperation:(NSTableViewDropOperation)dropOperation {
|
||||||
|
NSPasteboard *draggingPasteBoard = [info draggingPasteboard];
|
||||||
|
NSArray *classArray = [NSArray arrayWithObject:[NSURL class]];
|
||||||
|
NSArray *arrayOfURLs = [draggingPasteBoard readObjectsForClasses:classArray options:nil];
|
||||||
|
NSUInteger numberOfDirectories = 0;
|
||||||
|
for(NSURL *url in arrayOfURLs) {
|
||||||
|
if([url isFileURL] || [url isFileReferenceURL]) {
|
||||||
|
NSError *error = nil;
|
||||||
|
NSDictionary *resourceKeys = [url resourceValuesForKeys:@[NSURLIsDirectoryKey] error:&error];
|
||||||
|
if( [resourceKeys[ NSURLIsDirectoryKey ] boolValue] == YES ) {
|
||||||
|
numberOfDirectories++;
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
return NSDragOperationNone;
|
||||||
|
}
|
||||||
|
if(numberOfDirectories == [arrayOfURLs count]) {
|
||||||
|
return NSDragOperationNone;
|
||||||
|
}
|
||||||
|
return NSDragOperationCopy;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)tableView:(NSTableView *)tableView acceptDrop:(id<NSDraggingInfo>)info row:(NSInteger)row dropOperation:(NSTableViewDropOperation)dropOperation {
|
||||||
|
MPDocument *document = [[[tableView window] windowController] document];
|
||||||
|
id entry = document.selectedEntry;
|
||||||
|
|
||||||
|
NSPasteboard *draggingPasteBoard = [info draggingPasteboard];
|
||||||
|
NSArray *classArray = [NSArray arrayWithObject:[NSURL class]];
|
||||||
|
NSArray *arrayOfURLs = [draggingPasteBoard readObjectsForClasses:classArray options:nil];
|
||||||
|
|
||||||
|
for(NSURL *fileUrl in arrayOfURLs) {
|
||||||
|
[document addAttachment:fileUrl toEntry:entry];
|
||||||
|
}
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
- (BOOL)tableView:(NSTableView *)tableView writeRowsWithIndexes:(NSIndexSet *)rowIndexes toPasteboard:(NSPasteboard *)pboard {
|
||||||
|
return NO;
|
||||||
|
|
||||||
|
/*
|
||||||
|
NSString *extension;
|
||||||
|
|
||||||
|
if([rowIndexes count] != 1) {
|
||||||
|
return NO; // We only work with one file at a time
|
||||||
|
}
|
||||||
|
MPDocument *document = [[[tableView window] windowController] document];
|
||||||
|
id entry = document.selectedEntry;
|
||||||
|
NSUInteger row = [rowIndexes lastIndex];
|
||||||
|
if([entry isKindOfClass:[Kdb3Entry class]]) {
|
||||||
|
Kdb3Entry *entryV3 = (Kdb3Entry *)entry;
|
||||||
|
extension = [entryV3.binaryDesc pathExtension];
|
||||||
|
}
|
||||||
|
else if([entry isKindOfClass:[Kdb4Entry class]]) {
|
||||||
|
Kdb4Entry *entryV4 = (Kdb4Entry *)entry;
|
||||||
|
BinaryRef *binaryRef = entryV4.binaries[row];
|
||||||
|
extension = [binaryRef.key pathExtension];
|
||||||
|
}
|
||||||
|
NSString *uti = CFBridgingRelease(UTTypeCreatePreferredIdentifierForTag( kUTTagClassFilenameExtension, (__bridge CFStringRef)(extension), NULL ));
|
||||||
|
|
||||||
|
[pboard setPropertyList:@[uti] forType:(NSString *)kPasteboardTypeFilePromiseContent];
|
||||||
|
[pboard setPropertyList:@[uti] forType:(NSString *)kPasteboardTypeFileURLPromise ];
|
||||||
|
return YES;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
29
MacPass/MPAttachmentTableViewDelegate.h
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
//
|
||||||
|
// MPAttachmentTableViewDelegate.h
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 17.07.13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
//
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
@interface MPAttachmentTableViewDelegate : NSObject <NSTableViewDelegate>
|
||||||
|
|
||||||
|
@property (nonatomic, weak) id viewController;
|
||||||
|
|
||||||
|
@end
|
||||||
79
MacPass/MPAttachmentTableViewDelegate.m
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
//
|
||||||
|
// MPAttachmentTableViewDelegate.m
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 17.07.13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
//
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "MPAttachmentTableViewDelegate.h"
|
||||||
|
|
||||||
|
#import "MPDocument.h"
|
||||||
|
#import "MPEntryInspectorViewController.h"
|
||||||
|
#import "MPSelectedAttachmentTableCellView.h"
|
||||||
|
|
||||||
|
#import "KPKEntry.h"
|
||||||
|
#import "KPKBinary.h"
|
||||||
|
|
||||||
|
#import "HNHTableRowView.h"
|
||||||
|
|
||||||
|
@implementation MPAttachmentTableViewDelegate
|
||||||
|
|
||||||
|
- (void)tableViewSelectionDidChange:(NSNotification *)notification {
|
||||||
|
NSTableView *tableView = [notification object];
|
||||||
|
MPDocument *document = [[[tableView window] windowController] document];
|
||||||
|
NSIndexSet *allColumns = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, [[tableView tableColumns] count])];
|
||||||
|
NSIndexSet *indexSet = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, [document.selectedEntry.binaries count] )];
|
||||||
|
[tableView reloadDataForRowIndexes:indexSet columnIndexes:allColumns];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
|
||||||
|
/* Decide what view to use */
|
||||||
|
MPDocument *document = [[[tableView window] windowController] document];
|
||||||
|
NSIndexSet *selectedIndexes = [tableView selectedRowIndexes];
|
||||||
|
NSTableCellView *view;
|
||||||
|
if([selectedIndexes containsIndex:row]) {
|
||||||
|
MPSelectedAttachmentTableCellView *cellView = [tableView makeViewWithIdentifier:@"SelectedCell" owner:tableView];
|
||||||
|
[cellView.saveButton setTag:row];
|
||||||
|
[cellView.saveButton setAction:@selector(saveAttachment:)];
|
||||||
|
[cellView.saveButton setTarget:self.viewController];
|
||||||
|
[cellView.removeButton setTag:row];
|
||||||
|
[cellView.removeButton setAction:@selector(removeAttachment:)];
|
||||||
|
[cellView.removeButton setTarget:nil];
|
||||||
|
[cellView.removeButton setTarget:self.viewController];
|
||||||
|
view = cellView;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
view = [tableView makeViewWithIdentifier:@"NormalCell" owner:tableView];
|
||||||
|
}
|
||||||
|
/* Bind view */
|
||||||
|
KPKEntry *entry = document.selectedEntry;
|
||||||
|
NSAssert([entry.binaries count] > row, @"Indes needs to be valid for binaries");
|
||||||
|
KPKBinary *binary = entry.binaries[row];
|
||||||
|
[[view textField] bind:NSValueBinding toObject:binary withKeyPath:@"name" options:nil];
|
||||||
|
[[view imageView] setImage:[[NSWorkspace sharedWorkspace] iconForFileType:[binary.name pathExtension]]];
|
||||||
|
return view;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSTableRowView *)tableView:(NSTableView *)tableView rowViewForRow:(NSInteger)row {
|
||||||
|
HNHTableRowView *view = nil;
|
||||||
|
view = [[HNHTableRowView alloc] init];
|
||||||
|
view.selectionCornerRadius = 7;
|
||||||
|
return view;
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
51
MacPass/MPAutotypeCommand.h
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
//
|
||||||
|
// MPAutotypeCommand.h
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 10/11/13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
@class MPAutotypeContext;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Autotype command reperesent a capsualted Action that was determined by interpreting
|
||||||
|
* Autotype field for a given entry. This is a class cluster and schould be considered the sole
|
||||||
|
* enty point for creating AutotypeCommands.
|
||||||
|
*/
|
||||||
|
@interface MPAutotypeCommand : NSObject
|
||||||
|
|
||||||
|
@property (readonly, strong) MPAutotypeContext *context;
|
||||||
|
|
||||||
|
|
||||||
|
+ (NSArray *)commandsForContext:(MPAutotypeContext *)context;
|
||||||
|
/**
|
||||||
|
* Sends a KeyPress Event with the supplied modifier flags and Keycode
|
||||||
|
* Any existing modifiers will be disabled for this event. If the user
|
||||||
|
* presses any key, those will be ignored during this event
|
||||||
|
*
|
||||||
|
* @param keyCode virtual KeyCode to be sent
|
||||||
|
* @param flags modifier flags for the key press event
|
||||||
|
*/
|
||||||
|
- (void)sendPressKey:(CGKeyCode)keyCode modifierFlags:(CGEventFlags)flags;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convenience message to be sent for executing a simple paste command
|
||||||
|
*/
|
||||||
|
- (void)sendPasteKeyCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Exectues the Autotype Command. This will be called by the autotype daemon.
|
||||||
|
*/
|
||||||
|
- (void)execute;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validates the command and returns the result
|
||||||
|
*
|
||||||
|
* @return YES if the command is valid and can be executed. NO otherwise
|
||||||
|
*/
|
||||||
|
- (BOOL)isValid;
|
||||||
|
|
||||||
|
@end
|
||||||
159
MacPass/MPAutotypeCommand.m
Normal file
@@ -0,0 +1,159 @@
|
|||||||
|
//
|
||||||
|
// MPAutotypeCommand.m
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 10/11/13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "MPAutotypeCommand.h"
|
||||||
|
|
||||||
|
#import "MPAutotypePaste.h"
|
||||||
|
#import "MPAutotypeKeyPress.h"
|
||||||
|
|
||||||
|
#import "MPAutotypeContext.h"
|
||||||
|
#import "MPKeyMapper.h"
|
||||||
|
|
||||||
|
#import "KPKAutotypeCommands.h"
|
||||||
|
|
||||||
|
#import "NSString+Commands.h"
|
||||||
|
|
||||||
|
#import <Carbon/Carbon.h>
|
||||||
|
|
||||||
|
@implementation MPAutotypeCommand
|
||||||
|
|
||||||
|
+ (NSDictionary *)keypressCommands {
|
||||||
|
static NSDictionary *keypressCommands;
|
||||||
|
static dispatch_once_t onceToken;
|
||||||
|
dispatch_once(&onceToken, ^{
|
||||||
|
keypressCommands = @{ kKPKAutotypeBackspace : @(kVK_Delete),
|
||||||
|
//kKPKAutotypeBreak : @0,
|
||||||
|
kKPKAutotypeCapsLock : @(kVK_CapsLock),
|
||||||
|
kKPKAutotypeDelete : @(kVK_ForwardDelete),
|
||||||
|
kKPKAutotypeDown : @(kVK_DownArrow),
|
||||||
|
kKPKAutotypeEnd : @(kVK_End),
|
||||||
|
kKPKAutotypeEnter : @(kVK_Return),
|
||||||
|
kKPKAutotypeEscape : @(kVK_Escape),
|
||||||
|
kKPKAutotypeHelp : @(kVK_Help),
|
||||||
|
kKPKAutotypeHome : @(kVK_Home),
|
||||||
|
//kKPKAutotypeInsert : @(),
|
||||||
|
kKPKAutotypeLeft : @(kVK_LeftArrow),
|
||||||
|
kKPKAutotypeLeftWindows : @(kVK_Command),
|
||||||
|
//kKPKAutotypeNumlock : @(),
|
||||||
|
kKPKAutotypePageDown : @(kVK_PageDown),
|
||||||
|
kKPKAutotypePageUp : @(kVK_PageUp),
|
||||||
|
//kKPKAutotypePrintScreen : @(),
|
||||||
|
kKPKAutotypeRight : @(kVK_RightArrow),
|
||||||
|
kKPKAutotypeRightWindows : @(kVK_Command),
|
||||||
|
//kKPKAutotypeScrollLock : @(),
|
||||||
|
kKPKAutotypeSpace : @(kVK_Space),
|
||||||
|
kKPKAutotypeTab : @(kVK_Tab),
|
||||||
|
kKPKAutotypeUp : @(kVK_UpArrow),
|
||||||
|
kKPKAutotypeWindows : @(kVK_Command)
|
||||||
|
};
|
||||||
|
});
|
||||||
|
return keypressCommands;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Mapping for modifier to CGEventFlags.
|
||||||
|
* @note KeypassControl is mapped to command!
|
||||||
|
*
|
||||||
|
* @return dictionary with commands as keys and CGEventFlags as wrapped values
|
||||||
|
*/
|
||||||
|
+ (NSDictionary *)modifierCommands {
|
||||||
|
static NSDictionary *modifierCommands;
|
||||||
|
static dispatch_once_t onceToken;
|
||||||
|
dispatch_once(&onceToken, ^{
|
||||||
|
modifierCommands = @{
|
||||||
|
kKPKAutotypeAlt : @(kCGEventFlagMaskAlternate),
|
||||||
|
kKPKAutotypeControl : @(kCGEventFlagMaskCommand),
|
||||||
|
kKPKAutotypeShift : @(kCGEventFlagMaskShift)
|
||||||
|
};
|
||||||
|
});
|
||||||
|
return modifierCommands;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ (NSArray *)commandsForContext:(MPAutotypeContext *)context {
|
||||||
|
if(![context isValid]) {
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
NSUInteger reserverd = [context.normalizedCommand length] / 4;
|
||||||
|
NSMutableArray *commands = [[NSMutableArray alloc] initWithCapacity:reserverd];
|
||||||
|
NSMutableArray __block *commandRanges = [[NSMutableArray alloc] initWithCapacity:reserverd];
|
||||||
|
NSRegularExpression *commandRegExp = [[NSRegularExpression alloc] initWithPattern:@"\\{[^\\}]+\\}" options:NSRegularExpressionCaseInsensitive error:0];
|
||||||
|
NSAssert(commandRegExp, @"RegExp is constant. Has to work all the time");
|
||||||
|
[commandRegExp enumerateMatchesInString:context.normalizedCommand options:0 range:NSMakeRange(0, [context.normalizedCommand length]) usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop) {
|
||||||
|
@autoreleasepool {
|
||||||
|
[commandRanges addObject:[NSValue valueWithRange:result.range]];
|
||||||
|
}
|
||||||
|
}];
|
||||||
|
NSUInteger lastLocation = 0;
|
||||||
|
MPAutotypeKeyPress *keyPress;
|
||||||
|
for(NSValue *rangeValue in commandRanges) {
|
||||||
|
NSRange commandRange = [rangeValue rangeValue];
|
||||||
|
/* All non-commands will get translated into paste commands */
|
||||||
|
if(commandRange.location > lastLocation) {
|
||||||
|
/* If were modifiers we need to use the next single stroke and make update the modifier command */
|
||||||
|
if(keyPress) {
|
||||||
|
}
|
||||||
|
NSString *pasteValue = [context.normalizedCommand substringWithRange:NSMakeRange(lastLocation, commandRange.location - lastLocation)];
|
||||||
|
// Determin if it's amodifier key, and collect them!
|
||||||
|
[self appendPasteCommandForContent:pasteValue toCommands:commands];
|
||||||
|
}
|
||||||
|
NSString *commandString = [context.normalizedCommand substringWithRange:commandRange];
|
||||||
|
[self appendCommandForString:commandString toCommands:commands];
|
||||||
|
lastLocation = commandRange.location;
|
||||||
|
}
|
||||||
|
return commands;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ (void)appendPasteCommandForContent:(NSString *)pasteContent toCommands:(NSMutableArray *)commands {
|
||||||
|
if(pasteContent) {
|
||||||
|
MPAutotypePaste *pasteCommand = [[MPAutotypePaste alloc] initWithString:pasteContent];
|
||||||
|
[commands addObject:pasteCommand];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ (void)appendCommandForString:(NSString *)commandString toCommands:(NSMutableArray *)commands {
|
||||||
|
MPAutotypeCommand *command;
|
||||||
|
if(!commandString) {
|
||||||
|
NSDictionary *modifier = [self modifierCommands];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)sendPressKey:(CGKeyCode)keyCode modifierFlags:(CGEventFlags)flags {
|
||||||
|
CGEventRef pressKey = CGEventCreateKeyboardEvent (NULL, keyCode, YES);
|
||||||
|
CGEventRef releaseKey = CGEventCreateKeyboardEvent (NULL, keyCode, NO);
|
||||||
|
|
||||||
|
/* The modifer Masks might be set, reset them */
|
||||||
|
CGEventSetFlags(pressKey,0);
|
||||||
|
CGEventSetFlags(releaseKey, 0);
|
||||||
|
/* Set the modifiers to the ones we want */
|
||||||
|
CGEventSetFlags(pressKey,flags);
|
||||||
|
CGEventSetFlags(releaseKey, flags);
|
||||||
|
|
||||||
|
/* Send the event */
|
||||||
|
CGEventPost(kCGSessionEventTap, pressKey);
|
||||||
|
CGEventPost(kCGSessionEventTap, releaseKey);
|
||||||
|
|
||||||
|
CFRelease(pressKey);
|
||||||
|
CFRelease(releaseKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)sendPasteKeyCode {
|
||||||
|
CGKeyCode keyCode = [MPKeyMapper keyCodeForCharacter:@"V"];
|
||||||
|
if(keyCode == kMPUnknownKeyCode) {
|
||||||
|
return; // We did not find a mapping for "V"
|
||||||
|
}
|
||||||
|
[self sendPressKey:keyCode modifierFlags:kCGEventFlagMaskCommand];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)execute {
|
||||||
|
NSAssert(NO, @"Not Implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)isValid {
|
||||||
|
return NO; // No valid command
|
||||||
|
}
|
||||||
|
@end
|
||||||
50
MacPass/MPAutotypeContext.h
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
//
|
||||||
|
// MPAutotypeSequence.h
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 29/11/13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
@class KPKEntry;
|
||||||
|
@class KPKWindowAssociation;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Context for a autotype command run.
|
||||||
|
* It stores the Entry and corresponding sequence to use for autotyping
|
||||||
|
*/
|
||||||
|
@interface MPAutotypeContext : NSObject <NSCopying>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The entry associated with the command sequence.
|
||||||
|
*/
|
||||||
|
@property (nonatomic, strong) KPKEntry *entry;
|
||||||
|
/**
|
||||||
|
* The Autotype command as it's supplied by the entry
|
||||||
|
*/
|
||||||
|
@property (nonatomic, readonly, copy) NSString *command;
|
||||||
|
@property (nonatomic, readonly, copy) NSString *normalizedCommand;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Designated initializer
|
||||||
|
*
|
||||||
|
* @param entry Entry to use
|
||||||
|
* @param sequence Keystroke Sequence to use
|
||||||
|
*
|
||||||
|
* @return AutotypeSequnce with the entry and keystroke in places
|
||||||
|
*/
|
||||||
|
- (instancetype)initWithEntry:(KPKEntry *)entry andSequence:(NSString *)sequence;
|
||||||
|
- (instancetype)initWithDefaultSequenceForEntry:(KPKEntry *)entry;
|
||||||
|
- (instancetype)initWithWindowAssociation:(KPKWindowAssociation *)association;
|
||||||
|
/**
|
||||||
|
* Returns YES if the given sequence is valid (currentyl only bracke missmatch is regarded as invalid
|
||||||
|
*
|
||||||
|
* @return YES if valid, NO otherwise
|
||||||
|
*/
|
||||||
|
- (BOOL)isValid;
|
||||||
|
|
||||||
|
- (NSString *)evaluatedCommand;
|
||||||
|
|
||||||
|
@end
|
||||||
57
MacPass/MPAutotypeContext.m
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
//
|
||||||
|
// MPAutotypeSequence.m
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 29/11/13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "MPAutotypeContext.h"
|
||||||
|
|
||||||
|
#import "KPKAutotype.h"
|
||||||
|
#import "KPKEntry.h"
|
||||||
|
#import "KPKWindowAssociation.h"
|
||||||
|
#import "NSString+Commands.h"
|
||||||
|
|
||||||
|
@implementation MPAutotypeContext
|
||||||
|
|
||||||
|
- (instancetype)initWithWindowAssociation:(KPKWindowAssociation *)association {
|
||||||
|
self = [self initWithEntry:association.autotype.entry andSequence:association.keystrokeSequence];
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (instancetype)initWithDefaultSequenceForEntry:(KPKEntry *)entry {
|
||||||
|
self = [self initWithEntry:entry andSequence:entry.autotype.defaultSequence];
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (instancetype)initWithEntry:(KPKEntry *)entry andSequence:(NSString *)sequence {
|
||||||
|
self = [super init];
|
||||||
|
if(self) {
|
||||||
|
_command = [sequence copy];
|
||||||
|
_entry = entry;
|
||||||
|
_normalizedCommand = [[sequence normalizedAutotypeSequence] copy];
|
||||||
|
}
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (id)copyWithZone:(NSZone *)zone {
|
||||||
|
MPAutotypeContext *copy = [[MPAutotypeContext alloc] initWithEntry:self.entry andSequence:self.command];
|
||||||
|
return copy;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
- (BOOL)isValid {
|
||||||
|
return (self.normalizedCommand != nil);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSString *)evaluatedCommand {
|
||||||
|
static NSString *evaluated;
|
||||||
|
if(!evaluated) {
|
||||||
|
NSString *placeholderFilled = [self.normalizedCommand evaluatePlaceholderWithEntry:self.entry];
|
||||||
|
evaluated = [placeholderFilled resolveReferencesWithTree:self.entry.tree];
|
||||||
|
}
|
||||||
|
return evaluated;
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
30
MacPass/MPAutotypeDaemon.h
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
//
|
||||||
|
// MPAutotypeDaemon.h
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 26.10.13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
@class KPKEntry;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The autotype daemon is repsonsible for registering the globa hotkey and to perform any autotype actions
|
||||||
|
*/
|
||||||
|
@interface MPAutotypeDaemon : NSObject
|
||||||
|
|
||||||
|
@property (strong) IBOutlet NSWindow *matchSelectionWindow;
|
||||||
|
@property (weak) IBOutlet NSPopUpButton *matchSelectionButton;
|
||||||
|
@property (weak) IBOutlet NSButton *performAutotypeButton;
|
||||||
|
|
||||||
|
- (void)exectureAutotypeForEntry:(KPKEntry *)entry withWindowTitle:(NSString *)title;
|
||||||
|
/**
|
||||||
|
* Called by the selection window to start the autotype sequence
|
||||||
|
*
|
||||||
|
* @param sender sender of the action.
|
||||||
|
*/
|
||||||
|
- (IBAction)executeAutotypeWithSelectedMatch:(id)sender;
|
||||||
|
|
||||||
|
@end
|
||||||
184
MacPass/MPAutotypeDaemon.m
Normal file
@@ -0,0 +1,184 @@
|
|||||||
|
//
|
||||||
|
// MPAutotypeDaemon.m
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 26.10.13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "MPAutotypeDaemon.h"
|
||||||
|
#import "MPDocument.h"
|
||||||
|
|
||||||
|
#import "MPDocument+Autotype.h"
|
||||||
|
#import "MPAutotypeCommand.h"
|
||||||
|
#import "MPAutotypeContext.h"
|
||||||
|
|
||||||
|
#import "MPPasteBoardController.h"
|
||||||
|
#import "MPSettingsHelper.h"
|
||||||
|
|
||||||
|
|
||||||
|
#import "KPKEntry.h"
|
||||||
|
|
||||||
|
#import "DDHotKeyCenter.h"
|
||||||
|
#import <Carbon/Carbon.h>
|
||||||
|
|
||||||
|
NSString *const kMPWindowTitleKey = @"windowTitle";
|
||||||
|
NSString *const kMPApplciationNameKey = @"applicationName";
|
||||||
|
|
||||||
|
@interface MPAutotypeDaemon ()
|
||||||
|
|
||||||
|
@property (nonatomic, assign) BOOL enabled;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation MPAutotypeDaemon
|
||||||
|
|
||||||
|
- (id)init {
|
||||||
|
self = [super init];
|
||||||
|
if (self) {
|
||||||
|
_enabled = NO;
|
||||||
|
[self bind:@"enabled"
|
||||||
|
toObject:[NSUserDefaultsController sharedUserDefaultsController]
|
||||||
|
withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyEnableGlobalAutotype]
|
||||||
|
options:nil];
|
||||||
|
}
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)dealloc {
|
||||||
|
[self unbind:@"enabled"];
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma mark Properties
|
||||||
|
- (void)setEnabled:(BOOL)enabled {
|
||||||
|
if(_enabled != enabled) {
|
||||||
|
_enabled = enabled;
|
||||||
|
//self.enabled ? [self _registerHotKey] : [self _unregisterHotKey];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)exectureAutotypeForEntry:(KPKEntry *)entry withWindowTitle:(NSString *)title {
|
||||||
|
NSAssert(NO,@"Not Implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)executeAutotypeWithSelectedMatch:(id)sender {
|
||||||
|
NSMenuItem *item = [self.matchSelectionButton selectedItem];
|
||||||
|
MPAutotypeContext *context = [item representedObject];
|
||||||
|
[self.matchSelectionWindow orderOut:self];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)_didPressHotKey {
|
||||||
|
NSArray *documents = [NSApp orderedDocuments];
|
||||||
|
MPDocument *currentDocument = nil;
|
||||||
|
for(MPDocument *openDocument in documents) {
|
||||||
|
if(NO == openDocument.encrypted) {
|
||||||
|
currentDocument = openDocument;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(currentDocument.encrypted) {
|
||||||
|
return; // No need to search in closed documents
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
Determine the window title of the current front most application
|
||||||
|
Start searching the db for the best fit (based on title, then on window associations
|
||||||
|
*/
|
||||||
|
NSDictionary *frontApplicationInfoDict = [self _frontMostApplicationInfoDict];
|
||||||
|
NSString *windowTitle = frontApplicationInfoDict[kMPWindowTitleKey];
|
||||||
|
NSString *applicationName = frontApplicationInfoDict[kMPApplciationNameKey];
|
||||||
|
NSLog(@"Looking for entries matching window title:%@ of applciation: %@", windowTitle, applicationName);
|
||||||
|
|
||||||
|
/*
|
||||||
|
Query the document to generate a autotype command list for the window title
|
||||||
|
We do not care where this came form, just get the autotype commands
|
||||||
|
*/
|
||||||
|
NSArray *autotypeCandidates = [currentDocument autotypContextsForWindowTitle:windowTitle];
|
||||||
|
NSUInteger candiates = [autotypeCandidates count];
|
||||||
|
if(candiates == 0) {
|
||||||
|
return; // No Entries found.
|
||||||
|
}
|
||||||
|
if(candiates > 1) {
|
||||||
|
[self _presentSelectionWindow:autotypeCandidates];
|
||||||
|
return; // Nothing to do, we get called back by the window
|
||||||
|
}
|
||||||
|
/* Just in case it's not there anymore, order the app for the window we want to autotype back to the foreground! */
|
||||||
|
[self _orderApplicationToFront:applicationName];
|
||||||
|
/*
|
||||||
|
Implement!
|
||||||
|
*/
|
||||||
|
return;
|
||||||
|
|
||||||
|
KPKEntry *selectedEntry = currentDocument.selectedEntry;
|
||||||
|
if(nil == currentDocument || nil == selectedEntry) {
|
||||||
|
return; // no open documents, no selected entry
|
||||||
|
}
|
||||||
|
|
||||||
|
/* TODO:
|
||||||
|
Replace entry based palce holders
|
||||||
|
Replace global placeholders
|
||||||
|
Translate to paste/copy commands
|
||||||
|
Find correct key-codes for current keyboard layout to perform paste command
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)_registerHotKey {
|
||||||
|
[[DDHotKeyCenter sharedHotKeyCenter] registerHotKeyWithKeyCode:kVK_ANSI_M
|
||||||
|
modifierFlags:(NSCommandKeyMask | NSAlternateKeyMask )
|
||||||
|
target:self
|
||||||
|
action:@selector(_didPressHotKey)
|
||||||
|
object:nil];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)_unregisterHotKey {
|
||||||
|
[[DDHotKeyCenter sharedHotKeyCenter] unregisterHotKeysWithTarget:self action:@selector(_didPressHotKey)];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSDictionary *)_frontMostApplicationInfoDict {
|
||||||
|
NSRunningApplication *frontApplication = [[NSWorkspace sharedWorkspace] frontmostApplication];
|
||||||
|
NSString *name = frontApplication.localizedName;
|
||||||
|
|
||||||
|
NSArray *currentWindows = CFBridgingRelease(CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly | kCGWindowListExcludeDesktopElements, kCGNullWindowID));
|
||||||
|
for(NSDictionary *windowDict in currentWindows) {
|
||||||
|
NSNumber *processId = windowDict[(NSString *)kCGWindowOwnerPID];
|
||||||
|
if(processId && [processId isEqualToNumber:@(frontApplication.processIdentifier)]) {
|
||||||
|
return @{
|
||||||
|
kMPWindowTitleKey:windowDict[(NSString *)kCGWindowName],
|
||||||
|
kMPApplciationNameKey : name
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)_presentSelectionWindow:(NSArray *)candidates {
|
||||||
|
if(!self.matchSelectionWindow) {
|
||||||
|
[[NSBundle mainBundle] loadNibNamed:@"AutotypeCandidateSelectionWindow" owner:self topLevelObjects:nil];
|
||||||
|
[self.performAutotypeButton setTarget:self];
|
||||||
|
[self.performAutotypeButton setAction:@selector(executeAutotypeWithSelectedMatch:)];
|
||||||
|
[self.matchSelectionWindow setLevel:NSFloatingWindowLevel];
|
||||||
|
}
|
||||||
|
NSMenu *associationMenu = [[NSMenu alloc] init];
|
||||||
|
[associationMenu addItemWithTitle:NSLocalizedString(@"SELECT_AUTOTYPE_CANDIDATE", "") action:NULL keyEquivalent:@""];
|
||||||
|
[associationMenu addItem:[NSMenuItem separatorItem]];
|
||||||
|
[associationMenu setAutoenablesItems:NO];
|
||||||
|
for(MPAutotypeContext *context in candidates) {
|
||||||
|
NSString *title = [[NSString alloc] initWithFormat:@"%@: %@", context.entry.title, context.command];
|
||||||
|
NSMenuItem *item = [[NSMenuItem alloc] initWithTitle:title action:0 keyEquivalent:@""];
|
||||||
|
[item setRepresentedObject:context];
|
||||||
|
[associationMenu addItem:item];
|
||||||
|
}
|
||||||
|
[self.matchSelectionButton setMenu:associationMenu];
|
||||||
|
[self.matchSelectionWindow makeKeyAndOrderFront:self];
|
||||||
|
/* Setup Items in Popup */
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)_orderApplicationToFront:(NSString *)applicationName {
|
||||||
|
NSString *appleScript = [[NSString alloc] initWithFormat:@"activate application %@", applicationName];
|
||||||
|
NSAppleScript *script = [[NSAppleScript alloc] initWithSource:appleScript];
|
||||||
|
NSDictionary *error;
|
||||||
|
[script executeAndReturnError:&error];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@end
|
||||||
19
MacPass/MPAutotypeKeyPress.h
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
//
|
||||||
|
// MPAutotypeSpecialKey.h
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 24/11/13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "MPAutotypeCommand.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Autotype command to press a single key. Can be used with modifer keys as well
|
||||||
|
*/
|
||||||
|
@interface MPAutotypeKeyPress : MPAutotypeCommand
|
||||||
|
|
||||||
|
@property (assign) CGEventFlags modifierMask;
|
||||||
|
@property (assign) CGKeyCode keyCode;
|
||||||
|
|
||||||
|
@end
|
||||||
31
MacPass/MPAutotypeKeyPress.m
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
//
|
||||||
|
// MPAutotypeSpecialKey.m
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 24/11/13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "MPAutotypeKeyPress.h"
|
||||||
|
#import "MPKeyMapper.h"
|
||||||
|
|
||||||
|
@implementation MPAutotypeKeyPress
|
||||||
|
|
||||||
|
- (void)execute {
|
||||||
|
if(![self isValid]) {
|
||||||
|
return; // no valid command. Stop.
|
||||||
|
}
|
||||||
|
CGKeyCode mappedKey = [self _transformKeyCode];
|
||||||
|
[self sendPressKey:mappedKey modifierFlags:self.modifierMask];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)isValid {
|
||||||
|
return ([self _transformKeyCode] != kMPUnknownKeyCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (CGKeyCode)_transformKeyCode {
|
||||||
|
NSString *key = [MPKeyMapper stringForKey:self.keyCode];
|
||||||
|
return [MPKeyMapper keyCodeForCharacter:key];
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
18
MacPass/MPAutotypePaste.h
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
//
|
||||||
|
// MPAutotypePaste.h
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 24/11/13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "MPAutotypeCommand.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Simple Paste action. Uses the Clipboard to copy and then paste contents in place
|
||||||
|
*/
|
||||||
|
@interface MPAutotypePaste : MPAutotypeCommand
|
||||||
|
|
||||||
|
- (instancetype)initWithString:(NSString *)aString;
|
||||||
|
|
||||||
|
@end
|
||||||
43
MacPass/MPAutotypePaste.m
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
//
|
||||||
|
// MPAutotypePaste.m
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 24/11/13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "MPAutotypePaste.h"
|
||||||
|
#import "MPPasteBoardController.h"
|
||||||
|
|
||||||
|
#import "NSString+Commands.h"
|
||||||
|
|
||||||
|
@interface MPAutotypePaste ()
|
||||||
|
|
||||||
|
@property (strong) NSString *pasteData;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation MPAutotypePaste
|
||||||
|
|
||||||
|
- (instancetype)initWithString:(NSString *)aString {
|
||||||
|
self = [super init];
|
||||||
|
if(self) {
|
||||||
|
self.pasteData = aString;
|
||||||
|
}
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)execute {
|
||||||
|
if([self.pasteData length] > 0) {
|
||||||
|
MPPasteBoardController *controller = [MPPasteBoardController defaultController];
|
||||||
|
[controller copyObjects:@[self.pasteData]];
|
||||||
|
[self sendPasteKeyCode];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)isValid {
|
||||||
|
/* Pasting shoudl always be valid */
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
@@ -8,6 +8,10 @@
|
|||||||
|
|
||||||
#import "HTTPConnection.h"
|
#import "HTTPConnection.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default Connection to handle the KeepassHttp POST requests. The Connection doesn't do anything,
|
||||||
|
* besides using the MPRequestHandlerService to handle any request from KeePassHttp and send's back the replies
|
||||||
|
*/
|
||||||
@interface MPConnection : HTTPConnection
|
@interface MPConnection : HTTPConnection
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
#import "MPConnection.h"
|
#import "MPConnection.h"
|
||||||
#import "HTTPMessage.h"
|
#import "HTTPMessage.h"
|
||||||
#import "MPRequestHandlerService.h"
|
#import "MPRequestHandlerService.h"
|
||||||
#import "MPServerRequestHandler.h"
|
#import "MPServerRequestHandling.h"
|
||||||
|
|
||||||
|
|
||||||
NSString *const MPRequestTypeKey = @"RequestType";
|
NSString *const MPRequestTypeKey = @"RequestType";
|
||||||
@@ -63,11 +63,12 @@ NSString *const MPRequestTypeKey = @"RequestType";
|
|||||||
|
|
||||||
|
|
||||||
- (void)_parseRequest:(NSDictionary *)aRequest {
|
- (void)_parseRequest:(NSDictionary *)aRequest {
|
||||||
|
/* TODO: generate a response */
|
||||||
NSString *requestType = aRequest[MPRequestTypeKey];
|
NSString *requestType = aRequest[MPRequestTypeKey];
|
||||||
if(!requestType) {
|
if(!requestType) {
|
||||||
NSLog(@"Malformed Request. Missing request type");
|
NSLog(@"Malformed Request. Missing request type");
|
||||||
}
|
}
|
||||||
id<MPServerRequestHandler> handler = [MPRequestHandlerService requestHandler:requestType];
|
id<MPServerRequestHandling> handler = [MPRequestHandlerService requestHandler:requestType];
|
||||||
[handler respondTo:aRequest];
|
[handler respondTo:aRequest];
|
||||||
}
|
}
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -13,5 +13,8 @@
|
|||||||
|
|
||||||
FOUNDATION_EXPORT NSString *const MPPasteBoardType;
|
FOUNDATION_EXPORT NSString *const MPPasteBoardType;
|
||||||
FOUNDATION_EXPORT NSString *const MPErrorDomain;
|
FOUNDATION_EXPORT NSString *const MPErrorDomain;
|
||||||
|
FOUNDATION_EXPORT NSString *const MPLegacyDocumentUTI;
|
||||||
|
FOUNDATION_EXPORT NSString *const MPXMLDocumentUTI;
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||