Compare commits
49 Commits
0.3-alpha
...
0.3.3-alph
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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 | ||
|
|
6ba8b1445d | ||
|
|
79a8c05e95 | ||
|
|
a98720a00c | ||
|
|
c674745103 | ||
|
|
d3cdc4d574 | ||
|
|
dfb8c7936a | ||
|
|
02f54d2c35 | ||
|
|
1db5bd0e12 | ||
|
|
cadfd3fdca | ||
|
|
f55e78349e | ||
|
|
005bab7380 | ||
|
|
f0e4def758 | ||
|
|
58abad34a1 |
3
.gitmodules
vendored
@@ -10,3 +10,6 @@
|
|||||||
[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
|
||||||
|
|||||||
BIN
Assets/Screenshots/Attachments.png
Normal file
|
After Width: | Height: | Size: 120 KiB |
|
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 110 KiB |
|
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 72 KiB |
|
Before Width: | Height: | Size: 109 KiB After Width: | Height: | Size: 105 KiB |
BIN
Assets/Screenshots/NoInspector.png
Normal file
|
After Width: | Height: | Size: 90 KiB |
|
Before Width: | Height: | Size: 163 KiB After Width: | Height: | Size: 159 KiB |
BIN
Assets/Screenshots/SetPassword.png
Normal file
|
After Width: | Height: | Size: 108 KiB |
2
HNHUi
1
KeePassKit
Submodule
@@ -10,8 +10,12 @@
|
|||||||
4C01C23F1764D2980016D5D0 /* KdbEntry+Undo.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C01C23E1764D2980016D5D0 /* KdbEntry+Undo.m */; };
|
4C01C23F1764D2980016D5D0 /* KdbEntry+Undo.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C01C23E1764D2980016D5D0 /* KdbEntry+Undo.m */; };
|
||||||
4C01C2421764D8980016D5D0 /* MPContextMenuHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C01C2411764D8980016D5D0 /* MPContextMenuHelper.m */; };
|
4C01C2421764D8980016D5D0 /* MPContextMenuHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C01C2411764D8980016D5D0 /* MPContextMenuHelper.m */; };
|
||||||
4C01C245176500C40016D5D0 /* HNHLevelIndicatorCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C01C244176500C40016D5D0 /* HNHLevelIndicatorCell.m */; };
|
4C01C245176500C40016D5D0 /* HNHLevelIndicatorCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C01C244176500C40016D5D0 /* HNHLevelIndicatorCell.m */; };
|
||||||
4C0D9B37177F84D700D0857C /* HNHSecureTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C0D9B36177F84D700D0857C /* HNHSecureTextView.m */; };
|
4C055E74179620BF00BD2BAB /* NSString+CommandString.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C055E73179620BF00BD2BAB /* NSString+CommandString.m */; };
|
||||||
4C0D9B3A177F867100D0857C /* HNHSecureLayoutManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C0D9B39177F867100D0857C /* HNHSecureLayoutManager.m */; };
|
4C10412C178CDD44001B5239 /* NSDate+Humanized.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C10412B178CDD44001B5239 /* NSDate+Humanized.m */; };
|
||||||
|
4C16BA6217879A3C002B42BD /* MPPasswordStringFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C16BA6117879A3C002B42BD /* MPPasswordStringFormatter.m */; };
|
||||||
|
4C18F9AB178E122500890BCE /* Test_Password_1234.kdb in Resources */ = {isa = PBXBuildFile; fileRef = 4C18F9AA178E122500890BCE /* Test_Password_1234.kdb */; };
|
||||||
|
4C19E500178E26EF002F2CD0 /* Test_Password_1234.kdbx in Resources */ = {isa = PBXBuildFile; fileRef = 4C19E4FF178E26EF002F2CD0 /* Test_Password_1234.kdbx */; };
|
||||||
|
4C19E503178E2871002F2CD0 /* MPDatabasePasswordAndKeyfile.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C19E502178E2871002F2CD0 /* MPDatabasePasswordAndKeyfile.m */; };
|
||||||
4C1DDCDD1711ECEB00C98DA3 /* PasswordCreatorWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C1DDCDC1711ECEB00C98DA3 /* PasswordCreatorWindow.xib */; };
|
4C1DDCDD1711ECEB00C98DA3 /* PasswordCreatorWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C1DDCDC1711ECEB00C98DA3 /* PasswordCreatorWindow.xib */; };
|
||||||
4C22040D1746ED160054C916 /* KdbGroup+Undo.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C22040C1746ED160054C916 /* KdbGroup+Undo.m */; };
|
4C22040D1746ED160054C916 /* KdbGroup+Undo.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C22040C1746ED160054C916 /* KdbGroup+Undo.m */; };
|
||||||
4C245B76176E1E3D0086100E /* DDData.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C245A6A176E1E3C0086100E /* DDData.m */; };
|
4C245B76176E1E3D0086100E /* DDData.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C245A6A176E1E3C0086100E /* DDData.m */; };
|
||||||
@@ -43,10 +47,11 @@
|
|||||||
4C2724CE1778EFB100FD8456 /* NSData+Random.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C2724CD1778EFB100FD8456 /* NSData+Random.m */; };
|
4C2724CE1778EFB100FD8456 /* NSData+Random.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C2724CD1778EFB100FD8456 /* NSData+Random.m */; };
|
||||||
4C2724D11778EFE300FD8456 /* NSString+Empty.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C2724D01778EFE300FD8456 /* NSString+Empty.m */; };
|
4C2724D11778EFE300FD8456 /* NSString+Empty.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C2724D01778EFE300FD8456 /* NSString+Empty.m */; };
|
||||||
4C2724D41778FA0700FD8456 /* NSDate+Packed.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C2724D31778FA0700FD8456 /* NSDate+Packed.m */; };
|
4C2724D41778FA0700FD8456 /* NSDate+Packed.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C2724D31778FA0700FD8456 /* NSDate+Packed.m */; };
|
||||||
4C2724D71778FF1A00FD8456 /* NSUUID+KeePassLib.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C2724D61778FF1A00FD8456 /* NSUUID+KeePassLib.m */; };
|
4C2724D71778FF1A00FD8456 /* NSUUID+KeePassKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C2724D61778FF1A00FD8456 /* NSUUID+KeePassKit.m */; };
|
||||||
4C2724DA17790E7C00FD8456 /* NSMutableData+Base64.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C2724D917790E7C00FD8456 /* NSMutableData+Base64.m */; };
|
4C2724DA17790E7C00FD8456 /* NSMutableData+Base64.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C2724D917790E7C00FD8456 /* NSMutableData+Base64.m */; };
|
||||||
4C2A6134177A1D5F00C9826C /* KPLErrorCodes.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C2A6133177A1D5F00C9826C /* KPLErrorCodes.m */; };
|
4C2A6134177A1D5F00C9826C /* KPLErrorCodes.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C2A6133177A1D5F00C9826C /* KPLErrorCodes.m */; };
|
||||||
4C2C4C2C16D3BE3700D49295 /* KdbGroup+MPTreeTools.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C2C4C2B16D3BE3700D49295 /* KdbGroup+MPTreeTools.m */; };
|
4C2C4C2C16D3BE3700D49295 /* KdbGroup+MPTreeTools.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C2C4C2B16D3BE3700D49295 /* KdbGroup+MPTreeTools.m */; };
|
||||||
|
4C2C8B341787500E009649F3 /* UnprotectedWarningView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C2C8B331787500E009649F3 /* UnprotectedWarningView.xib */; };
|
||||||
4C2E381D16D11FF900037A9D /* 03_ServerTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C2E381A16D11FF900037A9D /* 03_ServerTemplate.pdf */; };
|
4C2E381D16D11FF900037A9D /* 03_ServerTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C2E381A16D11FF900037A9D /* 03_ServerTemplate.pdf */; };
|
||||||
4C2E381E16D11FF900037A9D /* 04_KlipperTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C2E381B16D11FF900037A9D /* 04_KlipperTemplate.pdf */; };
|
4C2E381E16D11FF900037A9D /* 04_KlipperTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C2E381B16D11FF900037A9D /* 04_KlipperTemplate.pdf */; };
|
||||||
4C2E381F16D11FF900037A9D /* 05_LanguagesTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C2E381C16D11FF900037A9D /* 05_LanguagesTemplate.pdf */; };
|
4C2E381F16D11FF900037A9D /* 05_LanguagesTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C2E381C16D11FF900037A9D /* 05_LanguagesTemplate.pdf */; };
|
||||||
@@ -57,20 +62,33 @@
|
|||||||
4C36E5B4177CD4FB00152132 /* Kdb4Tree+KVOAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C36E5B3177CD4FB00152132 /* Kdb4Tree+KVOAdditions.m */; };
|
4C36E5B4177CD4FB00152132 /* Kdb4Tree+KVOAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C36E5B3177CD4FB00152132 /* Kdb4Tree+KVOAdditions.m */; };
|
||||||
4C37A6731769393300AD0A40 /* HNHTableHeaderCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C37A6721769393300AD0A40 /* HNHTableHeaderCell.m */; };
|
4C37A6731769393300AD0A40 /* HNHTableHeaderCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C37A6721769393300AD0A40 /* HNHTableHeaderCell.m */; };
|
||||||
4C37A84015B8B474005EF8EE /* MPOutlineDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C37A83F15B8B474005EF8EE /* MPOutlineDataSource.m */; };
|
4C37A84015B8B474005EF8EE /* MPOutlineDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C37A83F15B8B474005EF8EE /* MPOutlineDataSource.m */; };
|
||||||
|
4C39B3F5178FEFAE0027DC7C /* KPKNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C39B3F4178FEFAE0027DC7C /* KPKNode.m */; };
|
||||||
4C3BD51516D276F800389F1F /* MPToolbarDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C3BD51416D276F800389F1F /* MPToolbarDelegate.m */; };
|
4C3BD51516D276F800389F1F /* MPToolbarDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C3BD51416D276F800389F1F /* MPToolbarDelegate.m */; };
|
||||||
4C3D4C0817594CA40038DAAC /* HNHSeparator.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C3D4C0717594CA40038DAAC /* HNHSeparator.m */; };
|
4C3D4C0817594CA40038DAAC /* HNHSeparator.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C3D4C0717594CA40038DAAC /* HNHSeparator.m */; };
|
||||||
4C3E1CC0177DEFB3003BD9BD /* StringField+Undo.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C3E1CBF177DEFB3003BD9BD /* StringField+Undo.m */; };
|
4C3E1CC0177DEFB3003BD9BD /* StringField+Undo.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C3E1CBF177DEFB3003BD9BD /* StringField+Undo.m */; };
|
||||||
|
4C3F28541791EDFD00703281 /* KPKErrors.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C3F28531791EDFD00703281 /* KPKErrors.m */; };
|
||||||
|
4C3F28581791F04F00703281 /* LocalizableErrors.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4C3F28571791F04F00703281 /* LocalizableErrors.strings */; };
|
||||||
4C3FFD9E16DAF60600DF9186 /* FilterBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C3FFD9D16DAF60600DF9186 /* FilterBar.xib */; };
|
4C3FFD9E16DAF60600DF9186 /* FilterBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C3FFD9D16DAF60600DF9186 /* FilterBar.xib */; };
|
||||||
4C431BCD16E2A82800700A81 /* MPPasteBoardController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C431BCC16E2A82700700A81 /* MPPasteBoardController.m */; };
|
4C431BCD16E2A82800700A81 /* MPPasteBoardController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C431BCC16E2A82700700A81 /* MPPasteBoardController.m */; };
|
||||||
4C431BCF16E2BAB000700A81 /* OverlayWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C431BCE16E2BAB000700A81 /* OverlayWindow.xib */; };
|
4C431BCF16E2BAB000700A81 /* OverlayWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C431BCE16E2BAB000700A81 /* OverlayWindow.xib */; };
|
||||||
|
4C4436771792BE810099E220 /* KPKFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C4436761792BE810099E220 /* KPKFormat.m */; };
|
||||||
|
4C45FB1C178E09ED0010007D /* SenTestingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C45FB1B178E09ED0010007D /* SenTestingKit.framework */; };
|
||||||
|
4C45FB1D178E09ED0010007D /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C77E36615B84A240093A587 /* Cocoa.framework */; };
|
||||||
|
4C45FB23178E09ED0010007D /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4C45FB21178E09ED0010007D /* InfoPlist.strings */; };
|
||||||
|
4C45FB2D178E0BCB0010007D /* MPDatabaseLoading.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C45FB2C178E0BCB0010007D /* MPDatabaseLoading.m */; };
|
||||||
|
4C45FB30178E0CE20010007D /* MPDatabaseCreation.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C45FB2F178E0CE20010007D /* MPDatabaseCreation.m */; };
|
||||||
4C46B88517063A070046109A /* NSString+MPPasswordCreation.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C46B88417063A070046109A /* NSString+MPPasswordCreation.m */; };
|
4C46B88517063A070046109A /* NSString+MPPasswordCreation.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C46B88417063A070046109A /* NSString+MPPasswordCreation.m */; };
|
||||||
4C46B88817063A170046109A /* NSString+MPPasswordAnalysis.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C46B88717063A170046109A /* NSString+MPPasswordAnalysis.m */; };
|
4C46B88817063A170046109A /* NSString+PasswordStrength.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C46B88717063A170046109A /* NSString+PasswordStrength.m */; };
|
||||||
4C46E09E17673A0A00DA62E8 /* HNHShadowBox.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C46E09D17673A0A00DA62E8 /* HNHShadowBox.m */; };
|
4C46E09E17673A0A00DA62E8 /* HNHShadowBox.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C46E09D17673A0A00DA62E8 /* HNHShadowBox.m */; };
|
||||||
4C4A100F176286FD00BBF2CA /* MPTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C4A100E176286FD00BBF2CA /* MPTableView.m */; };
|
4C4A100F176286FD00BBF2CA /* MPTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C4A100E176286FD00BBF2CA /* MPTableView.m */; };
|
||||||
4C4A101217629DA900BBF2CA /* KdbGroup+KVOAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C4A101117629DA900BBF2CA /* KdbGroup+KVOAdditions.m */; };
|
4C4A101217629DA900BBF2CA /* KdbGroup+KVOAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C4A101117629DA900BBF2CA /* KdbGroup+KVOAdditions.m */; };
|
||||||
4C4FCE15177CFE6B00BBF7AE /* MPCustomFieldTableCellView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C4FCE14177CFE6B00BBF7AE /* MPCustomFieldTableCellView.m */; };
|
4C4FCE15177CFE6B00BBF7AE /* MPCustomFieldTableCellView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C4FCE14177CFE6B00BBF7AE /* MPCustomFieldTableCellView.m */; };
|
||||||
4C4FCE18177D03D700BBF7AE /* Kdb4Entry+KVOAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C4FCE17177D03D700BBF7AE /* Kdb4Entry+KVOAdditions.m */; };
|
4C4FCE18177D03D700BBF7AE /* Kdb4Entry+KVOAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C4FCE17177D03D700BBF7AE /* Kdb4Entry+KVOAdditions.m */; };
|
||||||
4C52A244177D7B9F0000D88F /* HNHScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C52A243177D7B9F0000D88F /* HNHScrollView.m */; };
|
4C52A244177D7B9F0000D88F /* HNHScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C52A243177D7B9F0000D88F /* HNHScrollView.m */; };
|
||||||
|
4C52A88E1788628B00868229 /* 06_BlockDeviceTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C52A88B1788628B00868229 /* 06_BlockDeviceTemplate.pdf */; };
|
||||||
|
4C52A88F1788628B00868229 /* 13_KeysTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C52A88C1788628B00868229 /* 13_KeysTemplate.pdf */; };
|
||||||
|
4C52A8901788628B00868229 /* 18_DisplayTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C52A88D1788628B00868229 /* 18_DisplayTemplate.pdf */; };
|
||||||
|
4C52A892178863B000868229 /* 68_PhoneTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C52A891178863B000868229 /* 68_PhoneTemplate.pdf */; };
|
||||||
4C569D9E17652B0600595B62 /* MPConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C569D9D17652B0600595B62 /* MPConstants.m */; };
|
4C569D9E17652B0600595B62 /* MPConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C569D9D17652B0600595B62 /* MPConstants.m */; };
|
||||||
4C569DA117652BFE00595B62 /* MPEntryTableDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C569DA017652BFE00595B62 /* MPEntryTableDataSource.m */; };
|
4C569DA117652BFE00595B62 /* MPEntryTableDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C569DA017652BFE00595B62 /* MPEntryTableDataSource.m */; };
|
||||||
4C569DA417653F3500595B62 /* KdbEntry+MPTreeTools.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C569DA317653F3500595B62 /* KdbEntry+MPTreeTools.m */; };
|
4C569DA417653F3500595B62 /* KdbEntry+MPTreeTools.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C569DA317653F3500595B62 /* KdbEntry+MPTreeTools.m */; };
|
||||||
@@ -78,8 +96,10 @@
|
|||||||
4C586FA016D07D7200E7DB57 /* 01_PackageNetworkTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C586F9F16D07D7200E7DB57 /* 01_PackageNetworkTemplate.pdf */; };
|
4C586FA016D07D7200E7DB57 /* 01_PackageNetworkTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C586F9F16D07D7200E7DB57 /* 01_PackageNetworkTemplate.pdf */; };
|
||||||
4C586FA216D07F6A00E7DB57 /* 02_MessageBoxWarningTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C586FA116D07F6A00E7DB57 /* 02_MessageBoxWarningTemplate.pdf */; };
|
4C586FA216D07F6A00E7DB57 /* 02_MessageBoxWarningTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C586FA116D07F6A00E7DB57 /* 02_MessageBoxWarningTemplate.pdf */; };
|
||||||
4C58BD4F176370B100B8178C /* HNHBadgedTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C58BD4E176370B100B8178C /* HNHBadgedTextField.m */; };
|
4C58BD4F176370B100B8178C /* HNHBadgedTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C58BD4E176370B100B8178C /* HNHBadgedTextField.m */; };
|
||||||
|
4C591B57178F897A0080B16B /* KPKAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C591B56178F897A0080B16B /* KPKAttachment.m */; };
|
||||||
4C5A11FE1708DE8700223D8A /* MPPasswordCreatorViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C5A11FC1708DE8700223D8A /* MPPasswordCreatorViewController.m */; };
|
4C5A11FE1708DE8700223D8A /* MPPasswordCreatorViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C5A11FC1708DE8700223D8A /* MPPasswordCreatorViewController.m */; };
|
||||||
4C5A11FF1708DE8800223D8A /* PasswordCreatorView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C5A11FD1708DE8700223D8A /* PasswordCreatorView.xib */; };
|
4C5A11FF1708DE8800223D8A /* PasswordCreatorView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C5A11FD1708DE8700223D8A /* PasswordCreatorView.xib */; };
|
||||||
|
4C5AA591179549A1008ECAD7 /* KPKXmlTreeWriter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C5AA590179549A1008ECAD7 /* KPKXmlTreeWriter.m */; };
|
||||||
4C5BF67B175C01F300D53DF7 /* MPUppercaseStringValueTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C5BF67A175C01F300D53DF7 /* MPUppercaseStringValueTransformer.m */; };
|
4C5BF67B175C01F300D53DF7 /* MPUppercaseStringValueTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C5BF67A175C01F300D53DF7 /* MPUppercaseStringValueTransformer.m */; };
|
||||||
4C5EC302177B700D00DA955B /* MPRootAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C5EC301177B700D00DA955B /* MPRootAdapter.m */; };
|
4C5EC302177B700D00DA955B /* MPRootAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C5EC301177B700D00DA955B /* MPRootAdapter.m */; };
|
||||||
4C5FE9AE17843CE20001D5A8 /* MPSelectedAttachmentTableCellView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C5FE9AD17843CE20001D5A8 /* MPSelectedAttachmentTableCellView.m */; };
|
4C5FE9AE17843CE20001D5A8 /* MPSelectedAttachmentTableCellView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C5FE9AD17843CE20001D5A8 /* MPSelectedAttachmentTableCellView.m */; };
|
||||||
@@ -123,9 +143,10 @@
|
|||||||
4C6D1D27178586CA0014C5A5 /* 99_AddFolderTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C6D1D26178586CA0014C5A5 /* 99_AddFolderTemplate.pdf */; };
|
4C6D1D27178586CA0014C5A5 /* 99_AddFolderTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C6D1D26178586CA0014C5A5 /* 99_AddFolderTemplate.pdf */; };
|
||||||
4C6D1D2B17858A250014C5A5 /* MacPass.icns in Resources */ = {isa = PBXBuildFile; fileRef = 4C6D1D2A17858A250014C5A5 /* MacPass.icns */; };
|
4C6D1D2B17858A250014C5A5 /* MacPass.icns in Resources */ = {isa = PBXBuildFile; fileRef = 4C6D1D2A17858A250014C5A5 /* MacPass.icns */; };
|
||||||
4C701CBC178618A000581B88 /* 12_RemoteTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C701CBB178618A000581B88 /* 12_RemoteTemplate.pdf */; };
|
4C701CBC178618A000581B88 /* 12_RemoteTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C701CBB178618A000581B88 /* 12_RemoteTemplate.pdf */; };
|
||||||
|
4C70D0FD1790924700652EE9 /* KPKParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C70D0FC1790924700652EE9 /* KPKParser.m */; };
|
||||||
|
4C70D100179092F200652EE9 /* KPKPassword.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C70D0FF179092F200652EE9 /* KPKPassword.m */; };
|
||||||
4C74DD07177BD1640034A9DB /* MPCustomFieldView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C74DD06177BD1640034A9DB /* MPCustomFieldView.m */; };
|
4C74DD07177BD1640034A9DB /* MPCustomFieldView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C74DD06177BD1640034A9DB /* MPCustomFieldView.m */; };
|
||||||
4C76155C1764C04C0015A1A6 /* GeneralSettings.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C76155E1764C04C0015A1A6 /* GeneralSettings.xib */; };
|
4C76155C1764C04C0015A1A6 /* GeneralSettings.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C76155E1764C04C0015A1A6 /* GeneralSettings.xib */; };
|
||||||
4C7615631764C08C0015A1A6 /* PasswordEditView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C7615651764C08C0015A1A6 /* PasswordEditView.xib */; };
|
|
||||||
4C7615681764C0C40015A1A6 /* PasswordInputView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C76156A1764C0C40015A1A6 /* PasswordInputView.xib */; };
|
4C7615681764C0C40015A1A6 /* PasswordInputView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C76156A1764C0C40015A1A6 /* PasswordInputView.xib */; };
|
||||||
4C76156D1764C0E20015A1A6 /* InspectorView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C76156F1764C0E20015A1A6 /* InspectorView.xib */; };
|
4C76156D1764C0E20015A1A6 /* InspectorView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C76156F1764C0E20015A1A6 /* InspectorView.xib */; };
|
||||||
4C7714AA176C998F00549F2A /* 43_TrashTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C7714A9176C998F00549F2A /* 43_TrashTemplate.pdf */; };
|
4C7714AA176C998F00549F2A /* 43_TrashTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C7714A9176C998F00549F2A /* 43_TrashTemplate.pdf */; };
|
||||||
@@ -137,8 +158,8 @@
|
|||||||
4C77E37A15B84A240093A587 /* MPAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C77E37915B84A240093A587 /* MPAppDelegate.m */; };
|
4C77E37A15B84A240093A587 /* MPAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C77E37915B84A240093A587 /* MPAppDelegate.m */; };
|
||||||
4C77E37D15B84A240093A587 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C77E37B15B84A240093A587 /* MainMenu.xib */; };
|
4C77E37D15B84A240093A587 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C77E37B15B84A240093A587 /* MainMenu.xib */; };
|
||||||
4C79DF2A176685870083708F /* HNHRoundedTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C79DF29176685870083708F /* HNHRoundedTextField.m */; };
|
4C79DF2A176685870083708F /* HNHRoundedTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C79DF29176685870083708F /* HNHRoundedTextField.m */; };
|
||||||
4C7E832A172DE2F2002493D8 /* MPPasswordEditViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C7E8329172DE2F2002493D8 /* MPPasswordEditViewController.m */; };
|
|
||||||
4C7F35681779DFFB00C57890 /* Errors.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4C7F356A1779DFFB00C57890 /* Errors.strings */; };
|
4C7F35681779DFFB00C57890 /* Errors.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4C7F356A1779DFFB00C57890 /* Errors.strings */; };
|
||||||
|
4C801AFC179310E2002821E3 /* NSString+Hexdata.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C801AFB179310E2002821E3 /* NSString+Hexdata.m */; };
|
||||||
4C80BB6F176DE06F00E5E248 /* HNHScrollDocumentViewAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C80BB6E176DE06F00E5E248 /* HNHScrollDocumentViewAdapter.m */; };
|
4C80BB6F176DE06F00E5E248 /* HNHScrollDocumentViewAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C80BB6E176DE06F00E5E248 /* HNHScrollDocumentViewAdapter.m */; };
|
||||||
4C811C8316ECD06E00C4BAC6 /* MPKeyfilePathControlDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C811C8216ECD06E00C4BAC6 /* MPKeyfilePathControlDelegate.m */; };
|
4C811C8316ECD06E00C4BAC6 /* MPKeyfilePathControlDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C811C8216ECD06E00C4BAC6 /* MPKeyfilePathControlDelegate.m */; };
|
||||||
4C83814215BF4677001AE468 /* MPDocumentWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C83814115BF4677001AE468 /* MPDocumentWindowController.m */; };
|
4C83814215BF4677001AE468 /* MPDocumentWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C83814115BF4677001AE468 /* MPDocumentWindowController.m */; };
|
||||||
@@ -147,6 +168,7 @@
|
|||||||
4C888C9016EB6C91003D34A1 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4C888C8E16EB6C91003D34A1 /* Localizable.strings */; };
|
4C888C9016EB6C91003D34A1 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4C888C8E16EB6C91003D34A1 /* Localizable.strings */; };
|
||||||
4C888C9316EB6F5E003D34A1 /* MPToolbarItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C888C9216EB6F5E003D34A1 /* MPToolbarItem.m */; };
|
4C888C9316EB6F5E003D34A1 /* MPToolbarItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C888C9216EB6F5E003D34A1 /* MPToolbarItem.m */; };
|
||||||
4C888C9716EB754B003D34A1 /* MPActionHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C888C9616EB754B003D34A1 /* MPActionHelper.m */; };
|
4C888C9716EB754B003D34A1 /* MPActionHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C888C9616EB754B003D34A1 /* MPActionHelper.m */; };
|
||||||
|
4C8A173D1790AA41008B5C17 /* NSData+Keyfile.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C8A173C1790AA41008B5C17 /* NSData+Keyfile.m */; };
|
||||||
4C8FECC816D57E3200BF26CF /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C8FECC716D57E3200BF26CF /* QuartzCore.framework */; };
|
4C8FECC816D57E3200BF26CF /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C8FECC716D57E3200BF26CF /* QuartzCore.framework */; };
|
||||||
4C920E2A16DCDFA00083839B /* MPLoggerProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C920E2916DCDFA00083839B /* MPLoggerProxy.m */; };
|
4C920E2A16DCDFA00083839B /* MPLoggerProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C920E2916DCDFA00083839B /* MPLoggerProxy.m */; };
|
||||||
4C9D6AA917615199001C660C /* HNHRoundedSecureTextFieldCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C9D6AA817615199001C660C /* HNHRoundedSecureTextFieldCell.m */; };
|
4C9D6AA917615199001C660C /* HNHRoundedSecureTextFieldCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C9D6AA817615199001C660C /* HNHRoundedSecureTextFieldCell.m */; };
|
||||||
@@ -165,6 +187,8 @@
|
|||||||
4CAF62FC1763604000CD7084 /* HNHBadgedTextFieldCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CAF62FB1763604000CD7084 /* HNHBadgedTextFieldCell.m */; };
|
4CAF62FC1763604000CD7084 /* HNHBadgedTextFieldCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CAF62FB1763604000CD7084 /* HNHBadgedTextFieldCell.m */; };
|
||||||
4CB9339916D3A0DD00A13B5D /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 4CB9339716D3A0DD00A13B5D /* Credits.rtf */; };
|
4CB9339916D3A0DD00A13B5D /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 4CB9339716D3A0DD00A13B5D /* Credits.rtf */; };
|
||||||
4CBA2ABA17074C07006D8139 /* MPSettingsHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CBA2AB917074C07006D8139 /* MPSettingsHelper.m */; };
|
4CBA2ABA17074C07006D8139 /* MPSettingsHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CBA2AB917074C07006D8139 /* MPSettingsHelper.m */; };
|
||||||
|
4CC0D2CE17974A47000B4BDA /* MPCustomFieldTableViewDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC0D2CD17974A47000B4BDA /* MPCustomFieldTableViewDelegate.m */; };
|
||||||
|
4CC0D2D117974A5A000B4BDA /* MPAttachmentTableViewDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC0D2D017974A5A000B4BDA /* MPAttachmentTableViewDelegate.m */; };
|
||||||
4CC1AEBE16D4467C006D2AAB /* KdbTree+MPAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC1AEBD16D4467C006D2AAB /* KdbTree+MPAdditions.m */; };
|
4CC1AEBE16D4467C006D2AAB /* KdbTree+MPAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC1AEBD16D4467C006D2AAB /* KdbTree+MPAdditions.m */; };
|
||||||
4CC299FF176F99E50050C939 /* MPRequestHandlerService.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC299FE176F99E50050C939 /* MPRequestHandlerService.m */; };
|
4CC299FF176F99E50050C939 /* MPRequestHandlerService.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC299FE176F99E50050C939 /* MPRequestHandlerService.m */; };
|
||||||
4CC29A02176F9D140050C939 /* MPTestAssociateRequestHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC29A01176F9D140050C939 /* MPTestAssociateRequestHandler.m */; };
|
4CC29A02176F9D140050C939 /* MPTestAssociateRequestHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC29A01176F9D140050C939 /* MPTestAssociateRequestHandler.m */; };
|
||||||
@@ -172,15 +196,21 @@
|
|||||||
4CC672791781D0C0006DEDCF /* KdbGroup+MPAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC672781781D0C0006DEDCF /* KdbGroup+MPAdditions.m */; };
|
4CC672791781D0C0006DEDCF /* KdbGroup+MPAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC672781781D0C0006DEDCF /* KdbGroup+MPAdditions.m */; };
|
||||||
4CC6727C1781D0D2006DEDCF /* KdbEntry+MPAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC6727B1781D0D2006DEDCF /* KdbEntry+MPAdditions.m */; };
|
4CC6727C1781D0D2006DEDCF /* KdbEntry+MPAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC6727B1781D0D2006DEDCF /* KdbEntry+MPAdditions.m */; };
|
||||||
4CC7EA1B17807E7E0089D4F3 /* HNHRoundendTextFieldCellHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC7EA1A17807E7E0089D4F3 /* HNHRoundendTextFieldCellHelper.m */; };
|
4CC7EA1B17807E7E0089D4F3 /* HNHRoundendTextFieldCellHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC7EA1A17807E7E0089D4F3 /* HNHRoundendTextFieldCellHelper.m */; };
|
||||||
4CD5D702177A5EE400100649 /* DocumentSettingsWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4CD5D701177A5EE400100649 /* DocumentSettingsWindow.xib */; };
|
4CD3ABBA178F71B50073F5C5 /* KPKTree.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD3ABB4178F71B50073F5C5 /* KPKTree.m */; };
|
||||||
4CD5D705177A5F3300100649 /* MPDocumentSettingsWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD5D704177A5F3300100649 /* MPDocumentSettingsWindowController.m */; };
|
4CD3ABBF178F72610073F5C5 /* KPKEntry.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD3ABBE178F72610073F5C5 /* KPKEntry.m */; };
|
||||||
|
4CD3ABC2178F72720073F5C5 /* KPKGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD3ABC1178F72720073F5C5 /* KPKGroup.m */; };
|
||||||
|
4CD5D702177A5EE400100649 /* DatabaseSettingsWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4CD5D701177A5EE400100649 /* DatabaseSettingsWindow.xib */; };
|
||||||
|
4CD5D705177A5F3300100649 /* MPDatabaseSettingsWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD5D704177A5F3300100649 /* MPDatabaseSettingsWindowController.m */; };
|
||||||
|
4CD6C5AE1789FDE6000891F6 /* HNHRoundedSecureTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD6C5AD1789FDE6000891F6 /* HNHRoundedSecureTextField.m */; };
|
||||||
4CD78ABC16D155FF00768A1D /* 07_NotepadTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4CD78AB716D155FF00768A1D /* 07_NotepadTemplate.pdf */; };
|
4CD78ABC16D155FF00768A1D /* 07_NotepadTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4CD78AB716D155FF00768A1D /* 07_NotepadTemplate.pdf */; };
|
||||||
4CD78ABD16D155FF00768A1D /* 08_SocketTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4CD78AB816D155FF00768A1D /* 08_SocketTemplate.pdf */; };
|
4CD78ABD16D155FF00768A1D /* 08_SocketTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4CD78AB816D155FF00768A1D /* 08_SocketTemplate.pdf */; };
|
||||||
4CD78ABE16D155FF00768A1D /* 09_IdentityTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4CD78AB916D155FF00768A1D /* 09_IdentityTemplate.pdf */; };
|
4CD78ABE16D155FF00768A1D /* 09_IdentityTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4CD78AB916D155FF00768A1D /* 09_IdentityTemplate.pdf */; };
|
||||||
4CD78ABF16D155FF00768A1D /* 10_ContactTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4CD78ABA16D155FF00768A1D /* 10_ContactTemplate.pdf */; };
|
4CD78ABF16D155FF00768A1D /* 10_ContactTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4CD78ABA16D155FF00768A1D /* 10_ContactTemplate.pdf */; };
|
||||||
4CD78AC016D155FF00768A1D /* 11_CameraTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4CD78ABB16D155FF00768A1D /* 11_CameraTemplate.pdf */; };
|
4CD78AC016D155FF00768A1D /* 11_CameraTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4CD78ABB16D155FF00768A1D /* 11_CameraTemplate.pdf */; };
|
||||||
4CD884B715BD47080042BBF8 /* DocumentWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4CD884B615BD47080042BBF8 /* DocumentWindow.xib */; };
|
4CD884B715BD47080042BBF8 /* DocumentWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4CD884B615BD47080042BBF8 /* DocumentWindow.xib */; };
|
||||||
|
4CDB5C421794AA4F0017667E /* KPKTree+Serializing.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CDB5C411794AA4F0017667E /* KPKTree+Serializing.m */; };
|
||||||
4CDF01A316D1B76700D0AC08 /* MPEntryViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CDF01A216D1B76700D0AC08 /* MPEntryViewController.m */; };
|
4CDF01A316D1B76700D0AC08 /* MPEntryViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CDF01A216D1B76700D0AC08 /* MPEntryViewController.m */; };
|
||||||
|
4CE298EB1795FC2A00DF7BDB /* MPEntryMenuDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CE298EA1795FC2A00DF7BDB /* MPEntryMenuDelegate.m */; };
|
||||||
4CE39ABF16ECE34A000FE29D /* MPIconSelectViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CE39ABE16ECE34A000FE29D /* MPIconSelectViewController.m */; };
|
4CE39ABF16ECE34A000FE29D /* MPIconSelectViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CE39ABE16ECE34A000FE29D /* MPIconSelectViewController.m */; };
|
||||||
4CE39AC116ECE359000FE29D /* IconSelection.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4CE39AC016ECE359000FE29D /* IconSelection.xib */; };
|
4CE39AC116ECE359000FE29D /* IconSelection.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4CE39AC016ECE359000FE29D /* IconSelection.xib */; };
|
||||||
4CE39AC416ECE4F7000FE29D /* MPPopupImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CE39AC316ECE4F7000FE29D /* MPPopupImageView.m */; };
|
4CE39AC416ECE4F7000FE29D /* MPPopupImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CE39AC316ECE4F7000FE29D /* MPPopupImageView.m */; };
|
||||||
@@ -188,6 +218,8 @@
|
|||||||
4CE8246F16E2E93400573141 /* MPOverlayWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CE8246E16E2E93400573141 /* MPOverlayWindowController.m */; };
|
4CE8246F16E2E93400573141 /* MPOverlayWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CE8246E16E2E93400573141 /* MPOverlayWindowController.m */; };
|
||||||
4CE8247516E2F2B900573141 /* MPOverlayView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CE8247416E2F2B900573141 /* MPOverlayView.m */; };
|
4CE8247516E2F2B900573141 /* MPOverlayView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CE8247416E2F2B900573141 /* MPOverlayView.m */; };
|
||||||
4CF1F0CA1786B37900CD920E /* NSData+Gzip.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CF1F0C81786B37900CD920E /* NSData+Gzip.m */; };
|
4CF1F0CA1786B37900CD920E /* NSData+Gzip.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CF1F0C81786B37900CD920E /* NSData+Gzip.m */; };
|
||||||
|
4CF29BF417879D0000851B60 /* 26_FileSaveTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4CF29BF317879D0000851B60 /* 26_FileSaveTemplate.pdf */; };
|
||||||
|
4CF62B86179385D700B660B6 /* KPKAttribute.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CF62B85179385D700B660B6 /* KPKAttribute.m */; };
|
||||||
4CF6C711176F4533007A811D /* MPStringLengthValueTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CF6C710176F4533007A811D /* MPStringLengthValueTransformer.m */; };
|
4CF6C711176F4533007A811D /* MPStringLengthValueTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CF6C710176F4533007A811D /* MPStringLengthValueTransformer.m */; };
|
||||||
4CF6C718176F5234007A811D /* MPAssociateRequestHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CF6C717176F5234007A811D /* MPAssociateRequestHandler.m */; };
|
4CF6C718176F5234007A811D /* MPAssociateRequestHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CF6C717176F5234007A811D /* MPAssociateRequestHandler.m */; };
|
||||||
4CF78057176E5CFD0032EE71 /* MPConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CF78056176E5CFD0032EE71 /* MPConnection.m */; };
|
4CF78057176E5CFD0032EE71 /* MPConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CF78056176E5CFD0032EE71 /* MPConnection.m */; };
|
||||||
@@ -205,10 +237,16 @@
|
|||||||
4C01C2411764D8980016D5D0 /* MPContextMenuHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPContextMenuHelper.m; sourceTree = "<group>"; };
|
4C01C2411764D8980016D5D0 /* MPContextMenuHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPContextMenuHelper.m; sourceTree = "<group>"; };
|
||||||
4C01C243176500C40016D5D0 /* HNHLevelIndicatorCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HNHLevelIndicatorCell.h; sourceTree = "<group>"; };
|
4C01C243176500C40016D5D0 /* HNHLevelIndicatorCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HNHLevelIndicatorCell.h; sourceTree = "<group>"; };
|
||||||
4C01C244176500C40016D5D0 /* HNHLevelIndicatorCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HNHLevelIndicatorCell.m; sourceTree = "<group>"; };
|
4C01C244176500C40016D5D0 /* HNHLevelIndicatorCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HNHLevelIndicatorCell.m; sourceTree = "<group>"; };
|
||||||
4C0D9B35177F84D700D0857C /* HNHSecureTextView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HNHSecureTextView.h; sourceTree = "<group>"; };
|
4C055E72179620BF00BD2BAB /* NSString+CommandString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+CommandString.h"; sourceTree = "<group>"; };
|
||||||
4C0D9B36177F84D700D0857C /* HNHSecureTextView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HNHSecureTextView.m; sourceTree = "<group>"; };
|
4C055E73179620BF00BD2BAB /* NSString+CommandString.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+CommandString.m"; sourceTree = "<group>"; };
|
||||||
4C0D9B38177F867100D0857C /* HNHSecureLayoutManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HNHSecureLayoutManager.h; sourceTree = "<group>"; };
|
4C10412A178CDD44001B5239 /* NSDate+Humanized.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate+Humanized.h"; sourceTree = "<group>"; };
|
||||||
4C0D9B39177F867100D0857C /* HNHSecureLayoutManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HNHSecureLayoutManager.m; sourceTree = "<group>"; };
|
4C10412B178CDD44001B5239 /* NSDate+Humanized.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDate+Humanized.m"; sourceTree = "<group>"; };
|
||||||
|
4C16BA6017879A3C002B42BD /* MPPasswordStringFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPPasswordStringFormatter.h; sourceTree = "<group>"; };
|
||||||
|
4C16BA6117879A3C002B42BD /* MPPasswordStringFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPPasswordStringFormatter.m; sourceTree = "<group>"; };
|
||||||
|
4C18F9AA178E122500890BCE /* Test_Password_1234.kdb */ = {isa = PBXFileReference; lastKnownFileType = file; name = Test_Password_1234.kdb; path = Databases/Test_Password_1234.kdb; sourceTree = "<group>"; };
|
||||||
|
4C19E4FF178E26EF002F2CD0 /* Test_Password_1234.kdbx */ = {isa = PBXFileReference; lastKnownFileType = file; name = Test_Password_1234.kdbx; path = Databases/Test_Password_1234.kdbx; sourceTree = "<group>"; };
|
||||||
|
4C19E501178E2871002F2CD0 /* MPDatabasePasswordAndKeyfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPDatabasePasswordAndKeyfile.h; sourceTree = "<group>"; };
|
||||||
|
4C19E502178E2871002F2CD0 /* MPDatabasePasswordAndKeyfile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPDatabasePasswordAndKeyfile.m; sourceTree = "<group>"; };
|
||||||
4C1DDCDC1711ECEB00C98DA3 /* PasswordCreatorWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PasswordCreatorWindow.xib; sourceTree = "<group>"; };
|
4C1DDCDC1711ECEB00C98DA3 /* PasswordCreatorWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PasswordCreatorWindow.xib; sourceTree = "<group>"; };
|
||||||
4C22040B1746ED160054C916 /* KdbGroup+Undo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "KdbGroup+Undo.h"; sourceTree = "<group>"; };
|
4C22040B1746ED160054C916 /* KdbGroup+Undo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "KdbGroup+Undo.h"; sourceTree = "<group>"; };
|
||||||
4C22040C1746ED160054C916 /* KdbGroup+Undo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "KdbGroup+Undo.m"; sourceTree = "<group>"; };
|
4C22040C1746ED160054C916 /* KdbGroup+Undo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "KdbGroup+Undo.m"; sourceTree = "<group>"; };
|
||||||
@@ -271,14 +309,15 @@
|
|||||||
4C2724D01778EFE300FD8456 /* NSString+Empty.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+Empty.m"; sourceTree = "<group>"; };
|
4C2724D01778EFE300FD8456 /* NSString+Empty.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+Empty.m"; sourceTree = "<group>"; };
|
||||||
4C2724D21778FA0700FD8456 /* NSDate+Packed.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate+Packed.h"; sourceTree = "<group>"; };
|
4C2724D21778FA0700FD8456 /* NSDate+Packed.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate+Packed.h"; sourceTree = "<group>"; };
|
||||||
4C2724D31778FA0700FD8456 /* NSDate+Packed.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDate+Packed.m"; sourceTree = "<group>"; };
|
4C2724D31778FA0700FD8456 /* NSDate+Packed.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDate+Packed.m"; sourceTree = "<group>"; };
|
||||||
4C2724D51778FF1A00FD8456 /* NSUUID+KeePassLib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSUUID+KeePassLib.h"; sourceTree = "<group>"; };
|
4C2724D51778FF1A00FD8456 /* NSUUID+KeePassKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSUUID+KeePassKit.h"; sourceTree = "<group>"; };
|
||||||
4C2724D61778FF1A00FD8456 /* NSUUID+KeePassLib.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSUUID+KeePassLib.m"; sourceTree = "<group>"; };
|
4C2724D61778FF1A00FD8456 /* NSUUID+KeePassKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSUUID+KeePassKit.m"; sourceTree = "<group>"; };
|
||||||
4C2724D817790E7C00FD8456 /* NSMutableData+Base64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSMutableData+Base64.h"; sourceTree = "<group>"; };
|
4C2724D817790E7C00FD8456 /* NSMutableData+Base64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSMutableData+Base64.h"; sourceTree = "<group>"; };
|
||||||
4C2724D917790E7C00FD8456 /* NSMutableData+Base64.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSMutableData+Base64.m"; sourceTree = "<group>"; };
|
4C2724D917790E7C00FD8456 /* NSMutableData+Base64.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSMutableData+Base64.m"; sourceTree = "<group>"; };
|
||||||
4C2A6132177A181300C9826C /* KPLErrorCodes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KPLErrorCodes.h; sourceTree = "<group>"; };
|
4C2A6132177A181300C9826C /* KPLErrorCodes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KPLErrorCodes.h; sourceTree = "<group>"; };
|
||||||
4C2A6133177A1D5F00C9826C /* KPLErrorCodes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KPLErrorCodes.m; sourceTree = "<group>"; };
|
4C2A6133177A1D5F00C9826C /* KPLErrorCodes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KPLErrorCodes.m; sourceTree = "<group>"; };
|
||||||
4C2C4C2A16D3BE3700D49295 /* KdbGroup+MPTreeTools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "KdbGroup+MPTreeTools.h"; sourceTree = "<group>"; };
|
4C2C4C2A16D3BE3700D49295 /* KdbGroup+MPTreeTools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "KdbGroup+MPTreeTools.h"; sourceTree = "<group>"; };
|
||||||
4C2C4C2B16D3BE3700D49295 /* KdbGroup+MPTreeTools.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "KdbGroup+MPTreeTools.m"; sourceTree = "<group>"; };
|
4C2C4C2B16D3BE3700D49295 /* KdbGroup+MPTreeTools.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "KdbGroup+MPTreeTools.m"; sourceTree = "<group>"; };
|
||||||
|
4C2C8B331787500E009649F3 /* UnprotectedWarningView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = UnprotectedWarningView.xib; sourceTree = "<group>"; };
|
||||||
4C2E381A16D11FF900037A9D /* 03_ServerTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 03_ServerTemplate.pdf; sourceTree = "<group>"; };
|
4C2E381A16D11FF900037A9D /* 03_ServerTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 03_ServerTemplate.pdf; sourceTree = "<group>"; };
|
||||||
4C2E381B16D11FF900037A9D /* 04_KlipperTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 04_KlipperTemplate.pdf; sourceTree = "<group>"; };
|
4C2E381B16D11FF900037A9D /* 04_KlipperTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 04_KlipperTemplate.pdf; sourceTree = "<group>"; };
|
||||||
4C2E381C16D11FF900037A9D /* 05_LanguagesTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 05_LanguagesTemplate.pdf; sourceTree = "<group>"; };
|
4C2E381C16D11FF900037A9D /* 05_LanguagesTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 05_LanguagesTemplate.pdf; sourceTree = "<group>"; };
|
||||||
@@ -294,20 +333,36 @@
|
|||||||
4C37A6721769393300AD0A40 /* HNHTableHeaderCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HNHTableHeaderCell.m; sourceTree = "<group>"; };
|
4C37A6721769393300AD0A40 /* HNHTableHeaderCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HNHTableHeaderCell.m; sourceTree = "<group>"; };
|
||||||
4C37A83E15B8B474005EF8EE /* MPOutlineDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPOutlineDataSource.h; sourceTree = "<group>"; };
|
4C37A83E15B8B474005EF8EE /* MPOutlineDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPOutlineDataSource.h; sourceTree = "<group>"; };
|
||||||
4C37A83F15B8B474005EF8EE /* MPOutlineDataSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPOutlineDataSource.m; sourceTree = "<group>"; };
|
4C37A83F15B8B474005EF8EE /* MPOutlineDataSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPOutlineDataSource.m; sourceTree = "<group>"; };
|
||||||
|
4C39B3F3178FEFAE0027DC7C /* KPKNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KPKNode.h; sourceTree = "<group>"; };
|
||||||
|
4C39B3F4178FEFAE0027DC7C /* KPKNode.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KPKNode.m; sourceTree = "<group>"; };
|
||||||
4C3BD51316D276F800389F1F /* MPToolbarDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPToolbarDelegate.h; sourceTree = "<group>"; };
|
4C3BD51316D276F800389F1F /* MPToolbarDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPToolbarDelegate.h; sourceTree = "<group>"; };
|
||||||
4C3BD51416D276F800389F1F /* MPToolbarDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPToolbarDelegate.m; sourceTree = "<group>"; };
|
4C3BD51416D276F800389F1F /* MPToolbarDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPToolbarDelegate.m; sourceTree = "<group>"; };
|
||||||
4C3D4C0617594CA40038DAAC /* HNHSeparator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HNHSeparator.h; sourceTree = "<group>"; };
|
4C3D4C0617594CA40038DAAC /* HNHSeparator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HNHSeparator.h; sourceTree = "<group>"; };
|
||||||
4C3D4C0717594CA40038DAAC /* HNHSeparator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HNHSeparator.m; sourceTree = "<group>"; };
|
4C3D4C0717594CA40038DAAC /* HNHSeparator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HNHSeparator.m; sourceTree = "<group>"; };
|
||||||
4C3E1CBE177DEFB3003BD9BD /* StringField+Undo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "StringField+Undo.h"; sourceTree = "<group>"; };
|
4C3E1CBE177DEFB3003BD9BD /* StringField+Undo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "StringField+Undo.h"; sourceTree = "<group>"; };
|
||||||
4C3E1CBF177DEFB3003BD9BD /* StringField+Undo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "StringField+Undo.m"; sourceTree = "<group>"; };
|
4C3E1CBF177DEFB3003BD9BD /* StringField+Undo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "StringField+Undo.m"; sourceTree = "<group>"; };
|
||||||
|
4C3F28521791EDE800703281 /* KPKErrors.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KPKErrors.h; sourceTree = "<group>"; };
|
||||||
|
4C3F28531791EDFD00703281 /* KPKErrors.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KPKErrors.m; sourceTree = "<group>"; };
|
||||||
|
4C3F28571791F04F00703281 /* LocalizableErrors.strings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = LocalizableErrors.strings; path = Resources/LocalizableErrors.strings; sourceTree = "<group>"; };
|
||||||
4C3FFD9D16DAF60600DF9186 /* FilterBar.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FilterBar.xib; sourceTree = "<group>"; };
|
4C3FFD9D16DAF60600DF9186 /* FilterBar.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FilterBar.xib; sourceTree = "<group>"; };
|
||||||
4C431BCB16E2A82700700A81 /* MPPasteBoardController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPPasteBoardController.h; sourceTree = "<group>"; };
|
4C431BCB16E2A82700700A81 /* MPPasteBoardController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPPasteBoardController.h; sourceTree = "<group>"; };
|
||||||
4C431BCC16E2A82700700A81 /* MPPasteBoardController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPPasteBoardController.m; sourceTree = "<group>"; };
|
4C431BCC16E2A82700700A81 /* MPPasteBoardController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPPasteBoardController.m; sourceTree = "<group>"; };
|
||||||
4C431BCE16E2BAB000700A81 /* OverlayWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = OverlayWindow.xib; sourceTree = "<group>"; };
|
4C431BCE16E2BAB000700A81 /* OverlayWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = OverlayWindow.xib; sourceTree = "<group>"; };
|
||||||
|
4C4436751792BE810099E220 /* KPKFormat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KPKFormat.h; sourceTree = "<group>"; };
|
||||||
|
4C4436761792BE810099E220 /* KPKFormat.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KPKFormat.m; sourceTree = "<group>"; };
|
||||||
|
4C45FB1A178E09ED0010007D /* MacPassTests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MacPassTests.octest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
4C45FB1B178E09ED0010007D /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; };
|
||||||
|
4C45FB20178E09ED0010007D /* MacPassTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "MacPassTests-Info.plist"; sourceTree = "<group>"; };
|
||||||
|
4C45FB22178E09ED0010007D /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||||
|
4C45FB27178E09ED0010007D /* MacPassTests-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "MacPassTests-Prefix.pch"; sourceTree = "<group>"; };
|
||||||
|
4C45FB2B178E0BCB0010007D /* MPDatabaseLoading.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPDatabaseLoading.h; sourceTree = "<group>"; };
|
||||||
|
4C45FB2C178E0BCB0010007D /* MPDatabaseLoading.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPDatabaseLoading.m; sourceTree = "<group>"; };
|
||||||
|
4C45FB2E178E0CE20010007D /* MPDatabaseCreation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPDatabaseCreation.h; sourceTree = "<group>"; };
|
||||||
|
4C45FB2F178E0CE20010007D /* MPDatabaseCreation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPDatabaseCreation.m; sourceTree = "<group>"; };
|
||||||
4C46B88317063A070046109A /* NSString+MPPasswordCreation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+MPPasswordCreation.h"; sourceTree = "<group>"; };
|
4C46B88317063A070046109A /* NSString+MPPasswordCreation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+MPPasswordCreation.h"; sourceTree = "<group>"; };
|
||||||
4C46B88417063A070046109A /* NSString+MPPasswordCreation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+MPPasswordCreation.m"; sourceTree = "<group>"; };
|
4C46B88417063A070046109A /* NSString+MPPasswordCreation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+MPPasswordCreation.m"; sourceTree = "<group>"; };
|
||||||
4C46B88617063A170046109A /* NSString+MPPasswordAnalysis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+MPPasswordAnalysis.h"; sourceTree = "<group>"; };
|
4C46B88617063A170046109A /* NSString+PasswordStrength.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+PasswordStrength.h"; sourceTree = "<group>"; };
|
||||||
4C46B88717063A170046109A /* NSString+MPPasswordAnalysis.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+MPPasswordAnalysis.m"; sourceTree = "<group>"; };
|
4C46B88717063A170046109A /* NSString+PasswordStrength.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+PasswordStrength.m"; sourceTree = "<group>"; };
|
||||||
4C46E09C17673A0A00DA62E8 /* HNHShadowBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HNHShadowBox.h; sourceTree = "<group>"; };
|
4C46E09C17673A0A00DA62E8 /* HNHShadowBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HNHShadowBox.h; sourceTree = "<group>"; };
|
||||||
4C46E09D17673A0A00DA62E8 /* HNHShadowBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HNHShadowBox.m; sourceTree = "<group>"; };
|
4C46E09D17673A0A00DA62E8 /* HNHShadowBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HNHShadowBox.m; sourceTree = "<group>"; };
|
||||||
4C4A100D176286FD00BBF2CA /* MPTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPTableView.h; sourceTree = "<group>"; };
|
4C4A100D176286FD00BBF2CA /* MPTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPTableView.h; sourceTree = "<group>"; };
|
||||||
@@ -320,6 +375,10 @@
|
|||||||
4C4FCE17177D03D700BBF7AE /* Kdb4Entry+KVOAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "Kdb4Entry+KVOAdditions.m"; sourceTree = "<group>"; };
|
4C4FCE17177D03D700BBF7AE /* Kdb4Entry+KVOAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "Kdb4Entry+KVOAdditions.m"; sourceTree = "<group>"; };
|
||||||
4C52A242177D7B9F0000D88F /* HNHScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HNHScrollView.h; sourceTree = "<group>"; };
|
4C52A242177D7B9F0000D88F /* HNHScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HNHScrollView.h; sourceTree = "<group>"; };
|
||||||
4C52A243177D7B9F0000D88F /* HNHScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HNHScrollView.m; sourceTree = "<group>"; };
|
4C52A243177D7B9F0000D88F /* HNHScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HNHScrollView.m; sourceTree = "<group>"; };
|
||||||
|
4C52A88B1788628B00868229 /* 06_BlockDeviceTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 06_BlockDeviceTemplate.pdf; sourceTree = "<group>"; };
|
||||||
|
4C52A88C1788628B00868229 /* 13_KeysTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 13_KeysTemplate.pdf; sourceTree = "<group>"; };
|
||||||
|
4C52A88D1788628B00868229 /* 18_DisplayTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 18_DisplayTemplate.pdf; sourceTree = "<group>"; };
|
||||||
|
4C52A891178863B000868229 /* 68_PhoneTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 68_PhoneTemplate.pdf; sourceTree = "<group>"; };
|
||||||
4C569D9C17652AC800595B62 /* MPConstants.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPConstants.h; sourceTree = "<group>"; };
|
4C569D9C17652AC800595B62 /* MPConstants.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPConstants.h; sourceTree = "<group>"; };
|
||||||
4C569D9D17652B0600595B62 /* MPConstants.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPConstants.m; sourceTree = "<group>"; };
|
4C569D9D17652B0600595B62 /* MPConstants.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPConstants.m; sourceTree = "<group>"; };
|
||||||
4C569D9F17652BFE00595B62 /* MPEntryTableDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPEntryTableDataSource.h; sourceTree = "<group>"; };
|
4C569D9F17652BFE00595B62 /* MPEntryTableDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPEntryTableDataSource.h; sourceTree = "<group>"; };
|
||||||
@@ -331,9 +390,13 @@
|
|||||||
4C586FA116D07F6A00E7DB57 /* 02_MessageBoxWarningTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 02_MessageBoxWarningTemplate.pdf; sourceTree = "<group>"; };
|
4C586FA116D07F6A00E7DB57 /* 02_MessageBoxWarningTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 02_MessageBoxWarningTemplate.pdf; sourceTree = "<group>"; };
|
||||||
4C58BD4D176370B100B8178C /* HNHBadgedTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HNHBadgedTextField.h; sourceTree = "<group>"; };
|
4C58BD4D176370B100B8178C /* HNHBadgedTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HNHBadgedTextField.h; sourceTree = "<group>"; };
|
||||||
4C58BD4E176370B100B8178C /* HNHBadgedTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HNHBadgedTextField.m; sourceTree = "<group>"; };
|
4C58BD4E176370B100B8178C /* HNHBadgedTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HNHBadgedTextField.m; sourceTree = "<group>"; };
|
||||||
|
4C591B55178F897A0080B16B /* KPKAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KPKAttachment.h; sourceTree = "<group>"; };
|
||||||
|
4C591B56178F897A0080B16B /* KPKAttachment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KPKAttachment.m; sourceTree = "<group>"; };
|
||||||
4C5A11FB1708DE8700223D8A /* MPPasswordCreatorViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPPasswordCreatorViewController.h; sourceTree = "<group>"; };
|
4C5A11FB1708DE8700223D8A /* MPPasswordCreatorViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPPasswordCreatorViewController.h; sourceTree = "<group>"; };
|
||||||
4C5A11FC1708DE8700223D8A /* MPPasswordCreatorViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPPasswordCreatorViewController.m; sourceTree = "<group>"; };
|
4C5A11FC1708DE8700223D8A /* MPPasswordCreatorViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPPasswordCreatorViewController.m; sourceTree = "<group>"; };
|
||||||
4C5A11FD1708DE8700223D8A /* PasswordCreatorView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PasswordCreatorView.xib; sourceTree = "<group>"; };
|
4C5A11FD1708DE8700223D8A /* PasswordCreatorView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PasswordCreatorView.xib; sourceTree = "<group>"; };
|
||||||
|
4C5AA58F179549A1008ECAD7 /* KPKXmlTreeWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KPKXmlTreeWriter.h; sourceTree = "<group>"; };
|
||||||
|
4C5AA590179549A1008ECAD7 /* KPKXmlTreeWriter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KPKXmlTreeWriter.m; sourceTree = "<group>"; };
|
||||||
4C5ADC2E17830AFB004E1E8D /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InspectorView.strings; sourceTree = "<group>"; };
|
4C5ADC2E17830AFB004E1E8D /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InspectorView.strings; sourceTree = "<group>"; };
|
||||||
4C5ADC3017830B09004E1E8D /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InspectorView.strings; sourceTree = "<group>"; };
|
4C5ADC3017830B09004E1E8D /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InspectorView.strings; sourceTree = "<group>"; };
|
||||||
4C5BF679175C01F300D53DF7 /* MPUppercaseStringValueTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPUppercaseStringValueTransformer.h; sourceTree = "<group>"; };
|
4C5BF679175C01F300D53DF7 /* MPUppercaseStringValueTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPUppercaseStringValueTransformer.h; sourceTree = "<group>"; };
|
||||||
@@ -420,23 +483,21 @@
|
|||||||
4C6D1D26178586CA0014C5A5 /* 99_AddFolderTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 99_AddFolderTemplate.pdf; sourceTree = "<group>"; };
|
4C6D1D26178586CA0014C5A5 /* 99_AddFolderTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 99_AddFolderTemplate.pdf; sourceTree = "<group>"; };
|
||||||
4C6D1D2A17858A250014C5A5 /* MacPass.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = MacPass.icns; path = "../Assets/App icon/MacPass.icns"; sourceTree = "<group>"; };
|
4C6D1D2A17858A250014C5A5 /* MacPass.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = MacPass.icns; path = "../Assets/App icon/MacPass.icns"; sourceTree = "<group>"; };
|
||||||
4C701CBB178618A000581B88 /* 12_RemoteTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 12_RemoteTemplate.pdf; sourceTree = "<group>"; };
|
4C701CBB178618A000581B88 /* 12_RemoteTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 12_RemoteTemplate.pdf; sourceTree = "<group>"; };
|
||||||
|
4C70D0FB1790924700652EE9 /* KPKParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KPKParser.h; sourceTree = "<group>"; };
|
||||||
|
4C70D0FC1790924700652EE9 /* KPKParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KPKParser.m; sourceTree = "<group>"; };
|
||||||
|
4C70D0FE179092F200652EE9 /* KPKPassword.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KPKPassword.h; sourceTree = "<group>"; };
|
||||||
|
4C70D0FF179092F200652EE9 /* KPKPassword.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KPKPassword.m; sourceTree = "<group>"; };
|
||||||
4C74DD05177BD1640034A9DB /* MPCustomFieldView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPCustomFieldView.h; sourceTree = "<group>"; };
|
4C74DD05177BD1640034A9DB /* MPCustomFieldView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPCustomFieldView.h; sourceTree = "<group>"; };
|
||||||
4C74DD06177BD1640034A9DB /* MPCustomFieldView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPCustomFieldView.m; sourceTree = "<group>"; };
|
4C74DD06177BD1640034A9DB /* MPCustomFieldView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPCustomFieldView.m; sourceTree = "<group>"; };
|
||||||
4C76155F1764C0590015A1A6 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/GeneralSettings.xib; sourceTree = "<group>"; };
|
4C76155F1764C0590015A1A6 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/GeneralSettings.xib; sourceTree = "<group>"; };
|
||||||
4C7615601764C05A0015A1A6 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
4C7615601764C05A0015A1A6 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||||
4C7615661764C08F0015A1A6 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/PasswordEditView.xib; sourceTree = "<group>"; };
|
|
||||||
4C7615671764C09E0015A1A6 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/PasswordEditView.strings; sourceTree = "<group>"; };
|
|
||||||
4C76156B1764C0C80015A1A6 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/PasswordInputView.xib; sourceTree = "<group>"; };
|
4C76156B1764C0C80015A1A6 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/PasswordInputView.xib; sourceTree = "<group>"; };
|
||||||
4C76156C1764C0CC0015A1A6 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/PasswordInputView.strings; sourceTree = "<group>"; };
|
4C76156C1764C0CC0015A1A6 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/PasswordInputView.strings; sourceTree = "<group>"; };
|
||||||
4C7615701764C0E80015A1A6 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/InspectorView.xib; sourceTree = "<group>"; };
|
4C7615701764C0E80015A1A6 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/InspectorView.xib; sourceTree = "<group>"; };
|
||||||
4C7615721764C4A40015A1A6 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/GeneralSettings.strings; sourceTree = "<group>"; };
|
|
||||||
4C7615731764C4A40015A1A6 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/MainMenu.strings; sourceTree = "<group>"; };
|
|
||||||
4C7615741764C4A40015A1A6 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/PasswordEditView.strings; sourceTree = "<group>"; };
|
|
||||||
4C7615751764C4A40015A1A6 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/PasswordInputView.strings; sourceTree = "<group>"; };
|
4C7615751764C4A40015A1A6 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/PasswordInputView.strings; sourceTree = "<group>"; };
|
||||||
4C7615771764C4A40015A1A6 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = "<group>"; };
|
4C7615771764C4A40015A1A6 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||||
4C7615781764C4A50015A1A6 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = de; path = de.lproj/Credits.rtf; sourceTree = "<group>"; };
|
4C7615781764C4A50015A1A6 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = de; path = de.lproj/Credits.rtf; sourceTree = "<group>"; };
|
||||||
4C7615791764C4A50015A1A6 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
4C7615791764C4A50015A1A6 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||||
4C76157B1764C5450015A1A6 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/MainMenu.strings; sourceTree = "<group>"; };
|
|
||||||
4C7714A9176C998F00549F2A /* 43_TrashTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 43_TrashTemplate.pdf; sourceTree = "<group>"; };
|
4C7714A9176C998F00549F2A /* 43_TrashTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 43_TrashTemplate.pdf; sourceTree = "<group>"; };
|
||||||
4C7714AB176C9D4600549F2A /* 99_InfoTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 99_InfoTemplate.pdf; sourceTree = "<group>"; };
|
4C7714AB176C9D4600549F2A /* 99_InfoTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 99_InfoTemplate.pdf; sourceTree = "<group>"; };
|
||||||
4C77547316E55FE800970E02 /* MPInspectorViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPInspectorViewController.h; sourceTree = "<group>"; };
|
4C77547316E55FE800970E02 /* MPInspectorViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPInspectorViewController.h; sourceTree = "<group>"; };
|
||||||
@@ -454,11 +515,10 @@
|
|||||||
4C77E37915B84A240093A587 /* MPAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPAppDelegate.m; sourceTree = "<group>"; };
|
4C77E37915B84A240093A587 /* MPAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPAppDelegate.m; sourceTree = "<group>"; };
|
||||||
4C79DF28176685870083708F /* HNHRoundedTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HNHRoundedTextField.h; sourceTree = "<group>"; };
|
4C79DF28176685870083708F /* HNHRoundedTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HNHRoundedTextField.h; sourceTree = "<group>"; };
|
||||||
4C79DF29176685870083708F /* HNHRoundedTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HNHRoundedTextField.m; sourceTree = "<group>"; };
|
4C79DF29176685870083708F /* HNHRoundedTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HNHRoundedTextField.m; sourceTree = "<group>"; };
|
||||||
4C79DF2F1766941D0083708F /* MPResponderQuery.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPResponderQuery.h; sourceTree = "<group>"; };
|
4C7F35691779DFFB00C57890 /* en */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Errors.strings; sourceTree = "<group>"; };
|
||||||
4C7E8328172DE2F2002493D8 /* MPPasswordEditViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPPasswordEditViewController.h; sourceTree = "<group>"; };
|
4C7F356B1779DFFF00C57890 /* de */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Errors.strings; sourceTree = "<group>"; };
|
||||||
4C7E8329172DE2F2002493D8 /* MPPasswordEditViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPPasswordEditViewController.m; sourceTree = "<group>"; };
|
4C801AFA179310E2002821E3 /* NSString+Hexdata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+Hexdata.h"; sourceTree = "<group>"; };
|
||||||
4C7F35691779DFFB00C57890 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Errors.strings; sourceTree = "<group>"; };
|
4C801AFB179310E2002821E3 /* NSString+Hexdata.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+Hexdata.m"; sourceTree = "<group>"; };
|
||||||
4C7F356B1779DFFF00C57890 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Errors.strings; sourceTree = "<group>"; };
|
|
||||||
4C80BB6D176DE06F00E5E248 /* HNHScrollDocumentViewAdapter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HNHScrollDocumentViewAdapter.h; sourceTree = "<group>"; };
|
4C80BB6D176DE06F00E5E248 /* HNHScrollDocumentViewAdapter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HNHScrollDocumentViewAdapter.h; sourceTree = "<group>"; };
|
||||||
4C80BB6E176DE06F00E5E248 /* HNHScrollDocumentViewAdapter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HNHScrollDocumentViewAdapter.m; sourceTree = "<group>"; };
|
4C80BB6E176DE06F00E5E248 /* HNHScrollDocumentViewAdapter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HNHScrollDocumentViewAdapter.m; sourceTree = "<group>"; };
|
||||||
4C811C8116ECD06E00C4BAC6 /* MPKeyfilePathControlDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPKeyfilePathControlDelegate.h; sourceTree = "<group>"; };
|
4C811C8116ECD06E00C4BAC6 /* MPKeyfilePathControlDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPKeyfilePathControlDelegate.h; sourceTree = "<group>"; };
|
||||||
@@ -474,6 +534,8 @@
|
|||||||
4C888C9216EB6F5E003D34A1 /* MPToolbarItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPToolbarItem.m; sourceTree = "<group>"; };
|
4C888C9216EB6F5E003D34A1 /* MPToolbarItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPToolbarItem.m; sourceTree = "<group>"; };
|
||||||
4C888C9516EB754B003D34A1 /* MPActionHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPActionHelper.h; sourceTree = "<group>"; };
|
4C888C9516EB754B003D34A1 /* MPActionHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPActionHelper.h; sourceTree = "<group>"; };
|
||||||
4C888C9616EB754B003D34A1 /* MPActionHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPActionHelper.m; sourceTree = "<group>"; };
|
4C888C9616EB754B003D34A1 /* MPActionHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPActionHelper.m; sourceTree = "<group>"; };
|
||||||
|
4C8A173B1790AA41008B5C17 /* NSData+Keyfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSData+Keyfile.h"; sourceTree = "<group>"; };
|
||||||
|
4C8A173C1790AA41008B5C17 /* NSData+Keyfile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSData+Keyfile.m"; sourceTree = "<group>"; };
|
||||||
4C8FECC716D57E3200BF26CF /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
|
4C8FECC716D57E3200BF26CF /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
|
||||||
4C920E2816DCDFA00083839B /* MPLoggerProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPLoggerProxy.h; sourceTree = "<group>"; };
|
4C920E2816DCDFA00083839B /* MPLoggerProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPLoggerProxy.h; sourceTree = "<group>"; };
|
||||||
4C920E2916DCDFA00083839B /* MPLoggerProxy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPLoggerProxy.m; sourceTree = "<group>"; };
|
4C920E2916DCDFA00083839B /* MPLoggerProxy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPLoggerProxy.m; sourceTree = "<group>"; };
|
||||||
@@ -487,9 +549,9 @@
|
|||||||
4CA0B30D15BCB6FD00654E32 /* MPSettingsTab.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPSettingsTab.h; sourceTree = "<group>"; };
|
4CA0B30D15BCB6FD00654E32 /* MPSettingsTab.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPSettingsTab.h; sourceTree = "<group>"; };
|
||||||
4CA0E3A5176FAF99004D18CB /* MPDocumentQueryService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPDocumentQueryService.h; sourceTree = "<group>"; };
|
4CA0E3A5176FAF99004D18CB /* MPDocumentQueryService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPDocumentQueryService.h; sourceTree = "<group>"; };
|
||||||
4CA0E3A6176FAF99004D18CB /* MPDocumentQueryService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPDocumentQueryService.m; sourceTree = "<group>"; };
|
4CA0E3A6176FAF99004D18CB /* MPDocumentQueryService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPDocumentQueryService.m; sourceTree = "<group>"; };
|
||||||
4CA23357176DB8F000F0B6AC /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/GeneralSettings.strings; sourceTree = "<group>"; };
|
|
||||||
4CA23358176DBFE100F0B6AC /* MPLockDaemon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPLockDaemon.h; sourceTree = "<group>"; };
|
4CA23358176DBFE100F0B6AC /* MPLockDaemon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPLockDaemon.h; sourceTree = "<group>"; };
|
||||||
4CA23359176DBFE100F0B6AC /* MPLockDaemon.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPLockDaemon.m; sourceTree = "<group>"; };
|
4CA23359176DBFE100F0B6AC /* MPLockDaemon.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPLockDaemon.m; sourceTree = "<group>"; };
|
||||||
|
4CAAFDD51787AED60013FCF9 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/MainMenu.strings; sourceTree = "<group>"; };
|
||||||
4CAD745615B887FD00104512 /* DDXMLElementAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDXMLElementAdditions.h; sourceTree = "<group>"; };
|
4CAD745615B887FD00104512 /* DDXMLElementAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDXMLElementAdditions.h; sourceTree = "<group>"; };
|
||||||
4CAD745715B887FD00104512 /* DDXMLElementAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDXMLElementAdditions.m; sourceTree = "<group>"; };
|
4CAD745715B887FD00104512 /* DDXMLElementAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDXMLElementAdditions.m; sourceTree = "<group>"; };
|
||||||
4CAD745915B887FD00104512 /* NSString+DDXML.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+DDXML.h"; sourceTree = "<group>"; };
|
4CAD745915B887FD00104512 /* NSString+DDXML.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+DDXML.h"; sourceTree = "<group>"; };
|
||||||
@@ -509,7 +571,10 @@
|
|||||||
4CB9339816D3A0DD00A13B5D /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = "<group>"; };
|
4CB9339816D3A0DD00A13B5D /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = "<group>"; };
|
||||||
4CBA2AB617074B59006D8139 /* MPSettingsHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPSettingsHelper.h; sourceTree = "<group>"; };
|
4CBA2AB617074B59006D8139 /* MPSettingsHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPSettingsHelper.h; sourceTree = "<group>"; };
|
||||||
4CBA2AB917074C07006D8139 /* MPSettingsHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPSettingsHelper.m; sourceTree = "<group>"; };
|
4CBA2AB917074C07006D8139 /* MPSettingsHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPSettingsHelper.m; sourceTree = "<group>"; };
|
||||||
4CC0B8DA1773729F00311E8C /* MPFirstResonderNotification.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPFirstResonderNotification.h; sourceTree = "<group>"; };
|
4CC0D2CC17974A47000B4BDA /* MPCustomFieldTableViewDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPCustomFieldTableViewDelegate.h; sourceTree = "<group>"; };
|
||||||
|
4CC0D2CD17974A47000B4BDA /* MPCustomFieldTableViewDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPCustomFieldTableViewDelegate.m; sourceTree = "<group>"; };
|
||||||
|
4CC0D2CF17974A5A000B4BDA /* MPAttachmentTableViewDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPAttachmentTableViewDelegate.h; sourceTree = "<group>"; };
|
||||||
|
4CC0D2D017974A5A000B4BDA /* MPAttachmentTableViewDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPAttachmentTableViewDelegate.m; sourceTree = "<group>"; };
|
||||||
4CC1AEBC16D4467C006D2AAB /* KdbTree+MPAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "KdbTree+MPAdditions.h"; sourceTree = "<group>"; };
|
4CC1AEBC16D4467C006D2AAB /* KdbTree+MPAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "KdbTree+MPAdditions.h"; sourceTree = "<group>"; };
|
||||||
4CC1AEBD16D4467C006D2AAB /* KdbTree+MPAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "KdbTree+MPAdditions.m"; sourceTree = "<group>"; };
|
4CC1AEBD16D4467C006D2AAB /* KdbTree+MPAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "KdbTree+MPAdditions.m"; sourceTree = "<group>"; };
|
||||||
4CC299FD176F99E50050C939 /* MPRequestHandlerService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPRequestHandlerService.h; sourceTree = "<group>"; };
|
4CC299FD176F99E50050C939 /* MPRequestHandlerService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPRequestHandlerService.h; sourceTree = "<group>"; };
|
||||||
@@ -524,17 +589,32 @@
|
|||||||
4CC6727B1781D0D2006DEDCF /* KdbEntry+MPAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "KdbEntry+MPAdditions.m"; sourceTree = "<group>"; };
|
4CC6727B1781D0D2006DEDCF /* KdbEntry+MPAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "KdbEntry+MPAdditions.m"; sourceTree = "<group>"; };
|
||||||
4CC7EA1917807E7E0089D4F3 /* HNHRoundendTextFieldCellHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HNHRoundendTextFieldCellHelper.h; sourceTree = "<group>"; };
|
4CC7EA1917807E7E0089D4F3 /* HNHRoundendTextFieldCellHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HNHRoundendTextFieldCellHelper.h; sourceTree = "<group>"; };
|
||||||
4CC7EA1A17807E7E0089D4F3 /* HNHRoundendTextFieldCellHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HNHRoundendTextFieldCellHelper.m; sourceTree = "<group>"; };
|
4CC7EA1A17807E7E0089D4F3 /* HNHRoundendTextFieldCellHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HNHRoundendTextFieldCellHelper.m; sourceTree = "<group>"; };
|
||||||
4CD5D701177A5EE400100649 /* DocumentSettingsWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = DocumentSettingsWindow.xib; sourceTree = "<group>"; };
|
4CCA7EEC1797866F00B0B55E /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/GeneralSettings.strings; sourceTree = "<group>"; };
|
||||||
4CD5D703177A5F3300100649 /* MPDocumentSettingsWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPDocumentSettingsWindowController.h; sourceTree = "<group>"; };
|
4CCA7EEE1797867200B0B55E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/GeneralSettings.strings; sourceTree = "<group>"; };
|
||||||
4CD5D704177A5F3300100649 /* MPDocumentSettingsWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPDocumentSettingsWindowController.m; sourceTree = "<group>"; };
|
4CD3ABB2178F71B50073F5C5 /* KPKVersion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KPKVersion.h; sourceTree = "<group>"; };
|
||||||
|
4CD3ABB3178F71B50073F5C5 /* KPKTree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KPKTree.h; sourceTree = "<group>"; };
|
||||||
|
4CD3ABB4178F71B50073F5C5 /* KPKTree.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KPKTree.m; sourceTree = "<group>"; };
|
||||||
|
4CD3ABBD178F72610073F5C5 /* KPKEntry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KPKEntry.h; sourceTree = "<group>"; };
|
||||||
|
4CD3ABBE178F72610073F5C5 /* KPKEntry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KPKEntry.m; sourceTree = "<group>"; };
|
||||||
|
4CD3ABC0178F72720073F5C5 /* KPKGroup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KPKGroup.h; sourceTree = "<group>"; };
|
||||||
|
4CD3ABC1178F72720073F5C5 /* KPKGroup.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KPKGroup.m; sourceTree = "<group>"; };
|
||||||
|
4CD5D701177A5EE400100649 /* DatabaseSettingsWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = DatabaseSettingsWindow.xib; sourceTree = "<group>"; };
|
||||||
|
4CD5D703177A5F3300100649 /* MPDatabaseSettingsWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPDatabaseSettingsWindowController.h; sourceTree = "<group>"; };
|
||||||
|
4CD5D704177A5F3300100649 /* MPDatabaseSettingsWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPDatabaseSettingsWindowController.m; sourceTree = "<group>"; };
|
||||||
|
4CD6C5AC1789FDE6000891F6 /* HNHRoundedSecureTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HNHRoundedSecureTextField.h; sourceTree = "<group>"; };
|
||||||
|
4CD6C5AD1789FDE6000891F6 /* HNHRoundedSecureTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HNHRoundedSecureTextField.m; sourceTree = "<group>"; };
|
||||||
4CD78AB716D155FF00768A1D /* 07_NotepadTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 07_NotepadTemplate.pdf; sourceTree = "<group>"; };
|
4CD78AB716D155FF00768A1D /* 07_NotepadTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 07_NotepadTemplate.pdf; sourceTree = "<group>"; };
|
||||||
4CD78AB816D155FF00768A1D /* 08_SocketTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 08_SocketTemplate.pdf; sourceTree = "<group>"; };
|
4CD78AB816D155FF00768A1D /* 08_SocketTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 08_SocketTemplate.pdf; sourceTree = "<group>"; };
|
||||||
4CD78AB916D155FF00768A1D /* 09_IdentityTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 09_IdentityTemplate.pdf; sourceTree = "<group>"; };
|
4CD78AB916D155FF00768A1D /* 09_IdentityTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 09_IdentityTemplate.pdf; sourceTree = "<group>"; };
|
||||||
4CD78ABA16D155FF00768A1D /* 10_ContactTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 10_ContactTemplate.pdf; sourceTree = "<group>"; };
|
4CD78ABA16D155FF00768A1D /* 10_ContactTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 10_ContactTemplate.pdf; sourceTree = "<group>"; };
|
||||||
4CD78ABB16D155FF00768A1D /* 11_CameraTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 11_CameraTemplate.pdf; sourceTree = "<group>"; };
|
4CD78ABB16D155FF00768A1D /* 11_CameraTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 11_CameraTemplate.pdf; sourceTree = "<group>"; };
|
||||||
4CD884B615BD47080042BBF8 /* DocumentWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = DocumentWindow.xib; sourceTree = "<group>"; };
|
4CD884B615BD47080042BBF8 /* DocumentWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = DocumentWindow.xib; sourceTree = "<group>"; };
|
||||||
|
4CDB5C401794AA4F0017667E /* KPKTree+Serializing.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "KPKTree+Serializing.h"; path = "../Core/KPKTree+Serializing.h"; sourceTree = "<group>"; };
|
||||||
|
4CDB5C411794AA4F0017667E /* KPKTree+Serializing.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "KPKTree+Serializing.m"; path = "../Core/KPKTree+Serializing.m"; sourceTree = "<group>"; };
|
||||||
4CDF01A116D1B76700D0AC08 /* MPEntryViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPEntryViewController.h; sourceTree = "<group>"; };
|
4CDF01A116D1B76700D0AC08 /* MPEntryViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPEntryViewController.h; sourceTree = "<group>"; };
|
||||||
4CDF01A216D1B76700D0AC08 /* MPEntryViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPEntryViewController.m; sourceTree = "<group>"; };
|
4CDF01A216D1B76700D0AC08 /* MPEntryViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPEntryViewController.m; sourceTree = "<group>"; };
|
||||||
|
4CE298E91795FC2A00DF7BDB /* MPEntryMenuDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPEntryMenuDelegate.h; sourceTree = "<group>"; };
|
||||||
|
4CE298EA1795FC2A00DF7BDB /* MPEntryMenuDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPEntryMenuDelegate.m; sourceTree = "<group>"; };
|
||||||
4CE39ABD16ECE34A000FE29D /* MPIconSelectViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPIconSelectViewController.h; sourceTree = "<group>"; };
|
4CE39ABD16ECE34A000FE29D /* MPIconSelectViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPIconSelectViewController.h; sourceTree = "<group>"; };
|
||||||
4CE39ABE16ECE34A000FE29D /* MPIconSelectViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPIconSelectViewController.m; sourceTree = "<group>"; };
|
4CE39ABE16ECE34A000FE29D /* MPIconSelectViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPIconSelectViewController.m; sourceTree = "<group>"; };
|
||||||
4CE39AC016ECE359000FE29D /* IconSelection.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = IconSelection.xib; sourceTree = "<group>"; };
|
4CE39AC016ECE359000FE29D /* IconSelection.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = IconSelection.xib; sourceTree = "<group>"; };
|
||||||
@@ -548,6 +628,9 @@
|
|||||||
4CE8247416E2F2B900573141 /* MPOverlayView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPOverlayView.m; sourceTree = "<group>"; };
|
4CE8247416E2F2B900573141 /* MPOverlayView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPOverlayView.m; sourceTree = "<group>"; };
|
||||||
4CF1F0C81786B37900CD920E /* NSData+Gzip.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSData+Gzip.m"; sourceTree = "<group>"; };
|
4CF1F0C81786B37900CD920E /* NSData+Gzip.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSData+Gzip.m"; sourceTree = "<group>"; };
|
||||||
4CF1F0C91786B37900CD920E /* NSData+Gzip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSData+Gzip.h"; sourceTree = "<group>"; };
|
4CF1F0C91786B37900CD920E /* NSData+Gzip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSData+Gzip.h"; sourceTree = "<group>"; };
|
||||||
|
4CF29BF317879D0000851B60 /* 26_FileSaveTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 26_FileSaveTemplate.pdf; sourceTree = "<group>"; };
|
||||||
|
4CF62B84179385D700B660B6 /* KPKAttribute.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KPKAttribute.h; sourceTree = "<group>"; };
|
||||||
|
4CF62B85179385D700B660B6 /* KPKAttribute.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KPKAttribute.m; sourceTree = "<group>"; };
|
||||||
4CF6C70F176F4533007A811D /* MPStringLengthValueTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPStringLengthValueTransformer.h; sourceTree = "<group>"; };
|
4CF6C70F176F4533007A811D /* MPStringLengthValueTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPStringLengthValueTransformer.h; sourceTree = "<group>"; };
|
||||||
4CF6C710176F4533007A811D /* MPStringLengthValueTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPStringLengthValueTransformer.m; sourceTree = "<group>"; };
|
4CF6C710176F4533007A811D /* MPStringLengthValueTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPStringLengthValueTransformer.m; sourceTree = "<group>"; };
|
||||||
4CF6C715176F5183007A811D /* MPServerRequestHandler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPServerRequestHandler.h; sourceTree = "<group>"; };
|
4CF6C715176F5183007A811D /* MPServerRequestHandler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPServerRequestHandler.h; sourceTree = "<group>"; };
|
||||||
@@ -568,6 +651,15 @@
|
|||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
|
4C45FB16178E09ED0010007D /* Frameworks */ = {
|
||||||
|
isa = PBXFrameworksBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
4C45FB1C178E09ED0010007D /* SenTestingKit.framework in Frameworks */,
|
||||||
|
4C45FB1D178E09ED0010007D /* Cocoa.framework in Frameworks */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
4C77E35F15B84A240093A587 /* Frameworks */ = {
|
4C77E35F15B84A240093A587 /* Frameworks */ = {
|
||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
@@ -593,6 +685,7 @@
|
|||||||
4C3FFD9D16DAF60600DF9186 /* FilterBar.xib */,
|
4C3FFD9D16DAF60600DF9186 /* FilterBar.xib */,
|
||||||
4C76156F1764C0E20015A1A6 /* InspectorView.xib */,
|
4C76156F1764C0E20015A1A6 /* InspectorView.xib */,
|
||||||
4CE39AC016ECE359000FE29D /* IconSelection.xib */,
|
4CE39AC016ECE359000FE29D /* IconSelection.xib */,
|
||||||
|
4C2C8B331787500E009649F3 /* UnprotectedWarningView.xib */,
|
||||||
4C74DD05177BD1640034A9DB /* MPCustomFieldView.h */,
|
4C74DD05177BD1640034A9DB /* MPCustomFieldView.h */,
|
||||||
4C74DD06177BD1640034A9DB /* MPCustomFieldView.m */,
|
4C74DD06177BD1640034A9DB /* MPCustomFieldView.m */,
|
||||||
4CE8247316E2F2B900573141 /* MPOverlayView.h */,
|
4CE8247316E2F2B900573141 /* MPOverlayView.h */,
|
||||||
@@ -611,6 +704,35 @@
|
|||||||
name = Views;
|
name = Views;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
4C104129178CDD26001B5239 /* Categories */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
4C10412A178CDD44001B5239 /* NSDate+Humanized.h */,
|
||||||
|
4C10412B178CDD44001B5239 /* NSDate+Humanized.m */,
|
||||||
|
);
|
||||||
|
name = Categories;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
4C16BA5F1787997E002B42BD /* ValueTransformer */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
4C5BF679175C01F300D53DF7 /* MPUppercaseStringValueTransformer.h */,
|
||||||
|
4C5BF67A175C01F300D53DF7 /* MPUppercaseStringValueTransformer.m */,
|
||||||
|
4CF6C70F176F4533007A811D /* MPStringLengthValueTransformer.h */,
|
||||||
|
4CF6C710176F4533007A811D /* MPStringLengthValueTransformer.m */,
|
||||||
|
);
|
||||||
|
name = ValueTransformer;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
4C18F9AC178E123200890BCE /* Databases */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
4C19E4FF178E26EF002F2CD0 /* Test_Password_1234.kdbx */,
|
||||||
|
4C18F9AA178E122500890BCE /* Test_Password_1234.kdb */,
|
||||||
|
);
|
||||||
|
name = Databases;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
4C245A64176E1E3C0086100E /* CocoaHTTPServer */ = {
|
4C245A64176E1E3C0086100E /* CocoaHTTPServer */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@@ -766,10 +888,10 @@
|
|||||||
4C2724D31778FA0700FD8456 /* NSDate+Packed.m */,
|
4C2724D31778FA0700FD8456 /* NSDate+Packed.m */,
|
||||||
4CF1F0C81786B37900CD920E /* NSData+Gzip.m */,
|
4CF1F0C81786B37900CD920E /* NSData+Gzip.m */,
|
||||||
4CF1F0C91786B37900CD920E /* NSData+Gzip.h */,
|
4CF1F0C91786B37900CD920E /* NSData+Gzip.h */,
|
||||||
4C2724D51778FF1A00FD8456 /* NSUUID+KeePassLib.h */,
|
|
||||||
4C2724D61778FF1A00FD8456 /* NSUUID+KeePassLib.m */,
|
|
||||||
4C2724D817790E7C00FD8456 /* NSMutableData+Base64.h */,
|
4C2724D817790E7C00FD8456 /* NSMutableData+Base64.h */,
|
||||||
4C2724D917790E7C00FD8456 /* NSMutableData+Base64.m */,
|
4C2724D917790E7C00FD8456 /* NSMutableData+Base64.m */,
|
||||||
|
4C801AFA179310E2002821E3 /* NSString+Hexdata.h */,
|
||||||
|
4C801AFB179310E2002821E3 /* NSString+Hexdata.m */,
|
||||||
);
|
);
|
||||||
name = Categories;
|
name = Categories;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -810,22 +932,23 @@
|
|||||||
4C2E382016D141F700037A9D /* Helper */ = {
|
4C2E382016D141F700037A9D /* Helper */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
4C16BA5F1787997E002B42BD /* ValueTransformer */,
|
||||||
|
4C888C9516EB754B003D34A1 /* MPActionHelper.h */,
|
||||||
|
4C888C9616EB754B003D34A1 /* MPActionHelper.m */,
|
||||||
4C2E382116D1421B00037A9D /* MPIconHelper.h */,
|
4C2E382116D1421B00037A9D /* MPIconHelper.h */,
|
||||||
4C2E382216D1421B00037A9D /* MPIconHelper.m */,
|
4C2E382216D1421B00037A9D /* MPIconHelper.m */,
|
||||||
4C920E2816DCDFA00083839B /* MPLoggerProxy.h */,
|
4C920E2816DCDFA00083839B /* MPLoggerProxy.h */,
|
||||||
4C920E2916DCDFA00083839B /* MPLoggerProxy.m */,
|
4C920E2916DCDFA00083839B /* MPLoggerProxy.m */,
|
||||||
4CBA2AB617074B59006D8139 /* MPSettingsHelper.h */,
|
4CBA2AB617074B59006D8139 /* MPSettingsHelper.h */,
|
||||||
4CBA2AB917074C07006D8139 /* MPSettingsHelper.m */,
|
4CBA2AB917074C07006D8139 /* MPSettingsHelper.m */,
|
||||||
4C5BF679175C01F300D53DF7 /* MPUppercaseStringValueTransformer.h */,
|
|
||||||
4C5BF67A175C01F300D53DF7 /* MPUppercaseStringValueTransformer.m */,
|
|
||||||
4CF6C70F176F4533007A811D /* MPStringLengthValueTransformer.h */,
|
|
||||||
4CF6C710176F4533007A811D /* MPStringLengthValueTransformer.m */,
|
|
||||||
4C01C2401764D8980016D5D0 /* MPContextMenuHelper.h */,
|
4C01C2401764D8980016D5D0 /* MPContextMenuHelper.h */,
|
||||||
4C01C2411764D8980016D5D0 /* MPContextMenuHelper.m */,
|
4C01C2411764D8980016D5D0 /* MPContextMenuHelper.m */,
|
||||||
4C569D9C17652AC800595B62 /* MPConstants.h */,
|
4C569D9C17652AC800595B62 /* MPConstants.h */,
|
||||||
4C569D9D17652B0600595B62 /* MPConstants.m */,
|
4C569D9D17652B0600595B62 /* MPConstants.m */,
|
||||||
4CA23358176DBFE100F0B6AC /* MPLockDaemon.h */,
|
4CA23358176DBFE100F0B6AC /* MPLockDaemon.h */,
|
||||||
4CA23359176DBFE100F0B6AC /* MPLockDaemon.m */,
|
4CA23359176DBFE100F0B6AC /* MPLockDaemon.m */,
|
||||||
|
4C16BA6017879A3C002B42BD /* MPPasswordStringFormatter.h */,
|
||||||
|
4C16BA6117879A3C002B42BD /* MPPasswordStringFormatter.m */,
|
||||||
);
|
);
|
||||||
name = Helper;
|
name = Helper;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -839,6 +962,12 @@
|
|||||||
4C3BD51416D276F800389F1F /* MPToolbarDelegate.m */,
|
4C3BD51416D276F800389F1F /* MPToolbarDelegate.m */,
|
||||||
4C811C8116ECD06E00C4BAC6 /* MPKeyfilePathControlDelegate.h */,
|
4C811C8116ECD06E00C4BAC6 /* MPKeyfilePathControlDelegate.h */,
|
||||||
4C811C8216ECD06E00C4BAC6 /* MPKeyfilePathControlDelegate.m */,
|
4C811C8216ECD06E00C4BAC6 /* MPKeyfilePathControlDelegate.m */,
|
||||||
|
4CE298E91795FC2A00DF7BDB /* MPEntryMenuDelegate.h */,
|
||||||
|
4CE298EA1795FC2A00DF7BDB /* MPEntryMenuDelegate.m */,
|
||||||
|
4CC0D2CC17974A47000B4BDA /* MPCustomFieldTableViewDelegate.h */,
|
||||||
|
4CC0D2CD17974A47000B4BDA /* MPCustomFieldTableViewDelegate.m */,
|
||||||
|
4CC0D2CF17974A5A000B4BDA /* MPAttachmentTableViewDelegate.h */,
|
||||||
|
4CC0D2D017974A5A000B4BDA /* MPAttachmentTableViewDelegate.m */,
|
||||||
);
|
);
|
||||||
name = Delegates;
|
name = Delegates;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -860,13 +989,46 @@
|
|||||||
name = Model;
|
name = Model;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
4C3F28591791F05400703281 /* Resources */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
4C3F28571791F04F00703281 /* LocalizableErrors.strings */,
|
||||||
|
);
|
||||||
|
name = Resources;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
4C45FB1E178E09ED0010007D /* MacPassTests */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
4C18F9AC178E123200890BCE /* Databases */,
|
||||||
|
4C45FB2B178E0BCB0010007D /* MPDatabaseLoading.h */,
|
||||||
|
4C45FB2C178E0BCB0010007D /* MPDatabaseLoading.m */,
|
||||||
|
4C45FB2E178E0CE20010007D /* MPDatabaseCreation.h */,
|
||||||
|
4C45FB2F178E0CE20010007D /* MPDatabaseCreation.m */,
|
||||||
|
4C19E501178E2871002F2CD0 /* MPDatabasePasswordAndKeyfile.h */,
|
||||||
|
4C19E502178E2871002F2CD0 /* MPDatabasePasswordAndKeyfile.m */,
|
||||||
|
4C45FB1F178E09ED0010007D /* Supporting Files */,
|
||||||
|
);
|
||||||
|
path = MacPassTests;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
4C45FB1F178E09ED0010007D /* Supporting Files */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
4C45FB20178E09ED0010007D /* MacPassTests-Info.plist */,
|
||||||
|
4C45FB21178E09ED0010007D /* InfoPlist.strings */,
|
||||||
|
4C45FB27178E09ED0010007D /* MacPassTests-Prefix.pch */,
|
||||||
|
);
|
||||||
|
name = "Supporting Files";
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
4C46B8821706397A0046109A /* Security Additions */ = {
|
4C46B8821706397A0046109A /* Security Additions */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
4C46B88317063A070046109A /* NSString+MPPasswordCreation.h */,
|
4C46B88317063A070046109A /* NSString+MPPasswordCreation.h */,
|
||||||
4C46B88417063A070046109A /* NSString+MPPasswordCreation.m */,
|
4C46B88417063A070046109A /* NSString+MPPasswordCreation.m */,
|
||||||
4C46B88617063A170046109A /* NSString+MPPasswordAnalysis.h */,
|
4C46B88617063A170046109A /* NSString+PasswordStrength.h */,
|
||||||
4C46B88717063A170046109A /* NSString+MPPasswordAnalysis.m */,
|
4C46B88717063A170046109A /* NSString+PasswordStrength.m */,
|
||||||
);
|
);
|
||||||
name = "Security Additions";
|
name = "Security Additions";
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -880,17 +1042,22 @@
|
|||||||
4C2E381A16D11FF900037A9D /* 03_ServerTemplate.pdf */,
|
4C2E381A16D11FF900037A9D /* 03_ServerTemplate.pdf */,
|
||||||
4C2E381B16D11FF900037A9D /* 04_KlipperTemplate.pdf */,
|
4C2E381B16D11FF900037A9D /* 04_KlipperTemplate.pdf */,
|
||||||
4C2E381C16D11FF900037A9D /* 05_LanguagesTemplate.pdf */,
|
4C2E381C16D11FF900037A9D /* 05_LanguagesTemplate.pdf */,
|
||||||
|
4C52A88B1788628B00868229 /* 06_BlockDeviceTemplate.pdf */,
|
||||||
4CD78AB716D155FF00768A1D /* 07_NotepadTemplate.pdf */,
|
4CD78AB716D155FF00768A1D /* 07_NotepadTemplate.pdf */,
|
||||||
4CD78AB816D155FF00768A1D /* 08_SocketTemplate.pdf */,
|
4CD78AB816D155FF00768A1D /* 08_SocketTemplate.pdf */,
|
||||||
4CD78AB916D155FF00768A1D /* 09_IdentityTemplate.pdf */,
|
4CD78AB916D155FF00768A1D /* 09_IdentityTemplate.pdf */,
|
||||||
4CD78ABA16D155FF00768A1D /* 10_ContactTemplate.pdf */,
|
4CD78ABA16D155FF00768A1D /* 10_ContactTemplate.pdf */,
|
||||||
4CD78ABB16D155FF00768A1D /* 11_CameraTemplate.pdf */,
|
4CD78ABB16D155FF00768A1D /* 11_CameraTemplate.pdf */,
|
||||||
4C701CBB178618A000581B88 /* 12_RemoteTemplate.pdf */,
|
4C701CBB178618A000581B88 /* 12_RemoteTemplate.pdf */,
|
||||||
|
4C52A88C1788628B00868229 /* 13_KeysTemplate.pdf */,
|
||||||
|
4C52A88D1788628B00868229 /* 18_DisplayTemplate.pdf */,
|
||||||
|
4CF29BF317879D0000851B60 /* 26_FileSaveTemplate.pdf */,
|
||||||
4C7714A9176C998F00549F2A /* 43_TrashTemplate.pdf */,
|
4C7714A9176C998F00549F2A /* 43_TrashTemplate.pdf */,
|
||||||
4C6D1D24178579570014C5A5 /* 48_FolderTemplate.pdf */,
|
4C6D1D24178579570014C5A5 /* 48_FolderTemplate.pdf */,
|
||||||
4C7714AB176C9D4600549F2A /* 99_InfoTemplate.pdf */,
|
4C52A891178863B000868229 /* 68_PhoneTemplate.pdf */,
|
||||||
4C366642178748F500B249F1 /* 99_HarddiskTemplate.pdf */,
|
|
||||||
4C6D1D26178586CA0014C5A5 /* 99_AddFolderTemplate.pdf */,
|
4C6D1D26178586CA0014C5A5 /* 99_AddFolderTemplate.pdf */,
|
||||||
|
4C366642178748F500B249F1 /* 99_HarddiskTemplate.pdf */,
|
||||||
|
4C7714AB176C9D4600549F2A /* 99_InfoTemplate.pdf */,
|
||||||
);
|
);
|
||||||
path = Icons;
|
path = Icons;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -989,9 +1156,11 @@
|
|||||||
children = (
|
children = (
|
||||||
4C245A64176E1E3C0086100E /* CocoaHTTPServer */,
|
4C245A64176E1E3C0086100E /* CocoaHTTPServer */,
|
||||||
4CC3AAB6175F4983003EF01B /* HNHUi */,
|
4CC3AAB6175F4983003EF01B /* HNHUi */,
|
||||||
|
4CD3ABAD178F71B50073F5C5 /* KeePassKit */,
|
||||||
4C669B2D16760ED100DD0774 /* MiniKeePassLib */,
|
4C669B2D16760ED100DD0774 /* MiniKeePassLib */,
|
||||||
4CAD745415B887FD00104512 /* KissXML */,
|
4CAD745415B887FD00104512 /* KissXML */,
|
||||||
4C77E36C15B84A240093A587 /* MacPass */,
|
4C77E36C15B84A240093A587 /* MacPass */,
|
||||||
|
4C45FB1E178E09ED0010007D /* MacPassTests */,
|
||||||
4C77E36515B84A240093A587 /* Frameworks */,
|
4C77E36515B84A240093A587 /* Frameworks */,
|
||||||
4C77E36315B84A240093A587 /* Products */,
|
4C77E36315B84A240093A587 /* Products */,
|
||||||
);
|
);
|
||||||
@@ -1001,6 +1170,7 @@
|
|||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
4C77E36215B84A240093A587 /* MacPass.app */,
|
4C77E36215B84A240093A587 /* MacPass.app */,
|
||||||
|
4C45FB1A178E09ED0010007D /* MacPassTests.octest */,
|
||||||
);
|
);
|
||||||
name = Products;
|
name = Products;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -1012,6 +1182,7 @@
|
|||||||
4C8FECC716D57E3200BF26CF /* QuartzCore.framework */,
|
4C8FECC716D57E3200BF26CF /* QuartzCore.framework */,
|
||||||
4CAD748B15B889B700104512 /* Security.framework */,
|
4CAD748B15B889B700104512 /* Security.framework */,
|
||||||
4C77E36615B84A240093A587 /* Cocoa.framework */,
|
4C77E36615B84A240093A587 /* Cocoa.framework */,
|
||||||
|
4C45FB1B178E09ED0010007D /* SenTestingKit.framework */,
|
||||||
4C77E36815B84A240093A587 /* Other Frameworks */,
|
4C77E36815B84A240093A587 /* Other Frameworks */,
|
||||||
);
|
);
|
||||||
name = Frameworks;
|
name = Frameworks;
|
||||||
@@ -1030,12 +1201,12 @@
|
|||||||
4C77E36C15B84A240093A587 /* MacPass */ = {
|
4C77E36C15B84A240093A587 /* MacPass */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
4C104129178CDD26001B5239 /* Categories */,
|
||||||
4C245C11176E22150086100E /* KeepassHttp */,
|
4C245C11176E22150086100E /* KeepassHttp */,
|
||||||
4C46B8821706397A0046109A /* Security Additions */,
|
4C46B8821706397A0046109A /* Security Additions */,
|
||||||
4C2C4C2516D3BCEA00D49295 /* KeePassLib Categories */,
|
4C2C4C2516D3BCEA00D49295 /* KeePassLib Categories */,
|
||||||
4C2E382016D141F700037A9D /* Helper */,
|
4C2E382016D141F700037A9D /* Helper */,
|
||||||
4C586F9C16D07ABD00E7DB57 /* Icons */,
|
4C586F9C16D07ABD00E7DB57 /* Icons */,
|
||||||
4CA0B30F15BCB85D00654E32 /* General */,
|
|
||||||
4CA0B30E15BCB70200654E32 /* Protocolls */,
|
4CA0B30E15BCB70200654E32 /* Protocolls */,
|
||||||
4CE8247116E2E98200573141 /* Data Controller */,
|
4CE8247116E2E98200573141 /* Data Controller */,
|
||||||
4CE8247016E2E96500573141 /* Window Controller */,
|
4CE8247016E2E96500573141 /* Window Controller */,
|
||||||
@@ -1076,8 +1247,6 @@
|
|||||||
4C2E382516D1470200037A9D /* MPViewController.m */,
|
4C2E382516D1470200037A9D /* MPViewController.m */,
|
||||||
4C65FAE616D16DDB006E0577 /* MPPasswordInputController.h */,
|
4C65FAE616D16DDB006E0577 /* MPPasswordInputController.h */,
|
||||||
4C65FAE716D16DDB006E0577 /* MPPasswordInputController.m */,
|
4C65FAE716D16DDB006E0577 /* MPPasswordInputController.m */,
|
||||||
4C7E8328172DE2F2002493D8 /* MPPasswordEditViewController.h */,
|
|
||||||
4C7E8329172DE2F2002493D8 /* MPPasswordEditViewController.m */,
|
|
||||||
4C5A11FB1708DE8700223D8A /* MPPasswordCreatorViewController.h */,
|
4C5A11FB1708DE8700223D8A /* MPPasswordCreatorViewController.h */,
|
||||||
4C5A11FC1708DE8700223D8A /* MPPasswordCreatorViewController.m */,
|
4C5A11FC1708DE8700223D8A /* MPPasswordCreatorViewController.m */,
|
||||||
4CDF01A116D1B76700D0AC08 /* MPEntryViewController.h */,
|
4CDF01A116D1B76700D0AC08 /* MPEntryViewController.h */,
|
||||||
@@ -1097,21 +1266,10 @@
|
|||||||
children = (
|
children = (
|
||||||
4CF6C715176F5183007A811D /* MPServerRequestHandler.h */,
|
4CF6C715176F5183007A811D /* MPServerRequestHandler.h */,
|
||||||
4CA0B30D15BCB6FD00654E32 /* MPSettingsTab.h */,
|
4CA0B30D15BCB6FD00654E32 /* MPSettingsTab.h */,
|
||||||
4C79DF2F1766941D0083708F /* MPResponderQuery.h */,
|
|
||||||
4CC0B8DA1773729F00311E8C /* MPFirstResonderNotification.h */,
|
|
||||||
);
|
);
|
||||||
name = Protocolls;
|
name = Protocolls;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
4CA0B30F15BCB85D00654E32 /* General */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
4C888C9516EB754B003D34A1 /* MPActionHelper.h */,
|
|
||||||
4C888C9616EB754B003D34A1 /* MPActionHelper.m */,
|
|
||||||
);
|
|
||||||
name = General;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
4CAD745415B887FD00104512 /* KissXML */ = {
|
4CAD745415B887FD00104512 /* KissXML */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@@ -1163,10 +1321,12 @@
|
|||||||
4C46E09D17673A0A00DA62E8 /* HNHShadowBox.m */,
|
4C46E09D17673A0A00DA62E8 /* HNHShadowBox.m */,
|
||||||
4CC7EA1917807E7E0089D4F3 /* HNHRoundendTextFieldCellHelper.h */,
|
4CC7EA1917807E7E0089D4F3 /* HNHRoundendTextFieldCellHelper.h */,
|
||||||
4CC7EA1A17807E7E0089D4F3 /* HNHRoundendTextFieldCellHelper.m */,
|
4CC7EA1A17807E7E0089D4F3 /* HNHRoundendTextFieldCellHelper.m */,
|
||||||
4CC3AAB8175F4983003EF01B /* HNHRoundedTextFieldCell.h */,
|
|
||||||
4CC3AAB9175F4983003EF01B /* HNHRoundedTextFieldCell.m */,
|
|
||||||
4C79DF28176685870083708F /* HNHRoundedTextField.h */,
|
4C79DF28176685870083708F /* HNHRoundedTextField.h */,
|
||||||
4C79DF29176685870083708F /* HNHRoundedTextField.m */,
|
4C79DF29176685870083708F /* HNHRoundedTextField.m */,
|
||||||
|
4CD6C5AC1789FDE6000891F6 /* HNHRoundedSecureTextField.h */,
|
||||||
|
4CD6C5AD1789FDE6000891F6 /* HNHRoundedSecureTextField.m */,
|
||||||
|
4CC3AAB8175F4983003EF01B /* HNHRoundedTextFieldCell.h */,
|
||||||
|
4CC3AAB9175F4983003EF01B /* HNHRoundedTextFieldCell.m */,
|
||||||
4C9D6AA717615199001C660C /* HNHRoundedSecureTextFieldCell.h */,
|
4C9D6AA717615199001C660C /* HNHRoundedSecureTextFieldCell.h */,
|
||||||
4C9D6AA817615199001C660C /* HNHRoundedSecureTextFieldCell.m */,
|
4C9D6AA817615199001C660C /* HNHRoundedSecureTextFieldCell.m */,
|
||||||
4C58BD4D176370B100B8178C /* HNHBadgedTextField.h */,
|
4C58BD4D176370B100B8178C /* HNHBadgedTextField.h */,
|
||||||
@@ -1187,14 +1347,73 @@
|
|||||||
4CF78059176E6D5F0032EE71 /* HNHTableRowView.m */,
|
4CF78059176E6D5F0032EE71 /* HNHTableRowView.m */,
|
||||||
4C52A242177D7B9F0000D88F /* HNHScrollView.h */,
|
4C52A242177D7B9F0000D88F /* HNHScrollView.h */,
|
||||||
4C52A243177D7B9F0000D88F /* HNHScrollView.m */,
|
4C52A243177D7B9F0000D88F /* HNHScrollView.m */,
|
||||||
4C0D9B35177F84D700D0857C /* HNHSecureTextView.h */,
|
|
||||||
4C0D9B36177F84D700D0857C /* HNHSecureTextView.m */,
|
|
||||||
4C0D9B38177F867100D0857C /* HNHSecureLayoutManager.h */,
|
|
||||||
4C0D9B39177F867100D0857C /* HNHSecureLayoutManager.m */,
|
|
||||||
);
|
);
|
||||||
path = HNHUi;
|
path = HNHUi;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
4CD3ABAD178F71B50073F5C5 /* KeePassKit */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
4C3F28591791F05400703281 /* Resources */,
|
||||||
|
4CD3ABAF178F71B50073F5C5 /* Categories */,
|
||||||
|
4CD3ABB1178F71B50073F5C5 /* Core */,
|
||||||
|
4CD3ABB5178F71B50073F5C5 /* IO */,
|
||||||
|
);
|
||||||
|
path = KeePassKit;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
4CD3ABAF178F71B50073F5C5 /* Categories */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
4C2724D51778FF1A00FD8456 /* NSUUID+KeePassKit.h */,
|
||||||
|
4C2724D61778FF1A00FD8456 /* NSUUID+KeePassKit.m */,
|
||||||
|
4C8A173B1790AA41008B5C17 /* NSData+Keyfile.h */,
|
||||||
|
4C8A173C1790AA41008B5C17 /* NSData+Keyfile.m */,
|
||||||
|
4CDB5C401794AA4F0017667E /* KPKTree+Serializing.h */,
|
||||||
|
4CDB5C411794AA4F0017667E /* KPKTree+Serializing.m */,
|
||||||
|
4C055E72179620BF00BD2BAB /* NSString+CommandString.h */,
|
||||||
|
4C055E73179620BF00BD2BAB /* NSString+CommandString.m */,
|
||||||
|
);
|
||||||
|
path = Categories;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
4CD3ABB1178F71B50073F5C5 /* Core */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
4C70D0FE179092F200652EE9 /* KPKPassword.h */,
|
||||||
|
4C70D0FF179092F200652EE9 /* KPKPassword.m */,
|
||||||
|
4C70D0FB1790924700652EE9 /* KPKParser.h */,
|
||||||
|
4C70D0FC1790924700652EE9 /* KPKParser.m */,
|
||||||
|
4C4436751792BE810099E220 /* KPKFormat.h */,
|
||||||
|
4C4436761792BE810099E220 /* KPKFormat.m */,
|
||||||
|
4CD3ABB2178F71B50073F5C5 /* KPKVersion.h */,
|
||||||
|
4CD3ABB3178F71B50073F5C5 /* KPKTree.h */,
|
||||||
|
4CD3ABB4178F71B50073F5C5 /* KPKTree.m */,
|
||||||
|
4CD3ABBD178F72610073F5C5 /* KPKEntry.h */,
|
||||||
|
4CD3ABBE178F72610073F5C5 /* KPKEntry.m */,
|
||||||
|
4CD3ABC0178F72720073F5C5 /* KPKGroup.h */,
|
||||||
|
4CD3ABC1178F72720073F5C5 /* KPKGroup.m */,
|
||||||
|
4C591B55178F897A0080B16B /* KPKAttachment.h */,
|
||||||
|
4C591B56178F897A0080B16B /* KPKAttachment.m */,
|
||||||
|
4C39B3F3178FEFAE0027DC7C /* KPKNode.h */,
|
||||||
|
4C39B3F4178FEFAE0027DC7C /* KPKNode.m */,
|
||||||
|
4C3F28521791EDE800703281 /* KPKErrors.h */,
|
||||||
|
4C3F28531791EDFD00703281 /* KPKErrors.m */,
|
||||||
|
4CF62B84179385D700B660B6 /* KPKAttribute.h */,
|
||||||
|
4CF62B85179385D700B660B6 /* KPKAttribute.m */,
|
||||||
|
4C5AA58F179549A1008ECAD7 /* KPKXmlTreeWriter.h */,
|
||||||
|
4C5AA590179549A1008ECAD7 /* KPKXmlTreeWriter.m */,
|
||||||
|
);
|
||||||
|
path = Core;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
4CD3ABB5178F71B50073F5C5 /* IO */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
);
|
||||||
|
path = IO;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
4CDB556616E29A8A00635918 /* Controls */ = {
|
4CDB556616E29A8A00635918 /* Controls */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@@ -1215,8 +1434,8 @@
|
|||||||
4C83814115BF4677001AE468 /* MPDocumentWindowController.m */,
|
4C83814115BF4677001AE468 /* MPDocumentWindowController.m */,
|
||||||
4CE8246D16E2E93400573141 /* MPOverlayWindowController.h */,
|
4CE8246D16E2E93400573141 /* MPOverlayWindowController.h */,
|
||||||
4CE8246E16E2E93400573141 /* MPOverlayWindowController.m */,
|
4CE8246E16E2E93400573141 /* MPOverlayWindowController.m */,
|
||||||
4CD5D703177A5F3300100649 /* MPDocumentSettingsWindowController.h */,
|
4CD5D703177A5F3300100649 /* MPDatabaseSettingsWindowController.h */,
|
||||||
4CD5D704177A5F3300100649 /* MPDocumentSettingsWindowController.m */,
|
4CD5D704177A5F3300100649 /* MPDatabaseSettingsWindowController.m */,
|
||||||
);
|
);
|
||||||
name = "Window Controller";
|
name = "Window Controller";
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -1237,7 +1456,7 @@
|
|||||||
4CD884B615BD47080042BBF8 /* DocumentWindow.xib */,
|
4CD884B615BD47080042BBF8 /* DocumentWindow.xib */,
|
||||||
4C431BCE16E2BAB000700A81 /* OverlayWindow.xib */,
|
4C431BCE16E2BAB000700A81 /* OverlayWindow.xib */,
|
||||||
4C1DDCDC1711ECEB00C98DA3 /* PasswordCreatorWindow.xib */,
|
4C1DDCDC1711ECEB00C98DA3 /* PasswordCreatorWindow.xib */,
|
||||||
4CD5D701177A5EE400100649 /* DocumentSettingsWindow.xib */,
|
4CD5D701177A5EE400100649 /* DatabaseSettingsWindow.xib */,
|
||||||
);
|
);
|
||||||
name = Windows;
|
name = Windows;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -1254,7 +1473,6 @@
|
|||||||
4CF78061176E752E0032EE71 /* PasswordInputs */ = {
|
4CF78061176E752E0032EE71 /* PasswordInputs */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
4C7615651764C08C0015A1A6 /* PasswordEditView.xib */,
|
|
||||||
4C76156A1764C0C40015A1A6 /* PasswordInputView.xib */,
|
4C76156A1764C0C40015A1A6 /* PasswordInputView.xib */,
|
||||||
4C5A11FD1708DE8700223D8A /* PasswordCreatorView.xib */,
|
4C5A11FD1708DE8700223D8A /* PasswordCreatorView.xib */,
|
||||||
);
|
);
|
||||||
@@ -1264,13 +1482,30 @@
|
|||||||
/* End PBXGroup section */
|
/* End PBXGroup section */
|
||||||
|
|
||||||
/* Begin PBXNativeTarget section */
|
/* Begin PBXNativeTarget section */
|
||||||
|
4C45FB19178E09ED0010007D /* MacPassTests */ = {
|
||||||
|
isa = PBXNativeTarget;
|
||||||
|
buildConfigurationList = 4C45FB2A178E09ED0010007D /* Build configuration list for PBXNativeTarget "MacPassTests" */;
|
||||||
|
buildPhases = (
|
||||||
|
4C45FB15178E09ED0010007D /* Sources */,
|
||||||
|
4C45FB16178E09ED0010007D /* Frameworks */,
|
||||||
|
4C45FB17178E09ED0010007D /* Resources */,
|
||||||
|
4C45FB18178E09ED0010007D /* ShellScript */,
|
||||||
|
);
|
||||||
|
buildRules = (
|
||||||
|
);
|
||||||
|
dependencies = (
|
||||||
|
);
|
||||||
|
name = MacPassTests;
|
||||||
|
productName = MacPassTests;
|
||||||
|
productReference = 4C45FB1A178E09ED0010007D /* MacPassTests.octest */;
|
||||||
|
productType = "com.apple.product-type.bundle";
|
||||||
|
};
|
||||||
4C77E36115B84A240093A587 /* MacPass */ = {
|
4C77E36115B84A240093A587 /* MacPass */ = {
|
||||||
isa = PBXNativeTarget;
|
isa = PBXNativeTarget;
|
||||||
buildConfigurationList = 4C77E38015B84A240093A587 /* Build configuration list for PBXNativeTarget "MacPass" */;
|
buildConfigurationList = 4C77E38015B84A240093A587 /* Build configuration list for PBXNativeTarget "MacPass" */;
|
||||||
buildPhases = (
|
buildPhases = (
|
||||||
4C77E35E15B84A240093A587 /* Sources */,
|
4C77E35E15B84A240093A587 /* Sources */,
|
||||||
4C77E35F15B84A240093A587 /* Frameworks */,
|
4C77E35F15B84A240093A587 /* Frameworks */,
|
||||||
4CB9339616D3A04100A13B5D /* ShellScript */,
|
|
||||||
4C77E36015B84A240093A587 /* Resources */,
|
4C77E36015B84A240093A587 /* Resources */,
|
||||||
);
|
);
|
||||||
buildRules = (
|
buildRules = (
|
||||||
@@ -1308,11 +1543,22 @@
|
|||||||
projectRoot = "";
|
projectRoot = "";
|
||||||
targets = (
|
targets = (
|
||||||
4C77E36115B84A240093A587 /* MacPass */,
|
4C77E36115B84A240093A587 /* MacPass */,
|
||||||
|
4C45FB19178E09ED0010007D /* MacPassTests */,
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
/* End PBXProject section */
|
/* End PBXProject section */
|
||||||
|
|
||||||
/* Begin PBXResourcesBuildPhase section */
|
/* Begin PBXResourcesBuildPhase section */
|
||||||
|
4C45FB17178E09ED0010007D /* Resources */ = {
|
||||||
|
isa = PBXResourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
4C45FB23178E09ED0010007D /* InfoPlist.strings in Resources */,
|
||||||
|
4C18F9AB178E122500890BCE /* Test_Password_1234.kdb in Resources */,
|
||||||
|
4C19E500178E26EF002F2CD0 /* Test_Password_1234.kdbx in Resources */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
4C77E36015B84A240093A587 /* Resources */ = {
|
4C77E36015B84A240093A587 /* Resources */ = {
|
||||||
isa = PBXResourcesBuildPhase;
|
isa = PBXResourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
@@ -1344,24 +1590,30 @@
|
|||||||
4CE39AC116ECE359000FE29D /* IconSelection.xib in Resources */,
|
4CE39AC116ECE359000FE29D /* IconSelection.xib in Resources */,
|
||||||
4C5A11FF1708DE8800223D8A /* PasswordCreatorView.xib in Resources */,
|
4C5A11FF1708DE8800223D8A /* PasswordCreatorView.xib in Resources */,
|
||||||
4C1DDCDD1711ECEB00C98DA3 /* PasswordCreatorWindow.xib in Resources */,
|
4C1DDCDD1711ECEB00C98DA3 /* PasswordCreatorWindow.xib in Resources */,
|
||||||
4C7615631764C08C0015A1A6 /* PasswordEditView.xib in Resources */,
|
|
||||||
4C7714AA176C998F00549F2A /* 43_TrashTemplate.pdf in Resources */,
|
4C7714AA176C998F00549F2A /* 43_TrashTemplate.pdf in Resources */,
|
||||||
4C7714AC176C9D4600549F2A /* 99_InfoTemplate.pdf in Resources */,
|
4C7714AC176C9D4600549F2A /* 99_InfoTemplate.pdf in Resources */,
|
||||||
4CF7805F176E75110032EE71 /* ServerSettings.xib in Resources */,
|
4CF7805F176E75110032EE71 /* ServerSettings.xib in Resources */,
|
||||||
4C7F35681779DFFB00C57890 /* Errors.strings in Resources */,
|
4C7F35681779DFFB00C57890 /* Errors.strings in Resources */,
|
||||||
4CD5D702177A5EE400100649 /* DocumentSettingsWindow.xib in Resources */,
|
4CD5D702177A5EE400100649 /* DatabaseSettingsWindow.xib in Resources */,
|
||||||
4C6D1D25178579570014C5A5 /* 48_FolderTemplate.pdf in Resources */,
|
4C6D1D25178579570014C5A5 /* 48_FolderTemplate.pdf in Resources */,
|
||||||
4C6D1D27178586CA0014C5A5 /* 99_AddFolderTemplate.pdf in Resources */,
|
4C6D1D27178586CA0014C5A5 /* 99_AddFolderTemplate.pdf in Resources */,
|
||||||
4C6D1D2B17858A250014C5A5 /* MacPass.icns in Resources */,
|
4C6D1D2B17858A250014C5A5 /* MacPass.icns in Resources */,
|
||||||
4C701CBC178618A000581B88 /* 12_RemoteTemplate.pdf in Resources */,
|
4C701CBC178618A000581B88 /* 12_RemoteTemplate.pdf in Resources */,
|
||||||
4C366643178748F500B249F1 /* 99_HarddiskTemplate.pdf in Resources */,
|
4C366643178748F500B249F1 /* 99_HarddiskTemplate.pdf in Resources */,
|
||||||
|
4C2C8B341787500E009649F3 /* UnprotectedWarningView.xib in Resources */,
|
||||||
|
4CF29BF417879D0000851B60 /* 26_FileSaveTemplate.pdf in Resources */,
|
||||||
|
4C52A88E1788628B00868229 /* 06_BlockDeviceTemplate.pdf in Resources */,
|
||||||
|
4C52A88F1788628B00868229 /* 13_KeysTemplate.pdf in Resources */,
|
||||||
|
4C52A8901788628B00868229 /* 18_DisplayTemplate.pdf in Resources */,
|
||||||
|
4C52A892178863B000868229 /* 68_PhoneTemplate.pdf in Resources */,
|
||||||
|
4C3F28581791F04F00703281 /* LocalizableErrors.strings in Resources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
/* End PBXResourcesBuildPhase section */
|
/* End PBXResourcesBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXShellScriptBuildPhase section */
|
/* Begin PBXShellScriptBuildPhase section */
|
||||||
4CB9339616D3A04100A13B5D /* ShellScript */ = {
|
4C45FB18178E09ED0010007D /* ShellScript */ = {
|
||||||
isa = PBXShellScriptBuildPhase;
|
isa = PBXShellScriptBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
@@ -1372,11 +1624,21 @@
|
|||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
shellPath = /bin/sh;
|
shellPath = /bin/sh;
|
||||||
shellScript = "#!/bin/bash\nbuildNumber=$(/usr/libexec/PlistBuddy -c \"Print CFBundleVersion\" \"$INFOPLIST_FILE\")\n#buildNumber=$((0x$buildNumber))\nbuildNumber=$(($buildNumber + 1))\nbuildNumber=$(printf \"%d\" $buildNumber)\n/usr/libexec/PlistBuddy -c \"Set :CFBundleVersion $buildNumber\" \"$INFOPLIST_FILE\"";
|
shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n";
|
||||||
};
|
};
|
||||||
/* End PBXShellScriptBuildPhase section */
|
/* End PBXShellScriptBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXSourcesBuildPhase section */
|
/* Begin PBXSourcesBuildPhase section */
|
||||||
|
4C45FB15178E09ED0010007D /* Sources */ = {
|
||||||
|
isa = PBXSourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
4C45FB2D178E0BCB0010007D /* MPDatabaseLoading.m in Sources */,
|
||||||
|
4C45FB30178E0CE20010007D /* MPDatabaseCreation.m in Sources */,
|
||||||
|
4C19E503178E2871002F2CD0 /* MPDatabasePasswordAndKeyfile.m in Sources */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
4C77E35E15B84A240093A587 /* Sources */ = {
|
4C77E35E15B84A240093A587 /* Sources */ = {
|
||||||
isa = PBXSourcesBuildPhase;
|
isa = PBXSourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
@@ -1446,9 +1708,8 @@
|
|||||||
4CE39ABF16ECE34A000FE29D /* MPIconSelectViewController.m in Sources */,
|
4CE39ABF16ECE34A000FE29D /* MPIconSelectViewController.m in Sources */,
|
||||||
4CE39AC416ECE4F7000FE29D /* MPPopupImageView.m in Sources */,
|
4CE39AC416ECE4F7000FE29D /* MPPopupImageView.m in Sources */,
|
||||||
4C46B88517063A070046109A /* NSString+MPPasswordCreation.m in Sources */,
|
4C46B88517063A070046109A /* NSString+MPPasswordCreation.m in Sources */,
|
||||||
4C46B88817063A170046109A /* NSString+MPPasswordAnalysis.m in Sources */,
|
4C46B88817063A170046109A /* NSString+PasswordStrength.m in Sources */,
|
||||||
4C5A11FE1708DE8700223D8A /* MPPasswordCreatorViewController.m in Sources */,
|
4C5A11FE1708DE8700223D8A /* MPPasswordCreatorViewController.m in Sources */,
|
||||||
4C7E832A172DE2F2002493D8 /* MPPasswordEditViewController.m in Sources */,
|
|
||||||
4CE5B54B173AFBA700207B39 /* MPDocument.m in Sources */,
|
4CE5B54B173AFBA700207B39 /* MPDocument.m in Sources */,
|
||||||
4C22040D1746ED160054C916 /* KdbGroup+Undo.m in Sources */,
|
4C22040D1746ED160054C916 /* KdbGroup+Undo.m in Sources */,
|
||||||
4C3D4C0817594CA40038DAAC /* HNHSeparator.m in Sources */,
|
4C3D4C0817594CA40038DAAC /* HNHSeparator.m in Sources */,
|
||||||
@@ -1509,10 +1770,10 @@
|
|||||||
4C2724CE1778EFB100FD8456 /* NSData+Random.m in Sources */,
|
4C2724CE1778EFB100FD8456 /* NSData+Random.m in Sources */,
|
||||||
4C2724D11778EFE300FD8456 /* NSString+Empty.m in Sources */,
|
4C2724D11778EFE300FD8456 /* NSString+Empty.m in Sources */,
|
||||||
4C2724D41778FA0700FD8456 /* NSDate+Packed.m in Sources */,
|
4C2724D41778FA0700FD8456 /* NSDate+Packed.m in Sources */,
|
||||||
4C2724D71778FF1A00FD8456 /* NSUUID+KeePassLib.m in Sources */,
|
4C2724D71778FF1A00FD8456 /* NSUUID+KeePassKit.m in Sources */,
|
||||||
4C2724DA17790E7C00FD8456 /* NSMutableData+Base64.m in Sources */,
|
4C2724DA17790E7C00FD8456 /* NSMutableData+Base64.m in Sources */,
|
||||||
4C2A6134177A1D5F00C9826C /* KPLErrorCodes.m in Sources */,
|
4C2A6134177A1D5F00C9826C /* KPLErrorCodes.m in Sources */,
|
||||||
4CD5D705177A5F3300100649 /* MPDocumentSettingsWindowController.m in Sources */,
|
4CD5D705177A5F3300100649 /* MPDatabaseSettingsWindowController.m in Sources */,
|
||||||
4C5EC302177B700D00DA955B /* MPRootAdapter.m in Sources */,
|
4C5EC302177B700D00DA955B /* MPRootAdapter.m in Sources */,
|
||||||
4C74DD07177BD1640034A9DB /* MPCustomFieldView.m in Sources */,
|
4C74DD07177BD1640034A9DB /* MPCustomFieldView.m in Sources */,
|
||||||
4C36E5B4177CD4FB00152132 /* Kdb4Tree+KVOAdditions.m in Sources */,
|
4C36E5B4177CD4FB00152132 /* Kdb4Tree+KVOAdditions.m in Sources */,
|
||||||
@@ -1520,40 +1781,57 @@
|
|||||||
4C4FCE18177D03D700BBF7AE /* Kdb4Entry+KVOAdditions.m in Sources */,
|
4C4FCE18177D03D700BBF7AE /* Kdb4Entry+KVOAdditions.m in Sources */,
|
||||||
4C52A244177D7B9F0000D88F /* HNHScrollView.m in Sources */,
|
4C52A244177D7B9F0000D88F /* HNHScrollView.m in Sources */,
|
||||||
4C3E1CC0177DEFB3003BD9BD /* StringField+Undo.m in Sources */,
|
4C3E1CC0177DEFB3003BD9BD /* StringField+Undo.m in Sources */,
|
||||||
4C0D9B37177F84D700D0857C /* HNHSecureTextView.m in Sources */,
|
|
||||||
4C0D9B3A177F867100D0857C /* HNHSecureLayoutManager.m in Sources */,
|
|
||||||
4CC7EA1B17807E7E0089D4F3 /* HNHRoundendTextFieldCellHelper.m in Sources */,
|
4CC7EA1B17807E7E0089D4F3 /* HNHRoundendTextFieldCellHelper.m in Sources */,
|
||||||
4CC672791781D0C0006DEDCF /* KdbGroup+MPAdditions.m in Sources */,
|
4CC672791781D0C0006DEDCF /* KdbGroup+MPAdditions.m in Sources */,
|
||||||
4CC6727C1781D0D2006DEDCF /* KdbEntry+MPAdditions.m in Sources */,
|
4CC6727C1781D0D2006DEDCF /* KdbEntry+MPAdditions.m in Sources */,
|
||||||
4C5FE9AE17843CE20001D5A8 /* MPSelectedAttachmentTableCellView.m in Sources */,
|
4C5FE9AE17843CE20001D5A8 /* MPSelectedAttachmentTableCellView.m in Sources */,
|
||||||
4CF1F0CA1786B37900CD920E /* NSData+Gzip.m in Sources */,
|
4CF1F0CA1786B37900CD920E /* NSData+Gzip.m in Sources */,
|
||||||
4C3666411787327E00B249F1 /* MPDocument+Attachments.m in Sources */,
|
4C3666411787327E00B249F1 /* MPDocument+Attachments.m in Sources */,
|
||||||
|
4C16BA6217879A3C002B42BD /* MPPasswordStringFormatter.m in Sources */,
|
||||||
|
4CD6C5AE1789FDE6000891F6 /* HNHRoundedSecureTextField.m in Sources */,
|
||||||
|
4C10412C178CDD44001B5239 /* NSDate+Humanized.m in Sources */,
|
||||||
|
4CD3ABBA178F71B50073F5C5 /* KPKTree.m in Sources */,
|
||||||
|
4CD3ABBF178F72610073F5C5 /* KPKEntry.m in Sources */,
|
||||||
|
4CD3ABC2178F72720073F5C5 /* KPKGroup.m in Sources */,
|
||||||
|
4C591B57178F897A0080B16B /* KPKAttachment.m in Sources */,
|
||||||
|
4C39B3F5178FEFAE0027DC7C /* KPKNode.m in Sources */,
|
||||||
|
4C70D0FD1790924700652EE9 /* KPKParser.m in Sources */,
|
||||||
|
4C70D100179092F200652EE9 /* KPKPassword.m in Sources */,
|
||||||
|
4C8A173D1790AA41008B5C17 /* NSData+Keyfile.m in Sources */,
|
||||||
|
4C3F28541791EDFD00703281 /* KPKErrors.m in Sources */,
|
||||||
|
4C4436771792BE810099E220 /* KPKFormat.m in Sources */,
|
||||||
|
4C801AFC179310E2002821E3 /* NSString+Hexdata.m in Sources */,
|
||||||
|
4CF62B86179385D700B660B6 /* KPKAttribute.m in Sources */,
|
||||||
|
4CDB5C421794AA4F0017667E /* KPKTree+Serializing.m in Sources */,
|
||||||
|
4C5AA591179549A1008ECAD7 /* KPKXmlTreeWriter.m in Sources */,
|
||||||
|
4CE298EB1795FC2A00DF7BDB /* MPEntryMenuDelegate.m in Sources */,
|
||||||
|
4C055E74179620BF00BD2BAB /* NSString+CommandString.m in Sources */,
|
||||||
|
4CC0D2CE17974A47000B4BDA /* MPCustomFieldTableViewDelegate.m in Sources */,
|
||||||
|
4CC0D2D117974A5A000B4BDA /* MPAttachmentTableViewDelegate.m in Sources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
/* End PBXSourcesBuildPhase section */
|
/* End PBXSourcesBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXVariantGroup section */
|
/* Begin PBXVariantGroup section */
|
||||||
|
4C45FB21178E09ED0010007D /* InfoPlist.strings */ = {
|
||||||
|
isa = PBXVariantGroup;
|
||||||
|
children = (
|
||||||
|
4C45FB22178E09ED0010007D /* en */,
|
||||||
|
);
|
||||||
|
name = InfoPlist.strings;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
4C76155E1764C04C0015A1A6 /* GeneralSettings.xib */ = {
|
4C76155E1764C04C0015A1A6 /* GeneralSettings.xib */ = {
|
||||||
isa = PBXVariantGroup;
|
isa = PBXVariantGroup;
|
||||||
children = (
|
children = (
|
||||||
4C76155F1764C0590015A1A6 /* Base */,
|
4C76155F1764C0590015A1A6 /* Base */,
|
||||||
4C7615721764C4A40015A1A6 /* de */,
|
4CCA7EEC1797866F00B0B55E /* de */,
|
||||||
4CA23357176DB8F000F0B6AC /* en */,
|
4CCA7EEE1797867200B0B55E /* en */,
|
||||||
);
|
);
|
||||||
name = GeneralSettings.xib;
|
name = GeneralSettings.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
4C7615651764C08C0015A1A6 /* PasswordEditView.xib */ = {
|
|
||||||
isa = PBXVariantGroup;
|
|
||||||
children = (
|
|
||||||
4C7615661764C08F0015A1A6 /* Base */,
|
|
||||||
4C7615671764C09E0015A1A6 /* en */,
|
|
||||||
4C7615741764C4A40015A1A6 /* de */,
|
|
||||||
);
|
|
||||||
name = PasswordEditView.xib;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
4C76156A1764C0C40015A1A6 /* PasswordInputView.xib */ = {
|
4C76156A1764C0C40015A1A6 /* PasswordInputView.xib */ = {
|
||||||
isa = PBXVariantGroup;
|
isa = PBXVariantGroup;
|
||||||
children = (
|
children = (
|
||||||
@@ -1587,8 +1865,7 @@
|
|||||||
isa = PBXVariantGroup;
|
isa = PBXVariantGroup;
|
||||||
children = (
|
children = (
|
||||||
4C7615601764C05A0015A1A6 /* Base */,
|
4C7615601764C05A0015A1A6 /* Base */,
|
||||||
4C7615731764C4A40015A1A6 /* de */,
|
4CAAFDD51787AED60013FCF9 /* en */,
|
||||||
4C76157B1764C5450015A1A6 /* en */,
|
|
||||||
);
|
);
|
||||||
name = MainMenu.xib;
|
name = MainMenu.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -1623,6 +1900,44 @@
|
|||||||
/* End PBXVariantGroup section */
|
/* End PBXVariantGroup section */
|
||||||
|
|
||||||
/* Begin XCBuildConfiguration section */
|
/* Begin XCBuildConfiguration section */
|
||||||
|
4C45FB28178E09ED0010007D /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/MacPass.app/Contents/MacOS/MacPass";
|
||||||
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||||
|
CLANG_CXX_LIBRARY = "libc++";
|
||||||
|
CLANG_ENABLE_OBJC_ARC = YES;
|
||||||
|
CLANG_WARN_EMPTY_BODY = YES;
|
||||||
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
|
FRAMEWORK_SEARCH_PATHS = "\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"";
|
||||||
|
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||||
|
GCC_PREFIX_HEADER = "MacPassTests/MacPassTests-Prefix.pch";
|
||||||
|
INFOPLIST_FILE = "MacPassTests/MacPassTests-Info.plist";
|
||||||
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
TEST_HOST = "$(BUNDLE_LOADER)";
|
||||||
|
WRAPPER_EXTENSION = octest;
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
4C45FB29178E09ED0010007D /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/MacPass.app/Contents/MacOS/MacPass";
|
||||||
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||||
|
CLANG_CXX_LIBRARY = "libc++";
|
||||||
|
CLANG_ENABLE_OBJC_ARC = YES;
|
||||||
|
CLANG_WARN_EMPTY_BODY = YES;
|
||||||
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
|
FRAMEWORK_SEARCH_PATHS = "\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"";
|
||||||
|
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||||
|
GCC_PREFIX_HEADER = "MacPassTests/MacPassTests-Prefix.pch";
|
||||||
|
INFOPLIST_FILE = "MacPassTests/MacPassTests-Info.plist";
|
||||||
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
TEST_HOST = "$(BUNDLE_LOADER)";
|
||||||
|
WRAPPER_EXTENSION = octest;
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
4C77E37E15B84A240093A587 /* Debug */ = {
|
4C77E37E15B84A240093A587 /* Debug */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
@@ -1713,6 +2028,15 @@
|
|||||||
/* End XCBuildConfiguration section */
|
/* End XCBuildConfiguration section */
|
||||||
|
|
||||||
/* Begin XCConfigurationList section */
|
/* Begin XCConfigurationList section */
|
||||||
|
4C45FB2A178E09ED0010007D /* Build configuration list for PBXNativeTarget "MacPassTests" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
4C45FB28178E09ED0010007D /* Debug */,
|
||||||
|
4C45FB29178E09ED0010007D /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
4C77E35C15B84A240093A587 /* Build configuration list for PBXProject "MacPass" */ = {
|
4C77E35C15B84A240093A587 /* Build configuration list for PBXProject "MacPass" */ = {
|
||||||
isa = XCConfigurationList;
|
isa = XCConfigurationList;
|
||||||
buildConfigurations = (
|
buildConfigurations = (
|
||||||
|
|||||||
121
MacPass.xcodeproj/xcshareddata/xcschemes/MacPass.xcscheme
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Scheme
|
||||||
|
LastUpgradeVersion = "0460"
|
||||||
|
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 = "YES"
|
||||||
|
buildConfiguration = "Debug">
|
||||||
|
<Testables>
|
||||||
|
<TestableReference
|
||||||
|
skipped = "NO">
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "4C45FB19178E09ED0010007D"
|
||||||
|
BuildableName = "MacPassTests.octest"
|
||||||
|
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>
|
||||||
|
</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>
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
<object class="NSButton" id="145041823">
|
<object class="NSButton" id="145041823">
|
||||||
<reference key="NSNextResponder" ref="1005"/>
|
<reference key="NSNextResponder" ref="1005"/>
|
||||||
<int key="NSvFlags">268</int>
|
<int key="NSvFlags">268</int>
|
||||||
<string key="NSFrame">{{18, 174}, {233, 18}}</string>
|
<string key="NSFrame">{{18, 177}, {241, 18}}</string>
|
||||||
<reference key="NSSuperview" ref="1005"/>
|
<reference key="NSSuperview" ref="1005"/>
|
||||||
<reference key="NSWindow"/>
|
<reference key="NSWindow"/>
|
||||||
<reference key="NSNextKeyView" ref="60918609"/>
|
<reference key="NSNextKeyView" ref="60918609"/>
|
||||||
@@ -56,9 +56,9 @@
|
|||||||
<string key="NSHuggingPriority">{250, 252}</string>
|
<string key="NSHuggingPriority">{250, 252}</string>
|
||||||
<bool key="NSEnabled">YES</bool>
|
<bool key="NSEnabled">YES</bool>
|
||||||
<object class="NSButtonCell" key="NSCell" id="168279901">
|
<object class="NSButtonCell" key="NSCell" id="168279901">
|
||||||
<int key="NSCellFlags">-1543503872</int>
|
<int key="NSCellFlags">-2080374784</int>
|
||||||
<int key="NSCellFlags2">268435456</int>
|
<int key="NSCellFlags2">268435456</int>
|
||||||
<string key="NSContents">Open empty database on activate</string>
|
<string key="NSContents">Reopen last Database after Launch</string>
|
||||||
<object class="NSFont" key="NSSupport" id="874940307">
|
<object class="NSFont" key="NSSupport" id="874940307">
|
||||||
<string key="NSName">LucidaGrande</string>
|
<string key="NSName">LucidaGrande</string>
|
||||||
<double key="NSSize">13</double>
|
<double key="NSSize">13</double>
|
||||||
@@ -82,34 +82,6 @@
|
|||||||
</object>
|
</object>
|
||||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||||
</object>
|
</object>
|
||||||
<object class="NSButton" id="297534459">
|
|
||||||
<reference key="NSNextResponder" ref="1005"/>
|
|
||||||
<int key="NSvFlags">268</int>
|
|
||||||
<string key="NSFrame">{{18, 194}, {226, 18}}</string>
|
|
||||||
<reference key="NSSuperview" ref="1005"/>
|
|
||||||
<reference key="NSWindow"/>
|
|
||||||
<reference key="NSNextKeyView" ref="145041823"/>
|
|
||||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
|
||||||
<string key="NSHuggingPriority">{250, 253}</string>
|
|
||||||
<bool key="NSEnabled">YES</bool>
|
|
||||||
<object class="NSButtonCell" key="NSCell" id="197992074">
|
|
||||||
<int key="NSCellFlags">-1543503872</int>
|
|
||||||
<int key="NSCellFlags2">268435456</int>
|
|
||||||
<string key="NSContents">Open empty database on launch</string>
|
|
||||||
<reference key="NSSupport" ref="874940307"/>
|
|
||||||
<string key="NSCellIdentifier">_NS:9</string>
|
|
||||||
<reference key="NSControlView" ref="297534459"/>
|
|
||||||
<int key="NSButtonFlags">1211912448</int>
|
|
||||||
<int key="NSButtonFlags2">2</int>
|
|
||||||
<reference key="NSNormalImage" ref="125685135"/>
|
|
||||||
<reference key="NSAlternateImage" ref="765261007"/>
|
|
||||||
<string key="NSAlternateContents"/>
|
|
||||||
<string key="NSKeyEquivalent"/>
|
|
||||||
<int key="NSPeriodicDelay">200</int>
|
|
||||||
<int key="NSPeriodicInterval">25</int>
|
|
||||||
</object>
|
|
||||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
|
||||||
</object>
|
|
||||||
<object class="NSBox" id="60918609">
|
<object class="NSBox" id="60918609">
|
||||||
<reference key="NSNextResponder" ref="1005"/>
|
<reference key="NSNextResponder" ref="1005"/>
|
||||||
<int key="NSvFlags">12</int>
|
<int key="NSvFlags">12</int>
|
||||||
@@ -121,7 +93,7 @@
|
|||||||
<object class="NSTextField" id="958810247">
|
<object class="NSTextField" id="958810247">
|
||||||
<reference key="NSNextResponder" ref="731672371"/>
|
<reference key="NSNextResponder" ref="731672371"/>
|
||||||
<int key="NSvFlags">268</int>
|
<int key="NSvFlags">268</int>
|
||||||
<string key="NSFrame">{{15, 96}, {170, 17}}</string>
|
<string key="NSFrame">{{15, 96}, {124, 17}}</string>
|
||||||
<reference key="NSSuperview" ref="731672371"/>
|
<reference key="NSSuperview" ref="731672371"/>
|
||||||
<reference key="NSWindow"/>
|
<reference key="NSWindow"/>
|
||||||
<reference key="NSNextKeyView" ref="222890410"/>
|
<reference key="NSNextKeyView" ref="222890410"/>
|
||||||
@@ -158,7 +130,7 @@
|
|||||||
<object class="NSPopUpButton" id="222890410">
|
<object class="NSPopUpButton" id="222890410">
|
||||||
<reference key="NSNextResponder" ref="731672371"/>
|
<reference key="NSNextResponder" ref="731672371"/>
|
||||||
<int key="NSvFlags">268</int>
|
<int key="NSvFlags">268</int>
|
||||||
<string key="NSFrame">{{237, 92}, {112, 23}}</string>
|
<string key="NSFrame">{{179, 92}, {170, 23}}</string>
|
||||||
<reference key="NSSuperview" ref="731672371"/>
|
<reference key="NSSuperview" ref="731672371"/>
|
||||||
<reference key="NSWindow"/>
|
<reference key="NSWindow"/>
|
||||||
<reference key="NSNextKeyView" ref="326334884"/>
|
<reference key="NSNextKeyView" ref="326334884"/>
|
||||||
@@ -200,7 +172,7 @@
|
|||||||
<reference ref="855032005"/>
|
<reference ref="855032005"/>
|
||||||
<object class="NSMenuItem" id="303393620">
|
<object class="NSMenuItem" id="303393620">
|
||||||
<reference key="NSMenu" ref="437492746"/>
|
<reference key="NSMenu" ref="437492746"/>
|
||||||
<string key="NSTitle">10 Seconds</string>
|
<string key="NSTitle">after 10 Seconds</string>
|
||||||
<string key="NSKeyEquiv"/>
|
<string key="NSKeyEquiv"/>
|
||||||
<int key="NSKeyEquivModMask">1048576</int>
|
<int key="NSKeyEquivModMask">1048576</int>
|
||||||
<int key="NSMnemonicLoc">2147483647</int>
|
<int key="NSMnemonicLoc">2147483647</int>
|
||||||
@@ -212,7 +184,7 @@
|
|||||||
</object>
|
</object>
|
||||||
<object class="NSMenuItem" id="460415455">
|
<object class="NSMenuItem" id="460415455">
|
||||||
<reference key="NSMenu" ref="437492746"/>
|
<reference key="NSMenu" ref="437492746"/>
|
||||||
<string key="NSTitle">30 Seconds</string>
|
<string key="NSTitle">after 30 Seconds</string>
|
||||||
<string key="NSKeyEquiv"/>
|
<string key="NSKeyEquiv"/>
|
||||||
<int key="NSKeyEquivModMask">1048576</int>
|
<int key="NSKeyEquivModMask">1048576</int>
|
||||||
<int key="NSMnemonicLoc">2147483647</int>
|
<int key="NSMnemonicLoc">2147483647</int>
|
||||||
@@ -224,7 +196,7 @@
|
|||||||
</object>
|
</object>
|
||||||
<object class="NSMenuItem" id="678942088">
|
<object class="NSMenuItem" id="678942088">
|
||||||
<reference key="NSMenu" ref="437492746"/>
|
<reference key="NSMenu" ref="437492746"/>
|
||||||
<string key="NSTitle">1 Minute</string>
|
<string key="NSTitle">after 1 Minute</string>
|
||||||
<string key="NSKeyEquiv"/>
|
<string key="NSKeyEquiv"/>
|
||||||
<int key="NSKeyEquivModMask">1048576</int>
|
<int key="NSKeyEquivModMask">1048576</int>
|
||||||
<int key="NSMnemonicLoc">2147483647</int>
|
<int key="NSMnemonicLoc">2147483647</int>
|
||||||
@@ -248,7 +220,7 @@
|
|||||||
<object class="NSButton" id="326334884">
|
<object class="NSButton" id="326334884">
|
||||||
<reference key="NSNextResponder" ref="731672371"/>
|
<reference key="NSNextResponder" ref="731672371"/>
|
||||||
<int key="NSvFlags">268</int>
|
<int key="NSvFlags">268</int>
|
||||||
<string key="NSFrame">{{16, 70}, {172, 18}}</string>
|
<string key="NSFrame">{{31, 72}, {172, 18}}</string>
|
||||||
<reference key="NSSuperview" ref="731672371"/>
|
<reference key="NSSuperview" ref="731672371"/>
|
||||||
<reference key="NSWindow"/>
|
<reference key="NSWindow"/>
|
||||||
<reference key="NSNextKeyView" ref="982397212"/>
|
<reference key="NSNextKeyView" ref="982397212"/>
|
||||||
@@ -276,7 +248,7 @@
|
|||||||
<object class="NSPopUpButton" id="272904029">
|
<object class="NSPopUpButton" id="272904029">
|
||||||
<reference key="NSNextResponder" ref="731672371"/>
|
<reference key="NSNextResponder" ref="731672371"/>
|
||||||
<int key="NSvFlags">268</int>
|
<int key="NSvFlags">268</int>
|
||||||
<string key="NSFrame">{{237, 32}, {112, 26}}</string>
|
<string key="NSFrame">{{179, 33}, {170, 26}}</string>
|
||||||
<reference key="NSSuperview" ref="731672371"/>
|
<reference key="NSSuperview" ref="731672371"/>
|
||||||
<reference key="NSWindow"/>
|
<reference key="NSWindow"/>
|
||||||
<reference key="NSNextKeyView" ref="1066302408"/>
|
<reference key="NSNextKeyView" ref="1066302408"/>
|
||||||
@@ -360,7 +332,7 @@
|
|||||||
<object class="NSButton" id="1066302408">
|
<object class="NSButton" id="1066302408">
|
||||||
<reference key="NSNextResponder" ref="731672371"/>
|
<reference key="NSNextResponder" ref="731672371"/>
|
||||||
<int key="NSvFlags">268</int>
|
<int key="NSvFlags">268</int>
|
||||||
<string key="NSFrame">{{16, 12}, {122, 18}}</string>
|
<string key="NSFrame">{{31, 12}, {122, 18}}</string>
|
||||||
<reference key="NSSuperview" ref="731672371"/>
|
<reference key="NSSuperview" ref="731672371"/>
|
||||||
<reference key="NSWindow"/>
|
<reference key="NSWindow"/>
|
||||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||||
@@ -386,7 +358,7 @@
|
|||||||
<object class="NSTextField" id="982397212">
|
<object class="NSTextField" id="982397212">
|
||||||
<reference key="NSNextResponder" ref="731672371"/>
|
<reference key="NSNextResponder" ref="731672371"/>
|
||||||
<int key="NSvFlags">268</int>
|
<int key="NSvFlags">268</int>
|
||||||
<string key="NSFrame">{{18, 38}, {98, 17}}</string>
|
<string key="NSFrame">{{15, 38}, {98, 17}}</string>
|
||||||
<reference key="NSSuperview" ref="731672371"/>
|
<reference key="NSSuperview" ref="731672371"/>
|
||||||
<reference key="NSWindow"/>
|
<reference key="NSWindow"/>
|
||||||
<reference key="NSNextKeyView" ref="272904029"/>
|
<reference key="NSNextKeyView" ref="272904029"/>
|
||||||
@@ -453,7 +425,7 @@
|
|||||||
<string key="NSFrameSize">{400, 230}</string>
|
<string key="NSFrameSize">{400, 230}</string>
|
||||||
<reference key="NSSuperview"/>
|
<reference key="NSSuperview"/>
|
||||||
<reference key="NSWindow"/>
|
<reference key="NSWindow"/>
|
||||||
<reference key="NSNextKeyView" ref="297534459"/>
|
<reference key="NSNextKeyView" ref="145041823"/>
|
||||||
<string key="NSClassName">NSView</string>
|
<string key="NSClassName">NSView</string>
|
||||||
</object>
|
</object>
|
||||||
</array>
|
</array>
|
||||||
@@ -499,6 +471,14 @@
|
|||||||
</object>
|
</object>
|
||||||
<int key="connectionID">810</int>
|
<int key="connectionID">810</int>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBOutletConnection" key="connection">
|
||||||
|
<string key="label">reopenLastDatabase</string>
|
||||||
|
<reference key="source" ref="1001"/>
|
||||||
|
<reference key="destination" ref="145041823"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">878</int>
|
||||||
|
</object>
|
||||||
</array>
|
</array>
|
||||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||||
<array key="orderedObjects">
|
<array key="orderedObjects">
|
||||||
@@ -530,6 +510,22 @@
|
|||||||
<int key="objectID">1</int>
|
<int key="objectID">1</int>
|
||||||
<reference key="object" ref="1005"/>
|
<reference key="object" ref="1005"/>
|
||||||
<array class="NSMutableArray" key="children">
|
<array class="NSMutableArray" key="children">
|
||||||
|
<object class="IBNSLayoutConstraint" id="505875569">
|
||||||
|
<reference key="firstItem" ref="60918609"/>
|
||||||
|
<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="IBLayoutConstant" key="constant">
|
||||||
|
<double key="value">74</double>
|
||||||
|
</object>
|
||||||
|
<float key="priority">1000</float>
|
||||||
|
<reference key="containingView" ref="1005"/>
|
||||||
|
<int key="scoringType">3</int>
|
||||||
|
<float key="scoringTypeFloat">9</float>
|
||||||
|
<int key="contentType">3</int>
|
||||||
|
</object>
|
||||||
<object class="IBNSLayoutConstraint" id="213536579">
|
<object class="IBNSLayoutConstraint" id="213536579">
|
||||||
<reference key="firstItem" ref="1005"/>
|
<reference key="firstItem" ref="1005"/>
|
||||||
<int key="firstAttribute">4</int>
|
<int key="firstAttribute">4</int>
|
||||||
@@ -546,38 +542,6 @@
|
|||||||
<float key="scoringTypeFloat">29</float>
|
<float key="scoringTypeFloat">29</float>
|
||||||
<int key="contentType">3</int>
|
<int key="contentType">3</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBNSLayoutConstraint" id="528706521">
|
|
||||||
<reference key="firstItem" ref="1005"/>
|
|
||||||
<int key="firstAttribute">4</int>
|
|
||||||
<int key="relation">1</int>
|
|
||||||
<reference key="secondItem" ref="60918609"/>
|
|
||||||
<int key="secondAttribute">4</int>
|
|
||||||
<float key="multiplier">1</float>
|
|
||||||
<object class="IBNSLayoutSymbolicConstant" key="constant">
|
|
||||||
<double key="value">20</double>
|
|
||||||
</object>
|
|
||||||
<float key="priority">1000</float>
|
|
||||||
<reference key="containingView" ref="1005"/>
|
|
||||||
<int key="scoringType">9</int>
|
|
||||||
<float key="scoringTypeFloat">40</float>
|
|
||||||
<int key="contentType">3</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="19198291">
|
|
||||||
<reference key="firstItem" ref="60918609"/>
|
|
||||||
<int key="firstAttribute">3</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="145041823"/>
|
|
||||||
<int key="secondAttribute">4</int>
|
|
||||||
<float key="multiplier">1</float>
|
|
||||||
<object class="IBLayoutConstant" key="constant">
|
|
||||||
<double key="value">20</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="484547610">
|
<object class="IBNSLayoutConstraint" id="484547610">
|
||||||
<reference key="firstItem" ref="1005"/>
|
<reference key="firstItem" ref="1005"/>
|
||||||
<int key="firstAttribute">6</int>
|
<int key="firstAttribute">6</int>
|
||||||
@@ -610,56 +574,24 @@
|
|||||||
<float key="scoringTypeFloat">40</float>
|
<float key="scoringTypeFloat">40</float>
|
||||||
<int key="contentType">3</int>
|
<int key="contentType">3</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBNSLayoutConstraint" id="343337820">
|
<object class="IBNSLayoutConstraint" id="119736576">
|
||||||
<reference key="firstItem" ref="145041823"/>
|
<reference key="firstItem" ref="145041823"/>
|
||||||
<int key="firstAttribute">3</int>
|
<int key="firstAttribute">3</int>
|
||||||
<int key="relation">0</int>
|
<int key="relation">0</int>
|
||||||
<reference key="secondItem" ref="297534459"/>
|
|
||||||
<int key="secondAttribute">4</int>
|
|
||||||
<float key="multiplier">1</float>
|
|
||||||
<object class="IBNSLayoutSymbolicConstant" key="constant">
|
|
||||||
<double key="value">6</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="1065146703">
|
|
||||||
<reference key="firstItem" ref="145041823"/>
|
|
||||||
<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="799708645">
|
|
||||||
<reference key="firstItem" ref="297534459"/>
|
|
||||||
<int key="firstAttribute">3</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="1005"/>
|
<reference key="secondItem" ref="1005"/>
|
||||||
<int key="secondAttribute">3</int>
|
<int key="secondAttribute">3</int>
|
||||||
<float key="multiplier">1</float>
|
<float key="multiplier">1</float>
|
||||||
<object class="IBNSLayoutSymbolicConstant" key="constant">
|
<object class="IBLayoutConstant" key="constant">
|
||||||
<double key="value">20</double>
|
<double key="value">37</double>
|
||||||
</object>
|
</object>
|
||||||
<float key="priority">1000</float>
|
<float key="priority">1000</float>
|
||||||
<reference key="containingView" ref="1005"/>
|
<reference key="containingView" ref="1005"/>
|
||||||
<int key="scoringType">9</int>
|
<int key="scoringType">3</int>
|
||||||
<float key="scoringTypeFloat">40</float>
|
<float key="scoringTypeFloat">9</float>
|
||||||
<int key="contentType">3</int>
|
<int key="contentType">3</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBNSLayoutConstraint" id="285907299">
|
<object class="IBNSLayoutConstraint" id="1065146703">
|
||||||
<reference key="firstItem" ref="297534459"/>
|
<reference key="firstItem" ref="145041823"/>
|
||||||
<int key="firstAttribute">5</int>
|
<int key="firstAttribute">5</int>
|
||||||
<int key="relation">0</int>
|
<int key="relation">0</int>
|
||||||
<reference key="secondItem" ref="1005"/>
|
<reference key="secondItem" ref="1005"/>
|
||||||
@@ -708,7 +640,6 @@
|
|||||||
</object>
|
</object>
|
||||||
<reference ref="60918609"/>
|
<reference ref="60918609"/>
|
||||||
<reference ref="145041823"/>
|
<reference ref="145041823"/>
|
||||||
<reference ref="297534459"/>
|
|
||||||
</array>
|
</array>
|
||||||
<reference key="parent" ref="0"/>
|
<reference key="parent" ref="0"/>
|
||||||
</object>
|
</object>
|
||||||
@@ -716,7 +647,23 @@
|
|||||||
<int key="objectID">465</int>
|
<int key="objectID">465</int>
|
||||||
<reference key="object" ref="60918609"/>
|
<reference key="object" ref="60918609"/>
|
||||||
<array class="NSMutableArray" key="children">
|
<array class="NSMutableArray" key="children">
|
||||||
<object class="IBNSLayoutConstraint" id="370071994">
|
<object class="IBNSLayoutConstraint" id="771059501">
|
||||||
|
<reference key="firstItem" ref="60918609"/>
|
||||||
|
<int key="firstAttribute">6</int>
|
||||||
|
<int key="relation">0</int>
|
||||||
|
<reference key="secondItem" ref="272904029"/>
|
||||||
|
<int key="secondAttribute">6</int>
|
||||||
|
<float key="multiplier">1</float>
|
||||||
|
<object class="IBLayoutConstant" key="constant">
|
||||||
|
<double key="value">16</double>
|
||||||
|
</object>
|
||||||
|
<float key="priority">1000</float>
|
||||||
|
<reference key="containingView" ref="60918609"/>
|
||||||
|
<int key="scoringType">8</int>
|
||||||
|
<float key="scoringTypeFloat">29</float>
|
||||||
|
<int key="contentType">3</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBNSLayoutConstraint" id="920770187">
|
||||||
<reference key="firstItem" ref="60918609"/>
|
<reference key="firstItem" ref="60918609"/>
|
||||||
<int key="firstAttribute">4</int>
|
<int key="firstAttribute">4</int>
|
||||||
<int key="relation">0</int>
|
<int key="relation">0</int>
|
||||||
@@ -724,7 +671,7 @@
|
|||||||
<int key="secondAttribute">4</int>
|
<int key="secondAttribute">4</int>
|
||||||
<float key="multiplier">1</float>
|
<float key="multiplier">1</float>
|
||||||
<object class="IBLayoutConstant" key="constant">
|
<object class="IBLayoutConstant" key="constant">
|
||||||
<double key="value">32</double>
|
<double key="value">33</double>
|
||||||
</object>
|
</object>
|
||||||
<float key="priority">1000</float>
|
<float key="priority">1000</float>
|
||||||
<reference key="containingView" ref="60918609"/>
|
<reference key="containingView" ref="60918609"/>
|
||||||
@@ -733,10 +680,10 @@
|
|||||||
<int key="contentType">3</int>
|
<int key="contentType">3</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBNSLayoutConstraint" id="459585909">
|
<object class="IBNSLayoutConstraint" id="459585909">
|
||||||
<reference key="firstItem" ref="272904029"/>
|
<reference key="firstItem" ref="222890410"/>
|
||||||
<int key="firstAttribute">5</int>
|
<int key="firstAttribute">5</int>
|
||||||
<int key="relation">0</int>
|
<int key="relation">0</int>
|
||||||
<reference key="secondItem" ref="222890410"/>
|
<reference key="secondItem" ref="272904029"/>
|
||||||
<int key="secondAttribute">5</int>
|
<int key="secondAttribute">5</int>
|
||||||
<float key="multiplier">1</float>
|
<float key="multiplier">1</float>
|
||||||
<object class="IBLayoutConstant" key="constant">
|
<object class="IBLayoutConstant" key="constant">
|
||||||
@@ -748,11 +695,11 @@
|
|||||||
<float key="scoringTypeFloat">24</float>
|
<float key="scoringTypeFloat">24</float>
|
||||||
<int key="contentType">2</int>
|
<int key="contentType">2</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBNSLayoutConstraint" id="771059501">
|
<object class="IBNSLayoutConstraint" id="437525640">
|
||||||
<reference key="firstItem" ref="60918609"/>
|
<reference key="firstItem" ref="60918609"/>
|
||||||
<int key="firstAttribute">6</int>
|
<int key="firstAttribute">6</int>
|
||||||
<int key="relation">0</int>
|
<int key="relation">0</int>
|
||||||
<reference key="secondItem" ref="272904029"/>
|
<reference key="secondItem" ref="222890410"/>
|
||||||
<int key="secondAttribute">6</int>
|
<int key="secondAttribute">6</int>
|
||||||
<float key="multiplier">1</float>
|
<float key="multiplier">1</float>
|
||||||
<object class="IBLayoutConstant" key="constant">
|
<object class="IBLayoutConstant" key="constant">
|
||||||
@@ -780,37 +727,21 @@
|
|||||||
<float key="scoringTypeFloat">24</float>
|
<float key="scoringTypeFloat">24</float>
|
||||||
<int key="contentType">2</int>
|
<int key="contentType">2</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBNSLayoutConstraint" id="811582841">
|
<object class="IBNSLayoutConstraint" id="1043261939">
|
||||||
<reference key="firstItem" ref="222890410"/>
|
<reference key="firstItem" ref="1066302408"/>
|
||||||
<int key="firstAttribute">5</int>
|
<int key="firstAttribute">5</int>
|
||||||
<int key="relation">0</int>
|
<int key="relation">0</int>
|
||||||
<reference key="secondItem" ref="958810247"/>
|
<reference key="secondItem" ref="326334884"/>
|
||||||
<int key="secondAttribute">6</int>
|
<int key="secondAttribute">5</int>
|
||||||
<float key="multiplier">1</float>
|
<float key="multiplier">1</float>
|
||||||
<object class="IBLayoutConstant" key="constant">
|
<object class="IBLayoutConstant" key="constant">
|
||||||
<double key="value">57</double>
|
<double key="value">0.0</double>
|
||||||
</object>
|
</object>
|
||||||
<float key="priority">1000</float>
|
<float key="priority">1000</float>
|
||||||
<reference key="containingView" ref="60918609"/>
|
<reference key="containingView" ref="60918609"/>
|
||||||
<int key="scoringType">9</int>
|
<int key="scoringType">6</int>
|
||||||
<float key="scoringTypeFloat">40</float>
|
<float key="scoringTypeFloat">24</float>
|
||||||
<int key="contentType">3</int>
|
<int key="contentType">2</int>
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="520285939">
|
|
||||||
<reference key="firstItem" ref="60918609"/>
|
|
||||||
<int key="firstAttribute">6</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="222890410"/>
|
|
||||||
<int key="secondAttribute">6</int>
|
|
||||||
<float key="multiplier">1</float>
|
|
||||||
<object class="IBLayoutConstant" key="constant">
|
|
||||||
<double key="value">16</double>
|
|
||||||
</object>
|
|
||||||
<float key="priority">1000</float>
|
|
||||||
<reference key="containingView" ref="60918609"/>
|
|
||||||
<int key="scoringType">9</int>
|
|
||||||
<float key="scoringTypeFloat">40</float>
|
|
||||||
<int key="contentType">3</int>
|
|
||||||
</object>
|
</object>
|
||||||
<object class="IBNSLayoutConstraint" id="806133159">
|
<object class="IBNSLayoutConstraint" id="806133159">
|
||||||
<reference key="firstItem" ref="60918609"/>
|
<reference key="firstItem" ref="60918609"/>
|
||||||
@@ -845,7 +776,7 @@
|
|||||||
<int key="contentType">3</int>
|
<int key="contentType">3</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBNSLayoutConstraint" id="476689522">
|
<object class="IBNSLayoutConstraint" id="476689522">
|
||||||
<reference key="firstItem" ref="1066302408"/>
|
<reference key="firstItem" ref="982397212"/>
|
||||||
<int key="firstAttribute">5</int>
|
<int key="firstAttribute">5</int>
|
||||||
<int key="relation">0</int>
|
<int key="relation">0</int>
|
||||||
<reference key="secondItem" ref="60918609"/>
|
<reference key="secondItem" ref="60918609"/>
|
||||||
@@ -860,12 +791,12 @@
|
|||||||
<float key="scoringTypeFloat">29</float>
|
<float key="scoringTypeFloat">29</float>
|
||||||
<int key="contentType">3</int>
|
<int key="contentType">3</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBNSLayoutConstraint" id="287888619">
|
<object class="IBNSLayoutConstraint" id="1037442692">
|
||||||
<reference key="firstItem" ref="982397212"/>
|
<reference key="firstItem" ref="982397212"/>
|
||||||
<int key="firstAttribute">11</int>
|
<int key="firstAttribute">10</int>
|
||||||
<int key="relation">0</int>
|
<int key="relation">0</int>
|
||||||
<reference key="secondItem" ref="272904029"/>
|
<reference key="secondItem" ref="272904029"/>
|
||||||
<int key="secondAttribute">11</int>
|
<int key="secondAttribute">10</int>
|
||||||
<float key="multiplier">1</float>
|
<float key="multiplier">1</float>
|
||||||
<object class="IBLayoutConstant" key="constant">
|
<object class="IBLayoutConstant" key="constant">
|
||||||
<double key="value">0.0</double>
|
<double key="value">0.0</double>
|
||||||
@@ -876,15 +807,15 @@
|
|||||||
<float key="scoringTypeFloat">24</float>
|
<float key="scoringTypeFloat">24</float>
|
||||||
<int key="contentType">2</int>
|
<int key="contentType">2</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBNSLayoutConstraint" id="561950720">
|
<object class="IBNSLayoutConstraint" id="236685633">
|
||||||
<reference key="firstItem" ref="982397212"/>
|
<reference key="firstItem" ref="326334884"/>
|
||||||
<int key="firstAttribute">5</int>
|
<int key="firstAttribute">5</int>
|
||||||
<int key="relation">0</int>
|
<int key="relation">0</int>
|
||||||
<reference key="secondItem" ref="60918609"/>
|
<reference key="secondItem" ref="60918609"/>
|
||||||
<int key="secondAttribute">5</int>
|
<int key="secondAttribute">5</int>
|
||||||
<float key="multiplier">1</float>
|
<float key="multiplier">1</float>
|
||||||
<object class="IBLayoutConstant" key="constant">
|
<object class="IBLayoutConstant" key="constant">
|
||||||
<double key="value">19</double>
|
<double key="value">31</double>
|
||||||
</object>
|
</object>
|
||||||
<float key="priority">1000</float>
|
<float key="priority">1000</float>
|
||||||
<reference key="containingView" ref="60918609"/>
|
<reference key="containingView" ref="60918609"/>
|
||||||
@@ -892,36 +823,20 @@
|
|||||||
<float key="scoringTypeFloat">9</float>
|
<float key="scoringTypeFloat">9</float>
|
||||||
<int key="contentType">3</int>
|
<int key="contentType">3</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBNSLayoutConstraint" id="376978074">
|
<object class="IBNSLayoutConstraint" id="933426524">
|
||||||
<reference key="firstItem" ref="326334884"/>
|
<reference key="firstItem" ref="326334884"/>
|
||||||
<int key="firstAttribute">3</int>
|
<int key="firstAttribute">3</int>
|
||||||
<int key="relation">0</int>
|
<int key="relation">0</int>
|
||||||
<reference key="secondItem" ref="958810247"/>
|
<reference key="secondItem" ref="958810247"/>
|
||||||
<int key="secondAttribute">4</int>
|
<int key="secondAttribute">4</int>
|
||||||
<float key="multiplier">1</float>
|
<float key="multiplier">1</float>
|
||||||
<object class="IBLayoutConstant" key="constant">
|
<object class="IBNSLayoutSymbolicConstant" key="constant">
|
||||||
<double key="value">10</double>
|
<double key="value">8</double>
|
||||||
</object>
|
</object>
|
||||||
<float key="priority">1000</float>
|
<float key="priority">1000</float>
|
||||||
<reference key="containingView" ref="60918609"/>
|
<reference key="containingView" ref="60918609"/>
|
||||||
<int key="scoringType">9</int>
|
<int key="scoringType">6</int>
|
||||||
<float key="scoringTypeFloat">40</float>
|
<float key="scoringTypeFloat">24</float>
|
||||||
<int key="contentType">3</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="467548005">
|
|
||||||
<reference key="firstItem" ref="326334884"/>
|
|
||||||
<int key="firstAttribute">5</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="60918609"/>
|
|
||||||
<int key="secondAttribute">5</int>
|
|
||||||
<float key="multiplier">1</float>
|
|
||||||
<object class="IBLayoutConstant" key="constant">
|
|
||||||
<double key="value">16</double>
|
|
||||||
</object>
|
|
||||||
<float key="priority">1000</float>
|
|
||||||
<reference key="containingView" ref="60918609"/>
|
|
||||||
<int key="scoringType">8</int>
|
|
||||||
<float key="scoringTypeFloat">29</float>
|
|
||||||
<int key="contentType">3</int>
|
<int key="contentType">3</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBNSLayoutConstraint" id="432174165">
|
<object class="IBNSLayoutConstraint" id="432174165">
|
||||||
@@ -973,11 +888,11 @@
|
|||||||
<int key="contentType">3</int>
|
<int key="contentType">3</int>
|
||||||
</object>
|
</object>
|
||||||
<reference ref="958810247"/>
|
<reference ref="958810247"/>
|
||||||
<reference ref="326334884"/>
|
<reference ref="982397212"/>
|
||||||
<reference ref="272904029"/>
|
<reference ref="272904029"/>
|
||||||
|
<reference ref="326334884"/>
|
||||||
<reference ref="1066302408"/>
|
<reference ref="1066302408"/>
|
||||||
<reference ref="222890410"/>
|
<reference ref="222890410"/>
|
||||||
<reference ref="982397212"/>
|
|
||||||
</array>
|
</array>
|
||||||
<reference key="parent" ref="1005"/>
|
<reference key="parent" ref="1005"/>
|
||||||
</object>
|
</object>
|
||||||
@@ -1020,7 +935,7 @@
|
|||||||
<reference key="object" ref="222890410"/>
|
<reference key="object" ref="222890410"/>
|
||||||
<array class="NSMutableArray" key="children">
|
<array class="NSMutableArray" key="children">
|
||||||
<reference ref="934584997"/>
|
<reference ref="934584997"/>
|
||||||
<object class="IBNSLayoutConstraint" id="943587685">
|
<object class="IBNSLayoutConstraint" id="777025190">
|
||||||
<reference key="firstItem" ref="222890410"/>
|
<reference key="firstItem" ref="222890410"/>
|
||||||
<int key="firstAttribute">7</int>
|
<int key="firstAttribute">7</int>
|
||||||
<int key="relation">0</int>
|
<int key="relation">0</int>
|
||||||
@@ -1028,7 +943,7 @@
|
|||||||
<int key="secondAttribute">0</int>
|
<int key="secondAttribute">0</int>
|
||||||
<float key="multiplier">1</float>
|
<float key="multiplier">1</float>
|
||||||
<object class="IBLayoutConstant" key="constant">
|
<object class="IBLayoutConstant" key="constant">
|
||||||
<double key="value">107</double>
|
<double key="value">165</double>
|
||||||
</object>
|
</object>
|
||||||
<float key="priority">1000</float>
|
<float key="priority">1000</float>
|
||||||
<reference key="containingView" ref="222890410"/>
|
<reference key="containingView" ref="222890410"/>
|
||||||
@@ -1112,34 +1027,6 @@
|
|||||||
<reference key="object" ref="891799107"/>
|
<reference key="object" ref="891799107"/>
|
||||||
<reference key="parent" ref="60918609"/>
|
<reference key="parent" ref="60918609"/>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">506</int>
|
|
||||||
<reference key="object" ref="520285939"/>
|
|
||||||
<reference key="parent" ref="60918609"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">509</int>
|
|
||||||
<reference key="object" ref="811582841"/>
|
|
||||||
<reference key="parent" ref="60918609"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">526</int>
|
|
||||||
<reference key="object" ref="297534459"/>
|
|
||||||
<array class="NSMutableArray" key="children">
|
|
||||||
<reference ref="197992074"/>
|
|
||||||
</array>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">527</int>
|
|
||||||
<reference key="object" ref="197992074"/>
|
|
||||||
<reference key="parent" ref="297534459"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">528</int>
|
|
||||||
<reference key="object" ref="285907299"/>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
<object class="IBObjectRecord">
|
||||||
<int key="objectID">530</int>
|
<int key="objectID">530</int>
|
||||||
<reference key="object" ref="145041823"/>
|
<reference key="object" ref="145041823"/>
|
||||||
@@ -1158,16 +1045,6 @@
|
|||||||
<reference key="object" ref="1065146703"/>
|
<reference key="object" ref="1065146703"/>
|
||||||
<reference key="parent" ref="1005"/>
|
<reference key="parent" ref="1005"/>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">535</int>
|
|
||||||
<reference key="object" ref="343337820"/>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">536</int>
|
|
||||||
<reference key="object" ref="799708645"/>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
<object class="IBObjectRecord">
|
||||||
<int key="objectID">584</int>
|
<int key="objectID">584</int>
|
||||||
<reference key="object" ref="272904029"/>
|
<reference key="object" ref="272904029"/>
|
||||||
@@ -1210,16 +1087,6 @@
|
|||||||
<reference key="object" ref="328220222"/>
|
<reference key="object" ref="328220222"/>
|
||||||
<reference key="parent" ref="552398563"/>
|
<reference key="parent" ref="552398563"/>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">660</int>
|
|
||||||
<reference key="object" ref="467548005"/>
|
|
||||||
<reference key="parent" ref="60918609"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">664</int>
|
|
||||||
<reference key="object" ref="943587685"/>
|
|
||||||
<reference key="parent" ref="222890410"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
<object class="IBObjectRecord">
|
||||||
<int key="objectID">630</int>
|
<int key="objectID">630</int>
|
||||||
<reference key="object" ref="1066302408"/>
|
<reference key="object" ref="1066302408"/>
|
||||||
@@ -1233,26 +1100,6 @@
|
|||||||
<reference key="object" ref="252113219"/>
|
<reference key="object" ref="252113219"/>
|
||||||
<reference key="parent" ref="1066302408"/>
|
<reference key="parent" ref="1066302408"/>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">706</int>
|
|
||||||
<reference key="object" ref="771059501"/>
|
|
||||||
<reference key="parent" ref="60918609"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">708</int>
|
|
||||||
<reference key="object" ref="459585909"/>
|
|
||||||
<reference key="parent" ref="60918609"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">718</int>
|
|
||||||
<reference key="object" ref="476689522"/>
|
|
||||||
<reference key="parent" ref="60918609"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">759</int>
|
|
||||||
<reference key="object" ref="376978074"/>
|
|
||||||
<reference key="parent" ref="60918609"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
<object class="IBObjectRecord">
|
||||||
<int key="objectID">773</int>
|
<int key="objectID">773</int>
|
||||||
<reference key="object" ref="871797750"/>
|
<reference key="object" ref="871797750"/>
|
||||||
@@ -1288,11 +1135,6 @@
|
|||||||
<reference key="object" ref="806133159"/>
|
<reference key="object" ref="806133159"/>
|
||||||
<reference key="parent" ref="60918609"/>
|
<reference key="parent" ref="60918609"/>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">802</int>
|
|
||||||
<reference key="object" ref="370071994"/>
|
|
||||||
<reference key="parent" ref="60918609"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
<object class="IBObjectRecord">
|
||||||
<int key="objectID">803</int>
|
<int key="objectID">803</int>
|
||||||
<reference key="object" ref="15468834"/>
|
<reference key="object" ref="15468834"/>
|
||||||
@@ -1317,40 +1159,80 @@
|
|||||||
<reference key="parent" ref="982397212"/>
|
<reference key="parent" ref="982397212"/>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBObjectRecord">
|
<object class="IBObjectRecord">
|
||||||
<int key="objectID">807</int>
|
<int key="objectID">788</int>
|
||||||
<reference key="object" ref="561950720"/>
|
<reference key="object" ref="772519144"/>
|
||||||
<reference key="parent" ref="60918609"/>
|
<reference key="parent" ref="60918609"/>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBObjectRecord">
|
<object class="IBObjectRecord">
|
||||||
<int key="objectID">808</int>
|
<int key="objectID">840</int>
|
||||||
<reference key="object" ref="287888619"/>
|
|
||||||
<reference key="parent" ref="60918609"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">537</int>
|
|
||||||
<reference key="object" ref="19198291"/>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">721</int>
|
|
||||||
<reference key="object" ref="528706521"/>
|
|
||||||
<reference key="parent" ref="1005"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">800</int>
|
|
||||||
<reference key="object" ref="213536579"/>
|
<reference key="object" ref="213536579"/>
|
||||||
<reference key="parent" ref="1005"/>
|
<reference key="parent" ref="1005"/>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBObjectRecord">
|
<object class="IBObjectRecord">
|
||||||
<int key="objectID">799</int>
|
<int key="objectID">845</int>
|
||||||
|
<reference key="object" ref="119736576"/>
|
||||||
|
<reference key="parent" ref="1005"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">846</int>
|
||||||
|
<reference key="object" ref="505875569"/>
|
||||||
|
<reference key="parent" ref="1005"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">847</int>
|
||||||
<reference key="object" ref="250630005"/>
|
<reference key="object" ref="250630005"/>
|
||||||
<reference key="parent" ref="1005"/>
|
<reference key="parent" ref="1005"/>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBObjectRecord">
|
<object class="IBObjectRecord">
|
||||||
<int key="objectID">788</int>
|
<int key="objectID">861</int>
|
||||||
<reference key="object" ref="772519144"/>
|
<reference key="object" ref="1037442692"/>
|
||||||
<reference key="parent" ref="60918609"/>
|
<reference key="parent" ref="60918609"/>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">862</int>
|
||||||
|
<reference key="object" ref="920770187"/>
|
||||||
|
<reference key="parent" ref="60918609"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">867</int>
|
||||||
|
<reference key="object" ref="933426524"/>
|
||||||
|
<reference key="parent" ref="60918609"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">868</int>
|
||||||
|
<reference key="object" ref="1043261939"/>
|
||||||
|
<reference key="parent" ref="60918609"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">870</int>
|
||||||
|
<reference key="object" ref="476689522"/>
|
||||||
|
<reference key="parent" ref="60918609"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">871</int>
|
||||||
|
<reference key="object" ref="236685633"/>
|
||||||
|
<reference key="parent" ref="60918609"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">873</int>
|
||||||
|
<reference key="object" ref="771059501"/>
|
||||||
|
<reference key="parent" ref="60918609"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">875</int>
|
||||||
|
<reference key="object" ref="437525640"/>
|
||||||
|
<reference key="parent" ref="60918609"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">876</int>
|
||||||
|
<reference key="object" ref="459585909"/>
|
||||||
|
<reference key="parent" ref="60918609"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">877</int>
|
||||||
|
<reference key="object" ref="777025190"/>
|
||||||
|
<reference key="parent" ref="222890410"/>
|
||||||
|
</object>
|
||||||
</array>
|
</array>
|
||||||
</object>
|
</object>
|
||||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||||
@@ -1360,21 +1242,18 @@
|
|||||||
<array key="1.IBNSViewMetadataConstraints">
|
<array key="1.IBNSViewMetadataConstraints">
|
||||||
<reference ref="1063893674"/>
|
<reference ref="1063893674"/>
|
||||||
<reference ref="250630005"/>
|
<reference ref="250630005"/>
|
||||||
<reference ref="285907299"/>
|
|
||||||
<reference ref="799708645"/>
|
|
||||||
<reference ref="1065146703"/>
|
<reference ref="1065146703"/>
|
||||||
<reference ref="343337820"/>
|
<reference ref="119736576"/>
|
||||||
<reference ref="989429017"/>
|
<reference ref="989429017"/>
|
||||||
<reference ref="484547610"/>
|
<reference ref="484547610"/>
|
||||||
<reference ref="19198291"/>
|
|
||||||
<reference ref="528706521"/>
|
|
||||||
<reference ref="213536579"/>
|
<reference ref="213536579"/>
|
||||||
|
<reference ref="505875569"/>
|
||||||
</array>
|
</array>
|
||||||
<boolean value="NO" key="1.IBNSViewMetadataLastInspectedTranslatesAutoresizingMaskIntoConstraints"/>
|
<boolean value="NO" key="1.IBNSViewMetadataLastInspectedTranslatesAutoresizingMaskIntoConstraints"/>
|
||||||
<boolean value="NO" key="1.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
<boolean value="NO" key="1.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
||||||
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<array key="419.IBNSViewMetadataConstraints">
|
<array key="419.IBNSViewMetadataConstraints">
|
||||||
<reference ref="943587685"/>
|
<reference ref="777025190"/>
|
||||||
</array>
|
</array>
|
||||||
<boolean value="NO" key="419.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
<boolean value="NO" key="419.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
||||||
<string key="419.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="419.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
@@ -1400,38 +1279,28 @@
|
|||||||
<reference ref="891799107"/>
|
<reference ref="891799107"/>
|
||||||
<reference ref="1014678196"/>
|
<reference ref="1014678196"/>
|
||||||
<reference ref="432174165"/>
|
<reference ref="432174165"/>
|
||||||
<reference ref="467548005"/>
|
<reference ref="933426524"/>
|
||||||
<reference ref="376978074"/>
|
<reference ref="236685633"/>
|
||||||
<reference ref="561950720"/>
|
<reference ref="1037442692"/>
|
||||||
<reference ref="287888619"/>
|
|
||||||
<reference ref="476689522"/>
|
<reference ref="476689522"/>
|
||||||
<reference ref="772519144"/>
|
<reference ref="772519144"/>
|
||||||
<reference ref="806133159"/>
|
<reference ref="806133159"/>
|
||||||
<reference ref="520285939"/>
|
<reference ref="1043261939"/>
|
||||||
<reference ref="811582841"/>
|
|
||||||
<reference ref="311160635"/>
|
<reference ref="311160635"/>
|
||||||
<reference ref="771059501"/>
|
<reference ref="437525640"/>
|
||||||
<reference ref="459585909"/>
|
<reference ref="459585909"/>
|
||||||
<reference ref="370071994"/>
|
<reference ref="920770187"/>
|
||||||
|
<reference ref="771059501"/>
|
||||||
</array>
|
</array>
|
||||||
<boolean value="NO" key="465.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
<boolean value="NO" key="465.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
||||||
<string key="465.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="465.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="475.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="475.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="499.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="499.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="506.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="509.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="525.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="525.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<boolean value="NO" key="526.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
|
||||||
<string key="526.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="527.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="528.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<boolean value="NO" key="530.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
<boolean value="NO" key="530.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
||||||
<string key="530.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="530.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="531.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="531.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="532.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="532.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="535.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="536.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="537.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<boolean value="NO" key="584.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
<boolean value="NO" key="584.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
||||||
<string key="584.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="584.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="585.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="585.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
@@ -1442,36 +1311,38 @@
|
|||||||
<boolean value="NO" key="630.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
<boolean value="NO" key="630.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
||||||
<string key="630.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="630.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="631.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="631.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="660.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="664.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="706.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="708.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="718.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="721.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="759.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="773.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="773.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="784.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="784.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="788.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="788.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="789.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="789.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="792.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="792.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="798.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="798.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="799.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="800.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="801.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="801.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="802.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="803.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="803.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="804.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="804.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<boolean value="NO" key="805.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
<boolean value="NO" key="805.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
||||||
<string key="805.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="805.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="806.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="806.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="807.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="840.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="808.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="845.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="846.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="847.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="861.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="862.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="867.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="868.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="870.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="871.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="873.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="875.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="876.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="877.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
</dictionary>
|
</dictionary>
|
||||||
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
||||||
<nil key="activeLocalization"/>
|
<nil key="activeLocalization"/>
|
||||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||||
<nil key="sourceID"/>
|
<nil key="sourceID"/>
|
||||||
<int key="maxID">814</int>
|
<int key="maxID">878</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||||
@@ -1483,6 +1354,7 @@
|
|||||||
<string key="clearPasteboardTimeoutPopup">NSPopUpButton</string>
|
<string key="clearPasteboardTimeoutPopup">NSPopUpButton</string>
|
||||||
<string key="idleTimeOutPopup">NSPopUpButton</string>
|
<string key="idleTimeOutPopup">NSPopUpButton</string>
|
||||||
<string key="lockOnSleepCheckButton">NSButton</string>
|
<string key="lockOnSleepCheckButton">NSButton</string>
|
||||||
|
<string key="reopenLastDatabase">NSButton</string>
|
||||||
</dictionary>
|
</dictionary>
|
||||||
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||||
<object class="IBToOneOutletInfo" key="clearPasteboardOnQuitCheckButton">
|
<object class="IBToOneOutletInfo" key="clearPasteboardOnQuitCheckButton">
|
||||||
@@ -1501,6 +1373,10 @@
|
|||||||
<string key="name">lockOnSleepCheckButton</string>
|
<string key="name">lockOnSleepCheckButton</string>
|
||||||
<string key="candidateClassName">NSButton</string>
|
<string key="candidateClassName">NSButton</string>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="IBToOneOutletInfo" key="reopenLastDatabase">
|
||||||
|
<string key="name">reopenLastDatabase</string>
|
||||||
|
<string key="candidateClassName">NSButton</string>
|
||||||
|
</object>
|
||||||
</dictionary>
|
</dictionary>
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
<string key="majorKey">IBProjectSource</string>
|
<string key="majorKey">IBProjectSource</string>
|
||||||
|
|||||||
@@ -253,6 +253,24 @@
|
|||||||
<reference key="NSOnImage" ref="35465992"/>
|
<reference key="NSOnImage" ref="35465992"/>
|
||||||
<reference key="NSMixedImage" ref="502551668"/>
|
<reference key="NSMixedImage" ref="502551668"/>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="NSMenuItem" id="663106531">
|
||||||
|
<reference key="NSMenu" ref="720053764"/>
|
||||||
|
<string key="NSTitle">Save As…</string>
|
||||||
|
<string key="NSKeyEquiv">S</string>
|
||||||
|
<int key="NSKeyEquivModMask">1048576</int>
|
||||||
|
<int key="NSMnemonicLoc">2147483647</int>
|
||||||
|
<reference key="NSOnImage" ref="35465992"/>
|
||||||
|
<reference key="NSMixedImage" ref="502551668"/>
|
||||||
|
</object>
|
||||||
|
<object class="NSMenuItem" id="438377242">
|
||||||
|
<reference key="NSMenu" ref="720053764"/>
|
||||||
|
<string key="NSTitle">Export As XML…</string>
|
||||||
|
<string key="NSKeyEquiv">E</string>
|
||||||
|
<int key="NSKeyEquivModMask">1048576</int>
|
||||||
|
<int key="NSMnemonicLoc">2147483647</int>
|
||||||
|
<reference key="NSOnImage" ref="35465992"/>
|
||||||
|
<reference key="NSMixedImage" ref="502551668"/>
|
||||||
|
</object>
|
||||||
<object class="NSMenuItem" id="579971712">
|
<object class="NSMenuItem" id="579971712">
|
||||||
<reference key="NSMenu" ref="720053764"/>
|
<reference key="NSMenu" ref="720053764"/>
|
||||||
<string key="NSTitle">Revert to Saved</string>
|
<string key="NSTitle">Revert to Saved</string>
|
||||||
@@ -274,7 +292,7 @@
|
|||||||
</object>
|
</object>
|
||||||
<object class="NSMenuItem" id="544639599">
|
<object class="NSMenuItem" id="544639599">
|
||||||
<reference key="NSMenu" ref="720053764"/>
|
<reference key="NSMenu" ref="720053764"/>
|
||||||
<string key="NSTitle">Document Settings…</string>
|
<string key="NSTitle">Database Settings…</string>
|
||||||
<string key="NSKeyEquiv"/>
|
<string key="NSKeyEquiv"/>
|
||||||
<int key="NSMnemonicLoc">2147483647</int>
|
<int key="NSMnemonicLoc">2147483647</int>
|
||||||
<reference key="NSOnImage" ref="35465992"/>
|
<reference key="NSOnImage" ref="35465992"/>
|
||||||
@@ -282,7 +300,7 @@
|
|||||||
</object>
|
</object>
|
||||||
<object class="NSMenuItem" id="915918141">
|
<object class="NSMenuItem" id="915918141">
|
||||||
<reference key="NSMenu" ref="720053764"/>
|
<reference key="NSMenu" ref="720053764"/>
|
||||||
<string key="NSTitle">Change Password…</string>
|
<string key="NSTitle">Change Master Password…</string>
|
||||||
<string key="NSKeyEquiv"/>
|
<string key="NSKeyEquiv"/>
|
||||||
<int key="NSMnemonicLoc">2147483647</int>
|
<int key="NSMnemonicLoc">2147483647</int>
|
||||||
<reference key="NSOnImage" ref="35465992"/>
|
<reference key="NSOnImage" ref="35465992"/>
|
||||||
@@ -788,11 +806,27 @@
|
|||||||
</object>
|
</object>
|
||||||
<object class="IBConnectionRecord">
|
<object class="IBConnectionRecord">
|
||||||
<object class="IBActionConnection" key="connection">
|
<object class="IBActionConnection" key="connection">
|
||||||
<string key="label">showDocumentSettings:</string>
|
<string key="label">showDatabaseSettings:</string>
|
||||||
<reference key="source" ref="1014"/>
|
<reference key="source" ref="1014"/>
|
||||||
<reference key="destination" ref="544639599"/>
|
<reference key="destination" ref="544639599"/>
|
||||||
</object>
|
</object>
|
||||||
<int key="connectionID">1233</int>
|
<int key="connectionID">1234</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBActionConnection" key="connection">
|
||||||
|
<string key="label">saveDocumentAs:</string>
|
||||||
|
<reference key="source" ref="1014"/>
|
||||||
|
<reference key="destination" ref="663106531"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">1255</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBActionConnection" key="connection">
|
||||||
|
<string key="label">exportDatabase:</string>
|
||||||
|
<reference key="source" ref="1014"/>
|
||||||
|
<reference key="destination" ref="438377242"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">1260</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBConnectionRecord">
|
<object class="IBConnectionRecord">
|
||||||
<object class="IBActionConnection" key="connection">
|
<object class="IBActionConnection" key="connection">
|
||||||
@@ -896,6 +930,8 @@
|
|||||||
<reference ref="1010469920"/>
|
<reference ref="1010469920"/>
|
||||||
<reference ref="915918141"/>
|
<reference ref="915918141"/>
|
||||||
<reference ref="544639599"/>
|
<reference ref="544639599"/>
|
||||||
|
<reference ref="663106531"/>
|
||||||
|
<reference ref="438377242"/>
|
||||||
</array>
|
</array>
|
||||||
<reference key="parent" ref="379814623"/>
|
<reference key="parent" ref="379814623"/>
|
||||||
</object>
|
</object>
|
||||||
@@ -1226,6 +1262,16 @@
|
|||||||
<reference key="object" ref="544639599"/>
|
<reference key="object" ref="544639599"/>
|
||||||
<reference key="parent" ref="720053764"/>
|
<reference key="parent" ref="720053764"/>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">1243</int>
|
||||||
|
<reference key="object" ref="663106531"/>
|
||||||
|
<reference key="parent" ref="720053764"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">1259</int>
|
||||||
|
<reference key="object" ref="438377242"/>
|
||||||
|
<reference key="parent" ref="720053764"/>
|
||||||
|
</object>
|
||||||
</array>
|
</array>
|
||||||
</object>
|
</object>
|
||||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||||
@@ -1241,7 +1287,9 @@
|
|||||||
<string key="1203.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="1203.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="1231.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="1231.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="124.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="124.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="1243.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="125.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="125.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="1259.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="126.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="126.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="129.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="129.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="130.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="130.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
@@ -1298,7 +1346,7 @@
|
|||||||
<nil key="activeLocalization"/>
|
<nil key="activeLocalization"/>
|
||||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||||
<nil key="sourceID"/>
|
<nil key="sourceID"/>
|
||||||
<int key="maxID">1233</int>
|
<int key="maxID">1260</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||||
@@ -1358,15 +1406,20 @@
|
|||||||
<string key="superclassName">NSWindowController</string>
|
<string key="superclassName">NSWindowController</string>
|
||||||
<dictionary class="NSMutableDictionary" key="actions">
|
<dictionary class="NSMutableDictionary" key="actions">
|
||||||
<string key="editPassword:">id</string>
|
<string key="editPassword:">id</string>
|
||||||
<string key="showDocumentSettings:">id</string>
|
<string key="exportDatabase:">id</string>
|
||||||
|
<string key="showDatabaseSettings:">id</string>
|
||||||
</dictionary>
|
</dictionary>
|
||||||
<dictionary class="NSMutableDictionary" key="actionInfosByName">
|
<dictionary class="NSMutableDictionary" key="actionInfosByName">
|
||||||
<object class="IBActionInfo" key="editPassword:">
|
<object class="IBActionInfo" key="editPassword:">
|
||||||
<string key="name">editPassword:</string>
|
<string key="name">editPassword:</string>
|
||||||
<string key="candidateClassName">id</string>
|
<string key="candidateClassName">id</string>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBActionInfo" key="showDocumentSettings:">
|
<object class="IBActionInfo" key="exportDatabase:">
|
||||||
<string key="name">showDocumentSettings:</string>
|
<string key="name">exportDatabase:</string>
|
||||||
|
<string key="candidateClassName">id</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBActionInfo" key="showDatabaseSettings:">
|
||||||
|
<string key="name">showDatabaseSettings:</string>
|
||||||
<string key="candidateClassName">id</string>
|
<string key="candidateClassName">id</string>
|
||||||
</object>
|
</object>
|
||||||
</dictionary>
|
</dictionary>
|
||||||
|
|||||||
@@ -1,947 +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>NSPathCell</string>
|
|
||||||
<string>NSPathControl</string>
|
|
||||||
<string>NSSecureTextField</string>
|
|
||||||
<string>NSSecureTextFieldCell</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">MPPasswordEditViewController</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="595834490">
|
|
||||||
<reference key="NSNextResponder"/>
|
|
||||||
<int key="NSvFlags">268</int>
|
|
||||||
<array class="NSMutableArray" key="NSSubviews">
|
|
||||||
<object class="NSTextField" id="762740216">
|
|
||||||
<reference key="NSNextResponder" ref="595834490"/>
|
|
||||||
<int key="NSvFlags">268</int>
|
|
||||||
<string key="NSFrame">{{99, 157}, {164, 17}}</string>
|
|
||||||
<reference key="NSSuperview" ref="595834490"/>
|
|
||||||
<reference key="NSWindow"/>
|
|
||||||
<reference key="NSNextKeyView" ref="847623533"/>
|
|
||||||
<string key="NSReuseIdentifierKey">_NS:1535</string>
|
|
||||||
<bool key="NSEnabled">YES</bool>
|
|
||||||
<object class="NSTextFieldCell" key="NSCell" id="79241474">
|
|
||||||
<int key="NSCellFlags">68157504</int>
|
|
||||||
<int key="NSCellFlags2">272630784</int>
|
|
||||||
<string key="NSContents">Change Password/Keyfile</string>
|
|
||||||
<object class="NSFont" key="NSSupport" id="385477987">
|
|
||||||
<string key="NSName">LucidaGrande</string>
|
|
||||||
<double key="NSSize">13</double>
|
|
||||||
<int key="NSfFlags">1044</int>
|
|
||||||
</object>
|
|
||||||
<string key="NSCellIdentifier">_NS:1535</string>
|
|
||||||
<reference key="NSControlView" ref="762740216"/>
|
|
||||||
<object class="NSColor" key="NSBackgroundColor" id="515490923">
|
|
||||||
<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" id="504890084">
|
|
||||||
<int key="NSColorSpace">6</int>
|
|
||||||
<string key="NSCatalogName">System</string>
|
|
||||||
<string key="NSColorName">controlTextColor</string>
|
|
||||||
<object class="NSColor" key="NSColor" id="354127501">
|
|
||||||
<int key="NSColorSpace">3</int>
|
|
||||||
<bytes key="NSWhite">MAA</bytes>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
|
||||||
</object>
|
|
||||||
<object class="NSButton" id="256981522">
|
|
||||||
<reference key="NSNextResponder" ref="595834490"/>
|
|
||||||
<int key="NSvFlags">268</int>
|
|
||||||
<string key="NSFrame">{{113, 13}, {82, 32}}</string>
|
|
||||||
<reference key="NSSuperview" ref="595834490"/>
|
|
||||||
<reference key="NSWindow"/>
|
|
||||||
<reference key="NSNextKeyView" ref="771851607"/>
|
|
||||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
|
||||||
<bool key="NSEnabled">YES</bool>
|
|
||||||
<object class="NSButtonCell" key="NSCell" id="69579583">
|
|
||||||
<int key="NSCellFlags">67108864</int>
|
|
||||||
<int key="NSCellFlags2">134217728</int>
|
|
||||||
<string key="NSContents">Cancel</string>
|
|
||||||
<reference key="NSSupport" ref="385477987"/>
|
|
||||||
<string key="NSCellIdentifier">_NS:9</string>
|
|
||||||
<reference key="NSControlView" ref="256981522"/>
|
|
||||||
<int key="NSButtonFlags">-2038284288</int>
|
|
||||||
<int key="NSButtonFlags2">129</int>
|
|
||||||
<string key="NSAlternateContents"/>
|
|
||||||
<string type="base64-UTF8" key="NSKeyEquivalent">Gw</string>
|
|
||||||
<int key="NSPeriodicDelay">200</int>
|
|
||||||
<int key="NSPeriodicInterval">25</int>
|
|
||||||
</object>
|
|
||||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
|
||||||
</object>
|
|
||||||
<object class="NSPathControl" id="679285412">
|
|
||||||
<reference key="NSNextResponder" ref="595834490"/>
|
|
||||||
<int key="NSvFlags">268</int>
|
|
||||||
<set class="NSMutableSet" key="NSDragTypes">
|
|
||||||
<string>Apple URL pasteboard type</string>
|
|
||||||
<string>NSFilenamesPboardType</string>
|
|
||||||
</set>
|
|
||||||
<string key="NSFrame">{{83, 57}, {197, 22}}</string>
|
|
||||||
<reference key="NSSuperview" ref="595834490"/>
|
|
||||||
<reference key="NSWindow"/>
|
|
||||||
<reference key="NSNextKeyView" ref="256981522"/>
|
|
||||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
|
||||||
<bool key="NSEnabled">YES</bool>
|
|
||||||
<object class="NSPathCell" key="NSCell" id="902994558">
|
|
||||||
<int key="NSCellFlags">337641473</int>
|
|
||||||
<int key="NSCellFlags2">131072</int>
|
|
||||||
<object class="NSFont" key="NSSupport">
|
|
||||||
<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="679285412"/>
|
|
||||||
<array class="NSMutableArray" key="NSPathComponentCells"/>
|
|
||||||
<int key="NSPathStyle">2</int>
|
|
||||||
<reference key="NSDelegate" ref="679285412"/>
|
|
||||||
</object>
|
|
||||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
|
||||||
</object>
|
|
||||||
<object class="NSSecureTextField" id="670734441">
|
|
||||||
<reference key="NSNextResponder" ref="595834490"/>
|
|
||||||
<int key="NSvFlags">268</int>
|
|
||||||
<string key="NSFrame">{{86, 86}, {191, 22}}</string>
|
|
||||||
<reference key="NSSuperview" ref="595834490"/>
|
|
||||||
<reference key="NSWindow"/>
|
|
||||||
<reference key="NSNextKeyView" ref="365869599"/>
|
|
||||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
|
||||||
<bool key="NSEnabled">YES</bool>
|
|
||||||
<object class="NSSecureTextFieldCell" key="NSCell" id="656181976">
|
|
||||||
<int key="NSCellFlags">342884416</int>
|
|
||||||
<int key="NSCellFlags2">272630848</int>
|
|
||||||
<string key="NSContents"/>
|
|
||||||
<reference key="NSSupport" ref="385477987"/>
|
|
||||||
<string key="NSCellIdentifier">_NS:9</string>
|
|
||||||
<reference key="NSControlView" ref="670734441"/>
|
|
||||||
<bool key="NSDrawsBackground">YES</bool>
|
|
||||||
<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">textColor</string>
|
|
||||||
<reference key="NSColor" ref="354127501"/>
|
|
||||||
</object>
|
|
||||||
<array key="NSAllowedInputLocales">
|
|
||||||
<string>NSAllRomanInputSourcesLocaleIdentifier</string>
|
|
||||||
</array>
|
|
||||||
</object>
|
|
||||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
|
||||||
</object>
|
|
||||||
<object class="NSTextField" id="847623533">
|
|
||||||
<reference key="NSNextResponder" ref="595834490"/>
|
|
||||||
<int key="NSvFlags">268</int>
|
|
||||||
<string key="NSFrame">{{17, 89}, {64, 17}}</string>
|
|
||||||
<reference key="NSSuperview" ref="595834490"/>
|
|
||||||
<reference key="NSWindow"/>
|
|
||||||
<reference key="NSNextKeyView" ref="670734441"/>
|
|
||||||
<string key="NSReuseIdentifierKey">_NS:1535</string>
|
|
||||||
<bool key="NSEnabled">YES</bool>
|
|
||||||
<object class="NSTextFieldCell" key="NSCell" id="792960157">
|
|
||||||
<int key="NSCellFlags">68157504</int>
|
|
||||||
<int key="NSCellFlags2">272630784</int>
|
|
||||||
<string key="NSContents">Password</string>
|
|
||||||
<reference key="NSSupport" ref="385477987"/>
|
|
||||||
<string key="NSCellIdentifier">_NS:1535</string>
|
|
||||||
<reference key="NSControlView" ref="847623533"/>
|
|
||||||
<reference key="NSBackgroundColor" ref="515490923"/>
|
|
||||||
<reference key="NSTextColor" ref="504890084"/>
|
|
||||||
</object>
|
|
||||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
|
||||||
</object>
|
|
||||||
<object class="NSTextField" id="365869599">
|
|
||||||
<reference key="NSNextResponder" ref="595834490"/>
|
|
||||||
<int key="NSvFlags">268</int>
|
|
||||||
<string key="NSFrame">{{35, 62}, {46, 17}}</string>
|
|
||||||
<reference key="NSSuperview" ref="595834490"/>
|
|
||||||
<reference key="NSWindow"/>
|
|
||||||
<reference key="NSNextKeyView" ref="679285412"/>
|
|
||||||
<string key="NSReuseIdentifierKey">_NS:1535</string>
|
|
||||||
<bool key="NSEnabled">YES</bool>
|
|
||||||
<object class="NSTextFieldCell" key="NSCell" id="324335303">
|
|
||||||
<int key="NSCellFlags">68157504</int>
|
|
||||||
<int key="NSCellFlags2">272630784</int>
|
|
||||||
<string key="NSContents">Keyfile</string>
|
|
||||||
<reference key="NSSupport" ref="385477987"/>
|
|
||||||
<string key="NSCellIdentifier">_NS:1535</string>
|
|
||||||
<reference key="NSControlView" ref="365869599"/>
|
|
||||||
<reference key="NSBackgroundColor" ref="515490923"/>
|
|
||||||
<reference key="NSTextColor" ref="504890084"/>
|
|
||||||
</object>
|
|
||||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
|
||||||
</object>
|
|
||||||
<object class="NSButton" id="771851607">
|
|
||||||
<reference key="NSNextResponder" ref="595834490"/>
|
|
||||||
<int key="NSvFlags">268</int>
|
|
||||||
<string key="NSFrame">{{195, 13}, {88, 32}}</string>
|
|
||||||
<reference key="NSSuperview" ref="595834490"/>
|
|
||||||
<reference key="NSWindow"/>
|
|
||||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
|
||||||
<string key="NSHuggingPriority">{250, 250}</string>
|
|
||||||
<bool key="NSEnabled">YES</bool>
|
|
||||||
<object class="NSButtonCell" key="NSCell" id="251779948">
|
|
||||||
<int key="NSCellFlags">67108864</int>
|
|
||||||
<int key="NSCellFlags2">134217728</int>
|
|
||||||
<string key="NSContents">Change</string>
|
|
||||||
<reference key="NSSupport" ref="385477987"/>
|
|
||||||
<string key="NSCellIdentifier">_NS:9</string>
|
|
||||||
<reference key="NSControlView" ref="771851607"/>
|
|
||||||
<int key="NSButtonFlags">-2038284288</int>
|
|
||||||
<int key="NSButtonFlags2">129</int>
|
|
||||||
<string key="NSAlternateContents"/>
|
|
||||||
<string type="base64-UTF8" key="NSKeyEquivalent">DQ</string>
|
|
||||||
<int key="NSPeriodicDelay">200</int>
|
|
||||||
<int key="NSPeriodicInterval">25</int>
|
|
||||||
</object>
|
|
||||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
|
||||||
</object>
|
|
||||||
</array>
|
|
||||||
<string key="NSFrameSize">{363, 194}</string>
|
|
||||||
<reference key="NSSuperview"/>
|
|
||||||
<reference key="NSWindow"/>
|
|
||||||
<reference key="NSNextKeyView" ref="762740216"/>
|
|
||||||
<string key="NSAntiCompressionPriority">{751, 750}</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="595834490"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">52</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBOutletConnection" key="connection">
|
|
||||||
<string key="label">passwordTextField</string>
|
|
||||||
<reference key="source" ref="1001"/>
|
|
||||||
<reference key="destination" ref="670734441"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">53</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBOutletConnection" key="connection">
|
|
||||||
<string key="label">keyfilePathControl</string>
|
|
||||||
<reference key="source" ref="1001"/>
|
|
||||||
<reference key="destination" ref="679285412"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">54</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBActionConnection" key="connection">
|
|
||||||
<string key="label">_change:</string>
|
|
||||||
<reference key="source" ref="1001"/>
|
|
||||||
<reference key="destination" ref="771851607"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">55</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBActionConnection" key="connection">
|
|
||||||
<string key="label">_cancel:</string>
|
|
||||||
<reference key="source" ref="1001"/>
|
|
||||||
<reference key="destination" ref="256981522"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">56</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">2</int>
|
|
||||||
<reference key="object" ref="595834490"/>
|
|
||||||
<array class="NSMutableArray" key="children">
|
|
||||||
<reference ref="365869599"/>
|
|
||||||
<reference ref="679285412"/>
|
|
||||||
<reference ref="670734441"/>
|
|
||||||
<reference ref="847623533"/>
|
|
||||||
<reference ref="771851607"/>
|
|
||||||
<object class="IBNSLayoutConstraint" id="501931119">
|
|
||||||
<reference key="firstItem" ref="771851607"/>
|
|
||||||
<int key="firstAttribute">10</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="256981522"/>
|
|
||||||
<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="595834490"/>
|
|
||||||
<int key="scoringType">9</int>
|
|
||||||
<float key="scoringTypeFloat">40</float>
|
|
||||||
<int key="contentType">2</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="1024015372">
|
|
||||||
<reference key="firstItem" ref="771851607"/>
|
|
||||||
<int key="firstAttribute">5</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="256981522"/>
|
|
||||||
<int key="secondAttribute">6</int>
|
|
||||||
<float key="multiplier">1</float>
|
|
||||||
<object class="IBNSLayoutSymbolicConstant" key="constant">
|
|
||||||
<double key="value">12</double>
|
|
||||||
</object>
|
|
||||||
<float key="priority">1000</float>
|
|
||||||
<reference key="containingView" ref="595834490"/>
|
|
||||||
<int key="scoringType">6</int>
|
|
||||||
<float key="scoringTypeFloat">24</float>
|
|
||||||
<int key="contentType">3</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="381133690">
|
|
||||||
<reference key="firstItem" ref="771851607"/>
|
|
||||||
<int key="firstAttribute">3</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="679285412"/>
|
|
||||||
<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="595834490"/>
|
|
||||||
<int key="scoringType">9</int>
|
|
||||||
<float key="scoringTypeFloat">40</float>
|
|
||||||
<int key="contentType">3</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="629412806">
|
|
||||||
<reference key="firstItem" ref="771851607"/>
|
|
||||||
<int key="firstAttribute">6</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="679285412"/>
|
|
||||||
<int key="secondAttribute">6</int>
|
|
||||||
<float key="multiplier">1</float>
|
|
||||||
<object class="IBLayoutConstant" key="constant">
|
|
||||||
<double key="value">0.0</double>
|
|
||||||
</object>
|
|
||||||
<float key="priority">1000</float>
|
|
||||||
<reference key="containingView" ref="595834490"/>
|
|
||||||
<int key="scoringType">6</int>
|
|
||||||
<float key="scoringTypeFloat">24</float>
|
|
||||||
<int key="contentType">2</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="176392839">
|
|
||||||
<reference key="firstItem" ref="595834490"/>
|
|
||||||
<int key="firstAttribute">4</int>
|
|
||||||
<int key="relation">1</int>
|
|
||||||
<reference key="secondItem" ref="771851607"/>
|
|
||||||
<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="595834490"/>
|
|
||||||
<int key="scoringType">9</int>
|
|
||||||
<float key="scoringTypeFloat">40</float>
|
|
||||||
<int key="contentType">3</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="340048519">
|
|
||||||
<reference key="firstItem" ref="679285412"/>
|
|
||||||
<int key="firstAttribute">5</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="365869599"/>
|
|
||||||
<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="595834490"/>
|
|
||||||
<int key="scoringType">6</int>
|
|
||||||
<float key="scoringTypeFloat">24</float>
|
|
||||||
<int key="contentType">3</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="33581314">
|
|
||||||
<reference key="firstItem" ref="679285412"/>
|
|
||||||
<int key="firstAttribute">6</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="670734441"/>
|
|
||||||
<int key="secondAttribute">6</int>
|
|
||||||
<float key="multiplier">1</float>
|
|
||||||
<object class="IBLayoutConstant" key="constant">
|
|
||||||
<double key="value">0.0</double>
|
|
||||||
</object>
|
|
||||||
<float key="priority">1000</float>
|
|
||||||
<reference key="containingView" ref="595834490"/>
|
|
||||||
<int key="scoringType">6</int>
|
|
||||||
<float key="scoringTypeFloat">24</float>
|
|
||||||
<int key="contentType">2</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="481322683">
|
|
||||||
<reference key="firstItem" ref="679285412"/>
|
|
||||||
<int key="firstAttribute">5</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="670734441"/>
|
|
||||||
<int key="secondAttribute">5</int>
|
|
||||||
<float key="multiplier">1</float>
|
|
||||||
<object class="IBLayoutConstant" key="constant">
|
|
||||||
<double key="value">0.0</double>
|
|
||||||
</object>
|
|
||||||
<float key="priority">1000</float>
|
|
||||||
<reference key="containingView" ref="595834490"/>
|
|
||||||
<int key="scoringType">6</int>
|
|
||||||
<float key="scoringTypeFloat">24</float>
|
|
||||||
<int key="contentType">2</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="966743814">
|
|
||||||
<reference key="firstItem" ref="679285412"/>
|
|
||||||
<int key="firstAttribute">3</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="670734441"/>
|
|
||||||
<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="595834490"/>
|
|
||||||
<int key="scoringType">9</int>
|
|
||||||
<float key="scoringTypeFloat">40</float>
|
|
||||||
<int key="contentType">3</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="379216952">
|
|
||||||
<reference key="firstItem" ref="595834490"/>
|
|
||||||
<int key="firstAttribute">10</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="670734441"/>
|
|
||||||
<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="595834490"/>
|
|
||||||
<int key="scoringType">9</int>
|
|
||||||
<float key="scoringTypeFloat">40</float>
|
|
||||||
<int key="contentType">2</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="612132939">
|
|
||||||
<reference key="firstItem" ref="670734441"/>
|
|
||||||
<int key="firstAttribute">5</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="847623533"/>
|
|
||||||
<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="595834490"/>
|
|
||||||
<int key="scoringType">9</int>
|
|
||||||
<float key="scoringTypeFloat">40</float>
|
|
||||||
<int key="contentType">3</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="485639451">
|
|
||||||
<reference key="firstItem" ref="595834490"/>
|
|
||||||
<int key="firstAttribute">9</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="670734441"/>
|
|
||||||
<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="595834490"/>
|
|
||||||
<int key="scoringType">9</int>
|
|
||||||
<float key="scoringTypeFloat">40</float>
|
|
||||||
<int key="contentType">2</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="51218896">
|
|
||||||
<reference key="firstItem" ref="670734441"/>
|
|
||||||
<int key="firstAttribute">10</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="847623533"/>
|
|
||||||
<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="595834490"/>
|
|
||||||
<int key="scoringType">6</int>
|
|
||||||
<float key="scoringTypeFloat">24</float>
|
|
||||||
<int key="contentType">2</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="910263208">
|
|
||||||
<reference key="firstItem" ref="365869599"/>
|
|
||||||
<int key="firstAttribute">11</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="679285412"/>
|
|
||||||
<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="595834490"/>
|
|
||||||
<int key="scoringType">6</int>
|
|
||||||
<float key="scoringTypeFloat">24</float>
|
|
||||||
<int key="contentType">2</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="575391720">
|
|
||||||
<reference key="firstItem" ref="762740216"/>
|
|
||||||
<int key="firstAttribute">3</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="595834490"/>
|
|
||||||
<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="595834490"/>
|
|
||||||
<int key="scoringType">8</int>
|
|
||||||
<float key="scoringTypeFloat">29</float>
|
|
||||||
<int key="contentType">3</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="335749536">
|
|
||||||
<reference key="firstItem" ref="762740216"/>
|
|
||||||
<int key="firstAttribute">9</int>
|
|
||||||
<int key="relation">0</int>
|
|
||||||
<reference key="secondItem" ref="670734441"/>
|
|
||||||
<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="595834490"/>
|
|
||||||
<int key="scoringType">6</int>
|
|
||||||
<float key="scoringTypeFloat">24</float>
|
|
||||||
<int key="contentType">2</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBNSLayoutConstraint" id="426619093">
|
|
||||||
<reference key="firstItem" ref="847623533"/>
|
|
||||||
<int key="firstAttribute">5</int>
|
|
||||||
<int key="relation">1</int>
|
|
||||||
<reference key="secondItem" ref="595834490"/>
|
|
||||||
<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="595834490"/>
|
|
||||||
<int key="scoringType">9</int>
|
|
||||||
<float key="scoringTypeFloat">40</float>
|
|
||||||
<int key="contentType">3</int>
|
|
||||||
</object>
|
|
||||||
<reference ref="762740216"/>
|
|
||||||
<reference ref="256981522"/>
|
|
||||||
</array>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">5</int>
|
|
||||||
<reference key="object" ref="256981522"/>
|
|
||||||
<array class="NSMutableArray" key="children">
|
|
||||||
<reference ref="69579583"/>
|
|
||||||
</array>
|
|
||||||
<reference key="parent" ref="595834490"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">6</int>
|
|
||||||
<reference key="object" ref="365869599"/>
|
|
||||||
<array class="NSMutableArray" key="children">
|
|
||||||
<reference ref="324335303"/>
|
|
||||||
</array>
|
|
||||||
<reference key="parent" ref="595834490"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">7</int>
|
|
||||||
<reference key="object" ref="679285412"/>
|
|
||||||
<array class="NSMutableArray" key="children">
|
|
||||||
<reference ref="902994558"/>
|
|
||||||
</array>
|
|
||||||
<reference key="parent" ref="595834490"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">8</int>
|
|
||||||
<reference key="object" ref="670734441"/>
|
|
||||||
<array class="NSMutableArray" key="children">
|
|
||||||
<object class="IBNSLayoutConstraint" id="318411198">
|
|
||||||
<reference key="firstItem" ref="670734441"/>
|
|
||||||
<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">191</double>
|
|
||||||
</object>
|
|
||||||
<float key="priority">1000</float>
|
|
||||||
<reference key="containingView" ref="670734441"/>
|
|
||||||
<int key="scoringType">9</int>
|
|
||||||
<float key="scoringTypeFloat">40</float>
|
|
||||||
<int key="contentType">1</int>
|
|
||||||
</object>
|
|
||||||
<reference ref="656181976"/>
|
|
||||||
</array>
|
|
||||||
<reference key="parent" ref="595834490"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">9</int>
|
|
||||||
<reference key="object" ref="847623533"/>
|
|
||||||
<array class="NSMutableArray" key="children">
|
|
||||||
<reference ref="792960157"/>
|
|
||||||
</array>
|
|
||||||
<reference key="parent" ref="595834490"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">10</int>
|
|
||||||
<reference key="object" ref="771851607"/>
|
|
||||||
<array class="NSMutableArray" key="children">
|
|
||||||
<reference ref="251779948"/>
|
|
||||||
</array>
|
|
||||||
<reference key="parent" ref="595834490"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">14</int>
|
|
||||||
<reference key="object" ref="426619093"/>
|
|
||||||
<reference key="parent" ref="595834490"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">17</int>
|
|
||||||
<reference key="object" ref="51218896"/>
|
|
||||||
<reference key="parent" ref="595834490"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">18</int>
|
|
||||||
<reference key="object" ref="485639451"/>
|
|
||||||
<reference key="parent" ref="595834490"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">19</int>
|
|
||||||
<reference key="object" ref="612132939"/>
|
|
||||||
<reference key="parent" ref="595834490"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">20</int>
|
|
||||||
<reference key="object" ref="379216952"/>
|
|
||||||
<reference key="parent" ref="595834490"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">22</int>
|
|
||||||
<reference key="object" ref="910263208"/>
|
|
||||||
<reference key="parent" ref="595834490"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">23</int>
|
|
||||||
<reference key="object" ref="966743814"/>
|
|
||||||
<reference key="parent" ref="595834490"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">24</int>
|
|
||||||
<reference key="object" ref="481322683"/>
|
|
||||||
<reference key="parent" ref="595834490"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">25</int>
|
|
||||||
<reference key="object" ref="33581314"/>
|
|
||||||
<reference key="parent" ref="595834490"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">26</int>
|
|
||||||
<reference key="object" ref="340048519"/>
|
|
||||||
<reference key="parent" ref="595834490"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">28</int>
|
|
||||||
<reference key="object" ref="176392839"/>
|
|
||||||
<reference key="parent" ref="595834490"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">29</int>
|
|
||||||
<reference key="object" ref="629412806"/>
|
|
||||||
<reference key="parent" ref="595834490"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">30</int>
|
|
||||||
<reference key="object" ref="381133690"/>
|
|
||||||
<reference key="parent" ref="595834490"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">31</int>
|
|
||||||
<reference key="object" ref="1024015372"/>
|
|
||||||
<reference key="parent" ref="595834490"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">32</int>
|
|
||||||
<reference key="object" ref="251779948"/>
|
|
||||||
<reference key="parent" ref="771851607"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">33</int>
|
|
||||||
<reference key="object" ref="792960157"/>
|
|
||||||
<reference key="parent" ref="847623533"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">34</int>
|
|
||||||
<reference key="object" ref="318411198"/>
|
|
||||||
<reference key="parent" ref="670734441"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">35</int>
|
|
||||||
<reference key="object" ref="656181976"/>
|
|
||||||
<reference key="parent" ref="670734441"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">36</int>
|
|
||||||
<reference key="object" ref="902994558"/>
|
|
||||||
<reference key="parent" ref="679285412"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">37</int>
|
|
||||||
<reference key="object" ref="324335303"/>
|
|
||||||
<reference key="parent" ref="365869599"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">38</int>
|
|
||||||
<reference key="object" ref="69579583"/>
|
|
||||||
<reference key="parent" ref="256981522"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">45</int>
|
|
||||||
<reference key="object" ref="762740216"/>
|
|
||||||
<array class="NSMutableArray" key="children">
|
|
||||||
<reference ref="79241474"/>
|
|
||||||
</array>
|
|
||||||
<reference key="parent" ref="595834490"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">46</int>
|
|
||||||
<reference key="object" ref="79241474"/>
|
|
||||||
<reference key="parent" ref="762740216"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">48</int>
|
|
||||||
<reference key="object" ref="335749536"/>
|
|
||||||
<reference key="parent" ref="595834490"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">49</int>
|
|
||||||
<reference key="object" ref="575391720"/>
|
|
||||||
<reference key="parent" ref="595834490"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">59</int>
|
|
||||||
<reference key="object" ref="501931119"/>
|
|
||||||
<reference key="parent" ref="595834490"/>
|
|
||||||
</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="NO" key="10.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
|
||||||
<string key="10.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="14.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="17.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="18.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="19.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<array class="NSMutableArray" key="2.IBNSViewMetadataConstraints">
|
|
||||||
<reference ref="426619093"/>
|
|
||||||
<reference ref="335749536"/>
|
|
||||||
<reference ref="575391720"/>
|
|
||||||
<reference ref="910263208"/>
|
|
||||||
<reference ref="51218896"/>
|
|
||||||
<reference ref="485639451"/>
|
|
||||||
<reference ref="612132939"/>
|
|
||||||
<reference ref="379216952"/>
|
|
||||||
<reference ref="966743814"/>
|
|
||||||
<reference ref="481322683"/>
|
|
||||||
<reference ref="33581314"/>
|
|
||||||
<reference ref="340048519"/>
|
|
||||||
<reference ref="176392839"/>
|
|
||||||
<reference ref="629412806"/>
|
|
||||||
<reference ref="381133690"/>
|
|
||||||
<reference ref="1024015372"/>
|
|
||||||
<reference ref="501931119"/>
|
|
||||||
</array>
|
|
||||||
<boolean value="NO" key="2.IBNSViewMetadataLastInspectedTranslatesAutoresizingMaskIntoConstraints"/>
|
|
||||||
<boolean value="NO" key="2.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
|
||||||
<string key="2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="20.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="22.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="23.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="24.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="25.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="26.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="28.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="29.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="30.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="31.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="32.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="33.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="34.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="35.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="36.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="37.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="38.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<boolean value="NO" key="45.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
|
||||||
<string key="45.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="46.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="48.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="49.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<boolean value="NO" key="5.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
|
||||||
<string key="5.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="59.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="7.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
|
||||||
<string key="7.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<array class="NSMutableArray" key="8.IBNSViewMetadataConstraints">
|
|
||||||
<reference ref="318411198"/>
|
|
||||||
</array>
|
|
||||||
<boolean value="NO" key="8.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
|
||||||
<string key="8.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<boolean value="NO" key="9.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
|
||||||
<string key="9.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">59</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
|
||||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">MPPasswordEditViewController</string>
|
|
||||||
<string key="superclassName">MPViewController</string>
|
|
||||||
<dictionary class="NSMutableDictionary" key="actions">
|
|
||||||
<string key="_cancel:">id</string>
|
|
||||||
<string key="_change:">id</string>
|
|
||||||
</dictionary>
|
|
||||||
<dictionary class="NSMutableDictionary" key="actionInfosByName">
|
|
||||||
<object class="IBActionInfo" key="_cancel:">
|
|
||||||
<string key="name">_cancel:</string>
|
|
||||||
<string key="candidateClassName">id</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBActionInfo" key="_change:">
|
|
||||||
<string key="name">_change:</string>
|
|
||||||
<string key="candidateClassName">id</string>
|
|
||||||
</object>
|
|
||||||
</dictionary>
|
|
||||||
<dictionary class="NSMutableDictionary" key="outlets">
|
|
||||||
<string key="keyfilePathControl">NSPathControl</string>
|
|
||||||
<string key="passwordTextField">NSSecureTextField</string>
|
|
||||||
</dictionary>
|
|
||||||
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
|
||||||
<object class="IBToOneOutletInfo" key="keyfilePathControl">
|
|
||||||
<string key="name">keyfilePathControl</string>
|
|
||||||
<string key="candidateClassName">NSPathControl</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBToOneOutletInfo" key="passwordTextField">
|
|
||||||
<string key="name">passwordTextField</string>
|
|
||||||
<string key="candidateClassName">NSSecureTextField</string>
|
|
||||||
</object>
|
|
||||||
</dictionary>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBProjectSource</string>
|
|
||||||
<string key="minorKey">./Classes/MPPasswordEditViewController.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>
|
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
<object class="NSWindowTemplate" id="1005">
|
<object class="NSWindowTemplate" id="1005">
|
||||||
<int key="NSWindowStyleMask">15</int>
|
<int key="NSWindowStyleMask">15</int>
|
||||||
<int key="NSWindowBacking">2</int>
|
<int key="NSWindowBacking">2</int>
|
||||||
<string key="NSWindowRect">{{196, 240}, {560, 490}}</string>
|
<string key="NSWindowRect">{{196, 240}, {700, 500}}</string>
|
||||||
<int key="NSWTFlags">1618477056</int>
|
<int key="NSWTFlags">1618477056</int>
|
||||||
<string key="NSWindowTitle">Window</string>
|
<string key="NSWindowTitle">Window</string>
|
||||||
<string key="NSWindowClass">NSWindow</string>
|
<string key="NSWindowClass">NSWindow</string>
|
||||||
@@ -46,20 +46,22 @@
|
|||||||
<reference key="NSNextResponder"/>
|
<reference key="NSNextResponder"/>
|
||||||
<int key="NSvFlags">256</int>
|
<int key="NSvFlags">256</int>
|
||||||
<array class="NSMutableArray" key="NSSubviews"/>
|
<array class="NSMutableArray" key="NSSubviews"/>
|
||||||
<string key="NSFrameSize">{560, 490}</string>
|
<string key="NSFrameSize">{700, 500}</string>
|
||||||
<reference key="NSSuperview"/>
|
<reference key="NSSuperview"/>
|
||||||
<reference key="NSWindow"/>
|
<reference key="NSWindow"/>
|
||||||
<reference key="NSNextKeyView"/>
|
|
||||||
</object>
|
</object>
|
||||||
<string key="NSScreenRect">{{0, 0}, {1920, 1058}}</string>
|
<string key="NSScreenRect">{{0, 0}, {1920, 1058}}</string>
|
||||||
<string key="NSMaxSize">{10000000000000, 10000000000000}</string>
|
<string key="NSMaxSize">{10000000000000, 10000000000000}</string>
|
||||||
|
<string key="NSFrameAutosaveName">DatabaseWindow</string>
|
||||||
<bool key="NSWindowIsRestorable">YES</bool>
|
<bool key="NSWindowIsRestorable">YES</bool>
|
||||||
</object>
|
</object>
|
||||||
<object class="NSSplitView" id="903506498">
|
<object class="NSSplitView" id="903506498">
|
||||||
<nil key="NSNextResponder"/>
|
<reference key="NSNextResponder"/>
|
||||||
<int key="NSvFlags">268</int>
|
<int key="NSvFlags">268</int>
|
||||||
<array class="NSMutableArray" key="NSSubviews"/>
|
<array class="NSMutableArray" key="NSSubviews"/>
|
||||||
<string key="NSFrameSize">{560, 194}</string>
|
<string key="NSFrameSize">{560, 194}</string>
|
||||||
|
<reference key="NSSuperview"/>
|
||||||
|
<reference key="NSWindow"/>
|
||||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||||
<bool key="NSIsVertical">YES</bool>
|
<bool key="NSIsVertical">YES</bool>
|
||||||
<int key="NSDividerStyle">2</int>
|
<int key="NSDividerStyle">2</int>
|
||||||
@@ -158,15 +160,20 @@
|
|||||||
<string key="superclassName">NSWindowController</string>
|
<string key="superclassName">NSWindowController</string>
|
||||||
<dictionary class="NSMutableDictionary" key="actions">
|
<dictionary class="NSMutableDictionary" key="actions">
|
||||||
<string key="editPassword:">id</string>
|
<string key="editPassword:">id</string>
|
||||||
<string key="showDocumentSettings:">id</string>
|
<string key="exportDatabase:">id</string>
|
||||||
|
<string key="showDatabaseSettings:">id</string>
|
||||||
</dictionary>
|
</dictionary>
|
||||||
<dictionary class="NSMutableDictionary" key="actionInfosByName">
|
<dictionary class="NSMutableDictionary" key="actionInfosByName">
|
||||||
<object class="IBActionInfo" key="editPassword:">
|
<object class="IBActionInfo" key="editPassword:">
|
||||||
<string key="name">editPassword:</string>
|
<string key="name">editPassword:</string>
|
||||||
<string key="candidateClassName">id</string>
|
<string key="candidateClassName">id</string>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBActionInfo" key="showDocumentSettings:">
|
<object class="IBActionInfo" key="exportDatabase:">
|
||||||
<string key="name">showDocumentSettings:</string>
|
<string key="name">exportDatabase:</string>
|
||||||
|
<string key="candidateClassName">id</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBActionInfo" key="showDatabaseSettings:">
|
||||||
|
<string key="name">showDatabaseSettings:</string>
|
||||||
<string key="candidateClassName">id</string>
|
<string key="candidateClassName">id</string>
|
||||||
</object>
|
</object>
|
||||||
</dictionary>
|
</dictionary>
|
||||||
|
|||||||
@@ -57,6 +57,7 @@
|
|||||||
<int key="NSvFlags">268</int>
|
<int key="NSvFlags">268</int>
|
||||||
<string key="NSFrame">{{7, 5}, {32, 19}}</string>
|
<string key="NSFrame">{{7, 5}, {32, 19}}</string>
|
||||||
<reference key="NSSuperview" ref="163272962"/>
|
<reference key="NSSuperview" ref="163272962"/>
|
||||||
|
<reference key="NSWindow"/>
|
||||||
<reference key="NSNextKeyView"/>
|
<reference key="NSNextKeyView"/>
|
||||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||||
<bool key="NSEnabled">YES</bool>
|
<bool key="NSEnabled">YES</bool>
|
||||||
@@ -85,8 +86,9 @@
|
|||||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||||
</object>
|
</object>
|
||||||
</array>
|
</array>
|
||||||
<string key="NSFrameSize">{684, 30}</string>
|
<string key="NSFrameSize">{694, 30}</string>
|
||||||
<reference key="NSSuperview" ref="997686550"/>
|
<reference key="NSSuperview" ref="997686550"/>
|
||||||
|
<reference key="NSWindow"/>
|
||||||
<reference key="NSNextKeyView" ref="276578969"/>
|
<reference key="NSNextKeyView" ref="276578969"/>
|
||||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||||
<string key="NSClassName">HNHGradientView</string>
|
<string key="NSClassName">HNHGradientView</string>
|
||||||
@@ -103,8 +105,9 @@
|
|||||||
<reference key="NSNextResponder" ref="262664416"/>
|
<reference key="NSNextResponder" ref="262664416"/>
|
||||||
<int key="NSvFlags">256</int>
|
<int key="NSvFlags">256</int>
|
||||||
<array class="NSMutableArray" key="NSSubviews"/>
|
<array class="NSMutableArray" key="NSSubviews"/>
|
||||||
<string key="NSFrameSize">{684, 548}</string>
|
<string key="NSFrameSize">{694, 548}</string>
|
||||||
<reference key="NSSuperview" ref="262664416"/>
|
<reference key="NSSuperview" ref="262664416"/>
|
||||||
|
<reference key="NSWindow"/>
|
||||||
<reference key="NSNextKeyView" ref="788738248"/>
|
<reference key="NSNextKeyView" ref="788738248"/>
|
||||||
<string key="NSReuseIdentifierKey">_NS:13</string>
|
<string key="NSReuseIdentifierKey">_NS:13</string>
|
||||||
<bool key="NSEnabled">YES</bool>
|
<bool key="NSEnabled">YES</bool>
|
||||||
@@ -113,8 +116,9 @@
|
|||||||
<object class="NSTableHeaderView" key="NSHeaderView" id="253618752">
|
<object class="NSTableHeaderView" key="NSHeaderView" id="253618752">
|
||||||
<reference key="NSNextResponder" ref="736877784"/>
|
<reference key="NSNextResponder" ref="736877784"/>
|
||||||
<int key="NSvFlags">256</int>
|
<int key="NSvFlags">256</int>
|
||||||
<string key="NSFrameSize">{684, 17}</string>
|
<string key="NSFrameSize">{694, 17}</string>
|
||||||
<reference key="NSSuperview" ref="736877784"/>
|
<reference key="NSSuperview" ref="736877784"/>
|
||||||
|
<reference key="NSWindow"/>
|
||||||
<reference key="NSNextKeyView" ref="262664416"/>
|
<reference key="NSNextKeyView" ref="262664416"/>
|
||||||
<reference key="NSTableView" ref="528076956"/>
|
<reference key="NSTableView" ref="528076956"/>
|
||||||
</object>
|
</object>
|
||||||
@@ -272,7 +276,7 @@
|
|||||||
<reference key="NSTableView" ref="528076956"/>
|
<reference key="NSTableView" ref="528076956"/>
|
||||||
</object>
|
</object>
|
||||||
<object class="NSTableColumn" id="683421605">
|
<object class="NSTableColumn" id="683421605">
|
||||||
<double key="NSWidth">188</double>
|
<double key="NSWidth">198</double>
|
||||||
<double key="NSMinWidth">10</double>
|
<double key="NSMinWidth">10</double>
|
||||||
<double key="NSMaxWidth">3.4028234663852886e+38</double>
|
<double key="NSMaxWidth">3.4028234663852886e+38</double>
|
||||||
<object class="NSTableHeaderCell" key="NSHeaderCell">
|
<object class="NSTableHeaderCell" key="NSHeaderCell">
|
||||||
@@ -325,8 +329,9 @@
|
|||||||
<int key="NSTableViewGroupRowStyle">1</int>
|
<int key="NSTableViewGroupRowStyle">1</int>
|
||||||
</object>
|
</object>
|
||||||
</array>
|
</array>
|
||||||
<string key="NSFrame">{{0, 17}, {684, 548}}</string>
|
<string key="NSFrame">{{0, 17}, {694, 548}}</string>
|
||||||
<reference key="NSSuperview" ref="613995671"/>
|
<reference key="NSSuperview" ref="613995671"/>
|
||||||
|
<reference key="NSWindow"/>
|
||||||
<reference key="NSNextKeyView" ref="528076956"/>
|
<reference key="NSNextKeyView" ref="528076956"/>
|
||||||
<string key="NSReuseIdentifierKey">_NS:11</string>
|
<string key="NSReuseIdentifierKey">_NS:11</string>
|
||||||
<reference key="NSDocView" ref="528076956"/>
|
<reference key="NSDocView" ref="528076956"/>
|
||||||
@@ -338,6 +343,7 @@
|
|||||||
<int key="NSvFlags">-2147483392</int>
|
<int key="NSvFlags">-2147483392</int>
|
||||||
<string key="NSFrame">{{224, 17}, {15, 102}}</string>
|
<string key="NSFrame">{{224, 17}, {15, 102}}</string>
|
||||||
<reference key="NSSuperview" ref="613995671"/>
|
<reference key="NSSuperview" ref="613995671"/>
|
||||||
|
<reference key="NSWindow"/>
|
||||||
<reference key="NSNextKeyView" ref="802411427"/>
|
<reference key="NSNextKeyView" ref="802411427"/>
|
||||||
<string key="NSReuseIdentifierKey">_NS:58</string>
|
<string key="NSReuseIdentifierKey">_NS:58</string>
|
||||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||||
@@ -350,6 +356,7 @@
|
|||||||
<int key="NSvFlags">-2147483392</int>
|
<int key="NSvFlags">-2147483392</int>
|
||||||
<string key="NSFrame">{{0, 310}, {480, 16}}</string>
|
<string key="NSFrame">{{0, 310}, {480, 16}}</string>
|
||||||
<reference key="NSSuperview" ref="613995671"/>
|
<reference key="NSSuperview" ref="613995671"/>
|
||||||
|
<reference key="NSWindow"/>
|
||||||
<reference key="NSNextKeyView" ref="163272962"/>
|
<reference key="NSNextKeyView" ref="163272962"/>
|
||||||
<string key="NSReuseIdentifierKey">_NS:60</string>
|
<string key="NSReuseIdentifierKey">_NS:60</string>
|
||||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||||
@@ -364,16 +371,18 @@
|
|||||||
<array class="NSMutableArray" key="NSSubviews">
|
<array class="NSMutableArray" key="NSSubviews">
|
||||||
<reference ref="253618752"/>
|
<reference ref="253618752"/>
|
||||||
</array>
|
</array>
|
||||||
<string key="NSFrameSize">{684, 17}</string>
|
<string key="NSFrameSize">{694, 17}</string>
|
||||||
<reference key="NSSuperview" ref="613995671"/>
|
<reference key="NSSuperview" ref="613995671"/>
|
||||||
|
<reference key="NSWindow"/>
|
||||||
<reference key="NSNextKeyView" ref="253618752"/>
|
<reference key="NSNextKeyView" ref="253618752"/>
|
||||||
<reference key="NSDocView" ref="253618752"/>
|
<reference key="NSDocView" ref="253618752"/>
|
||||||
<reference key="NSBGColor" ref="136901388"/>
|
<reference key="NSBGColor" ref="136901388"/>
|
||||||
<int key="NScvFlags">4</int>
|
<int key="NScvFlags">4</int>
|
||||||
</object>
|
</object>
|
||||||
</array>
|
</array>
|
||||||
<string key="NSFrame">{{0, 30}, {684, 565}}</string>
|
<string key="NSFrame">{{0, 30}, {694, 565}}</string>
|
||||||
<reference key="NSSuperview" ref="997686550"/>
|
<reference key="NSSuperview" ref="997686550"/>
|
||||||
|
<reference key="NSWindow"/>
|
||||||
<reference key="NSNextKeyView" ref="736877784"/>
|
<reference key="NSNextKeyView" ref="736877784"/>
|
||||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||||
<int key="NSsFlags">133680</int>
|
<int key="NSsFlags">133680</int>
|
||||||
@@ -387,8 +396,9 @@
|
|||||||
<double key="NSMagnification">1</double>
|
<double key="NSMagnification">1</double>
|
||||||
</object>
|
</object>
|
||||||
</array>
|
</array>
|
||||||
<string key="NSFrameSize">{684, 594}</string>
|
<string key="NSFrameSize">{694, 594}</string>
|
||||||
<reference key="NSSuperview"/>
|
<reference key="NSSuperview"/>
|
||||||
|
<reference key="NSWindow"/>
|
||||||
<reference key="NSNextKeyView" ref="613995671"/>
|
<reference key="NSNextKeyView" ref="613995671"/>
|
||||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||||
<string key="NSClassName">NSView</string>
|
<string key="NSClassName">NSView</string>
|
||||||
@@ -646,7 +656,7 @@
|
|||||||
<object class="NSTextField" id="488604658">
|
<object class="NSTextField" id="488604658">
|
||||||
<reference key="NSNextResponder" ref="954630866"/>
|
<reference key="NSNextResponder" ref="954630866"/>
|
||||||
<int key="NSvFlags">266</int>
|
<int key="NSvFlags">266</int>
|
||||||
<string key="NSFrameSize">{188, 17}</string>
|
<string key="NSFrameSize">{198, 17}</string>
|
||||||
<reference key="NSSuperview" ref="954630866"/>
|
<reference key="NSSuperview" ref="954630866"/>
|
||||||
<reference key="NSNextKeyView" ref="1037276411"/>
|
<reference key="NSNextKeyView" ref="1037276411"/>
|
||||||
<string key="NSAntiCompressionPriority">{250, 750}</string>
|
<string key="NSAntiCompressionPriority">{250, 750}</string>
|
||||||
@@ -663,7 +673,7 @@
|
|||||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||||
</object>
|
</object>
|
||||||
</array>
|
</array>
|
||||||
<string key="NSFrame">{{494, 1}, {188, 17}}</string>
|
<string key="NSFrame">{{494, 1}, {198, 17}}</string>
|
||||||
<reference key="NSNextKeyView" ref="488604658"/>
|
<reference key="NSNextKeyView" ref="488604658"/>
|
||||||
</object>
|
</object>
|
||||||
<reference key="destination" ref="488604658"/>
|
<reference key="destination" ref="488604658"/>
|
||||||
@@ -1565,7 +1575,7 @@
|
|||||||
<reference key="parent" ref="276578969"/>
|
<reference key="parent" ref="276578969"/>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBObjectRecord">
|
<object class="IBObjectRecord">
|
||||||
<int key="objectID">790</int>
|
<int key="objectID">834</int>
|
||||||
<reference key="object" ref="244975730"/>
|
<reference key="object" ref="244975730"/>
|
||||||
<reference key="parent" ref="163272962"/>
|
<reference key="parent" ref="163272962"/>
|
||||||
</object>
|
</object>
|
||||||
@@ -1705,7 +1715,7 @@
|
|||||||
<string key="678.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="678.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="679.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="679.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="683.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="683.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<array class="NSMutableArray" key="690.IBNSViewMetadataConstraints">
|
<array key="690.IBNSViewMetadataConstraints">
|
||||||
<reference ref="337191559"/>
|
<reference ref="337191559"/>
|
||||||
<reference ref="187301323"/>
|
<reference ref="187301323"/>
|
||||||
<reference ref="244975730"/>
|
<reference ref="244975730"/>
|
||||||
@@ -1725,15 +1735,117 @@
|
|||||||
<string key="733.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="733.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="741.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="741.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="743.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="743.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="790.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="834.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
</dictionary>
|
</dictionary>
|
||||||
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
||||||
<nil key="activeLocalization"/>
|
<nil key="activeLocalization"/>
|
||||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||||
<nil key="sourceID"/>
|
<nil key="sourceID"/>
|
||||||
<int key="maxID">801</int>
|
<int key="maxID">834</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||||
|
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">HNHGradientView</string>
|
||||||
|
<string key="superclassName">NSView</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBProjectSource</string>
|
||||||
|
<string key="minorKey">./Classes/HNHGradientView.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">MPEntryViewController</string>
|
||||||
|
<string key="superclassName">MPViewController</string>
|
||||||
|
<dictionary class="NSMutableDictionary" key="outlets">
|
||||||
|
<string key="addEntryButton">NSButton</string>
|
||||||
|
<string key="bottomBar">HNHGradientView</string>
|
||||||
|
<string key="entryTable">NSTableView</string>
|
||||||
|
<string key="filterBar">NSView</string>
|
||||||
|
<string key="filterDoneButton">NSButton</string>
|
||||||
|
<string key="filterLabelTextField">NSTextField</string>
|
||||||
|
<string key="filterSearchField">NSSearchField</string>
|
||||||
|
<string key="filterTitleButton">NSButton</string>
|
||||||
|
<string key="filterURLButton">NSButton</string>
|
||||||
|
<string key="filterUsernameButton">NSButton</string>
|
||||||
|
<string key="tableToTop">NSLayoutConstraint</string>
|
||||||
|
</dictionary>
|
||||||
|
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||||
|
<object class="IBToOneOutletInfo" key="addEntryButton">
|
||||||
|
<string key="name">addEntryButton</string>
|
||||||
|
<string key="candidateClassName">NSButton</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBToOneOutletInfo" key="bottomBar">
|
||||||
|
<string key="name">bottomBar</string>
|
||||||
|
<string key="candidateClassName">HNHGradientView</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBToOneOutletInfo" key="entryTable">
|
||||||
|
<string key="name">entryTable</string>
|
||||||
|
<string key="candidateClassName">NSTableView</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBToOneOutletInfo" key="filterBar">
|
||||||
|
<string key="name">filterBar</string>
|
||||||
|
<string key="candidateClassName">NSView</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBToOneOutletInfo" key="filterDoneButton">
|
||||||
|
<string key="name">filterDoneButton</string>
|
||||||
|
<string key="candidateClassName">NSButton</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBToOneOutletInfo" key="filterLabelTextField">
|
||||||
|
<string key="name">filterLabelTextField</string>
|
||||||
|
<string key="candidateClassName">NSTextField</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBToOneOutletInfo" key="filterSearchField">
|
||||||
|
<string key="name">filterSearchField</string>
|
||||||
|
<string key="candidateClassName">NSSearchField</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBToOneOutletInfo" key="filterTitleButton">
|
||||||
|
<string key="name">filterTitleButton</string>
|
||||||
|
<string key="candidateClassName">NSButton</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBToOneOutletInfo" key="filterURLButton">
|
||||||
|
<string key="name">filterURLButton</string>
|
||||||
|
<string key="candidateClassName">NSButton</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBToOneOutletInfo" key="filterUsernameButton">
|
||||||
|
<string key="name">filterUsernameButton</string>
|
||||||
|
<string key="candidateClassName">NSButton</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBToOneOutletInfo" key="tableToTop">
|
||||||
|
<string key="name">tableToTop</string>
|
||||||
|
<string key="candidateClassName">NSLayoutConstraint</string>
|
||||||
|
</object>
|
||||||
|
</dictionary>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBProjectSource</string>
|
||||||
|
<string key="minorKey">./Classes/MPEntryViewController.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">MPTableView</string>
|
||||||
|
<string key="superclassName">NSTableView</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBProjectSource</string>
|
||||||
|
<string key="minorKey">./Classes/MPTableView.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">MPViewController</string>
|
||||||
|
<string key="superclassName">NSViewController</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBProjectSource</string>
|
||||||
|
<string key="minorKey">./Classes/MPViewController.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSLayoutConstraint</string>
|
||||||
|
<string key="superclassName">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBProjectSource</string>
|
||||||
|
<string key="minorKey">./Classes/NSLayoutConstraint.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</array>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBClassDescriber" key="IBDocument.Classes"/>
|
|
||||||
<int key="IBDocument.localizationMode">0</int>
|
<int key="IBDocument.localizationMode">0</int>
|
||||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
|
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
|
||||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||||
|
|||||||
146
MacPass/Icons/06_BlockDeviceTemplate.pdf
Normal file
146
MacPass/Icons/13_KeysTemplate.pdf
Normal file
146
MacPass/Icons/18_DisplayTemplate.pdf
Normal file
BIN
MacPass/Icons/26_FileSaveTemplate.pdf
Normal file
148
MacPass/Icons/68_PhoneTemplate.pdf
Normal file
@@ -18,32 +18,32 @@
|
|||||||
tree.root = rootGroup;
|
tree.root = rootGroup;
|
||||||
|
|
||||||
KdbGroup *parentGroup = [tree createGroup:rootGroup];
|
KdbGroup *parentGroup = [tree createGroup:rootGroup];
|
||||||
parentGroup.name = @"General";
|
parentGroup.name = NSLocalizedString(@"GENERAL", "General");
|
||||||
parentGroup.image = 48;
|
parentGroup.image = 48;
|
||||||
[rootGroup addGroup:parentGroup];
|
[rootGroup addGroup:parentGroup];
|
||||||
|
|
||||||
KdbGroup *group = [tree createGroup:parentGroup];
|
KdbGroup *group = [tree createGroup:parentGroup];
|
||||||
group.name = @"Windows";
|
group.name = NSLocalizedString(@"WINDOWS", "Windows");
|
||||||
group.image = 38;
|
group.image = 38;
|
||||||
[parentGroup addGroup:group];
|
[parentGroup addGroup:group];
|
||||||
|
|
||||||
group = [tree createGroup:parentGroup];
|
group = [tree createGroup:parentGroup];
|
||||||
group.name = @"Network";
|
group.name = NSLocalizedString(@"NETWORK", "Network");
|
||||||
group.image = 3;
|
group.image = 3;
|
||||||
[parentGroup addGroup:group];
|
[parentGroup addGroup:group];
|
||||||
|
|
||||||
group = [tree createGroup:parentGroup];
|
group = [tree createGroup:parentGroup];
|
||||||
group.name = @"Internet";
|
group.name = NSLocalizedString(@"INTERNET", "Internet");
|
||||||
group.image = 1;
|
group.image = 1;
|
||||||
[parentGroup addGroup:group];
|
[parentGroup addGroup:group];
|
||||||
|
|
||||||
group = [tree createGroup:parentGroup];
|
group = [tree createGroup:parentGroup];
|
||||||
group.name = @"eMail";
|
group.name = NSLocalizedString(@"EMAIL", "EMail");
|
||||||
group.image = 19;
|
group.image = 19;
|
||||||
[parentGroup addGroup:group];
|
[parentGroup addGroup:group];
|
||||||
|
|
||||||
group = [tree createGroup:parentGroup];
|
group = [tree createGroup:parentGroup];
|
||||||
group.name = @"Homebanking";
|
group.name = NSLocalizedString(@"HOMEBANKING", "Homebanking");
|
||||||
group.image = 37;
|
group.image = 37;
|
||||||
[parentGroup addGroup:group];
|
[parentGroup addGroup:group];
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
Kdb4Tree *tree = [[Kdb4Tree alloc] init];
|
Kdb4Tree *tree = [[Kdb4Tree alloc] init];
|
||||||
tree.generator = @"MacPass";
|
tree.generator = @"MacPass";
|
||||||
tree.databaseName = NSLocalizedString(@"NEW_DATABASE", "Name for a newly created Database");
|
tree.databaseName = NSLocalizedString(@"DATABASE", "");
|
||||||
tree.databaseNameChanged = currentTime;
|
tree.databaseNameChanged = currentTime;
|
||||||
tree.databaseDescription = @"";
|
tree.databaseDescription = @"";
|
||||||
tree.databaseDescriptionChanged = currentTime;
|
tree.databaseDescriptionChanged = currentTime;
|
||||||
@@ -42,32 +42,32 @@
|
|||||||
tree.lastTopVisibleGroup = [UUID nullUuid];
|
tree.lastTopVisibleGroup = [UUID nullUuid];
|
||||||
|
|
||||||
KdbGroup *parentGroup = [tree createGroup:nil];
|
KdbGroup *parentGroup = [tree createGroup:nil];
|
||||||
parentGroup.name = @"General";
|
parentGroup.name = NSLocalizedString(@"GENERAL", "General");
|
||||||
parentGroup.image = 48;
|
parentGroup.image = 48;
|
||||||
tree.root = parentGroup;
|
tree.root = parentGroup;
|
||||||
|
|
||||||
KdbGroup *group = [tree createGroup:parentGroup];
|
KdbGroup *group = [tree createGroup:parentGroup];
|
||||||
group.name = @"Windows";
|
group.name = NSLocalizedString(@"WINDOWS", "Windows");
|
||||||
group.image = 38;
|
group.image = 38;
|
||||||
[parentGroup addGroup:group];
|
[parentGroup addGroup:group];
|
||||||
|
|
||||||
group = [tree createGroup:parentGroup];
|
group = [tree createGroup:parentGroup];
|
||||||
group.name = @"Network";
|
group.name = NSLocalizedString(@"NETWORK", "Network");
|
||||||
group.image = 3;
|
group.image = 3;
|
||||||
[parentGroup addGroup:group];
|
[parentGroup addGroup:group];
|
||||||
|
|
||||||
group = [tree createGroup:parentGroup];
|
group = [tree createGroup:parentGroup];
|
||||||
group.name = @"Internet";
|
group.name = NSLocalizedString(@"INTERNET", "Internet");
|
||||||
group.image = 1;
|
group.image = 1;
|
||||||
[parentGroup addGroup:group];
|
[parentGroup addGroup:group];
|
||||||
|
|
||||||
group = [tree createGroup:parentGroup];
|
group = [tree createGroup:parentGroup];
|
||||||
group.name = @"eMail";
|
group.name = NSLocalizedString(@"EMAIL", "EMail");
|
||||||
group.image = 19;
|
group.image = 19;
|
||||||
[parentGroup addGroup:group];
|
[parentGroup addGroup:group];
|
||||||
|
|
||||||
group = [tree createGroup:parentGroup];
|
group = [tree createGroup:parentGroup];
|
||||||
group.name = @"Homebanking";
|
group.name = NSLocalizedString(@"HOMEBANKING", "Homebanking");
|
||||||
group.image = 37;
|
group.image = 37;
|
||||||
[parentGroup addGroup:group];
|
[parentGroup addGroup:group];
|
||||||
|
|
||||||
|
|||||||
@@ -17,8 +17,6 @@ APPKIT_EXTERN NSString *const MPEntryNotesUndoableKey;
|
|||||||
|
|
||||||
@interface KdbEntry (Undo)
|
@interface KdbEntry (Undo)
|
||||||
|
|
||||||
+ (NSUndoManager *)undoManager;
|
|
||||||
|
|
||||||
- (NSString *)titleUndoable;
|
- (NSString *)titleUndoable;
|
||||||
- (NSString *)usernameUndoable;
|
- (NSString *)usernameUndoable;
|
||||||
- (NSString *)passwordUndoable;
|
- (NSString *)passwordUndoable;
|
||||||
@@ -31,4 +29,8 @@ APPKIT_EXTERN NSString *const MPEntryNotesUndoableKey;
|
|||||||
- (void)setUrlUndoable:(NSString *)url;
|
- (void)setUrlUndoable:(NSString *)url;
|
||||||
- (void)setNotesUndoable:(NSString *)notes;
|
- (void)setNotesUndoable:(NSString *)notes;
|
||||||
|
|
||||||
|
- (void)deleteUndoable;
|
||||||
|
- (void)moveToGroupUndoable:(KdbGroup *)group atIndex:(NSUInteger)index;
|
||||||
|
- (void)moveToTrashUndoable:(KdbGroup *)trash atIndex:(NSUInteger)index;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -7,6 +7,8 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
#import "KdbEntry+Undo.h"
|
#import "KdbEntry+Undo.h"
|
||||||
|
#import "KdbGroup+Undo.h"
|
||||||
|
#import "KdbGroup+KVOAdditions.h"
|
||||||
#import "KdbGroup+MPTreeTools.h"
|
#import "KdbGroup+MPTreeTools.h"
|
||||||
|
|
||||||
NSString *const MPEntryTitleUndoableKey = @"titleUndoable";
|
NSString *const MPEntryTitleUndoableKey = @"titleUndoable";
|
||||||
@@ -15,9 +17,16 @@ NSString *const MPEntryPasswordUndoableKey = @"passwordUndoable";
|
|||||||
NSString *const MPEntryUrlUndoableKey = @"urlUndoable";
|
NSString *const MPEntryUrlUndoableKey = @"urlUndoable";
|
||||||
NSString *const MPEntryNotesUndoableKey = @"notesUndoable";
|
NSString *const MPEntryNotesUndoableKey = @"notesUndoable";
|
||||||
|
|
||||||
|
#ifndef MPSetActionName
|
||||||
|
#define MPSetActionName(key, comment) \
|
||||||
|
if(![[self undoManager] isUndoing]) {\
|
||||||
|
[[self undoManager] setActionName:[[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:nil]];\
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
@implementation KdbEntry (Undo)
|
@implementation KdbEntry (Undo)
|
||||||
|
|
||||||
+ (NSUndoManager *)undoManager {
|
- (NSUndoManager *)undoManager {
|
||||||
return [[[NSDocumentController sharedDocumentController] currentDocument] undoManager];
|
return [[[NSDocumentController sharedDocumentController] currentDocument] undoManager];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -41,40 +50,110 @@ NSString *const MPEntryNotesUndoableKey = @"notesUndoable";
|
|||||||
return [self notes];
|
return [self notes];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
- (void)setTitleUndoable:(NSString *)title {
|
- (void)setTitleUndoable:(NSString *)title {
|
||||||
[[KdbEntry undoManager] registerUndoWithTarget:self selector:@selector(setTitleUndoable:) object:self.title];
|
[[self undoManager] registerUndoWithTarget:self selector:@selector(setTitleUndoable:) object:self.title];
|
||||||
[[KdbEntry undoManager] setActionName:NSLocalizedString(@"UNDO_SET_TITLE", "Undo set title")];
|
|
||||||
|
if(![[self undoManager] isUndoing]) {
|
||||||
|
[[self undoManager] setActionName:NSLocalizedString(@"SET_TITLE", "Set Title")];
|
||||||
|
}
|
||||||
|
|
||||||
[self setLastModificationTime:[NSDate date]];
|
[self setLastModificationTime:[NSDate date]];
|
||||||
[self setTitle:title];
|
[self setTitle:title];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)setUsernameUndoable:(NSString *)username {
|
- (void)setUsernameUndoable:(NSString *)username {
|
||||||
[[KdbEntry undoManager] registerUndoWithTarget:self selector:@selector(setUsernameUndoable:) object:self.username];
|
[[self undoManager] registerUndoWithTarget:self selector:@selector(setUsernameUndoable:) object:self.username];
|
||||||
[[KdbEntry undoManager] setActionName:NSLocalizedString(@"UNDO_SET_USERNAME", "Undo set username")];
|
|
||||||
|
if(![[self undoManager] isUndoing]) {
|
||||||
|
[[self undoManager] setActionName:NSLocalizedString(@"SET_USERNAME", "Undo set username")];
|
||||||
|
}
|
||||||
|
|
||||||
[self setLastModificationTime:[NSDate date]];
|
[self setLastModificationTime:[NSDate date]];
|
||||||
[self setUsername:username];
|
[self setUsername:username];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)setPasswordUndoable:(NSString *)password {
|
- (void)setPasswordUndoable:(NSString *)password {
|
||||||
[[KdbEntry undoManager] registerUndoWithTarget:self selector:@selector(setPasswordUndoable:) object:self.password];
|
[[self undoManager] registerUndoWithTarget:self selector:@selector(setPasswordUndoable:) object:self.password];
|
||||||
[[KdbEntry undoManager] setActionName:NSLocalizedString(@"UNDO_SET_PASSWORT", "Undo set password")];
|
MPSetActionName(@"SET_PASSWORT", "Undo set password");
|
||||||
|
|
||||||
|
if(![[self undoManager] isUndoing]) {
|
||||||
|
[[self undoManager] setActionName:NSLocalizedString(@"SET_TITLE", "Set Title")];
|
||||||
|
}
|
||||||
|
|
||||||
[self setLastModificationTime:[NSDate date]];
|
[self setLastModificationTime:[NSDate date]];
|
||||||
[self setPassword:password];
|
[self setPassword:password];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)setUrlUndoable:(NSString *)url {
|
- (void)setUrlUndoable:(NSString *)url {
|
||||||
[[KdbEntry undoManager] registerUndoWithTarget:self selector:@selector(setUrlUndoable:) object:self.url];
|
[[self undoManager] registerUndoWithTarget:self selector:@selector(setUrlUndoable:) object:self.url];
|
||||||
[[KdbEntry undoManager] setActionName:NSLocalizedString(@"UNDO_SET_URL", "Undo set URL")];
|
MPSetActionName(@"SET_URL", "Undo set URL");
|
||||||
|
|
||||||
|
if(![[self undoManager] isUndoing]) {
|
||||||
|
[[self undoManager] setActionName:NSLocalizedString(@"SET_TITLE", "Set Title")];
|
||||||
|
}
|
||||||
|
|
||||||
[self setLastModificationTime:[NSDate date]];
|
[self setLastModificationTime:[NSDate date]];
|
||||||
[self setUrl:url];
|
[self setUrl:url];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)setNotesUndoable:(NSString *)notes {
|
- (void)setNotesUndoable:(NSString *)notes {
|
||||||
[[KdbEntry undoManager] registerUndoWithTarget:self selector:@selector(setNotesUndoable:) object:self.notes];
|
[[self undoManager] registerUndoWithTarget:self selector:@selector(setNotesUndoable:) object:self.notes];
|
||||||
[[KdbEntry undoManager] setActionName:NSLocalizedString(@"UNDO_SET_NOTES", "Undo set notes")];
|
MPSetActionName(@"SET_NOTES", "Set Notes");
|
||||||
|
|
||||||
|
if(![[self undoManager] isUndoing]) {
|
||||||
|
[[self undoManager] setActionName:NSLocalizedString(@"SET_TITLE", "Set Title")];
|
||||||
|
}
|
||||||
|
|
||||||
[self setLastModificationTime:[NSDate date]];
|
[self setLastModificationTime:[NSDate date]];
|
||||||
[self setNotes:notes];
|
[self setNotes:notes];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)deleteUndoable {
|
||||||
|
if(!self.parent) {
|
||||||
|
return; // No parent to be removed from
|
||||||
|
}
|
||||||
|
NSUInteger oldIndex = [self.parent.entries indexOfObject:self];
|
||||||
|
if(oldIndex == NSNotFound) {
|
||||||
|
return; // We're not in our parents entries list
|
||||||
|
}
|
||||||
|
[[[self undoManager] prepareWithInvocationTarget:self.parent] addEntryUndoable:self atIndex:oldIndex];
|
||||||
|
|
||||||
|
if(![[self undoManager] isUndoing]) {
|
||||||
|
[[self undoManager] setActionName:NSLocalizedString(@"DELETE_ENTRY", "Set Title")];
|
||||||
|
}
|
||||||
|
|
||||||
|
//[[NSNotificationCenter defaultCenter] postNotificationName:@"" object:self userInfo:nil];
|
||||||
|
[self.parent removeObjectFromEntriesAtIndex:oldIndex];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)moveToGroupUndoable:(KdbGroup *)group atIndex:(NSUInteger)index {
|
||||||
|
[self _moveToGroup:group atIndex:index actionName:NSLocalizedString(@"MOVE_ENTRY", "Move Group")];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)moveToTrashUndoable:(KdbGroup *)trash atIndex:(NSUInteger)index {
|
||||||
|
[self _moveToGroup:trash atIndex:index actionName:NSLocalizedString(@"TRASH_ENTRY", "Move Entry to Trash")];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)_moveToGroup:(KdbGroup *)group atIndex:(NSUInteger)index actionName:(NSString *)name {
|
||||||
|
if(!group || !self.parent) {
|
||||||
|
return; // Nothing to be moved about
|
||||||
|
}
|
||||||
|
NSUInteger oldIndex = [self.parent.entries indexOfObject:self];
|
||||||
|
if(oldIndex == NSNotFound) {
|
||||||
|
return; // Not found in entries of parent!
|
||||||
|
}
|
||||||
|
[[[self undoManager] prepareWithInvocationTarget:self] _moveToGroup:self.parent atIndex:oldIndex actionName:name];
|
||||||
|
|
||||||
|
if(![[self undoManager] isUndoing]) {
|
||||||
|
[[self undoManager] setActionName:name];
|
||||||
|
}
|
||||||
|
|
||||||
|
[self.parent removeObjectFromEntriesAtIndex:oldIndex];
|
||||||
|
// Old indices might be wrong, correct them if necessary
|
||||||
|
index = MIN(index, [group.entries count]);
|
||||||
|
[group insertObject:self inEntriesAtIndex:index];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@end
|
@end
|
||||||
@@ -17,4 +17,10 @@ APPKIT_EXTERN NSString *const MPGroupNameUndoableKey;
|
|||||||
- (NSString *)nameUndoable;
|
- (NSString *)nameUndoable;
|
||||||
- (void)setNameUndoable:(NSString *)newName;
|
- (void)setNameUndoable:(NSString *)newName;
|
||||||
|
|
||||||
|
- (void)deleteUndoable;
|
||||||
|
- (void)addGroupUndoable:(KdbGroup *)group atIndex:(NSUInteger)index;
|
||||||
|
- (void)addEntryUndoable:(KdbEntry *)entry atIndex:(NSUInteger)index;
|
||||||
|
- (void)moveToGroupUndoable:(KdbGroup *)group atIndex:(NSUInteger)index;
|
||||||
|
- (void)moveToTrashUndoable:(KdbGroup *)trash atIndex:(NSUInteger)index;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
#import "KdbGroup+Undo.h"
|
#import "KdbGroup+Undo.h"
|
||||||
#import "KdbGroup+KVOAdditions.h"
|
#import "KdbGroup+KVOAdditions.h"
|
||||||
|
#import "KdbEntry+Undo.h"
|
||||||
|
|
||||||
NSString *const MPGroupNameUndoableKey = @"nameUndoable";
|
NSString *const MPGroupNameUndoableKey = @"nameUndoable";
|
||||||
|
|
||||||
@@ -23,8 +24,85 @@ NSString *const MPGroupNameUndoableKey = @"nameUndoable";
|
|||||||
|
|
||||||
- (void)setNameUndoable:(NSString *)newName {
|
- (void)setNameUndoable:(NSString *)newName {
|
||||||
[[self undoManager] registerUndoWithTarget:self selector:@selector(setNameUndoable:) object:self.name];
|
[[self undoManager] registerUndoWithTarget:self selector:@selector(setNameUndoable:) object:self.name];
|
||||||
[[self undoManager] setActionName:NSLocalizedString(@"UNDO_SET_NAME", "Undo set name")];
|
|
||||||
|
if(![[self undoManager] isUndoing]) {
|
||||||
|
[[self undoManager] setActionName:NSLocalizedString(@"SET_NAME", "Set Name")];
|
||||||
|
}
|
||||||
|
|
||||||
self.name = newName;
|
self.name = newName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)deleteUndoable {
|
||||||
|
if(!self.parent) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
NSUInteger oldIndex = [self.parent.groups indexOfObject:self];
|
||||||
|
if(oldIndex == NSNotFound) {
|
||||||
|
return; // Inconsistent data
|
||||||
|
}
|
||||||
|
[[[self undoManager] prepareWithInvocationTarget:self.parent] addGroupUndoable:self atIndex:oldIndex];
|
||||||
|
|
||||||
|
if(![[self undoManager] isUndoing]) {
|
||||||
|
[[self undoManager] setActionName:NSLocalizedString(@"DELETE_GROUP", "Delete Group")];
|
||||||
|
}
|
||||||
|
|
||||||
|
[self.parent removeObjectFromGroupsAtIndex:oldIndex];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)addGroupUndoable:(KdbGroup *)group atIndex:(NSUInteger)index {
|
||||||
|
if(!group) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
[[[self undoManager] prepareWithInvocationTarget:group] deleteUndoable];
|
||||||
|
|
||||||
|
if(![[self undoManager] isUndoing]) {
|
||||||
|
[[self undoManager] setActionName:NSLocalizedString(@"ADD_GROUP", "Add Group")];
|
||||||
|
}
|
||||||
|
|
||||||
|
index = MIN(index, [group.groups count]);
|
||||||
|
[self insertObject:group inGroupsAtIndex:index];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)addEntryUndoable:(KdbEntry *)entry atIndex:(NSUInteger)index {
|
||||||
|
if(!entry) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
index = MIN(index, [self.entries count]);
|
||||||
|
[[[self undoManager] prepareWithInvocationTarget:entry] deleteUndoable];
|
||||||
|
|
||||||
|
if(![[self undoManager] isUndoing]) {
|
||||||
|
[[self undoManager] setActionName:NSLocalizedString(@"ADD_ENTRY", "Add Entry")];
|
||||||
|
}
|
||||||
|
|
||||||
|
[self insertObject:entry inEntriesAtIndex:index];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)moveToGroupUndoable:(KdbGroup *)group atIndex:(NSUInteger)index {
|
||||||
|
[self _moveToGroup:group atIndex:index actionName:NSLocalizedString(@"MOVE_GROUP", "Move Group" )];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)moveToTrashUndoable:(KdbGroup *)trash atIndex:(NSUInteger)index {
|
||||||
|
[self _moveToGroup:trash atIndex:index actionName:NSLocalizedString(@"TRASH_GROUP", "Move Group to Trash")];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)_moveToGroup:(KdbGroup *)group atIndex:(NSUInteger)index actionName:(NSString *)actionName {
|
||||||
|
if(!self.parent || !group) {
|
||||||
|
return; // No target or origin
|
||||||
|
}
|
||||||
|
NSUInteger oldIndex = [self.parent.groups indexOfObject:self];
|
||||||
|
if(oldIndex == NSNotFound) {
|
||||||
|
return; // We aren't in our parents groups list.
|
||||||
|
}
|
||||||
|
[[[self undoManager] prepareWithInvocationTarget:self] moveToGroupUndoable:self.parent atIndex:oldIndex];
|
||||||
|
|
||||||
|
if(![[self undoManager] isUndoing]) {
|
||||||
|
[[self undoManager] setActionName:actionName];
|
||||||
|
}
|
||||||
|
|
||||||
|
[self.parent removeObjectFromGroupsAtIndex:oldIndex];
|
||||||
|
index = MIN(index, [group.groups count]);
|
||||||
|
[group insertObject:self inGroupsAtIndex:index];
|
||||||
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -38,16 +38,31 @@
|
|||||||
[MPStringLengthValueTransformer registerTransformer];
|
[MPStringLengthValueTransformer registerTransformer];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)dealloc {
|
||||||
|
[[NSNotificationCenter defaultCenter] removeObserver:self];
|
||||||
|
}
|
||||||
|
|
||||||
- (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender {
|
- (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender {
|
||||||
return [[NSUserDefaults standardUserDefaults] boolForKey:kMPSettingsKeyOpenEmptyDatabaseOnLaunch];
|
return [[NSUserDefaults standardUserDefaults] boolForKey:kMPSettingsKeyOpenEmptyDatabaseOnLaunch];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
- (void)applicationWillFinishLaunching:(NSNotification *)notification {
|
||||||
|
BOOL reopen = [[NSUserDefaults standardUserDefaults] boolForKey:kMPSettingsKeyReopenLastDatabaseOnLaunch];
|
||||||
|
if(reopen) {
|
||||||
|
[[NSNotificationCenter defaultCenter] addObserver:self
|
||||||
|
selector:@selector(_applicationDidFinishRestoringWindows:)
|
||||||
|
name:NSApplicationDidFinishRestoringWindowsNotification
|
||||||
|
object:nil];
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
- (void)applicationDidFinishLaunching:(NSNotification *)notification {
|
- (void)applicationDidFinishLaunching:(NSNotification *)notification {
|
||||||
serverDaemon = [[MPServerDaemon alloc] init];
|
serverDaemon = [[MPServerDaemon alloc] init];
|
||||||
lockDaemon = [[MPLockDaemon alloc] init];
|
lockDaemon = [[MPLockDaemon alloc] init];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
- (NSString *)applicationName {
|
- (NSString *)applicationName {
|
||||||
return [[NSBundle mainBundle] infoDictionary][@"CFBundleName"];
|
return [[NSBundle mainBundle] infoDictionary][@"CFBundleName"];
|
||||||
}
|
}
|
||||||
@@ -93,4 +108,16 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)_applicationDidFinishRestoringWindows:(NSNotification *)notification {
|
||||||
|
NSDocumentController *documentController = [NSDocumentController sharedDocumentController];
|
||||||
|
NSArray *documents = [documentController documents];
|
||||||
|
NSArray *recentDocuments = [documentController recentDocumentURLs];
|
||||||
|
if([documents count] == 0 && [recentDocuments count] > 0) {
|
||||||
|
NSURL *url = recentDocuments[0];
|
||||||
|
[documentController openDocumentWithContentsOfURL:url display:YES completionHandler:^(NSDocument *document, BOOL documentWasAlreadyOpen, NSError *error) {
|
||||||
|
// do nothing
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
17
MacPass/MPAttachmentTableViewDelegate.h
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
//
|
||||||
|
// MPAttachmentTableViewDelegate.h
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 17.07.13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
@class MPInspectorViewController;
|
||||||
|
|
||||||
|
@interface MPAttachmentTableViewDelegate : NSObject <NSTableViewDelegate>
|
||||||
|
|
||||||
|
@property (nonatomic, weak) MPInspectorViewController *viewController;
|
||||||
|
|
||||||
|
@end
|
||||||
65
MacPass/MPAttachmentTableViewDelegate.m
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
//
|
||||||
|
// MPAttachmentTableViewDelegate.m
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 17.07.13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "MPAttachmentTableViewDelegate.h"
|
||||||
|
|
||||||
|
#import "MPInspectorViewController.h"
|
||||||
|
#import "MPSelectedAttachmentTableCellView.h"
|
||||||
|
|
||||||
|
#import "Kdb4Node.h"
|
||||||
|
|
||||||
|
#import "HNHTableRowView.h"
|
||||||
|
|
||||||
|
@implementation MPAttachmentTableViewDelegate
|
||||||
|
|
||||||
|
- (void)tableViewSelectionDidChange:(NSNotification *)notification {
|
||||||
|
NSTableView *tableView = [notification object];
|
||||||
|
NSIndexSet *allColumns = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, [[tableView tableColumns] count])];
|
||||||
|
Kdb4Entry *entryv4 = (Kdb4Entry *)self.viewController.selectedEntry;
|
||||||
|
NSIndexSet *indexSet = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, [entryv4.binaries count] )];
|
||||||
|
[tableView reloadDataForRowIndexes:indexSet columnIndexes:allColumns];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
|
||||||
|
/* Decide what view to use */
|
||||||
|
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:self.viewController];
|
||||||
|
view = cellView;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
view = [tableView makeViewWithIdentifier:@"NormalCell" owner:tableView];
|
||||||
|
}
|
||||||
|
/* Bind view */
|
||||||
|
if([self.viewController.selectedEntry isKindOfClass:[Kdb4Entry class]]) {
|
||||||
|
Kdb4Entry *entry = (Kdb4Entry *)self.viewController.selectedEntry;
|
||||||
|
BinaryRef *binaryRef = entry.binaries[row];
|
||||||
|
[[view textField] bind:NSValueBinding toObject:binaryRef withKeyPath:@"key" options:nil];
|
||||||
|
[[view imageView] setImage:[[NSWorkspace sharedWorkspace] iconForFileType:[binaryRef.key pathExtension]]];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Create view to support only one binary!
|
||||||
|
}
|
||||||
|
return view;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSTableRowView *)tableView:(NSTableView *)tableView rowViewForRow:(NSInteger)row {
|
||||||
|
HNHTableRowView *view = nil;
|
||||||
|
view = [[HNHTableRowView alloc] init];
|
||||||
|
view.selectionCornerRadius = 7;
|
||||||
|
return view;
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
17
MacPass/MPCustomFieldTableViewDelegate.h
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
//
|
||||||
|
// MPCustomFieldTableDelegate.h
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 17.07.13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
@class MPInspectorViewController;
|
||||||
|
|
||||||
|
@interface MPCustomFieldTableViewDelegate : NSObject <NSTableViewDelegate>
|
||||||
|
|
||||||
|
@property (nonatomic, weak) MPInspectorViewController *viewController;
|
||||||
|
|
||||||
|
@end
|
||||||
41
MacPass/MPCustomFieldTableViewDelegate.m
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
//
|
||||||
|
// MPCustomFieldTableDelegate.m
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 17.07.13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "MPCustomFieldTableViewDelegate.h"
|
||||||
|
#import "MPInspectorViewController.h"
|
||||||
|
#import "MPCustomFieldTableCellView.h"
|
||||||
|
|
||||||
|
#import "Kdb4Node.h"
|
||||||
|
#import "StringField+Undo.h"
|
||||||
|
|
||||||
|
@implementation MPCustomFieldTableViewDelegate
|
||||||
|
|
||||||
|
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
|
||||||
|
if(![self.viewController.selectedEntry isKindOfClass:[Kdb4Entry class]]) {
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
Kdb4Entry *entry = (Kdb4Entry *)self.viewController.selectedEntry;
|
||||||
|
MPCustomFieldTableCellView *view = [tableView makeViewWithIdentifier:@"SelectedCell" owner:tableView];
|
||||||
|
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_customFieldFrameChanged:) name:NSViewFrameDidChangeNotification object:view];
|
||||||
|
if([self.viewController.selectedEntry isKindOfClass:[Kdb4Entry class]]) {
|
||||||
|
StringField *stringField = entry.stringFields[row];
|
||||||
|
[view.labelTextField bind:NSValueBinding toObject:stringField withKeyPath:MPStringFieldKeyUndoableKey options:nil];
|
||||||
|
[view.valueTextField bind:NSValueBinding toObject:stringField withKeyPath:MPStringFieldValueUndoableKey options:nil];
|
||||||
|
[view.removeButton setTarget:self.viewController];
|
||||||
|
[view.removeButton setAction:@selector(removeCustomField:)];
|
||||||
|
[view.removeButton setTag:row];
|
||||||
|
}
|
||||||
|
return view;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)_customFieldFrameChanged:(NSNotification *)notification {
|
||||||
|
// NSView *sender = [notification object];
|
||||||
|
// NSLog(@"didChangeFrameFor: %@ to: %@", sender, NSStringFromRect([sender frame]));
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
@@ -8,10 +8,17 @@
|
|||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
#import <Cocoa/Cocoa.h>
|
||||||
|
|
||||||
|
typedef NS_ENUM(NSUInteger, MPDatabaseSettingsTab) {
|
||||||
|
MPDatabaseSettingsTabGeneral,
|
||||||
|
MPDatabaseSettingsTabPassword,
|
||||||
|
MPDatabaseSettingsTabDisplay,
|
||||||
|
MPDatabaseSettingsTabAdvanced
|
||||||
|
};
|
||||||
|
|
||||||
@class MPDocument;
|
@class MPDocument;
|
||||||
|
@class HNHRoundedSecureTextField;
|
||||||
|
|
||||||
@interface MPDocumentSettingsWindowController : NSWindowController
|
@interface MPDatabaseSettingsWindowController : NSWindowController
|
||||||
|
|
||||||
|
|
||||||
@property (weak) IBOutlet NSTabView *sectionTabView;
|
@property (weak) IBOutlet NSTabView *sectionTabView;
|
||||||
|
|
||||||
@@ -20,8 +27,12 @@
|
|||||||
@property (unsafe_unretained) IBOutlet NSTextView *databaseDescriptionTextView;
|
@property (unsafe_unretained) IBOutlet NSTextView *databaseDescriptionTextView;
|
||||||
|
|
||||||
/* Protection */
|
/* Protection */
|
||||||
@property (weak) IBOutlet NSTextField *passwordTextField;
|
@property (weak) IBOutlet HNHRoundedSecureTextField *passwordTextField;
|
||||||
@property (weak) IBOutlet NSPathControl *keyfilePathControl;
|
@property (weak) IBOutlet NSPathControl *keyfilePathControl;
|
||||||
|
@property (weak) IBOutlet NSButton *togglePasswordButton;
|
||||||
|
|
||||||
|
- (IBAction)clearKey:(id)sender;
|
||||||
|
- (IBAction)generateKey:(id)sender;
|
||||||
|
|
||||||
/* Display Tab */
|
/* Display Tab */
|
||||||
@property (weak) IBOutlet NSButton *protectTitleCheckButton;
|
@property (weak) IBOutlet NSButton *protectTitleCheckButton;
|
||||||
@@ -30,13 +41,15 @@
|
|||||||
@property (weak) IBOutlet NSButton *protectURLCheckButton;
|
@property (weak) IBOutlet NSButton *protectURLCheckButton;
|
||||||
@property (weak) IBOutlet NSButton *protectNotesCheckButton;
|
@property (weak) IBOutlet NSButton *protectNotesCheckButton;
|
||||||
|
|
||||||
|
|
||||||
/* Advanced Tab*/
|
/* Advanced Tab*/
|
||||||
@property (weak) IBOutlet NSButton *enableRecycleBinCheckButton;
|
@property (weak) IBOutlet NSButton *enableRecycleBinCheckButton;
|
||||||
@property (weak) IBOutlet NSButton *emptyRecycleBinOnQuitCheckButton;
|
@property (weak) IBOutlet NSButton *emptyRecycleBinOnQuitCheckButton;
|
||||||
@property (weak) IBOutlet NSPopUpButton *selectRecycleBinGroupPopUpButton;
|
@property (weak) IBOutlet NSPopUpButton *selectRecycleBinGroupPopUpButton;
|
||||||
|
|
||||||
- (id)initWithDocument:(MPDocument *)document;
|
- (id)initWithDocument:(MPDocument *)document;
|
||||||
|
|
||||||
|
- (void)showSettingsTab:(MPDatabaseSettingsTab)tab;
|
||||||
|
|
||||||
- (void)update;
|
- (void)update;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
175
MacPass/MPDatabaseSettingsWindowController.m
Normal file
@@ -0,0 +1,175 @@
|
|||||||
|
//
|
||||||
|
// MPDocumentSettingsWindowController.m
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 26.06.13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "MPDatabaseSettingsWindowController.h"
|
||||||
|
#import "MPDocument.h"
|
||||||
|
#import "MPDocumentWindowController.h"
|
||||||
|
#import "MPDatabaseVersion.h"
|
||||||
|
#import "MPIconHelper.h"
|
||||||
|
|
||||||
|
#import "HNHRoundedSecureTextField.h"
|
||||||
|
|
||||||
|
#import "Kdb.h"
|
||||||
|
#import "Kdb4Node.h"
|
||||||
|
#import "KdbGroup+MPAdditions.h"
|
||||||
|
|
||||||
|
@interface MPDatabaseSettingsWindowController () {
|
||||||
|
MPDocument *_document;
|
||||||
|
}
|
||||||
|
|
||||||
|
@property (nonatomic,assign) BOOL trashEnabled;
|
||||||
|
@property (nonatomic,assign) BOOL showPassword;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation MPDatabaseSettingsWindowController
|
||||||
|
|
||||||
|
- (id)init {
|
||||||
|
return [self initWithDocument:nil];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (id)initWithDocument:(MPDocument *)document {
|
||||||
|
self = [super initWithWindowNibName:@"DatabaseSettingsWindow"];
|
||||||
|
if(self) {
|
||||||
|
_document = document;
|
||||||
|
_showPassword = NO;
|
||||||
|
}
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)windowDidLoad {
|
||||||
|
[super windowDidLoad];
|
||||||
|
|
||||||
|
NSAssert(_document != nil, @"Document needs to be present");
|
||||||
|
|
||||||
|
Kdb4Tree *tree = _document.treeV4;
|
||||||
|
if( tree ) {
|
||||||
|
[self _setupDatabase:tree];
|
||||||
|
[self _setupProtectionTab:tree];
|
||||||
|
[self _setupAdvancedTab:tree];
|
||||||
|
[self _setupPasswordTab:tree];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Switch to KdbV3 View
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction)save:(id)sender {
|
||||||
|
|
||||||
|
/* Protection */
|
||||||
|
_document.password = [self.passwordTextField stringValue];
|
||||||
|
_document.key = [self.keyfilePathControl URL];
|
||||||
|
|
||||||
|
/* General */
|
||||||
|
_document.treeV4.databaseDescription = [self.databaseDescriptionTextView string];
|
||||||
|
_document.treeV4.databaseName = [self.databaseNameTextField stringValue];
|
||||||
|
|
||||||
|
/* Display */
|
||||||
|
|
||||||
|
/* Advanced */
|
||||||
|
_document.treeV4.recycleBinEnabled = self.trashEnabled;
|
||||||
|
NSMenuItem *menuItem = [self.selectRecycleBinGroupPopUpButton selectedItem];
|
||||||
|
KdbGroup *group = [menuItem representedObject];
|
||||||
|
[_document useGroupAsTrash:group];
|
||||||
|
|
||||||
|
_document.treeV4.protectNotes = [self.protectNotesCheckButton state] == NSOnState;
|
||||||
|
_document.treeV4.protectPassword = [self.protectPasswortCheckButton state] == NSOnState;
|
||||||
|
_document.treeV4.protectTitle = [self.protectTitleCheckButton state] == NSOnState;
|
||||||
|
_document.treeV4.protectUrl = [self.protectURLCheckButton state] == NSOnState;
|
||||||
|
_document.treeV4.protectUserName = [self.protectUserNameCheckButton state] == NSOnState;
|
||||||
|
|
||||||
|
/* Close to finish */
|
||||||
|
[self close:nil];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction)close:(id)sender {
|
||||||
|
[NSApp endSheet:[self window]];
|
||||||
|
[[self window] orderOut:nil];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
- (void)update {
|
||||||
|
/* Update all stuff that might have changed */
|
||||||
|
Kdb4Tree *tree = _document.treeV4;
|
||||||
|
if(tree) {
|
||||||
|
[self _setupDatabase:tree];
|
||||||
|
[self _setupProtectionTab:tree];
|
||||||
|
[self _setupAdvancedTab:tree];
|
||||||
|
[self _setupPasswordTab:tree];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)showSettingsTab:(MPDatabaseSettingsTab)tab {
|
||||||
|
self.showPassword = NO;
|
||||||
|
[self.sectionTabView selectTabViewItemAtIndex:tab];
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma mark Actions
|
||||||
|
- (IBAction)clearKey:(id)sender {
|
||||||
|
[self.keyfilePathControl setURL:nil];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction)generateKey:(id)sender {
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma mark Private Helper
|
||||||
|
- (void)_setupDatabase:(Kdb4Tree *)tree {
|
||||||
|
[self.databaseNameTextField setStringValue:tree.databaseName];
|
||||||
|
[self.databaseDescriptionTextView setString:tree.databaseDescription];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)_setupProtectionTab:(Kdb4Tree *)tree {
|
||||||
|
[self.protectNotesCheckButton setState:tree.protectNotes ? NSOnState : NSOffState ];
|
||||||
|
[self.protectNotesCheckButton setState:tree.protectPassword ? NSOnState : NSOffState];
|
||||||
|
[self.protectTitleCheckButton setState:tree.protectTitle ? NSOnState : NSOffState];
|
||||||
|
[self.protectURLCheckButton setState:tree.protectUrl ? NSOnState : NSOffState];
|
||||||
|
[self.protectUserNameCheckButton setState:tree.protectUserName ? NSOnState : NSOffState];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)_setupAdvancedTab:(Kdb4Tree *)tree {
|
||||||
|
self.trashEnabled = tree.recycleBinEnabled;
|
||||||
|
[self.enableRecycleBinCheckButton bind:NSValueBinding toObject:self withKeyPath:@"trashEnabled" options:nil];
|
||||||
|
[self.selectRecycleBinGroupPopUpButton bind:NSEnabledBinding toObject:self withKeyPath:@"trashEnabled" options:nil];
|
||||||
|
[self _updateTrashFolders:tree];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)_setupPasswordTab:(Kdb4Tree *)tree {
|
||||||
|
[self.passwordTextField setStringValue:_document.password ? _document.password : @""];
|
||||||
|
[self.keyfilePathControl setURL:_document.key];
|
||||||
|
|
||||||
|
[self.passwordTextField bind:@"showPassword" toObject:self withKeyPath:@"showPassword" options:nil];
|
||||||
|
[self.togglePasswordButton bind:NSValueBinding toObject:self withKeyPath:@"showPassword" options:nil];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)_updateTrashFolders:(Kdb4Tree *)tree {
|
||||||
|
NSMenu *menu = [self _buildTreeMenu:tree];
|
||||||
|
[self.selectRecycleBinGroupPopUpButton setMenu:menu];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSMenu *)_buildTreeMenu:(Kdb4Tree *)tree {
|
||||||
|
NSMenu *menu = [[NSMenu alloc] init];
|
||||||
|
[menu setAutoenablesItems:NO];
|
||||||
|
|
||||||
|
for(Kdb4Group *group in tree.root.groups) {
|
||||||
|
NSMenuItem *groupItem = [[NSMenuItem alloc] init];
|
||||||
|
[groupItem setImage:group.icon];
|
||||||
|
[groupItem setTitle:group.name];
|
||||||
|
[groupItem setRepresentedObject:group];
|
||||||
|
[groupItem setEnabled:YES];
|
||||||
|
if([group.uuid isEqual:tree.recycleBinUuid]) {
|
||||||
|
[groupItem setState:NSOnState];
|
||||||
|
}
|
||||||
|
[menu addItem:groupItem];
|
||||||
|
}
|
||||||
|
NSMenuItem *selectItem = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"SELECT_RECYCLEBIN", @"Menu item if no reycleBin is selected") action:NULL keyEquivalent:@""];
|
||||||
|
[selectItem setEnabled:YES];
|
||||||
|
[menu insertItem:selectItem atIndex:0];
|
||||||
|
|
||||||
|
return menu;
|
||||||
|
}
|
||||||
|
@end
|
||||||
@@ -34,11 +34,10 @@
|
|||||||
}
|
}
|
||||||
if( [anEntry isKindOfClass:[Kdb4Entry class]]) {
|
if( [anEntry isKindOfClass:[Kdb4Entry class]]) {
|
||||||
Kdb4Entry *entry = (Kdb4Entry *)anEntry;
|
Kdb4Entry *entry = (Kdb4Entry *)anEntry;
|
||||||
NSStringEncoding encoding;
|
NSData *fileData = [NSData dataWithContentsOfURL:location options:NSDataReadingMappedIfSafe error:&error];
|
||||||
NSString *fileContents = [NSString stringWithContentsOfURL:location usedEncoding:&encoding error:&error];
|
if(!fileData) {
|
||||||
if(!fileContents) {
|
|
||||||
[NSApp presentError:error];
|
[NSApp presentError:error];
|
||||||
fileContents = nil;
|
fileData = nil;
|
||||||
error = nil;
|
error = nil;
|
||||||
return; // failed
|
return; // failed
|
||||||
}
|
}
|
||||||
@@ -51,7 +50,6 @@
|
|||||||
binary.binaryId = nextId;
|
binary.binaryId = nextId;
|
||||||
binary.compressed = (self.treeV4.compressionAlgorithm != KPLCompressionNone);
|
binary.compressed = (self.treeV4.compressionAlgorithm != KPLCompressionNone);
|
||||||
NSData *encodedData;
|
NSData *encodedData;
|
||||||
NSData *fileData = [fileContents dataUsingEncoding:encoding];
|
|
||||||
if(binary.compressed) {
|
if(binary.compressed) {
|
||||||
switch(self.treeV4.compressionAlgorithm) {
|
switch(self.treeV4.compressionAlgorithm) {
|
||||||
case KPLCompressionGzip: {
|
case KPLCompressionGzip: {
|
||||||
|
|||||||
@@ -34,22 +34,26 @@ APPKIT_EXTERN NSString *const MPDocumentGroupKey;
|
|||||||
@interface MPDocument : NSDocument
|
@interface MPDocument : NSDocument
|
||||||
|
|
||||||
/* true, if password and/or keyfile are set */
|
/* true, if password and/or keyfile are set */
|
||||||
@property (assign, readonly, getter = isSecured) BOOL secured;
|
@property (assign, readonly) BOOL hasPasswordOrKey;
|
||||||
/* true, if lock screen is present (no phyiscal locking) */
|
/* true, if lock screen is present (no phyiscal locking) */
|
||||||
@property (assign, getter = isLocked) BOOL locked;
|
@property (assign, nonatomic) BOOL locked;
|
||||||
/* true, if document is loaded and decrypted (tree is loaded) */
|
@property (assign, readonly) BOOL decrypted;
|
||||||
@property (assign, readonly, getter = isDecrypted) BOOL decrypted;
|
|
||||||
@property (strong, readonly, nonatomic) KdbTree *tree;
|
@property (strong, readonly, nonatomic) KdbTree *tree;
|
||||||
@property (weak, readonly, nonatomic) KdbGroup *root;
|
@property (weak, readonly, nonatomic) KdbGroup *root;
|
||||||
@property (readonly, strong) MPRootAdapter *rootAdapter;
|
@property (readonly, strong) MPRootAdapter *rootAdapter;
|
||||||
@property (nonatomic, strong) NSString *password;
|
|
||||||
|
@property (nonatomic, copy) NSString *password;
|
||||||
@property (nonatomic, strong) NSURL *key;
|
@property (nonatomic, strong) NSURL *key;
|
||||||
|
|
||||||
@property (assign, readonly) MPDatabaseVersion version;
|
@property (assign, readonly) MPDatabaseVersion version;
|
||||||
@property (assign, readonly, getter = isReadOnly) BOOL readOnly;
|
@property (assign, readonly, getter = isReadOnly) BOOL readOnly;
|
||||||
|
|
||||||
- (id)initWithVersion:(MPDatabaseVersion)version;
|
- (id)initWithVersion:(MPDatabaseVersion)version;
|
||||||
- (BOOL)decryptWithPassword:(NSString *)password keyFileURL:(NSURL *)keyFileURL;
|
|
||||||
|
#pragma mark Lock/Decrypt
|
||||||
|
- (void)lockDatabase:(id)sender;
|
||||||
|
- (BOOL)unlockWithPassword:(NSString *)password keyFileURL:(NSURL *)keyFileURL;
|
||||||
|
|
||||||
#pragma mark Data Lookup
|
#pragma mark Data Lookup
|
||||||
/*
|
/*
|
||||||
@@ -63,6 +67,8 @@ APPKIT_EXTERN NSString *const MPDocumentGroupKey;
|
|||||||
|
|
||||||
- (void)useGroupAsTrash:(KdbGroup *)group;
|
- (void)useGroupAsTrash:(KdbGroup *)group;
|
||||||
|
|
||||||
|
#pragma mark Export
|
||||||
|
- (void)writeXMLToURL:(NSURL *)url;
|
||||||
|
|
||||||
#pragma mark Undo Data Manipulation
|
#pragma mark Undo Data Manipulation
|
||||||
/* Undoable Intiialization of elements */
|
/* Undoable Intiialization of elements */
|
||||||
@@ -73,18 +79,14 @@ APPKIT_EXTERN NSString *const MPDocumentGroupKey;
|
|||||||
/*
|
/*
|
||||||
All non-setter undoable actions
|
All non-setter undoable actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
- (void)moveGroup:(KdbGroup *)group toGroup:(KdbGroup *)target index:(NSInteger)index;
|
|
||||||
- (BOOL)group:(KdbGroup *)group isMoveableToGroup:(KdbGroup *)target;
|
- (BOOL)group:(KdbGroup *)group isMoveableToGroup:(KdbGroup *)target;
|
||||||
- (void)moveEntry:(KdbEntry *)entry toGroup:(KdbGroup *)target index:(NSInteger)index;
|
|
||||||
|
|
||||||
- (void)group:(KdbGroup *)group addEntry:(KdbEntry *)entry atIndex:(NSUInteger)index;
|
/* TODO in UNDO auslagen */
|
||||||
- (void)group:(KdbGroup *)group addGroup:(KdbGroup *)aGroup atIndex:(NSUInteger)index;
|
- (void)addStringField:(StringField *)field toEntry:(Kdb4Entry *)entry atIndex:(NSUInteger)index;
|
||||||
- (void)group:(KdbGroup *)group removeEntry:(KdbEntry *)entry;
|
- (void)removeStringField:(StringField *)field formEntry:(Kdb4Entry *)entry;
|
||||||
- (void)group:(KdbGroup *)group removeGroup:(KdbGroup *)aGroup;
|
|
||||||
|
|
||||||
- (void)entry:(Kdb4Entry *)entry addStringField:(StringField *)field atIndex:(NSUInteger)index;
|
- (void)deleteGroup:(KdbGroup *)group;
|
||||||
- (void)entry:(Kdb4Entry *)entry removeStringField:(StringField *)field;
|
- (void)deleteEntry:(KdbEntry *)entry;
|
||||||
|
|
||||||
- (void)emptyTrash:(id)sender;
|
- (void)emptyTrash:(id)sender;
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
#import "KdbLib.h"
|
#import "KdbLib.h"
|
||||||
#import "Kdb3Node.h"
|
#import "Kdb3Node.h"
|
||||||
#import "Kdb4Node.h"
|
#import "Kdb4Node.h"
|
||||||
|
#import "Kdb4Persist.h"
|
||||||
#import "KdbPassword.h"
|
#import "KdbPassword.h"
|
||||||
#import "KdbGroup+Undo.h"
|
#import "KdbGroup+Undo.h"
|
||||||
#import "KdbGroup+KVOAdditions.h"
|
#import "KdbGroup+KVOAdditions.h"
|
||||||
@@ -27,6 +28,10 @@
|
|||||||
#import "Kdb3Tree+NewTree.h"
|
#import "Kdb3Tree+NewTree.h"
|
||||||
#import "Kdb4Tree+NewTree.h"
|
#import "Kdb4Tree+NewTree.h"
|
||||||
|
|
||||||
|
#import "DataOutputStream.h"
|
||||||
|
|
||||||
|
#import "DDXMLNode.h"
|
||||||
|
|
||||||
NSString *const MPDocumentDidAddGroupNotification = @"com.hicknhack.macpass.MPDocumentDidAddGroupNotification";
|
NSString *const MPDocumentDidAddGroupNotification = @"com.hicknhack.macpass.MPDocumentDidAddGroupNotification";
|
||||||
NSString *const MPDocumentWillDelteGroupNotification = @"com.hicknhack.macpass.MPDocumentDidDelteGroupNotification";
|
NSString *const MPDocumentWillDelteGroupNotification = @"com.hicknhack.macpass.MPDocumentDidDelteGroupNotification";
|
||||||
NSString *const MPDocumentDidAddEntryNotification = @"com.hicknhack.macpass.MPDocumentDidAddEntryNotification";
|
NSString *const MPDocumentDidAddEntryNotification = @"com.hicknhack.macpass.MPDocumentDidAddEntryNotification";
|
||||||
@@ -40,6 +45,7 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey";
|
|||||||
@interface MPDocument () {
|
@interface MPDocument () {
|
||||||
@private
|
@private
|
||||||
BOOL _didLockFile;
|
BOOL _didLockFile;
|
||||||
|
NSData *_fileData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -48,7 +54,7 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey";
|
|||||||
@property (weak, nonatomic, readonly) KdbPassword *passwordHash;
|
@property (weak, nonatomic, readonly) KdbPassword *passwordHash;
|
||||||
@property (assign) MPDatabaseVersion version;
|
@property (assign) MPDatabaseVersion version;
|
||||||
|
|
||||||
@property (assign, nonatomic) BOOL secured;
|
@property (assign, nonatomic) BOOL hasPasswordOrKey;
|
||||||
@property (assign) BOOL decrypted;
|
@property (assign) BOOL decrypted;
|
||||||
@property (assign) BOOL readOnly;
|
@property (assign) BOOL readOnly;
|
||||||
|
|
||||||
@@ -56,6 +62,8 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey";
|
|||||||
|
|
||||||
@property (readonly) BOOL useTrash;
|
@property (readonly) BOOL useTrash;
|
||||||
@property (weak, readonly) KdbGroup *trash;
|
@property (weak, readonly) KdbGroup *trash;
|
||||||
|
@property (strong) IBOutlet NSView *warningView;
|
||||||
|
@property (weak) IBOutlet NSImageView *warningViewImage;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@@ -70,9 +78,10 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey";
|
|||||||
- (id)initWithVersion:(MPDatabaseVersion)version {
|
- (id)initWithVersion:(MPDatabaseVersion)version {
|
||||||
self = [super init];
|
self = [super init];
|
||||||
if(self) {
|
if(self) {
|
||||||
|
_fileData = nil;
|
||||||
_didLockFile = NO;
|
_didLockFile = NO;
|
||||||
_decrypted = YES;
|
_decrypted = YES;
|
||||||
_secured = NO;
|
_hasPasswordOrKey = NO;
|
||||||
_locked = NO;
|
_locked = NO;
|
||||||
_readOnly = NO;
|
_readOnly = NO;
|
||||||
_rootAdapter = [[MPRootAdapter alloc] init];
|
_rootAdapter = [[MPRootAdapter alloc] init];
|
||||||
@@ -119,16 +128,21 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey";
|
|||||||
|
|
||||||
- (BOOL)readFromURL:(NSURL *)url ofType:(NSString *)typeName error:(NSError **)outError {
|
- (BOOL)readFromURL:(NSURL *)url ofType:(NSString *)typeName error:(NSError **)outError {
|
||||||
/* FIXME: Logfile handling
|
/* FIXME: Logfile handling
|
||||||
self.lockFileURL = [url URLByAppendingPathExtension:@"lock"];
|
self.lockFileURL = [url URLByAppendingPathExtension:@"lock"];
|
||||||
if([[NSFileManager defaultManager] fileExistsAtPath:[_lockFileURL path]]) {
|
if([[NSFileManager defaultManager] fileExistsAtPath:[_lockFileURL path]]) {
|
||||||
self.readOnly = YES;
|
self.readOnly = YES;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
[[NSFileManager defaultManager] createFileAtPath:[_lockFileURL path] contents:nil attributes:nil];
|
[[NSFileManager defaultManager] createFileAtPath:[_lockFileURL path] contents:nil attributes:nil];
|
||||||
_didLockFile = YES;
|
_didLockFile = YES;
|
||||||
self.readOnly = NO;
|
self.readOnly = NO;
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
/*
|
||||||
|
Delete our old Tree, and just grab the data
|
||||||
|
*/
|
||||||
|
self.tree = nil;
|
||||||
|
_fileData = [NSData dataWithContentsOfURL:url options:NSDataReadingUncached error:outError];
|
||||||
self.decrypted = NO;
|
self.decrypted = NO;
|
||||||
return YES;
|
return YES;
|
||||||
}
|
}
|
||||||
@@ -151,9 +165,16 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey";
|
|||||||
[super close];
|
[super close];
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma mark Protection
|
- (void)writeXMLToURL:(NSURL *)url {
|
||||||
|
DataOutputStream *outputStream = [[DataOutputStream alloc] init];
|
||||||
|
Kdb4Persist *persist = [[Kdb4Persist alloc] initWithTree:self.treeV4 outputStream:outputStream randomStream:nil];
|
||||||
|
[persist persistWithOptions:DDXMLNodeCompactEmptyElement|DDXMLNodePrettyPrint];
|
||||||
|
[outputStream.data writeToURL:url atomically:YES];
|
||||||
|
}
|
||||||
|
|
||||||
- (BOOL)decryptWithPassword:(NSString *)password keyFileURL:(NSURL *)keyFileURL {
|
#pragma mark Lock/Unlock/Decrypt
|
||||||
|
|
||||||
|
- (BOOL)unlockWithPassword:(NSString *)password keyFileURL:(NSURL *)keyFileURL {
|
||||||
self.key = keyFileURL;
|
self.key = keyFileURL;
|
||||||
self.password = [password length] > 0 ? password : nil;
|
self.password = [password length] > 0 ? password : nil;
|
||||||
@try {
|
@try {
|
||||||
@@ -173,17 +194,26 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey";
|
|||||||
return YES;
|
return YES;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)lockDatabase:(id)sender {
|
||||||
|
// Persist Tree into data
|
||||||
|
self.tree = nil;
|
||||||
|
self.locked = YES;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#pragma mark Custom Setter
|
||||||
|
|
||||||
- (void)setPassword:(NSString *)password {
|
- (void)setPassword:(NSString *)password {
|
||||||
if(![_password isEqualToString:password]) {
|
if(![_password isEqualToString:password]) {
|
||||||
_password = password;
|
_password = [password copy];
|
||||||
_secured |= ([_password length] > 0);
|
[self _updateIsSecured];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)setKey:(NSURL *)key {
|
- (void)setKey:(NSURL *)key {
|
||||||
if(![[_key absoluteString] isEqualToString:[key absoluteString]]) {
|
if(![[_key absoluteString] isEqualToString:[key absoluteString]]) {
|
||||||
_key = key;
|
_key = key;
|
||||||
_secured |= (_key != nil);
|
[self _updateIsSecured];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -197,6 +227,19 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey";
|
|||||||
return NO;
|
return NO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (BOOL)prepareSavePanel:(NSSavePanel *)savePanel {
|
||||||
|
if(self.hasPasswordOrKey) {
|
||||||
|
[savePanel setAccessoryView:nil];
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
if(!self.warningView) {
|
||||||
|
[[NSBundle mainBundle] loadNibNamed:@"UnprotectedWarningView" owner:self topLevelObjects:nil];
|
||||||
|
[self.warningViewImage setImage:[NSImage imageNamed:NSImageNameCaution]];
|
||||||
|
}
|
||||||
|
[savePanel setAccessoryView:self.warningView];
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
|
||||||
#pragma mark Data Accesors
|
#pragma mark Data Accesors
|
||||||
- (void)setTree:(KdbTree *)tree {
|
- (void)setTree:(KdbTree *)tree {
|
||||||
if(_tree != tree) {
|
if(_tree != tree) {
|
||||||
@@ -220,7 +263,7 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey";
|
|||||||
- (Kdb3Tree *)treeV3 {
|
- (Kdb3Tree *)treeV3 {
|
||||||
switch (_version) {
|
switch (_version) {
|
||||||
case MPDatabaseVersion3:
|
case MPDatabaseVersion3:
|
||||||
NSAssert([self.tree isKindOfClass:[Kdb3Tree class]], @"Tree has to be Version3");
|
NSAssert(self.tree == nil || [self.tree isKindOfClass:[Kdb3Tree class]], @"Tree has to be Version3");
|
||||||
return (Kdb3Tree *)self.tree;
|
return (Kdb3Tree *)self.tree;
|
||||||
case MPDatabaseVersion4:
|
case MPDatabaseVersion4:
|
||||||
return nil;
|
return nil;
|
||||||
@@ -234,7 +277,7 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey";
|
|||||||
case MPDatabaseVersion3:
|
case MPDatabaseVersion3:
|
||||||
return nil;
|
return nil;
|
||||||
case MPDatabaseVersion4:
|
case MPDatabaseVersion4:
|
||||||
NSAssert([self.tree isKindOfClass:[Kdb4Tree class]], @"Tree has to be Version4");
|
NSAssert(self.tree == nil || [self.tree isKindOfClass:[Kdb4Tree class]], @"Tree has to be Version4");
|
||||||
return (Kdb4Tree *)self.tree;
|
return (Kdb4Tree *)self.tree;
|
||||||
default:
|
default:
|
||||||
return nil;
|
return nil;
|
||||||
@@ -279,7 +322,7 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey";
|
|||||||
if(self.treeV4 && ([self.treeV4.defaultUserName length] > 0)) {
|
if(self.treeV4 && ([self.treeV4.defaultUserName length] > 0)) {
|
||||||
newEntry.title = self.treeV4.defaultUserName;
|
newEntry.title = self.treeV4.defaultUserName;
|
||||||
}
|
}
|
||||||
[self group:parent addEntry:newEntry atIndex:[parent.entries count]];
|
[parent addEntryUndoable:newEntry atIndex:[parent.entries count]];
|
||||||
NSDictionary *userInfo = @{ MPDocumentEntryKey : newEntry };
|
NSDictionary *userInfo = @{ MPDocumentEntryKey : newEntry };
|
||||||
[[NSNotificationCenter defaultCenter] postNotificationName:MPDocumentDidAddEntryNotification object:self userInfo:userInfo];
|
[[NSNotificationCenter defaultCenter] postNotificationName:MPDocumentDidAddEntryNotification object:self userInfo:userInfo];
|
||||||
return newEntry;
|
return newEntry;
|
||||||
@@ -292,7 +335,7 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey";
|
|||||||
KdbGroup *newGroup = [self.tree createGroup:parent];
|
KdbGroup *newGroup = [self.tree createGroup:parent];
|
||||||
newGroup.name = NSLocalizedString(@"DEFAULT_GROUP_NAME", @"Title for a newly created group");
|
newGroup.name = NSLocalizedString(@"DEFAULT_GROUP_NAME", @"Title for a newly created group");
|
||||||
newGroup.image = MPIconFolder;
|
newGroup.image = MPIconFolder;
|
||||||
[self group:parent addGroup:newGroup atIndex:[parent.groups count]];
|
[parent addGroupUndoable:newGroup atIndex:[parent.groups count]];
|
||||||
NSDictionary *userInfo = @{ MPDocumentGroupKey : newGroup };
|
NSDictionary *userInfo = @{ MPDocumentGroupKey : newGroup };
|
||||||
[[NSNotificationCenter defaultCenter] postNotificationName:MPDocumentDidAddGroupNotification object:self userInfo:userInfo];
|
[[NSNotificationCenter defaultCenter] postNotificationName:MPDocumentDidAddGroupNotification object:self userInfo:userInfo];
|
||||||
return newGroup;
|
return newGroup;
|
||||||
@@ -307,11 +350,10 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey";
|
|||||||
NSString *title = NSLocalizedString(@"DEFAULT_CUSTOM_FIELD_TITLE", @"Default Titel for new Custom-Fields");
|
NSString *title = NSLocalizedString(@"DEFAULT_CUSTOM_FIELD_TITLE", @"Default Titel for new Custom-Fields");
|
||||||
NSString *value = NSLocalizedString(@"DEFAULT_CUSTOM_FIELD_VALUE", @"Default Value for new Custom-Fields");
|
NSString *value = NSLocalizedString(@"DEFAULT_CUSTOM_FIELD_VALUE", @"Default Value for new Custom-Fields");
|
||||||
StringField *newStringField = [StringField stringFieldWithKey:title andValue:value];
|
StringField *newStringField = [StringField stringFieldWithKey:title andValue:value];
|
||||||
[self entry:entryV4 addStringField:newStringField atIndex:[entryV4.stringFields count]];
|
[self addStringField:newStringField toEntry:entryV4 atIndex:[entryV4.stringFields count]];
|
||||||
return newStringField;
|
return newStringField;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
- (void)moveGroup:(KdbGroup *)group toGroup:(KdbGroup *)target index:(NSInteger)index {
|
- (void)moveGroup:(KdbGroup *)group toGroup:(KdbGroup *)target index:(NSInteger)index {
|
||||||
NSInteger oldIndex = [group.parent.groups indexOfObject:group];
|
NSInteger oldIndex = [group.parent.groups indexOfObject:group];
|
||||||
if(group.parent == target && oldIndex == index) {
|
if(group.parent == target && oldIndex == index) {
|
||||||
@@ -348,91 +390,44 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey";
|
|||||||
return isMovable;
|
return isMovable;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)moveEntry:(KdbEntry *)entry toGroup:(KdbGroup *)target index:(NSInteger)index {
|
- (void)deleteEntry:(KdbEntry *)entry {
|
||||||
NSInteger oldIndex = [entry.parent.entries indexOfObject:entry];
|
if(self.useTrash) {
|
||||||
if(entry.parent == target && oldIndex == index) {
|
if(!self.trash) {
|
||||||
return; // No changes
|
[self _createTrashGroup];
|
||||||
}
|
}
|
||||||
[[[self undoManager] prepareWithInvocationTarget:self] moveEntry:entry toGroup:entry.parent index:oldIndex];
|
[entry moveToTrashUndoable:self.trash atIndex:[self.trash.entries count]];
|
||||||
if(self.trash == target || self.trash == entry.parent) {
|
|
||||||
[[self undoManager] setActionName:@"UNDO_DELETE_ENTRY"];
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
[[self undoManager] setActionName:@"MOVE_ENTRY"];
|
[entry deleteUndoable];
|
||||||
}
|
}
|
||||||
[entry.parent removeObjectFromEntriesAtIndex:oldIndex];
|
|
||||||
if(index < 0 || index > [target.groups count] ) {
|
|
||||||
index = [target.groups count];
|
|
||||||
}
|
|
||||||
[target insertObject:entry inEntriesAtIndex:index];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)group:(KdbGroup *)group addEntry:(KdbEntry *)entry atIndex:(NSUInteger)index {
|
- (void)deleteGroup:(KdbGroup *)group {
|
||||||
[[[self undoManager] prepareWithInvocationTarget:self] group:group removeEntry:entry];
|
|
||||||
[[self undoManager] setActionName:NSLocalizedString(@"UNDO_ADD_ENTRY", "Undo adding of entry")];
|
|
||||||
[group insertObject:entry inEntriesAtIndex:index];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)group:(KdbGroup *)group addGroup:(KdbGroup *)aGroup atIndex:(NSUInteger)index {
|
|
||||||
[[[self undoManager] prepareWithInvocationTarget:self] group:group removeGroup:aGroup];
|
|
||||||
[[self undoManager] setActionName:NSLocalizedString(@"UNDO_ADD_GROUP", @"Create Group Undo")];
|
|
||||||
[group insertObject:aGroup inGroupsAtIndex:index];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)group:(KdbGroup *)group removeEntry:(KdbEntry *)entry {
|
|
||||||
NSInteger index = [group.entries indexOfObject:entry];
|
|
||||||
if(NSNotFound == index) {
|
|
||||||
return; // No object found;
|
|
||||||
}
|
|
||||||
if(self.useTrash) {
|
if(self.useTrash) {
|
||||||
if(!self.trash) {
|
if(!self.trash) {
|
||||||
[self _createTrashGroup];
|
[self _createTrashGroup];
|
||||||
}
|
}
|
||||||
[self moveEntry:entry toGroup:self.trash index:[self.trash.entries count]];
|
[group moveToTrashUndoable:self.trash atIndex:[self.trash.groups count]];
|
||||||
return;
|
}
|
||||||
|
else {
|
||||||
|
[group deleteUndoable];
|
||||||
}
|
}
|
||||||
[[[self undoManager] prepareWithInvocationTarget:self] group:group addEntry:entry atIndex:index];
|
|
||||||
[[self undoManager] setActionName:NSLocalizedString(@"UNDO_DELETE_ENTRY", "Undo deleting of entry")];
|
|
||||||
[group removeObjectFromEntriesAtIndex:index];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)group:(KdbGroup *)group removeGroup:(KdbGroup *)aGroup {
|
#pragma mark CustomFields
|
||||||
NSInteger index = [group.groups indexOfObject:aGroup];
|
|
||||||
if(NSNotFound == index) {
|
|
||||||
return; // No object found
|
|
||||||
}
|
|
||||||
if(self.trash == aGroup) {
|
|
||||||
return;
|
|
||||||
// delete Trash?
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
Cleaning the recyclebin is not undoable
|
|
||||||
So we do this in a separate action
|
|
||||||
*/
|
|
||||||
if(self.useTrash) {
|
|
||||||
if(!self.trash) {
|
|
||||||
[self _createTrashGroup];
|
|
||||||
}
|
|
||||||
[self moveGroup:aGroup toGroup:self.trash index:[self.trash.groups count]];
|
|
||||||
return; // Done!
|
|
||||||
}
|
|
||||||
[[[self undoManager] prepareWithInvocationTarget:self] group:group addGroup:aGroup atIndex:index];
|
|
||||||
[[self undoManager] setActionName:NSLocalizedString(@"UNDO_DELETE_GROUP", @"Delete Group Undo")];
|
|
||||||
[group removeObjectFromGroupsAtIndex:index];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)entry:(Kdb4Entry *)entry addStringField:(StringField *)field atIndex:(NSUInteger)index {
|
- (void)addStringField:(StringField *)field toEntry:(Kdb4Entry *)entry atIndex:(NSUInteger)index {
|
||||||
[[[self undoManager] prepareWithInvocationTarget:self] entry:entry removeStringField:field];
|
[[[self undoManager] prepareWithInvocationTarget:self] removeStringField:field formEntry:entry];
|
||||||
[[self undoManager] setActionName:NSLocalizedString(@"UNDO_ADD_STRING_FIELD", @"Add Stringfield Undo")];
|
[[self undoManager] setActionName:NSLocalizedString(@"UNDO_ADD_STRING_FIELD", @"Add Stringfield Undo")];
|
||||||
[entry insertObject:field inStringFieldsAtIndex:index];
|
[entry insertObject:field inStringFieldsAtIndex:index];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)entry:(Kdb4Entry *)entry removeStringField:(StringField *)field {
|
- (void)removeStringField:(StringField *)field formEntry:(Kdb4Entry *)entry {
|
||||||
NSInteger index = [entry.stringFields indexOfObject:field];
|
NSInteger index = [entry.stringFields indexOfObject:field];
|
||||||
if(NSNotFound == index) {
|
if(NSNotFound == index) {
|
||||||
return; // Nothing found to be removed
|
return; // Nothing found to be removed
|
||||||
}
|
}
|
||||||
[[[self undoManager] prepareWithInvocationTarget:self] entry:entry addStringField:field atIndex:index];
|
[[[self undoManager] prepareWithInvocationTarget:self] addStringField:field toEntry:entry atIndex:index];
|
||||||
[[self undoManager] setActionName:NSLocalizedString(@"UNDO_DELETE_STRING_FIELD", @"Delte Stringfield undo")];
|
[[self undoManager] setActionName:NSLocalizedString(@"UNDO_DELETE_STRING_FIELD", @"Delte Stringfield undo")];
|
||||||
[entry removeObjectFromStringFieldsAtIndex:index];
|
[entry removeObjectFromStringFieldsAtIndex:index];
|
||||||
}
|
}
|
||||||
@@ -440,20 +435,41 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey";
|
|||||||
#pragma mark Actions
|
#pragma mark Actions
|
||||||
|
|
||||||
- (void)emptyTrash:(id)sender {
|
- (void)emptyTrash:(id)sender {
|
||||||
[[self undoManager] setActionIsDiscardable:YES];
|
NSAlert *alert = [[NSAlert alloc] init];
|
||||||
[self.trash clear];
|
[alert setAlertStyle:NSWarningAlertStyle];
|
||||||
|
[alert setMessageText:NSLocalizedString(@"WARNING_ON_EMPTY_TRASH_TITLE", "")];
|
||||||
|
[alert setInformativeText:NSLocalizedString(@"WARNING_ON_EMPTY_TRASH_DESCRIPTION", "Informative Text displayed when clearing the Trash")];
|
||||||
|
[alert addButtonWithTitle:NSLocalizedString(@"EMPTY_TRASH", "Empty Trash")];
|
||||||
|
[alert addButtonWithTitle:NSLocalizedString(@"CANCEL", "Cancel")];
|
||||||
|
|
||||||
|
[[alert buttons][1] setKeyEquivalent:[NSString stringWithFormat:@"%c", 0x1b]];
|
||||||
|
|
||||||
|
NSWindow *window = [[self windowControllers][0] window];
|
||||||
|
[alert beginSheetModalForWindow:window modalDelegate:self didEndSelector:@selector(alertDidEnd:returnCode:contextInfo:) contextInfo:NULL];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (BOOL)validateMenuItem:(NSMenuItem *)menuItem {
|
- (void) alertDidEnd:(NSAlert *)alert returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo {
|
||||||
if([menuItem action] == [MPActionHelper actionOfType:MPActionEmptyTrash]) {
|
if(returnCode == NSAlertFirstButtonReturn) {
|
||||||
|
[self _emptyTrash];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)validateUserInterfaceItem:(id<NSValidatedUserInterfaceItem>)anItem {
|
||||||
|
if([anItem action] == [MPActionHelper actionOfType:MPActionEmptyTrash]) {
|
||||||
BOOL hasGroups = [self.trash.groups count] > 0;
|
BOOL hasGroups = [self.trash.groups count] > 0;
|
||||||
BOOL hasEntries = [self.trash.entries count] > 0;
|
BOOL hasEntries = [self.trash.entries count] > 0;
|
||||||
return (hasEntries || hasGroups);
|
return (hasEntries || hasGroups);
|
||||||
}
|
}
|
||||||
return YES;
|
return [super validateUserInterfaceItem:anItem];
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma mark Private
|
#pragma mark Private
|
||||||
|
- (void)_updateIsSecured {
|
||||||
|
BOOL securePassword = ([self.password length] > 0);
|
||||||
|
BOOL secureKey = (nil != self.key);
|
||||||
|
self.hasPasswordOrKey = (secureKey || securePassword);
|
||||||
|
}
|
||||||
|
|
||||||
- (void)_cleanupLock {
|
- (void)_cleanupLock {
|
||||||
if(_didLockFile) {
|
if(_didLockFile) {
|
||||||
[[NSFileManager defaultManager] removeItemAtURL:_lockFileURL error:nil];
|
[[NSFileManager defaultManager] removeItemAtURL:_lockFileURL error:nil];
|
||||||
@@ -468,7 +484,7 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey";
|
|||||||
}
|
}
|
||||||
else if(self.version == MPDatabaseVersion4) {
|
else if(self.version == MPDatabaseVersion4) {
|
||||||
KdbGroup *trash = [self.tree createGroup:self.tree.root];
|
KdbGroup *trash = [self.tree createGroup:self.tree.root];
|
||||||
trash.name = NSLocalizedString(@"TRASH_GROUP", @"Name for the trash group");
|
trash.name = NSLocalizedString(@"TRASH", @"Name for the trash group");
|
||||||
trash.image = MPIconTrash;
|
trash.image = MPIconTrash;
|
||||||
[self.tree.root insertObject:trash inGroupsAtIndex:[self.tree.root.groups count]];
|
[self.tree.root insertObject:trash inGroupsAtIndex:[self.tree.root.groups count]];
|
||||||
self.treeV4.recycleBinUuid = ((Kdb4Group *)trash).uuid;
|
self.treeV4.recycleBinUuid = ((Kdb4Group *)trash).uuid;
|
||||||
@@ -480,4 +496,14 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey";
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)_emptyTrash {
|
||||||
|
for(KdbEntry *entry in [self.trash childEntries]) {
|
||||||
|
[[self undoManager] removeAllActionsWithTarget:entry];
|
||||||
|
}
|
||||||
|
for(KdbGroup *group in [self.trash childGroups]) {
|
||||||
|
[[self undoManager] removeAllActionsWithTarget:group];
|
||||||
|
}
|
||||||
|
[self.trash clear];
|
||||||
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -1,128 +0,0 @@
|
|||||||
//
|
|
||||||
// MPDocumentSettingsWindowController.m
|
|
||||||
// MacPass
|
|
||||||
//
|
|
||||||
// Created by Michael Starke on 26.06.13.
|
|
||||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "MPDocumentSettingsWindowController.h"
|
|
||||||
#import "MPDocument.h"
|
|
||||||
#import "MPDocumentWindowController.h"
|
|
||||||
#import "MPDatabaseVersion.h"
|
|
||||||
#import "MPIconHelper.h"
|
|
||||||
|
|
||||||
#import "Kdb.h"
|
|
||||||
#import "Kdb4Node.h"
|
|
||||||
#import "KdbGroup+MPAdditions.h"
|
|
||||||
|
|
||||||
@interface MPDocumentSettingsWindowController () {
|
|
||||||
MPDocument *_document;
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@implementation MPDocumentSettingsWindowController
|
|
||||||
|
|
||||||
- (id)init {
|
|
||||||
return [self initWithDocument:nil];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (id)initWithDocument:(MPDocument *)document {
|
|
||||||
self = [super initWithWindowNibName:@"DocumentSettingsWindow"];
|
|
||||||
if(self) {
|
|
||||||
_document = document;
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)windowDidLoad {
|
|
||||||
[super windowDidLoad];
|
|
||||||
|
|
||||||
NSAssert(_document != nil, @"Document needs to be present");
|
|
||||||
|
|
||||||
Kdb4Tree *tree = _document.treeV4;
|
|
||||||
if( tree ) {
|
|
||||||
[self _setupDatabase:tree];
|
|
||||||
[self _setupProtectionTab:tree];
|
|
||||||
[self _setupAdvancedTab:tree];
|
|
||||||
[self _setupPasswordTab:tree];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// Switch to KdbV3 View
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)close:(id)sender {
|
|
||||||
[NSApp endSheet:[self window]];
|
|
||||||
[[self window] orderOut:nil];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)update {
|
|
||||||
/* Update all stuff that might have changed */
|
|
||||||
Kdb4Tree *tree = _document.treeV4;
|
|
||||||
if(tree) {
|
|
||||||
[self _updateTrashFolders:tree];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark Private Helper
|
|
||||||
- (void)_setupDatabase:(Kdb4Tree *)tree {
|
|
||||||
[self.databaseNameTextField bind:NSValueBinding toObject:tree withKeyPath:@"databaseName" options:nil];
|
|
||||||
[self.databaseDescriptionTextView bind:NSValueBinding toObject:tree withKeyPath:@"databaseDescription" options:nil];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)_setupProtectionTab:(Kdb4Tree *)tree {
|
|
||||||
[self.protectNotesCheckButton bind:NSValueBinding toObject:tree withKeyPath:@"protectNotes" options:nil];
|
|
||||||
[self.protectPasswortCheckButton bind:NSValueBinding toObject:tree withKeyPath:@"protectPassword" options:nil];
|
|
||||||
[self.protectTitleCheckButton bind:NSValueBinding toObject:tree withKeyPath:@"protectTitle" options:nil];
|
|
||||||
[self.protectURLCheckButton bind:NSValueBinding toObject:tree withKeyPath:@"protectUrl" options:nil];
|
|
||||||
[self.protectUserNameCheckButton bind:NSValueBinding toObject:tree withKeyPath:@"protectUserName" options:nil];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)_setupAdvancedTab:(Kdb4Tree *)tree {
|
|
||||||
[self.enableRecycleBinCheckButton bind:NSValueBinding toObject:tree withKeyPath:@"recycleBinEnabled" options:nil];
|
|
||||||
[self.selectRecycleBinGroupPopUpButton bind:NSEnabledBinding toObject:tree withKeyPath:@"recycleBinEnabled" options:nil];
|
|
||||||
[self _updateTrashFolders:tree];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)_setupPasswordTab:(Kdb4Tree *)tree {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
- (void)_didSelectTrashFolder:(id)sender {
|
|
||||||
NSMenuItem *menuItem = sender;
|
|
||||||
/* if we do not get a group, use nil to reset the trash */
|
|
||||||
KdbGroup *group = [menuItem representedObject];
|
|
||||||
[_document useGroupAsTrash:group];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)_updateTrashFolders:(Kdb4Tree *)tree {
|
|
||||||
NSMenu *menu = [self _buildTreeMenu:tree];
|
|
||||||
[self.selectRecycleBinGroupPopUpButton setMenu:menu];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSMenu *)_buildTreeMenu:(Kdb4Tree *)tree {
|
|
||||||
NSMenu *menu = [[NSMenu alloc] init];
|
|
||||||
|
|
||||||
for(Kdb4Group *group in tree.root.groups) {
|
|
||||||
NSMenuItem *groupItem = [[NSMenuItem alloc] init];
|
|
||||||
[groupItem setImage:group.icon];
|
|
||||||
[groupItem setTitle:group.name];
|
|
||||||
[groupItem setAction:@selector(_didSelectTrashFolder:)];
|
|
||||||
[groupItem setTarget:self];
|
|
||||||
[groupItem setRepresentedObject:group];
|
|
||||||
if([group.uuid isEqual:tree.recycleBinUuid]) {
|
|
||||||
[groupItem setState:NSOnState];
|
|
||||||
}
|
|
||||||
[menu addItem:groupItem];
|
|
||||||
}
|
|
||||||
NSMenuItem *selectItem = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"SELECT_RECYCLEBIN", @"Menu item if no reycleBin is selected") action:NULL keyEquivalent:@""];
|
|
||||||
[selectItem setAction:@selector(_didSelectTrashFolder:)];
|
|
||||||
[selectItem setTarget:self];
|
|
||||||
[menu insertItem:selectItem atIndex:0];
|
|
||||||
|
|
||||||
return menu;
|
|
||||||
}
|
|
||||||
@end
|
|
||||||
@@ -11,7 +11,6 @@
|
|||||||
@class MPViewController;
|
@class MPViewController;
|
||||||
@class MPEntryViewController;
|
@class MPEntryViewController;
|
||||||
@class MPInspectorViewController;
|
@class MPInspectorViewController;
|
||||||
@class MPPasswordEditViewController;
|
|
||||||
@class MPPasswordInputController;
|
@class MPPasswordInputController;
|
||||||
@class MPOutlineViewController;
|
@class MPOutlineViewController;
|
||||||
|
|
||||||
@@ -23,7 +22,6 @@ APPKIT_EXTERN NSString *const MPCurrentItemChangedNotification;
|
|||||||
@interface MPDocumentWindowController : NSWindowController <NSWindowDelegate>
|
@interface MPDocumentWindowController : NSWindowController <NSWindowDelegate>
|
||||||
|
|
||||||
@property (readonly, strong) MPPasswordInputController *passwordInputController;
|
@property (readonly, strong) MPPasswordInputController *passwordInputController;
|
||||||
@property (readonly, strong) MPPasswordEditViewController *passwordEditController;
|
|
||||||
@property (readonly, strong) MPEntryViewController *entryViewController;
|
@property (readonly, strong) MPEntryViewController *entryViewController;
|
||||||
@property (readonly, strong) MPOutlineViewController *outlineViewController;
|
@property (readonly, strong) MPOutlineViewController *outlineViewController;
|
||||||
@property (readonly, strong) MPInspectorViewController *inspectorViewController;
|
@property (readonly, strong) MPInspectorViewController *inspectorViewController;
|
||||||
@@ -39,7 +37,8 @@ APPKIT_EXTERN NSString *const MPCurrentItemChangedNotification;
|
|||||||
- (void)showPasswordInput;
|
- (void)showPasswordInput;
|
||||||
- (void)performFindPanelAction:(id)sender;
|
- (void)performFindPanelAction:(id)sender;
|
||||||
- (IBAction)editPassword:(id)sender;
|
- (IBAction)editPassword:(id)sender;
|
||||||
- (IBAction)showDocumentSettings:(id)sender;
|
- (IBAction)showDatabaseSettings:(id)sender;
|
||||||
|
- (IBAction)exportDatabase:(id)sender;
|
||||||
|
|
||||||
- (void)lock:(id)sender;
|
- (void)lock:(id)sender;
|
||||||
|
|
||||||
|
|||||||
@@ -10,13 +10,12 @@
|
|||||||
#import "MPDocument.h"
|
#import "MPDocument.h"
|
||||||
#import "MPPasswordInputController.h"
|
#import "MPPasswordInputController.h"
|
||||||
#import "MPEntryViewController.h"
|
#import "MPEntryViewController.h"
|
||||||
#import "MPPasswordEditViewController.h"
|
|
||||||
#import "MPToolbarDelegate.h"
|
#import "MPToolbarDelegate.h"
|
||||||
#import "MPOutlineViewController.h"
|
#import "MPOutlineViewController.h"
|
||||||
#import "MPInspectorViewController.h"
|
#import "MPInspectorViewController.h"
|
||||||
#import "MPAppDelegate.h"
|
#import "MPAppDelegate.h"
|
||||||
#import "MPActionHelper.h"
|
#import "MPActionHelper.h"
|
||||||
#import "MPDocumentSettingsWindowController.h"
|
#import "MPDatabaseSettingsWindowController.h"
|
||||||
#import "MPConstants.h"
|
#import "MPConstants.h"
|
||||||
|
|
||||||
NSString *const MPCurrentItemChangedNotification = @"com.hicknhack.macpass.MPCurrentItemChangedNotification";
|
NSString *const MPCurrentItemChangedNotification = @"com.hicknhack.macpass.MPCurrentItemChangedNotification";
|
||||||
@@ -34,11 +33,10 @@ NSString *const MPCurrentItemChangedNotification = @"com.hicknhack.macpass.MPCur
|
|||||||
@property (unsafe_unretained) KdbEntry *currentEntry;
|
@property (unsafe_unretained) KdbEntry *currentEntry;
|
||||||
|
|
||||||
@property (strong) MPPasswordInputController *passwordInputController;
|
@property (strong) MPPasswordInputController *passwordInputController;
|
||||||
@property (strong) MPPasswordEditViewController *passwordEditController;
|
|
||||||
@property (strong) MPEntryViewController *entryViewController;
|
@property (strong) MPEntryViewController *entryViewController;
|
||||||
@property (strong) MPOutlineViewController *outlineViewController;
|
@property (strong) MPOutlineViewController *outlineViewController;
|
||||||
@property (strong) MPInspectorViewController *inspectorViewController;
|
@property (strong) MPInspectorViewController *inspectorViewController;
|
||||||
@property (strong) MPDocumentSettingsWindowController *documentSettingsWindowController;
|
@property (strong) MPDatabaseSettingsWindowController *documentSettingsWindowController;
|
||||||
|
|
||||||
@property (strong) MPToolbarDelegate *toolbarDelegate;
|
@property (strong) MPToolbarDelegate *toolbarDelegate;
|
||||||
|
|
||||||
@@ -52,7 +50,6 @@ NSString *const MPCurrentItemChangedNotification = @"com.hicknhack.macpass.MPCur
|
|||||||
_firstResponder = nil;
|
_firstResponder = nil;
|
||||||
_toolbarDelegate = [[MPToolbarDelegate alloc] init];
|
_toolbarDelegate = [[MPToolbarDelegate alloc] init];
|
||||||
_outlineViewController = [[MPOutlineViewController alloc] init];
|
_outlineViewController = [[MPOutlineViewController alloc] init];
|
||||||
_passwordEditController = [[MPPasswordEditViewController alloc] init];
|
|
||||||
_entryViewController = [[MPEntryViewController alloc] init];
|
_entryViewController = [[MPEntryViewController alloc] init];
|
||||||
_inspectorViewController = [[MPInspectorViewController alloc] init];
|
_inspectorViewController = [[MPInspectorViewController alloc] init];
|
||||||
_currentItem = nil;
|
_currentItem = nil;
|
||||||
@@ -100,7 +97,7 @@ NSString *const MPCurrentItemChangedNotification = @"com.hicknhack.macpass.MPCur
|
|||||||
[[self window] setDelegate:self];
|
[[self window] setDelegate:self];
|
||||||
|
|
||||||
MPDocument *document = [self document];
|
MPDocument *document = [self document];
|
||||||
if(!document.isDecrypted) {
|
if(!document.decrypted) {
|
||||||
[self showPasswordInput];
|
[self showPasswordInput];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -165,23 +162,44 @@ NSString *const MPCurrentItemChangedNotification = @"com.hicknhack.macpass.MPCur
|
|||||||
}
|
}
|
||||||
|
|
||||||
#pragma mark Actions
|
#pragma mark Actions
|
||||||
|
- (void)exportDatabase:(id)sender {
|
||||||
|
NSSavePanel *savePanel = [NSSavePanel savePanel];
|
||||||
|
[savePanel setAllowsOtherFileTypes:YES];
|
||||||
|
[savePanel beginSheetModalForWindow:self.window completionHandler:^(NSInteger result) {
|
||||||
|
if(result == NSFileHandlingPanelOKButton) {
|
||||||
|
[[self document] writeXMLToURL:savePanel.URL];
|
||||||
|
}
|
||||||
|
}];
|
||||||
|
}
|
||||||
- (void)performFindPanelAction:(id)sender {
|
- (void)performFindPanelAction:(id)sender {
|
||||||
[self.entryViewController showFilter:sender];
|
[self.entryViewController showFilter:sender];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (BOOL)validateMenuItem:(NSMenuItem *)menuItem {
|
- (BOOL)validateMenuItem:(NSMenuItem *)menuItem {
|
||||||
MPDocument *document = [self document];
|
MPDocument *document = [self document];
|
||||||
return !( document.isLocked || document.isReadOnly );
|
SEL itemAction = [menuItem action];
|
||||||
|
if(itemAction == @selector(showDatabaseSettings:)
|
||||||
|
|| itemAction == @selector(editPassword:)) {
|
||||||
|
return document.decrypted && !document.isLocked;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL enabled = YES;
|
||||||
|
if(itemAction == @selector(exportDatabase:)) {
|
||||||
|
enabled = (nil != document.treeV4);
|
||||||
|
}
|
||||||
|
|
||||||
|
enabled &= !( !document.decrypted || document.isLocked || document.isReadOnly );
|
||||||
|
return enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (BOOL)validateToolbarItem:(NSToolbarItem *)theItem {
|
- (BOOL)validateToolbarItem:(NSToolbarItem *)theItem {
|
||||||
MPDocument *document = [self document];
|
MPDocument *document = [self document];
|
||||||
if(document.isLocked || document.isReadOnly) {
|
if(!document.decrypted || document.isLocked || document.isReadOnly) {
|
||||||
return NO;
|
return NO;
|
||||||
}
|
}
|
||||||
SEL itemAction = [theItem action];
|
SEL itemAction = [theItem action];
|
||||||
if( itemAction == [MPActionHelper actionOfType:MPActionLock]) {
|
if( itemAction == [MPActionHelper actionOfType:MPActionLock]) {
|
||||||
return document.isSecured;
|
return document.hasPasswordOrKey;
|
||||||
}
|
}
|
||||||
if(itemAction == [MPActionHelper actionOfType:MPActionAddEntry]) {
|
if(itemAction == [MPActionHelper actionOfType:MPActionAddEntry]) {
|
||||||
return (nil != _outlineViewController.selectedGroup);
|
return (nil != _outlineViewController.selectedGroup);
|
||||||
@@ -205,23 +223,16 @@ NSString *const MPCurrentItemChangedNotification = @"com.hicknhack.macpass.MPCur
|
|||||||
}
|
}
|
||||||
|
|
||||||
- (void)editPassword:(id)sender {
|
- (void)editPassword:(id)sender {
|
||||||
if(!self.passwordEditController) {
|
[self _showDatabaseSetting:MPDatabaseSettingsTabPassword];
|
||||||
_passwordEditController = [[MPPasswordEditViewController alloc] init];
|
|
||||||
}
|
|
||||||
[self _setContentViewController:self.passwordEditController];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)showDocumentSettings:(id)sender {
|
- (void)showDatabaseSettings:(id)sender {
|
||||||
if(!self.documentSettingsWindowController) {
|
[self _showDatabaseSetting:MPDatabaseSettingsTabGeneral];
|
||||||
_documentSettingsWindowController = [[MPDocumentSettingsWindowController alloc] initWithDocument:[self document]];
|
|
||||||
}
|
|
||||||
[_documentSettingsWindowController update];
|
|
||||||
[[NSApplication sharedApplication] beginSheet:[_documentSettingsWindowController window] modalForWindow:[self window] modalDelegate:nil didEndSelector:NULL contextInfo:NULL];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)lock:(id)sender {
|
- (void)lock:(id)sender {
|
||||||
MPDocument *document = [self document];
|
MPDocument *document = [self document];
|
||||||
if(!document.isSecured) {
|
if(!document.hasPasswordOrKey) {
|
||||||
return; // Document needs a password/keyfile to be lockable
|
return; // Document needs a password/keyfile to be lockable
|
||||||
}
|
}
|
||||||
if(document.isLocked) {
|
if(document.isLocked) {
|
||||||
@@ -335,6 +346,16 @@ NSString *const MPCurrentItemChangedNotification = @"com.hicknhack.macpass.MPCur
|
|||||||
|
|
||||||
|
|
||||||
#pragma mark Helper
|
#pragma mark Helper
|
||||||
|
|
||||||
|
- (void)_showDatabaseSetting:(MPDatabaseSettingsTab)tab {
|
||||||
|
if(!self.documentSettingsWindowController) {
|
||||||
|
_documentSettingsWindowController = [[MPDatabaseSettingsWindowController alloc] initWithDocument:[self document]];
|
||||||
|
}
|
||||||
|
[self.documentSettingsWindowController update];
|
||||||
|
[self.documentSettingsWindowController showSettingsTab:tab];
|
||||||
|
[[NSApplication sharedApplication] beginSheet:[self.documentSettingsWindowController window] modalForWindow:[self window] modalDelegate:nil didEndSelector:NULL contextInfo:NULL];
|
||||||
|
}
|
||||||
|
|
||||||
- (NSSearchField *)locateToolbarSearchField {
|
- (NSSearchField *)locateToolbarSearchField {
|
||||||
for(NSToolbarItem *toolbarItem in [[self.window toolbar] items]) {
|
for(NSToolbarItem *toolbarItem in [[self.window toolbar] items]) {
|
||||||
NSView *view = [toolbarItem view];
|
NSView *view = [toolbarItem view];
|
||||||
|
|||||||
16
MacPass/MPEntryMenuDelegate.h
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
//
|
||||||
|
// MPEntryMenuDelegate.h
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 17.07.13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
@class MPEntryViewController;
|
||||||
|
|
||||||
|
@interface MPEntryMenuDelegate : NSObject <NSMenuDelegate>
|
||||||
|
|
||||||
|
@property (weak) MPEntryViewController *viewController;
|
||||||
|
|
||||||
|
@end
|
||||||
54
MacPass/MPEntryMenuDelegate.m
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
//
|
||||||
|
// MPEntryMenuDelegate.m
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 17.07.13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "MPEntryMenuDelegate.h"
|
||||||
|
#import "MPEntryViewController.h"
|
||||||
|
|
||||||
|
#import "Kdb4Node.h"
|
||||||
|
|
||||||
|
static NSUInteger const kMPCustomFieldMenuItem = 1000;
|
||||||
|
static NSUInteger const kMPAttachmentsMenuItem = 2000;
|
||||||
|
|
||||||
|
@implementation MPEntryMenuDelegate
|
||||||
|
|
||||||
|
- (void)menuNeedsUpdate:(NSMenu *)menu {
|
||||||
|
NSMenuItem *fieldsMenu = [menu itemWithTag:kMPCustomFieldMenuItem];
|
||||||
|
NSMenuItem *attachmentsMenu = [menu itemWithTag:kMPAttachmentsMenuItem];
|
||||||
|
if(fieldsMenu) {
|
||||||
|
[menu removeItem:fieldsMenu];
|
||||||
|
}
|
||||||
|
if(attachmentsMenu) {
|
||||||
|
[menu removeItem:attachmentsMenu];
|
||||||
|
}
|
||||||
|
|
||||||
|
NSMenuItem *lastItem = [[menu itemArray] lastObject];
|
||||||
|
if([lastItem isSeparatorItem]) {
|
||||||
|
[menu removeItem:lastItem];
|
||||||
|
}
|
||||||
|
|
||||||
|
if([self.viewController.selectedEntry isKindOfClass:[Kdb4Entry class]]) {
|
||||||
|
Kdb4Entry *entry = (Kdb4Entry *)self.viewController.selectedEntry;
|
||||||
|
if([entry.stringFields count] > 0) {
|
||||||
|
[menu addItem:[NSMenuItem separatorItem]];
|
||||||
|
NSMenuItem *customFieldsItem = [[NSMenuItem alloc] init];
|
||||||
|
NSMenu *submenu = [[NSMenu alloc] initWithTitle:@"Fields"];
|
||||||
|
[customFieldsItem setTitle:NSLocalizedString(@"COPY_CUSTOM_FIELDS", "Submenu to Copy custom fields")];
|
||||||
|
[customFieldsItem setTag:kMPCustomFieldMenuItem];
|
||||||
|
for (StringField *field in entry.stringFields) {
|
||||||
|
NSString *title = [NSString stringWithFormat:NSLocalizedString(@"COPY_FIELD_%@", "Mask for title to copy field value"), field.key];
|
||||||
|
NSMenuItem *item = [[NSMenuItem alloc] initWithTitle:title action:@selector(copyCustomField:) keyEquivalent:@""];
|
||||||
|
[item setTag:[entry.stringFields indexOfObject:field]];
|
||||||
|
[submenu addItem:item];
|
||||||
|
}
|
||||||
|
[customFieldsItem setSubmenu:submenu];
|
||||||
|
[menu addItem:customFieldsItem];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
@@ -48,9 +48,11 @@ typedef NS_ENUM( NSUInteger, MPCopyContentTypeTag) {
|
|||||||
/* Copy/Paste */
|
/* Copy/Paste */
|
||||||
- (void)copyUsername:(id)sender;
|
- (void)copyUsername:(id)sender;
|
||||||
- (void)copyPassword:(id)sender;
|
- (void)copyPassword:(id)sender;
|
||||||
|
- (void)copyCustomField:(id)sender;
|
||||||
- (void)copyURL:(id)sender;
|
- (void)copyURL:(id)sender;
|
||||||
- (void)openURL:(id)sender;
|
- (void)openURL:(id)sender;
|
||||||
|
|
||||||
|
|
||||||
/* Entry Handling*/
|
/* Entry Handling*/
|
||||||
- (void)deleteNode:(id)sender;
|
- (void)deleteNode:(id)sender;
|
||||||
|
|
||||||
|
|||||||
@@ -20,10 +20,12 @@
|
|||||||
#import "MPConstants.h"
|
#import "MPConstants.h"
|
||||||
#import "MPEntryTableDataSource.h"
|
#import "MPEntryTableDataSource.h"
|
||||||
#import "MPStringLengthValueTransformer.h"
|
#import "MPStringLengthValueTransformer.h"
|
||||||
|
#import "MPEntryMenuDelegate.h"
|
||||||
|
|
||||||
#import "HNHTableHeaderCell.h"
|
#import "HNHTableHeaderCell.h"
|
||||||
#import "HNHGradientView.h"
|
#import "HNHGradientView.h"
|
||||||
|
|
||||||
|
#import "Kdb4Node.h"
|
||||||
#import "KdbGroup+MPTreeTools.h"
|
#import "KdbGroup+MPTreeTools.h"
|
||||||
#import "KdbGroup+Undo.h"
|
#import "KdbGroup+Undo.h"
|
||||||
#import "KdbEntry+Undo.h"
|
#import "KdbEntry+Undo.h"
|
||||||
@@ -43,6 +45,7 @@ typedef NS_ENUM(NSUInteger,MPOVerlayInfoType) {
|
|||||||
MPOverlayInfoPassword,
|
MPOverlayInfoPassword,
|
||||||
MPOverlayInfoUsername,
|
MPOverlayInfoUsername,
|
||||||
MPOverlayInfoURL,
|
MPOverlayInfoURL,
|
||||||
|
MPOverlayInfoCustom
|
||||||
};
|
};
|
||||||
|
|
||||||
NSString *const MPEntryTableUserNameColumnIdentifier = @"MPUserNameColumnIdentifier";
|
NSString *const MPEntryTableUserNameColumnIdentifier = @"MPUserNameColumnIdentifier";
|
||||||
@@ -59,7 +62,9 @@ NSString *const _toggleFilterURLButton = @"SearchURL";
|
|||||||
NSString *const _toggleFilterTitleButton = @"SearchTitle";
|
NSString *const _toggleFilterTitleButton = @"SearchTitle";
|
||||||
NSString *const _toggleFilterUsernameButton = @"SearchUsername";
|
NSString *const _toggleFilterUsernameButton = @"SearchUsername";
|
||||||
|
|
||||||
@interface MPEntryViewController ()
|
@interface MPEntryViewController () {
|
||||||
|
MPEntryMenuDelegate *_menuDelegate;
|
||||||
|
}
|
||||||
|
|
||||||
@property (strong) NSArrayController *entryArrayController;
|
@property (strong) NSArrayController *entryArrayController;
|
||||||
@property (strong) NSArray *filteredEntries;
|
@property (strong) NSArray *filteredEntries;
|
||||||
@@ -103,6 +108,9 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername";
|
|||||||
_entryArrayController = [[NSArrayController alloc] init];
|
_entryArrayController = [[NSArrayController alloc] init];
|
||||||
_dataSource = [[MPEntryTableDataSource alloc] init];
|
_dataSource = [[MPEntryTableDataSource alloc] init];
|
||||||
_dataSource.viewController = self;
|
_dataSource.viewController = self;
|
||||||
|
_menuDelegate = [[MPEntryMenuDelegate alloc] init];
|
||||||
|
_menuDelegate.viewController = self;
|
||||||
|
|
||||||
_selectedEntry = nil;
|
_selectedEntry = nil;
|
||||||
}
|
}
|
||||||
return self;
|
return self;
|
||||||
@@ -124,7 +132,7 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername";
|
|||||||
[self.entryTable setDoubleAction:@selector(_columnDoubleClick:)];
|
[self.entryTable setDoubleAction:@selector(_columnDoubleClick:)];
|
||||||
[self.entryTable setTarget:self];
|
[self.entryTable setTarget:self];
|
||||||
[self.entryTable setFloatsGroupRows:NO];
|
[self.entryTable setFloatsGroupRows:NO];
|
||||||
[self.entryTable registerForDraggedTypes:@[MPPasteBoardType]];
|
//[self.entryTable registerForDraggedTypes:@[MPPasteBoardType]];
|
||||||
[self _setupEntryMenu];
|
[self _setupEntryMenu];
|
||||||
|
|
||||||
NSTableColumn *parentColumn = [self.entryTable tableColumns][0];
|
NSTableColumn *parentColumn = [self.entryTable tableColumns][0];
|
||||||
@@ -140,6 +148,9 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername";
|
|||||||
[passwordColumn setIdentifier:MPEntryTablePasswordColumnIdentifier];
|
[passwordColumn setIdentifier:MPEntryTablePasswordColumnIdentifier];
|
||||||
[urlColumn setIdentifier:MPEntryTableURLColumnIdentifier];
|
[urlColumn setIdentifier:MPEntryTableURLColumnIdentifier];
|
||||||
|
|
||||||
|
[self.entryTable setAutosaveName:@"EntryTable"];
|
||||||
|
[self.entryTable setAutosaveTableColumns:YES];
|
||||||
|
|
||||||
NSSortDescriptor *titleColumSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"title" ascending:YES selector:@selector(compare:)];
|
NSSortDescriptor *titleColumSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"title" ascending:YES selector:@selector(compare:)];
|
||||||
NSSortDescriptor *userNameSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"username" ascending:YES selector:@selector(compare:)];
|
NSSortDescriptor *userNameSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"username" ascending:YES selector:@selector(compare:)];
|
||||||
NSSortDescriptor *urlSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"url" ascending:YES selector:@selector(compare:)];
|
NSSortDescriptor *urlSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"url" ascending:YES selector:@selector(compare:)];
|
||||||
@@ -159,6 +170,7 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername";
|
|||||||
[self.entryTable setDataSource:_dataSource];
|
[self.entryTable setDataSource:_dataSource];
|
||||||
|
|
||||||
[parentColumn setHidden:YES];
|
[parentColumn setHidden:YES];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)setupNotifications:(MPDocumentWindowController *)windowController {
|
- (void)setupNotifications:(MPDocumentWindowController *)windowController {
|
||||||
@@ -395,7 +407,7 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername";
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)_copyToPasteboard:(NSString *)data overlayInfo:(MPOVerlayInfoType)overlayInfoType {
|
- (void)_copyToPasteboard:(NSString *)data overlayInfo:(MPOVerlayInfoType)overlayInfoType name:(NSString *)name{
|
||||||
if(data) {
|
if(data) {
|
||||||
[[MPPasteBoardController defaultController] copyObjects:@[ data ]];
|
[[MPPasteBoardController defaultController] copyObjects:@[ data ]];
|
||||||
}
|
}
|
||||||
@@ -416,6 +428,11 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername";
|
|||||||
infoImage = [[NSBundle mainBundle] imageForResource:@"09_IdentityTemplate"];
|
infoImage = [[NSBundle mainBundle] imageForResource:@"09_IdentityTemplate"];
|
||||||
infoText = NSLocalizedString(@"COPIED_USERNAME", @"Username was copied to the pasteboard");
|
infoText = NSLocalizedString(@"COPIED_USERNAME", @"Username was copied to the pasteboard");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case MPOverlayInfoCustom:
|
||||||
|
infoImage = [[NSBundle mainBundle] imageForResource:@"00_PasswordTemplate"];
|
||||||
|
infoText = [NSString stringWithFormat:NSLocalizedString(@"COPIED_FIELD_%@", "Field nam that was copied to the pasteboard"), name];
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
[[MPOverlayWindowController sharedController] displayOverlayImage:infoImage label:infoText atView:self.view];
|
[[MPOverlayWindowController sharedController] displayOverlayImage:infoImage label:infoText atView:self.view];
|
||||||
}
|
}
|
||||||
@@ -429,7 +446,9 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername";
|
|||||||
for(NSMenuItem *item in items) {
|
for(NSMenuItem *item in items) {
|
||||||
[menu addItem:item];
|
[menu addItem:item];
|
||||||
}
|
}
|
||||||
|
[menu setDelegate:_menuDelegate];
|
||||||
[self.entryTable setMenu:menu];
|
[self.entryTable setMenu:menu];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma makr Action Helper
|
#pragma makr Action Helper
|
||||||
@@ -451,21 +470,32 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername";
|
|||||||
- (void)copyPassword:(id)sender {
|
- (void)copyPassword:(id)sender {
|
||||||
KdbEntry *selectedEntry = [self _clickedOrSelectedEntry];
|
KdbEntry *selectedEntry = [self _clickedOrSelectedEntry];
|
||||||
if(selectedEntry) {
|
if(selectedEntry) {
|
||||||
[self _copyToPasteboard:selectedEntry.password overlayInfo:MPOverlayInfoPassword];
|
[self _copyToPasteboard:selectedEntry.password overlayInfo:MPOverlayInfoPassword name:nil];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)copyUsername:(id)sender {
|
- (void)copyUsername:(id)sender {
|
||||||
KdbEntry *selectedEntry = [self _clickedOrSelectedEntry];
|
KdbEntry *selectedEntry = [self _clickedOrSelectedEntry];
|
||||||
if(selectedEntry) {
|
if(selectedEntry) {
|
||||||
[self _copyToPasteboard:selectedEntry.username overlayInfo:MPOverlayInfoUsername];
|
[self _copyToPasteboard:selectedEntry.username overlayInfo:MPOverlayInfoUsername name:nil];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)copyCustomField:(id)sender {
|
||||||
|
KdbEntry *selectedEntry = [self _clickedOrSelectedEntry];
|
||||||
|
if(selectedEntry && [selectedEntry isKindOfClass:[Kdb4Entry class]]) {
|
||||||
|
Kdb4Entry *entry = (Kdb4Entry *)selectedEntry;
|
||||||
|
NSUInteger index = [sender tag];
|
||||||
|
NSAssert((index >= 0) && (index < [entry.stringFields count]), @"Index for custom field needs to be valid");
|
||||||
|
StringField *field = entry.stringFields[index];
|
||||||
|
[self _copyToPasteboard:field.value overlayInfo:MPOverlayInfoCustom name:field.key];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)copyURL:(id)sender {
|
- (void)copyURL:(id)sender {
|
||||||
KdbEntry *selectedEntry = [self _clickedOrSelectedEntry];
|
KdbEntry *selectedEntry = [self _clickedOrSelectedEntry];
|
||||||
if(selectedEntry) {
|
if(selectedEntry) {
|
||||||
[self _copyToPasteboard:selectedEntry.url overlayInfo:MPOverlayInfoURL];
|
[self _copyToPasteboard:selectedEntry.url overlayInfo:MPOverlayInfoURL name:nil];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -480,7 +510,7 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername";
|
|||||||
- (void)deleteNode:(id)sender {
|
- (void)deleteNode:(id)sender {
|
||||||
KdbEntry *entry =[self _clickedOrSelectedEntry];
|
KdbEntry *entry =[self _clickedOrSelectedEntry];
|
||||||
MPDocument *document = [[self windowController] document];
|
MPDocument *document = [[self windowController] document];
|
||||||
[document group:entry.parent removeEntry:entry];
|
[document deleteEntry:entry];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)_toggleFilterSpace:(id)sender {
|
- (void)_toggleFilterSpace:(id)sender {
|
||||||
|
|||||||
@@ -1,16 +0,0 @@
|
|||||||
//
|
|
||||||
// MPFirstResonderNotification.h
|
|
||||||
// MacPass
|
|
||||||
//
|
|
||||||
// Created by Michael Starke on 20.06.13.
|
|
||||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
|
|
||||||
@protocol MPFirstResonderNotification <NSObject>
|
|
||||||
|
|
||||||
@required
|
|
||||||
- (BOOL)becomeFirstResponder;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -16,5 +16,6 @@
|
|||||||
@property (weak) IBOutlet NSPopUpButton *clearPasteboardTimeoutPopup;
|
@property (weak) IBOutlet NSPopUpButton *clearPasteboardTimeoutPopup;
|
||||||
@property (weak) IBOutlet NSPopUpButton *idleTimeOutPopup;
|
@property (weak) IBOutlet NSPopUpButton *idleTimeOutPopup;
|
||||||
@property (weak) IBOutlet NSButton *lockOnSleepCheckButton;
|
@property (weak) IBOutlet NSButton *lockOnSleepCheckButton;
|
||||||
|
@property (weak) IBOutlet NSButton *reopenLastDatabase;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ NSString *const MPGeneralSetingsIdentifier = @"GeneralSettingsTab";
|
|||||||
|
|
||||||
- (void)didLoadView {
|
- (void)didLoadView {
|
||||||
NSUserDefaultsController *defaultsController = [NSUserDefaultsController sharedUserDefaultsController];
|
NSUserDefaultsController *defaultsController = [NSUserDefaultsController sharedUserDefaultsController];
|
||||||
|
NSString *reopenLastFilePath = [NSString stringWithFormat:@"values.%@", kMPSettingsKeyReopenLastDatabaseOnLaunch];
|
||||||
NSString *clearPasteboardKeyPath = [NSString stringWithFormat:@"values.%@", kMPSettingsKeyClearPasteboardOnQuit];
|
NSString *clearPasteboardKeyPath = [NSString stringWithFormat:@"values.%@", kMPSettingsKeyClearPasteboardOnQuit];
|
||||||
NSString *clearPasteboardTimeOutKeyPath = [NSString stringWithFormat:@"values.%@", kMPSettingsKeyPasteboardClearTimeout];
|
NSString *clearPasteboardTimeOutKeyPath = [NSString stringWithFormat:@"values.%@", kMPSettingsKeyPasteboardClearTimeout];
|
||||||
NSString *idleTimeOutKeyPath = [NSString stringWithFormat:@"values.%@", kMPSettingsKeyIdleLockTimeOut];
|
NSString *idleTimeOutKeyPath = [NSString stringWithFormat:@"values.%@", kMPSettingsKeyIdleLockTimeOut];
|
||||||
@@ -40,5 +41,6 @@ NSString *const MPGeneralSetingsIdentifier = @"GeneralSettingsTab";
|
|||||||
[self.clearPasteboardTimeoutPopup bind:NSSelectedTagBinding toObject:defaultsController withKeyPath:clearPasteboardTimeOutKeyPath options:nil];
|
[self.clearPasteboardTimeoutPopup bind:NSSelectedTagBinding toObject:defaultsController withKeyPath:clearPasteboardTimeOutKeyPath options:nil];
|
||||||
[self.lockOnSleepCheckButton bind:NSValueBinding toObject:defaultsController withKeyPath:lockOnSleepKeyPath options:nil];
|
[self.lockOnSleepCheckButton bind:NSValueBinding toObject:defaultsController withKeyPath:lockOnSleepKeyPath options:nil];
|
||||||
[self.idleTimeOutPopup bind:NSSelectedTagBinding toObject:defaultsController withKeyPath:idleTimeOutKeyPath options:nil];
|
[self.idleTimeOutPopup bind:NSSelectedTagBinding toObject:defaultsController withKeyPath:idleTimeOutKeyPath options:nil];
|
||||||
|
[self.reopenLastDatabase bind:NSValueBinding toObject:defaultsController withKeyPath:reopenLastFilePath options:nil];
|
||||||
}
|
}
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -15,14 +15,19 @@ typedef NS_ENUM(NSUInteger, MPIconType) {
|
|||||||
MPIconServer,
|
MPIconServer,
|
||||||
MPIconKlipper,
|
MPIconKlipper,
|
||||||
MPIconLanguages,
|
MPIconLanguages,
|
||||||
|
MPIconBlockDevice,
|
||||||
MPIconNotepad,
|
MPIconNotepad,
|
||||||
MPIconSocket,
|
MPIconSocket,
|
||||||
MPIconIdentity,
|
MPIconIdentity,
|
||||||
MPIconContact,
|
MPIconContact,
|
||||||
MPIconCamera,
|
MPIconCamera,
|
||||||
MPIconRemote,
|
MPIconRemote,
|
||||||
|
MPIconKeys,
|
||||||
|
MPIconDisplay = 18,
|
||||||
|
MPIconFileSave = 26,
|
||||||
MPIconTrash = 43,
|
MPIconTrash = 43,
|
||||||
MPIconFolder = 48,
|
MPIconFolder = 48,
|
||||||
|
MPIconPhone = 68,
|
||||||
/* Custom Icons not used in Database */
|
/* Custom Icons not used in Database */
|
||||||
MPIconInfo = 1000,
|
MPIconInfo = 1000,
|
||||||
MPIconAddFolder,
|
MPIconAddFolder,
|
||||||
|
|||||||
@@ -41,16 +41,25 @@ static NSDictionary *icons;
|
|||||||
@(MPIconServer): @"03_ServerTemplate",
|
@(MPIconServer): @"03_ServerTemplate",
|
||||||
@(MPIconKlipper): @"04_KlipperTemplate",
|
@(MPIconKlipper): @"04_KlipperTemplate",
|
||||||
@(MPIconLanguages): @"05_LanguagesTemplate",
|
@(MPIconLanguages): @"05_LanguagesTemplate",
|
||||||
|
@(MPIconBlockDevice): @"06_BlockDeviceTemplate",
|
||||||
@(MPIconNotepad): @"07_NotepadTemplate",
|
@(MPIconNotepad): @"07_NotepadTemplate",
|
||||||
@(MPIconSocket): @"08_SocketTemplate",
|
@(MPIconSocket): @"08_SocketTemplate",
|
||||||
@(MPIconIdentity): @"09_IdentityTemplate",
|
@(MPIconIdentity): @"09_IdentityTemplate",
|
||||||
@(MPIconContact): @"10_ContactTemplate",
|
@(MPIconContact): @"10_ContactTemplate",
|
||||||
@(MPIconCamera): @"11_CameraTemplate",
|
@(MPIconCamera): @"11_CameraTemplate",
|
||||||
@(MPIconRemote): @"12_RemoteTemplate",
|
@(MPIconRemote): @"12_RemoteTemplate",
|
||||||
|
@(MPIconKeys): @"13_KeysTemplate",
|
||||||
|
|
||||||
|
@(MPIconDisplay): @"18_DisplayTemplate",
|
||||||
|
|
||||||
|
@(MPIconFileSave): @"26_FileSaveTemplate",
|
||||||
|
|
||||||
@(MPIconTrash): @"43_TrashTemplate",
|
@(MPIconTrash): @"43_TrashTemplate",
|
||||||
|
|
||||||
@(MPIconFolder): @"48_FolderTemplate",
|
@(MPIconFolder): @"48_FolderTemplate",
|
||||||
|
|
||||||
|
@(MPIconPhone): @"68_PhoneTemplate",
|
||||||
|
|
||||||
@(MPIconInfo): @"99_InfoTemplate",
|
@(MPIconInfo): @"99_InfoTemplate",
|
||||||
@(MPIconAddFolder): @"99_AddFolderTemplate",
|
@(MPIconAddFolder): @"99_AddFolderTemplate",
|
||||||
@(MPIconHardDisk): @"99_HarddiskTemplate"
|
@(MPIconHardDisk): @"99_HarddiskTemplate"
|
||||||
|
|||||||
@@ -12,9 +12,10 @@
|
|||||||
@class KdbEntry;
|
@class KdbEntry;
|
||||||
@class KdbGroup;
|
@class KdbGroup;
|
||||||
@class HNHGradientView;
|
@class HNHGradientView;
|
||||||
|
@class HNHRoundedSecureTextField;
|
||||||
@class MPDocumentWindowController;
|
@class MPDocumentWindowController;
|
||||||
|
|
||||||
@interface MPInspectorViewController : MPViewController <NSPopoverDelegate, NSTableViewDelegate>
|
@interface MPInspectorViewController : MPViewController <NSPopoverDelegate>
|
||||||
|
|
||||||
@property (weak) IBOutlet MPPopupImageView *itemImageView;
|
@property (weak) IBOutlet MPPopupImageView *itemImageView;
|
||||||
@property (weak) IBOutlet NSTextField *itemNameTextfield;
|
@property (weak) IBOutlet NSTextField *itemNameTextfield;
|
||||||
@@ -22,7 +23,7 @@
|
|||||||
@property (weak) IBOutlet NSTextField *titleTextField;
|
@property (weak) IBOutlet NSTextField *titleTextField;
|
||||||
@property (weak) IBOutlet NSTextField *usernameTextField;
|
@property (weak) IBOutlet NSTextField *usernameTextField;
|
||||||
@property (weak) IBOutlet NSTextField *URLTextField;
|
@property (weak) IBOutlet NSTextField *URLTextField;
|
||||||
@property (weak) IBOutlet NSTextField *passwordTextField;
|
@property (weak) IBOutlet HNHRoundedSecureTextField *passwordTextField;
|
||||||
@property (weak) IBOutlet NSTextField *titleOrNameLabel;
|
@property (weak) IBOutlet NSTextField *titleOrNameLabel;
|
||||||
@property (weak) IBOutlet HNHGradientView *bottomBar;
|
@property (weak) IBOutlet HNHGradientView *bottomBar;
|
||||||
@property (weak) IBOutlet NSTextField *createdTextField;
|
@property (weak) IBOutlet NSTextField *createdTextField;
|
||||||
@@ -32,8 +33,12 @@
|
|||||||
@property (weak) IBOutlet NSTableView *customFieldsTableView;
|
@property (weak) IBOutlet NSTableView *customFieldsTableView;
|
||||||
@property (unsafe_unretained) IBOutlet NSTextView *notesTextView;
|
@property (unsafe_unretained) IBOutlet NSTextView *notesTextView;
|
||||||
@property (weak) IBOutlet NSTextField *customFieldsTextField;
|
@property (weak) IBOutlet NSTextField *customFieldsTextField;
|
||||||
|
@property (weak) IBOutlet NSButton *togglePassword;
|
||||||
|
|
||||||
|
|
||||||
|
@property (weak, nonatomic, readonly) KdbEntry *selectedEntry;
|
||||||
|
@property (weak, nonatomic, readonly) KdbGroup *selectedGroup;
|
||||||
|
|
||||||
/* Seperate call to ensure alle registered objects are in place */
|
/* Seperate call to ensure alle registered objects are in place */
|
||||||
- (void)setupNotifications:(MPDocumentWindowController *)windowController;
|
- (void)setupNotifications:(MPDocumentWindowController *)windowController;
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,10 @@
|
|||||||
#import "MPDatabaseVersion.h"
|
#import "MPDatabaseVersion.h"
|
||||||
#import "MPCustomFieldTableCellView.h"
|
#import "MPCustomFieldTableCellView.h"
|
||||||
#import "MPSelectedAttachmentTableCellView.h"
|
#import "MPSelectedAttachmentTableCellView.h"
|
||||||
|
#import "MPAttachmentTableViewDelegate.h"
|
||||||
|
#import "MPCustomFieldTableViewDelegate.h"
|
||||||
|
|
||||||
|
#import "NSDate+Humanized.h"
|
||||||
|
|
||||||
#import "KdbLib.h"
|
#import "KdbLib.h"
|
||||||
#import "Kdb4Node.h"
|
#import "Kdb4Node.h"
|
||||||
@@ -31,6 +35,8 @@
|
|||||||
#import "NSMutableData+Base64.h"
|
#import "NSMutableData+Base64.h"
|
||||||
|
|
||||||
#import "HNHGradientView.h"
|
#import "HNHGradientView.h"
|
||||||
|
#import "HNHTableRowView.h"
|
||||||
|
#import "HNHRoundedSecureTextField.h"
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
MPGeneralTab,
|
MPGeneralTab,
|
||||||
@@ -41,6 +47,10 @@ enum {
|
|||||||
|
|
||||||
@interface MPInspectorViewController () {
|
@interface MPInspectorViewController () {
|
||||||
BOOL _visible;
|
BOOL _visible;
|
||||||
|
NSArrayController *_attachmentsController;
|
||||||
|
NSArrayController *_customFieldsController;
|
||||||
|
MPAttachmentTableViewDelegate *_attachmentTableDelegate;
|
||||||
|
MPCustomFieldTableViewDelegate *_customFieldTableDelegate;
|
||||||
}
|
}
|
||||||
|
|
||||||
@property (weak, nonatomic) KdbEntry *selectedEntry;
|
@property (weak, nonatomic) KdbEntry *selectedEntry;
|
||||||
@@ -52,16 +62,18 @@ enum {
|
|||||||
@property (nonatomic, weak) NSDate *modificationDate;
|
@property (nonatomic, weak) NSDate *modificationDate;
|
||||||
@property (nonatomic, weak) NSDate *creationDate;
|
@property (nonatomic, weak) NSDate *creationDate;
|
||||||
|
|
||||||
|
@property (nonatomic, assign) BOOL showPassword;
|
||||||
|
|
||||||
@property (nonatomic, assign) NSUInteger activeTab;
|
@property (nonatomic, assign) NSUInteger activeTab;
|
||||||
@property (weak) IBOutlet NSTabView *tabView;
|
@property (weak) IBOutlet NSTabView *tabView;
|
||||||
@property (strong) NSArrayController *attachmentsController;
|
|
||||||
@property (strong) NSArrayController *customFieldsController;
|
|
||||||
|
|
||||||
- (IBAction)addCustomField:(id)sender;
|
- (IBAction)addCustomField:(id)sender;
|
||||||
- (IBAction)removeCustomField:(id)sender;
|
- (IBAction)removeCustomField:(id)sender;
|
||||||
- (IBAction)saveAttachment:(id)sender;
|
- (IBAction)saveAttachment:(id)sender;
|
||||||
- (IBAction)addAttachment:(id)sender;
|
- (IBAction)addAttachment:(id)sender;
|
||||||
- (IBAction)removeAttachment:(id)sender;
|
- (IBAction)removeAttachment:(id)sender;
|
||||||
|
- (IBAction)edit:(id)sender;
|
||||||
|
- (IBAction)finishEdit:(id)sender;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@@ -74,10 +86,15 @@ enum {
|
|||||||
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
|
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
|
||||||
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
|
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
|
||||||
if (self) {
|
if (self) {
|
||||||
|
_showPassword = NO;
|
||||||
_selectedEntry = nil;
|
_selectedEntry = nil;
|
||||||
_selectedGroup = nil;
|
_selectedGroup = nil;
|
||||||
_attachmentsController = [[NSArrayController alloc] init];
|
_attachmentsController = [[NSArrayController alloc] init];
|
||||||
_customFieldsController = [[NSArrayController alloc] init];
|
_customFieldsController = [[NSArrayController alloc] init];
|
||||||
|
_attachmentTableDelegate = [[MPAttachmentTableViewDelegate alloc] init];
|
||||||
|
_attachmentTableDelegate.viewController = self;
|
||||||
|
_customFieldTableDelegate = [[MPCustomFieldTableViewDelegate alloc] init];
|
||||||
|
_customFieldTableDelegate.viewController = self;
|
||||||
_activeTab = MPGeneralTab;
|
_activeTab = MPGeneralTab;
|
||||||
}
|
}
|
||||||
return self;
|
return self;
|
||||||
@@ -98,12 +115,15 @@ enum {
|
|||||||
|
|
||||||
/* Set background to clearcolor so we can draw in the scrollview */
|
/* Set background to clearcolor so we can draw in the scrollview */
|
||||||
[_attachmentTableView setBackgroundColor:[NSColor clearColor]];
|
[_attachmentTableView setBackgroundColor:[NSColor clearColor]];
|
||||||
[_attachmentTableView bind:NSContentBinding toObject:self.attachmentsController withKeyPath:@"arrangedObjects" options:nil];
|
[_attachmentTableView bind:NSContentBinding toObject:_attachmentsController withKeyPath:@"arrangedObjects" options:nil];
|
||||||
[_attachmentTableView setDelegate:self];
|
[_attachmentTableView setDelegate:_attachmentTableDelegate];
|
||||||
/* Set background to clearcolor so we can draw in the scrollview */
|
/* Set background to clearcolor so we can draw in the scrollview */
|
||||||
[_customFieldsTableView setBackgroundColor:[NSColor clearColor]];
|
[_customFieldsTableView setBackgroundColor:[NSColor clearColor]];
|
||||||
[_customFieldsTableView bind:NSContentBinding toObject:self.customFieldsController withKeyPath:@"arrangedObjects" options:nil];
|
[_customFieldsTableView bind:NSContentBinding toObject:_customFieldsController withKeyPath:@"arrangedObjects" options:nil];
|
||||||
[_customFieldsTableView setDelegate:self];
|
[_customFieldsTableView setDelegate:_customFieldTableDelegate];
|
||||||
|
|
||||||
|
[self.passwordTextField bind:@"showPassword" toObject:self withKeyPath:@"showPassword" options:nil];
|
||||||
|
[self.togglePassword bind:NSValueBinding toObject:self withKeyPath:@"showPassword" options:nil];
|
||||||
|
|
||||||
[self _clearContent];
|
[self _clearContent];
|
||||||
}
|
}
|
||||||
@@ -120,6 +140,9 @@ enum {
|
|||||||
NSString *modificationString = [NSDateFormatter localizedStringFromDate:modificationDate
|
NSString *modificationString = [NSDateFormatter localizedStringFromDate:modificationDate
|
||||||
dateStyle:NSDateFormatterShortStyle
|
dateStyle:NSDateFormatterShortStyle
|
||||||
timeStyle:NSDateFormatterShortStyle];
|
timeStyle:NSDateFormatterShortStyle];
|
||||||
|
|
||||||
|
modificationString = [modificationDate humanized];
|
||||||
|
|
||||||
NSString *modifedAtTemplate = NSLocalizedString(@"MODIFED_AT_%@", @"Modifed at template string. %@ is replaced by locaized date and time");
|
NSString *modifedAtTemplate = NSLocalizedString(@"MODIFED_AT_%@", @"Modifed at template string. %@ is replaced by locaized date and time");
|
||||||
[self.modifiedTextField setStringValue:[NSString stringWithFormat:modifedAtTemplate, modificationString]];
|
[self.modifiedTextField setStringValue:[NSString stringWithFormat:modifedAtTemplate, modificationString]];
|
||||||
|
|
||||||
@@ -129,6 +152,7 @@ enum {
|
|||||||
NSString *creationString = [NSDateFormatter localizedStringFromDate:creationDate
|
NSString *creationString = [NSDateFormatter localizedStringFromDate:creationDate
|
||||||
dateStyle:NSDateFormatterShortStyle
|
dateStyle:NSDateFormatterShortStyle
|
||||||
timeStyle:NSDateFormatterShortStyle];
|
timeStyle:NSDateFormatterShortStyle];
|
||||||
|
creationString = [creationDate humanized];
|
||||||
|
|
||||||
NSString *createdAtTemplate = NSLocalizedString(@"CREATED_AT_%@", @"Created at template string. %@ is replaced by locaized date and time");
|
NSString *createdAtTemplate = NSLocalizedString(@"CREATED_AT_%@", @"Created at template string. %@ is replaced by locaized date and time");
|
||||||
[self.createdTextField setStringValue:[NSString stringWithFormat:createdAtTemplate, creationString]];
|
[self.createdTextField setStringValue:[NSString stringWithFormat:createdAtTemplate, creationString]];
|
||||||
@@ -151,26 +175,26 @@ enum {
|
|||||||
- (void)_updateAttachments {
|
- (void)_updateAttachments {
|
||||||
if(self.selectedEntry) {
|
if(self.selectedEntry) {
|
||||||
if([self.selectedEntry isKindOfClass:[Kdb4Entry class]]) {
|
if([self.selectedEntry isKindOfClass:[Kdb4Entry class]]) {
|
||||||
[self.attachmentsController bind:NSContentArrayBinding toObject:self.selectedEntry withKeyPath:@"binaries" options:nil];
|
[_attachmentsController bind:NSContentArrayBinding toObject:self.selectedEntry withKeyPath:@"binaries" options:nil];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
/* Use binary from Kdb3Entry */
|
/* Use binary from Kdb3Entry */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if([self.attachmentsController content] != nil){
|
else if([_attachmentsController content] != nil){
|
||||||
[self.attachmentsController unbind:NSContentArrayBinding];
|
[_attachmentsController unbind:NSContentArrayBinding];
|
||||||
[self.attachmentsController setContent:nil];
|
[_attachmentsController setContent:nil];
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)_updateCustomFields {
|
- (void)_updateCustomFields {
|
||||||
if(self.selectedEntry && [self.selectedEntry isKindOfClass:[Kdb4Entry class]]) {
|
if(self.selectedEntry && [self.selectedEntry isKindOfClass:[Kdb4Entry class]]) {
|
||||||
[self.customFieldsController bind:NSContentArrayBinding toObject:self.selectedEntry withKeyPath:@"stringFields" options:nil];
|
[_customFieldsController bind:NSContentArrayBinding toObject:self.selectedEntry withKeyPath:@"stringFields" options:nil];
|
||||||
}
|
}
|
||||||
else if([self.customFieldsController content] != nil){
|
else if([_customFieldsController content] != nil){
|
||||||
[self.customFieldsController unbind:NSContentArrayBinding];
|
[_customFieldsController unbind:NSContentArrayBinding];
|
||||||
[self.customFieldsController setContent:nil];
|
[_customFieldsController setContent:nil];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -254,6 +278,7 @@ enum {
|
|||||||
|
|
||||||
enabled &= (self.selectedEntry != nil);
|
enabled &= (self.selectedEntry != nil);
|
||||||
[self.passwordTextField setEnabled:enabled];
|
[self.passwordTextField setEnabled:enabled];
|
||||||
|
[self.togglePassword setEnabled:enabled];
|
||||||
[self.usernameTextField setEnabled:enabled];
|
[self.usernameTextField setEnabled:enabled];
|
||||||
[self.URLTextField setEnabled:enabled];
|
[self.URLTextField setEnabled:enabled];
|
||||||
[self.generatePasswordButton setEnabled:enabled];
|
[self.generatePasswordButton setEnabled:enabled];
|
||||||
@@ -314,7 +339,7 @@ enum {
|
|||||||
MPDocument *document = [[self windowController] document];
|
MPDocument *document = [[self windowController] document];
|
||||||
NSUInteger index = [sender tag];
|
NSUInteger index = [sender tag];
|
||||||
Kdb4Entry *entry = (Kdb4Entry *)self.selectedEntry;
|
Kdb4Entry *entry = (Kdb4Entry *)self.selectedEntry;
|
||||||
[document entry:entry removeStringField:(entry.stringFields)[index]];
|
[document removeStringField:(entry.stringFields)[index] formEntry:entry];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)saveAttachment:(id)sender {
|
- (IBAction)saveAttachment:(id)sender {
|
||||||
@@ -361,6 +386,21 @@ enum {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (IBAction)edit:(id)sender {
|
||||||
|
[self.titleTextField setEditable:YES];
|
||||||
|
[self.usernameTextField setEditable:YES];
|
||||||
|
[[[[self windowController] document] undoManager] beginUndoGrouping];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction)finishEdit:(id)sender {
|
||||||
|
NSUndoManager *undoManger = [[[self windowController] document] undoManager];
|
||||||
|
[undoManger setActionName:@"Edit"];
|
||||||
|
[undoManger endUndoGrouping];
|
||||||
|
[self.titleTextField setEditable:NO];
|
||||||
|
[self.usernameTextField setEditable:NO];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
#pragma mark Notificiations
|
#pragma mark Notificiations
|
||||||
- (void)_didChangeCurrentItem:(NSNotification *)notification {
|
- (void)_didChangeCurrentItem:(NSNotification *)notification {
|
||||||
MPDocumentWindowController *sender = [notification object];
|
MPDocumentWindowController *sender = [notification object];
|
||||||
@@ -380,69 +420,4 @@ enum {
|
|||||||
[self _updateContent];
|
[self _updateContent];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#pragma mark NSTableViewDelegate
|
|
||||||
/* TODO: Divide this into single delegates */
|
|
||||||
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
|
|
||||||
if(tableView == self.attachmentTableView) {
|
|
||||||
return [self _viewForAttachmentTableColumn:tableColumn row:row];
|
|
||||||
}
|
|
||||||
return [self _viewForCustomFieldTableColumn:tableColumn row:row];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)tableViewSelectionDidChange:(NSNotification *)notification {
|
|
||||||
if([notification object] == self.attachmentTableView) {
|
|
||||||
NSIndexSet *allColumns = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, [[self.attachmentTableView tableColumns] count])];
|
|
||||||
Kdb4Entry *entryv4 = (Kdb4Entry *)self.selectedEntry;
|
|
||||||
NSIndexSet *indexSet = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, [entryv4.binaries count] )];
|
|
||||||
[self.attachmentTableView reloadDataForRowIndexes:indexSet columnIndexes:allColumns];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSView *)_viewForAttachmentTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
|
|
||||||
/* Decide what view to use */
|
|
||||||
NSIndexSet *selectedIndexes = [self.attachmentTableView selectedRowIndexes];
|
|
||||||
NSTableCellView *view;
|
|
||||||
if([selectedIndexes containsIndex:row]) {
|
|
||||||
MPSelectedAttachmentTableCellView *cellView = [_attachmentTableView makeViewWithIdentifier:@"SelectedCell" owner:_attachmentTableView];
|
|
||||||
[cellView.saveButton setTag:row];
|
|
||||||
[cellView.saveButton setAction:@selector(saveAttachment:)];
|
|
||||||
[cellView.saveButton setTarget:self];
|
|
||||||
[cellView.removeButton setTag:row];
|
|
||||||
[cellView.removeButton setAction:@selector(removeAttachment:)];
|
|
||||||
[cellView.removeButton setTarget:self];
|
|
||||||
view = cellView;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
view = [_attachmentTableView makeViewWithIdentifier:@"NormalCell" owner:_attachmentTableView];
|
|
||||||
}
|
|
||||||
/* Bind view */
|
|
||||||
if([self.selectedEntry isKindOfClass:[Kdb4Entry class]]) {
|
|
||||||
Kdb4Entry *entry = (Kdb4Entry *)self.selectedEntry;
|
|
||||||
BinaryRef *binaryRef = entry.binaries[row];
|
|
||||||
[[view textField] bind:NSValueBinding toObject:binaryRef withKeyPath:@"key" options:nil];
|
|
||||||
[[view imageView] setImage:[[NSWorkspace sharedWorkspace] iconForFileType:[binaryRef.key pathExtension]]];
|
|
||||||
}
|
|
||||||
return view;
|
|
||||||
}
|
|
||||||
- (NSView *)_viewForCustomFieldTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
|
|
||||||
MPCustomFieldTableCellView *view = [_customFieldsTableView makeViewWithIdentifier:[tableColumn identifier] owner:_customFieldsTableView];
|
|
||||||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_customFieldFrameChanged:) name:NSViewFrameDidChangeNotification object:view];
|
|
||||||
if([self.selectedEntry isKindOfClass:[Kdb4Entry class]]) {
|
|
||||||
Kdb4Entry *entry = (Kdb4Entry *)self.selectedEntry;
|
|
||||||
StringField *stringField = entry.stringFields[row];
|
|
||||||
[view.labelTextField bind:NSValueBinding toObject:stringField withKeyPath:MPStringFieldKeyUndoableKey options:nil];
|
|
||||||
[view.valueTextField bind:NSValueBinding toObject:stringField withKeyPath:MPStringFieldValueUndoableKey options:nil];
|
|
||||||
[view.removeButton setTarget:self];
|
|
||||||
[view.removeButton setAction:@selector(removeCustomField:)];
|
|
||||||
[view.removeButton setTag:row];
|
|
||||||
}
|
|
||||||
return view;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)_customFieldFrameChanged:(NSNotification *)notification {
|
|
||||||
// NSView *sender = [notification object];
|
|
||||||
// NSLog(@"didChangeFrameFor: %@ to: %@", sender, NSStringFromRect([sender frame]));
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
|
|
||||||
#import "KdbLib.h"
|
#import "KdbLib.h"
|
||||||
#import "KdbGroup+Undo.h"
|
#import "KdbGroup+Undo.h"
|
||||||
|
#import "KdbEntry+Undo.h"
|
||||||
#import "KdbGroup+MPTreeTools.h"
|
#import "KdbGroup+MPTreeTools.h"
|
||||||
#import "KdbEntry+MPTreeTools.h"
|
#import "KdbEntry+MPTreeTools.h"
|
||||||
|
|
||||||
@@ -79,7 +80,7 @@
|
|||||||
MPDocument *document = [[[outlineView window] windowController] document];
|
MPDocument *document = [[[outlineView window] windowController] document];
|
||||||
accepted = [document group:_draggedItem isMoveableToGroup:target];
|
accepted = [document group:_draggedItem isMoveableToGroup:target];
|
||||||
if( accepted ) {
|
if( accepted ) {
|
||||||
[document moveGroup:_draggedItem toGroup:target index:index];
|
[_draggedItem moveToGroupUndoable:target atIndex:index];
|
||||||
}
|
}
|
||||||
info.animatesToDestination = !accepted;
|
info.animatesToDestination = !accepted;
|
||||||
return accepted;
|
return accepted;
|
||||||
@@ -94,7 +95,7 @@
|
|||||||
KdbEntry *draggedEntry = [rootGroup entryForUUID:uuid];
|
KdbEntry *draggedEntry = [rootGroup entryForUUID:uuid];
|
||||||
if(draggedEntry) {
|
if(draggedEntry) {
|
||||||
if(draggedEntry.parent != target && index == NSOutlineViewDropOnItemIndex) {
|
if(draggedEntry.parent != target && index == NSOutlineViewDropOnItemIndex) {
|
||||||
[document moveEntry:draggedEntry toGroup:target index:index];
|
[draggedEntry moveToGroupUndoable:target atIndex:index];
|
||||||
return YES;
|
return YES;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,6 +39,8 @@ NSString *const _MPOutlinveViewHeaderViewIdentifier = @"HeaderCell";
|
|||||||
@property (strong) MPOutlineDataSource *datasource;
|
@property (strong) MPOutlineDataSource *datasource;
|
||||||
@property (strong) NSMenu *menu;
|
@property (strong) NSMenu *menu;
|
||||||
|
|
||||||
|
@property (copy, nonatomic) NSString *databaseNameWrapper;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@implementation MPOutlineViewController
|
@implementation MPOutlineViewController
|
||||||
@@ -53,6 +55,7 @@ NSString *const _MPOutlinveViewHeaderViewIdentifier = @"HeaderCell";
|
|||||||
_treeController = [[NSTreeController alloc] init];
|
_treeController = [[NSTreeController alloc] init];
|
||||||
_bindingEstablished = NO;
|
_bindingEstablished = NO;
|
||||||
_datasource = [[MPOutlineDataSource alloc] init];
|
_datasource = [[MPOutlineDataSource alloc] init];
|
||||||
|
_databaseNameWrapper = NSLocalizedString(@"NEW_DATABASE", "Name for a newly created Database");
|
||||||
}
|
}
|
||||||
|
|
||||||
return self;
|
return self;
|
||||||
@@ -64,7 +67,7 @@ NSString *const _MPOutlinveViewHeaderViewIdentifier = @"HeaderCell";
|
|||||||
[_outlineView setMenu:[self _contextMenu]];
|
[_outlineView setMenu:[self _contextMenu]];
|
||||||
[_outlineView setAllowsEmptySelection:YES];
|
[_outlineView setAllowsEmptySelection:YES];
|
||||||
[_outlineView setFloatsGroupRows:NO];
|
[_outlineView setFloatsGroupRows:NO];
|
||||||
[_outlineView registerForDraggedTypes:@[ MPPasteBoardType ]];
|
//[_outlineView registerForDraggedTypes:@[ MPPasteBoardType ]];
|
||||||
[_outlineView setDraggingSourceOperationMask:NSDragOperationEvery forLocal:YES];
|
[_outlineView setDraggingSourceOperationMask:NSDragOperationEvery forLocal:YES];
|
||||||
[_bottomBar setBorderType:HNHBorderTop];
|
[_bottomBar setBorderType:HNHBorderTop];
|
||||||
[_addGroupButton setAction:[MPActionHelper actionOfType:MPActionAddGroup]];
|
[_addGroupButton setAction:[MPActionHelper actionOfType:MPActionAddGroup]];
|
||||||
@@ -76,6 +79,9 @@ NSString *const _MPOutlinveViewHeaderViewIdentifier = @"HeaderCell";
|
|||||||
[_treeController setChildrenKeyPath:@"groups"];
|
[_treeController setChildrenKeyPath:@"groups"];
|
||||||
[_treeController bind:NSContentBinding toObject:document withKeyPath:@"rootAdapter" options:nil];
|
[_treeController bind:NSContentBinding toObject:document withKeyPath:@"rootAdapter" options:nil];
|
||||||
[_outlineView bind:NSContentBinding toObject:_treeController withKeyPath:@"arrangedObjects" options:nil];
|
[_outlineView bind:NSContentBinding toObject:_treeController withKeyPath:@"arrangedObjects" options:nil];
|
||||||
|
if([document.tree respondsToSelector:@selector(databaseName)]) {
|
||||||
|
[self bind:@"databaseNameWrapper" toObject:document.tree withKeyPath:@"databaseName" options:nil];
|
||||||
|
}
|
||||||
[_outlineView setDataSource:self.datasource];
|
[_outlineView setDataSource:self.datasource];
|
||||||
_bindingEstablished = YES;
|
_bindingEstablished = YES;
|
||||||
}
|
}
|
||||||
@@ -83,7 +89,7 @@ NSString *const _MPOutlinveViewHeaderViewIdentifier = @"HeaderCell";
|
|||||||
[_outlineView expandItem:node expandChildren:YES];
|
[_outlineView expandItem:node expandChildren:YES];
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma makr Notifications
|
#pragma mark Notifications
|
||||||
- (void)setupNotifications:(MPDocumentWindowController *)windowController {
|
- (void)setupNotifications:(MPDocumentWindowController *)windowController {
|
||||||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_didCreateGroup:) name:MPDocumentDidAddGroupNotification object:[windowController document]];
|
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_didCreateGroup:) name:MPDocumentDidAddGroupNotification object:[windowController document]];
|
||||||
}
|
}
|
||||||
@@ -108,6 +114,17 @@ NSString *const _MPOutlinveViewHeaderViewIdentifier = @"HeaderCell";
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)setDatabaseNameWrapper:(NSString *)databaseNameWrapper {
|
||||||
|
if(![_databaseNameWrapper isEqualToString:databaseNameWrapper]) {
|
||||||
|
if([databaseNameWrapper length] == 0) {
|
||||||
|
_databaseNameWrapper = NSLocalizedString(@"DATABASE", "Default name database");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
_databaseNameWrapper= [databaseNameWrapper copy];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#pragma mark -
|
#pragma mark -
|
||||||
#pragma mark Actions
|
#pragma mark Actions
|
||||||
|
|
||||||
@@ -121,18 +138,12 @@ NSString *const _MPOutlinveViewHeaderViewIdentifier = @"HeaderCell";
|
|||||||
}
|
}
|
||||||
|
|
||||||
- (void)createEntry:(id)sender {
|
- (void)createEntry:(id)sender {
|
||||||
KdbGroup *group = [self _clickedOrSelectedGroup];
|
MPDocument *document = [[self windowController] document];
|
||||||
if(group) {
|
[document createEntry:[self _clickedOrSelectedGroup]];
|
||||||
MPDocument *document = [[self windowController] document];
|
|
||||||
[document createEntry:group];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)deleteNode:(id)sender {
|
- (void)deleteNode:(id)sender {
|
||||||
KdbGroup *group = [self _clickedOrSelectedGroup];
|
[[[self windowController] document] deleteGroup:[self _clickedOrSelectedGroup]];
|
||||||
if(group && group.parent) {
|
|
||||||
[[[self windowController] document] group:group.parent removeGroup:group];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma mark NSOutlineViewDelegate
|
#pragma mark NSOutlineViewDelegate
|
||||||
@@ -141,13 +152,7 @@ NSString *const _MPOutlinveViewHeaderViewIdentifier = @"HeaderCell";
|
|||||||
if( [self _itemIsRootNodeAdapter:item] ) {
|
if( [self _itemIsRootNodeAdapter:item] ) {
|
||||||
//NSDictionary *options = @{ NSValueTransformerBindingOption : [NSValueTransformer valueTransformerForName:MPUppsercaseStringValueTransformerName] };
|
//NSDictionary *options = @{ NSValueTransformerBindingOption : [NSValueTransformer valueTransformerForName:MPUppsercaseStringValueTransformerName] };
|
||||||
view = [outlineView makeViewWithIdentifier:_MPOutlinveViewHeaderViewIdentifier owner:self];
|
view = [outlineView makeViewWithIdentifier:_MPOutlinveViewHeaderViewIdentifier owner:self];
|
||||||
MPRootAdapter *rootNode = [item representedObject];
|
[view.textField bind:NSValueBinding toObject:self withKeyPath:@"databaseNameWrapper" options:nil];
|
||||||
if([rootNode.tree respondsToSelector:@selector(databaseName)]) {
|
|
||||||
[view.textField bind:NSValueBinding toObject:rootNode.tree withKeyPath:@"databaseName" options:nil];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
[view.textField setStringValue:NSLocalizedString(@"GROUPS", @"")];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
KdbGroup *group = [item representedObject];
|
KdbGroup *group = [item representedObject];
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
//
|
|
||||||
// MPPasswordEditViewController.h
|
|
||||||
// MacPass
|
|
||||||
//
|
|
||||||
// Created by Michael Starke on 29.04.13.
|
|
||||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "MPViewController.h"
|
|
||||||
|
|
||||||
@interface MPPasswordEditViewController : MPViewController
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,67 +0,0 @@
|
|||||||
//
|
|
||||||
// MPPasswordEditViewController.m
|
|
||||||
// MacPass
|
|
||||||
//
|
|
||||||
// Created by Michael Starke on 29.04.13.
|
|
||||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "MPPasswordEditViewController.h"
|
|
||||||
#import "MPKeyfilePathControlDelegate.h"
|
|
||||||
#import "MPDocumentWindowController.h"
|
|
||||||
#import "MPDocument.h"
|
|
||||||
|
|
||||||
@interface MPPasswordEditViewController ()
|
|
||||||
@property (weak) IBOutlet NSSecureTextField *passwordTextField;
|
|
||||||
@property (weak) IBOutlet NSPathControl *keyfilePathControl;
|
|
||||||
@property (strong) MPKeyfilePathControlDelegate *pathControlDelegate;
|
|
||||||
|
|
||||||
- (IBAction)_change:(id)sender;
|
|
||||||
- (IBAction)_cancel:(id)sender;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@implementation MPPasswordEditViewController
|
|
||||||
|
|
||||||
- (id)init {
|
|
||||||
return [self initWithNibName:@"PasswordEditView" bundle:nil];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
|
|
||||||
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
|
|
||||||
if(self) {
|
|
||||||
_pathControlDelegate = [[MPKeyfilePathControlDelegate alloc] init];
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
- (NSResponder *)reconmendedFirstResponder {
|
|
||||||
return self.passwordTextField;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)didLoadView {
|
|
||||||
[self.keyfilePathControl setDelegate:self.pathControlDelegate];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)_change:(id)sender {
|
|
||||||
MPDocument *document = [[self windowController] document];
|
|
||||||
if(document) {
|
|
||||||
document.key = [self.keyfilePathControl URL];
|
|
||||||
NSString *password = [self.passwordTextField stringValue];
|
|
||||||
if([password length] > 0) {
|
|
||||||
document.password = password;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
document.password = nil;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
id mainWindowController = [[[self view] window] windowController];
|
|
||||||
[mainWindowController showEntries];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)_cancel:(id)sender {
|
|
||||||
id mainWindowController = [[[self view] window] windowController];
|
|
||||||
[mainWindowController showEntries];
|
|
||||||
}
|
|
||||||
@end
|
|
||||||
@@ -11,15 +11,20 @@
|
|||||||
#import "MPDocument.h"
|
#import "MPDocument.h"
|
||||||
#import "MPKeyfilePathControlDelegate.h"
|
#import "MPKeyfilePathControlDelegate.h"
|
||||||
|
|
||||||
|
#import "HNHRoundedSecureTextField.h"
|
||||||
|
|
||||||
@interface MPPasswordInputController ()
|
@interface MPPasswordInputController ()
|
||||||
|
|
||||||
@property (weak) IBOutlet NSTextField *passwordTextField;
|
@property (weak) IBOutlet HNHRoundedSecureTextField *passwordTextField;
|
||||||
@property (weak) IBOutlet NSPathControl *keyPathControl;
|
@property (weak) IBOutlet NSPathControl *keyPathControl;
|
||||||
@property (strong) MPKeyfilePathControlDelegate *pathControlDelegate;
|
@property (strong) MPKeyfilePathControlDelegate *pathControlDelegate;
|
||||||
@property (weak) IBOutlet NSImageView *errorImageView;
|
@property (weak) IBOutlet NSImageView *errorImageView;
|
||||||
@property (weak) IBOutlet NSTextField *errorInfoTextField;
|
@property (weak) IBOutlet NSTextField *errorInfoTextField;
|
||||||
|
@property (weak) IBOutlet NSButton *togglePasswordButton;
|
||||||
|
@property (assign) BOOL showPassword;
|
||||||
|
|
||||||
- (IBAction)_decrypt:(id)sender;
|
- (IBAction)_decrypt:(id)sender;
|
||||||
|
- (IBAction)_clearKey:(id)sender;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@@ -33,6 +38,8 @@
|
|||||||
- (void)didLoadView {
|
- (void)didLoadView {
|
||||||
[self.keyPathControl setDelegate:self.pathControlDelegate];
|
[self.keyPathControl setDelegate:self.pathControlDelegate];
|
||||||
[self.errorImageView setImage:[NSImage imageNamed:NSImageNameCaution]];
|
[self.errorImageView setImage:[NSImage imageNamed:NSImageNameCaution]];
|
||||||
|
[self.passwordTextField bind:@"showPassword" toObject:self withKeyPath:@"showPassword" options:nil];
|
||||||
|
[self.togglePasswordButton bind:NSValueBinding toObject:self withKeyPath:@"showPassword" options:nil];
|
||||||
[self _reset];
|
[self _reset];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -44,13 +51,16 @@
|
|||||||
// show Warnign if read-only mode!
|
// show Warnign if read-only mode!
|
||||||
[self _reset];
|
[self _reset];
|
||||||
}
|
}
|
||||||
|
#pragma mark NSTextViewDelegate
|
||||||
|
|
||||||
|
#pragma mark -
|
||||||
|
#pragma mark Private
|
||||||
- (IBAction)_decrypt:(id)sender {
|
- (IBAction)_decrypt:(id)sender {
|
||||||
id windowController = [[[self view] window] windowController];
|
id windowController = [[[self view] window] windowController];
|
||||||
MPDocument *document = [windowController document];
|
MPDocument *document = [windowController document];
|
||||||
if(document) {
|
if(document) {
|
||||||
BOOL isOk = NO;
|
BOOL isOk = NO;
|
||||||
if(document.isDecrypted) {
|
if(document.decrypted) {
|
||||||
// TODO: Fix unlocking to actually test
|
// TODO: Fix unlocking to actually test
|
||||||
BOOL noPassword = !document.password && [[self.passwordTextField stringValue] length] == 0;
|
BOOL noPassword = !document.password && [[self.passwordTextField stringValue] length] == 0;
|
||||||
BOOL passwordOk = [document.password isEqualToString:[self.passwordTextField stringValue]];
|
BOOL passwordOk = [document.password isEqualToString:[self.passwordTextField stringValue]];
|
||||||
@@ -59,7 +69,7 @@
|
|||||||
isOk = (noPassword || passwordOk) && (noKey || keyOk);
|
isOk = (noPassword || passwordOk) && (noKey || keyOk);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
isOk = [document decryptWithPassword:[self.passwordTextField stringValue] keyFileURL:[self.keyPathControl URL]];
|
isOk = [document unlockWithPassword:[self.passwordTextField stringValue] keyFileURL:[self.keyPathControl URL]];
|
||||||
}
|
}
|
||||||
if(!isOk) {
|
if(!isOk) {
|
||||||
[self _showError];
|
[self _showError];
|
||||||
@@ -70,7 +80,12 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (IBAction)_clearKey:(id)sender {
|
||||||
|
[self.keyPathControl setURL:nil];
|
||||||
|
}
|
||||||
|
|
||||||
- (void)_reset {
|
- (void)_reset {
|
||||||
|
self.showPassword = NO;
|
||||||
[self.passwordTextField setStringValue:@""];
|
[self.passwordTextField setStringValue:@""];
|
||||||
[self.keyPathControl setURL:nil];
|
[self.keyPathControl setURL:nil];
|
||||||
[self.errorInfoTextField setHidden:YES];
|
[self.errorInfoTextField setHidden:YES];
|
||||||
|
|||||||
13
MacPass/MPPasswordStringFormatter.h
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
//
|
||||||
|
// MPPasswordStringFormatter.h
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 06.07.13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
@interface MPPasswordStringFormatter : NSFormatter
|
||||||
|
|
||||||
|
@end
|
||||||
13
MacPass/MPPasswordStringFormatter.m
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
//
|
||||||
|
// MPPasswordStringFormatter.m
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 06.07.13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "MPPasswordStringFormatter.h"
|
||||||
|
|
||||||
|
@implementation MPPasswordStringFormatter
|
||||||
|
|
||||||
|
@end
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
//
|
|
||||||
// MPResponderQuery.h
|
|
||||||
// MacPass
|
|
||||||
//
|
|
||||||
// Created by Michael Starke on 11.06.13.
|
|
||||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
|
|
||||||
@protocol MPResponderQuery <NSObject>
|
|
||||||
@required
|
|
||||||
- (BOOL)containsFirstResponder;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -21,7 +21,12 @@
|
|||||||
- (void)setTree:(KdbTree *)tree {
|
- (void)setTree:(KdbTree *)tree {
|
||||||
if(_tree != tree) {
|
if(_tree != tree) {
|
||||||
_tree = tree;
|
_tree = tree;
|
||||||
self.groups = @[_tree.root];
|
if(_tree) {
|
||||||
|
self.groups = @[_tree.root];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
self.groups = nil;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ APPKIT_EXTERN NSString *const kMPSettingsKeyClearPasteboardOnQuit;
|
|||||||
/* Behaviour */
|
/* Behaviour */
|
||||||
APPKIT_EXTERN NSString *const kMPSettingsKeyPasswordEncoding;
|
APPKIT_EXTERN NSString *const kMPSettingsKeyPasswordEncoding;
|
||||||
APPKIT_EXTERN NSString *const kMPSettingsKeyOpenEmptyDatabaseOnLaunch;
|
APPKIT_EXTERN NSString *const kMPSettingsKeyOpenEmptyDatabaseOnLaunch;
|
||||||
|
APPKIT_EXTERN NSString *const kMPSettingsKeyReopenLastDatabaseOnLaunch;
|
||||||
|
|
||||||
/* Server Settings */
|
/* Server Settings */
|
||||||
APPKIT_EXTERN NSString *const kMPSettingsKeyHttpPort;
|
APPKIT_EXTERN NSString *const kMPSettingsKeyHttpPort;
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
NSString *const kMPSettingsKeyPasteboardClearTimeout = @"ClipboardClearTimeout";
|
NSString *const kMPSettingsKeyPasteboardClearTimeout = @"ClipboardClearTimeout";
|
||||||
NSString *const kMPSettingsKeyClearPasteboardOnQuit = @"ClearClipboardOnQuit";
|
NSString *const kMPSettingsKeyClearPasteboardOnQuit = @"ClearClipboardOnQuit";
|
||||||
NSString *const kMPSettingsKeyOpenEmptyDatabaseOnLaunch = @"OpenEmptyDatabaseOnLaunch";
|
NSString *const kMPSettingsKeyOpenEmptyDatabaseOnLaunch = @"OpenEmptyDatabaseOnLaunch";
|
||||||
|
NSString *const kMPSettingsKeyReopenLastDatabaseOnLaunch = @"ReopenLastDatabaseOnLaunch";
|
||||||
NSString *const kMPSettingsKeyHttpPort =@"HttpPort";
|
NSString *const kMPSettingsKeyHttpPort =@"HttpPort";
|
||||||
NSString *const kMPSettingsKeyEnableHttpServer = @"EnableHttpServer";
|
NSString *const kMPSettingsKeyEnableHttpServer = @"EnableHttpServer";
|
||||||
NSString *const kMPSettingsKeyShowMenuItem = @"ShowMenuItem";
|
NSString *const kMPSettingsKeyShowMenuItem = @"ShowMenuItem";
|
||||||
@@ -27,7 +28,8 @@ NSString *const kMPSettingsKeyIdleLockTimeOut = @"IdleLockTimeOut";
|
|||||||
return @{
|
return @{
|
||||||
kMPSettingsKeyPasteboardClearTimeout: @30, // 30 seconds
|
kMPSettingsKeyPasteboardClearTimeout: @30, // 30 seconds
|
||||||
kMPSettingsKeyClearPasteboardOnQuit: @YES,
|
kMPSettingsKeyClearPasteboardOnQuit: @YES,
|
||||||
kMPSettingsKeyOpenEmptyDatabaseOnLaunch: @YES,
|
kMPSettingsKeyOpenEmptyDatabaseOnLaunch: @NO,
|
||||||
|
kMPSettingsKeyReopenLastDatabaseOnLaunch: @YES,
|
||||||
kMPSettingsKeyHttpPort: @19455,
|
kMPSettingsKeyHttpPort: @19455,
|
||||||
kMPSettingsKeyEnableHttpServer: @NO,
|
kMPSettingsKeyEnableHttpServer: @NO,
|
||||||
kMPSettingsKeyShowMenuItem: @YES,
|
kMPSettingsKeyShowMenuItem: @YES,
|
||||||
|
|||||||
@@ -44,11 +44,11 @@
|
|||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>0.3</string>
|
<string>0.3.3</string>
|
||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
<string>????</string>
|
<string>????</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>1960</string>
|
<string>2508</string>
|
||||||
<key>LSMinimumSystemVersion</key>
|
<key>LSMinimumSystemVersion</key>
|
||||||
<string>${MACOSX_DEPLOYMENT_TARGET}</string>
|
<string>${MACOSX_DEPLOYMENT_TARGET}</string>
|
||||||
<key>NSHumanReadableCopyright</key>
|
<key>NSHumanReadableCopyright</key>
|
||||||
|
|||||||
16
MacPass/NSDate+Humanized.h
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
//
|
||||||
|
// NSDate+Humanized.h
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 10.07.13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
@interface NSDate (Humanized)
|
||||||
|
|
||||||
|
+ (NSString *)humanizedDate:(NSDate *)date;
|
||||||
|
- (NSString *)humanized;
|
||||||
|
|
||||||
|
@end
|
||||||
39
MacPass/NSDate+Humanized.m
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
//
|
||||||
|
// NSDate+Humanized.m
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 10.07.13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "NSDate+Humanized.h"
|
||||||
|
|
||||||
|
@implementation NSDate (Humanized)
|
||||||
|
|
||||||
|
+ (NSString *)humanizedDate:(NSDate *)date {
|
||||||
|
return [date humanized];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSString *)humanized {
|
||||||
|
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
|
||||||
|
NSDateComponents *components = [calendar components:NSMinuteCalendarUnit|NSHourCalendarUnit|NSDayCalendarUnit fromDate:self toDate:[NSDate date] options:0];
|
||||||
|
if([components day] > 1) {
|
||||||
|
return [NSDateFormatter localizedStringFromDate:self
|
||||||
|
dateStyle:NSDateFormatterShortStyle
|
||||||
|
timeStyle:NSDateFormatterShortStyle];
|
||||||
|
}
|
||||||
|
if([components day] == 1) {
|
||||||
|
return NSLocalizedString(@"YESTERDAY", "Yesterday");
|
||||||
|
}
|
||||||
|
if([components hour] > 1) {
|
||||||
|
NSString *hourTemplate = NSLocalizedString(@"%ld_HOURS_AGO", "% Hours ago");
|
||||||
|
return [NSString stringWithFormat:hourTemplate, [components hour]];
|
||||||
|
}
|
||||||
|
NSInteger minutes = [components minute];
|
||||||
|
if(minutes > 1) {
|
||||||
|
NSString *minuteTemplate = NSLocalizedString(@"%ld_MINUTES_AGO", "% Minutes ago");
|
||||||
|
return [NSString stringWithFormat:minuteTemplate, minutes];
|
||||||
|
}
|
||||||
|
return NSLocalizedString(@"JUST_NOW", "Just now");
|
||||||
|
}
|
||||||
|
@end
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
//
|
|
||||||
// NSString+MPPasswordAnalysis.h
|
|
||||||
// MacPass
|
|
||||||
//
|
|
||||||
// Created by Michael Starke on 29.03.13.
|
|
||||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
|
|
||||||
typedef NS_ENUM(NSUInteger, MPPasswordStrength) {
|
|
||||||
MPPasswordWeak,
|
|
||||||
MPPasswordOK,
|
|
||||||
MPPasswordGood,
|
|
||||||
MPPasswordStrong,
|
|
||||||
MPPasswordExcelent,
|
|
||||||
};
|
|
||||||
|
|
||||||
@interface NSString (MPPasswordAnalysis)
|
|
||||||
|
|
||||||
- (MPPasswordStrength)passwordStrenght;
|
|
||||||
|
|
||||||
@end
|
|
||||||
17
MacPass/NSString+PasswordStrength.h
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
//
|
||||||
|
// NSString+MPPasswordAnalysis.h
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 29.03.13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
|
||||||
|
@interface NSString (PasswordStrenght)
|
||||||
|
|
||||||
|
- (NSUInteger)passwordStrenght;
|
||||||
|
|
||||||
|
|
||||||
|
@end
|
||||||
@@ -6,12 +6,12 @@
|
|||||||
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
//
|
//
|
||||||
|
|
||||||
#import "NSString+MPPasswordAnalysis.h"
|
#import "NSString+PasswordStrength.h"
|
||||||
|
|
||||||
@implementation NSString (MPPasswordAnalysis)
|
@implementation NSString (PasswordStrenght)
|
||||||
|
|
||||||
- (MPPasswordStrength)passwordStrenght {
|
- (NSUInteger)passwordStrenght {
|
||||||
return MPPasswordOK;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
434
MacPass/UnprotectedWarningView.xib
Normal file
@@ -0,0 +1,434 @@
|
|||||||
|
<?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>NSCustomObject</string>
|
||||||
|
<string>NSCustomView</string>
|
||||||
|
<string>NSImageCell</string>
|
||||||
|
<string>NSImageView</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">MPDocument</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="NSImageView" id="914116063">
|
||||||
|
<reference key="NSNextResponder" ref="1005"/>
|
||||||
|
<int key="NSvFlags">268</int>
|
||||||
|
<set class="NSMutableSet" key="NSDragTypes">
|
||||||
|
<string>Apple PDF pasteboard type</string>
|
||||||
|
<string>Apple PICT pasteboard type</string>
|
||||||
|
<string>Apple PNG pasteboard type</string>
|
||||||
|
<string>NSFilenamesPboardType</string>
|
||||||
|
<string>NeXT Encapsulated PostScript v1.2 pasteboard type</string>
|
||||||
|
<string>NeXT TIFF v4.0 pasteboard type</string>
|
||||||
|
</set>
|
||||||
|
<string key="NSFrame">{{36, 19}, {32, 32}}</string>
|
||||||
|
<reference key="NSSuperview" ref="1005"/>
|
||||||
|
<reference key="NSWindow"/>
|
||||||
|
<reference key="NSNextKeyView" ref="724782086"/>
|
||||||
|
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||||
|
<bool key="NSEnabled">YES</bool>
|
||||||
|
<object class="NSImageCell" key="NSCell" id="869029655">
|
||||||
|
<int key="NSCellFlags">134217728</int>
|
||||||
|
<int key="NSCellFlags2">33554432</int>
|
||||||
|
<object class="NSCustomResource" key="NSContents">
|
||||||
|
<string key="NSClassName">NSImage</string>
|
||||||
|
<string key="NSResourceName">02_MessageBoxWarningTemplate</string>
|
||||||
|
</object>
|
||||||
|
<string key="NSCellIdentifier">_NS:9</string>
|
||||||
|
<int key="NSAlign">0</int>
|
||||||
|
<int key="NSScale">3</int>
|
||||||
|
<int key="NSStyle">0</int>
|
||||||
|
<bool key="NSAnimates">NO</bool>
|
||||||
|
</object>
|
||||||
|
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||||
|
<bool key="NSEditable">YES</bool>
|
||||||
|
</object>
|
||||||
|
<object class="NSTextField" id="724782086">
|
||||||
|
<reference key="NSNextResponder" ref="1005"/>
|
||||||
|
<int key="NSvFlags">268</int>
|
||||||
|
<string key="NSFrame">{{73, 27}, {162, 17}}</string>
|
||||||
|
<reference key="NSSuperview" ref="1005"/>
|
||||||
|
<reference key="NSWindow"/>
|
||||||
|
<reference key="NSNextKeyView"/>
|
||||||
|
<string key="NSReuseIdentifierKey">_NS:1535</string>
|
||||||
|
<bool key="NSEnabled">YES</bool>
|
||||||
|
<object class="NSTextFieldCell" key="NSCell" id="470987877">
|
||||||
|
<int key="NSCellFlags">68157504</int>
|
||||||
|
<int key="NSCellFlags2">272630784</int>
|
||||||
|
<string key="NSContents">Database is unprotected!</string>
|
||||||
|
<object class="NSFont" key="NSSupport">
|
||||||
|
<string key="NSName">LucidaGrande</string>
|
||||||
|
<double key="NSSize">13</double>
|
||||||
|
<int key="NSfFlags">1044</int>
|
||||||
|
</object>
|
||||||
|
<string key="NSCellIdentifier">_NS:1535</string>
|
||||||
|
<reference key="NSControlView" ref="724782086"/>
|
||||||
|
<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">controlTextColor</string>
|
||||||
|
<object class="NSColor" key="NSColor">
|
||||||
|
<int key="NSColorSpace">3</int>
|
||||||
|
<bytes key="NSWhite">MAA</bytes>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||||
|
</object>
|
||||||
|
</array>
|
||||||
|
<string key="NSFrameSize">{307, 71}</string>
|
||||||
|
<reference key="NSSuperview"/>
|
||||||
|
<reference key="NSWindow"/>
|
||||||
|
<reference key="NSNextKeyView" ref="914116063"/>
|
||||||
|
<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">warningView</string>
|
||||||
|
<reference key="source" ref="1001"/>
|
||||||
|
<reference key="destination" ref="1005"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">24</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBOutletConnection" key="connection">
|
||||||
|
<string key="label">warningViewImage</string>
|
||||||
|
<reference key="source" ref="1001"/>
|
||||||
|
<reference key="destination" ref="914116063"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">36</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="724782086"/>
|
||||||
|
<object class="IBNSLayoutConstraint" id="723389949">
|
||||||
|
<reference key="firstItem" ref="724782086"/>
|
||||||
|
<int key="firstAttribute">5</int>
|
||||||
|
<int key="relation">0</int>
|
||||||
|
<reference key="secondItem" ref="914116063"/>
|
||||||
|
<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">6</int>
|
||||||
|
<float key="scoringTypeFloat">24</float>
|
||||||
|
<int key="contentType">3</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBNSLayoutConstraint" id="108837154">
|
||||||
|
<reference key="firstItem" ref="724782086"/>
|
||||||
|
<int key="firstAttribute">9</int>
|
||||||
|
<int key="relation">0</int>
|
||||||
|
<reference key="secondItem" ref="1005"/>
|
||||||
|
<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="1005"/>
|
||||||
|
<int key="scoringType">9</int>
|
||||||
|
<float key="scoringTypeFloat">40</float>
|
||||||
|
<int key="contentType">2</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBNSLayoutConstraint" id="165398105">
|
||||||
|
<reference key="firstItem" ref="914116063"/>
|
||||||
|
<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>
|
||||||
|
<object class="IBNSLayoutConstraint" id="560291886">
|
||||||
|
<reference key="firstItem" ref="914116063"/>
|
||||||
|
<int key="firstAttribute">10</int>
|
||||||
|
<int key="relation">0</int>
|
||||||
|
<reference key="secondItem" ref="724782086"/>
|
||||||
|
<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">6</int>
|
||||||
|
<float key="scoringTypeFloat">24</float>
|
||||||
|
<int key="contentType">2</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBNSLayoutConstraint" id="425703234">
|
||||||
|
<reference key="firstItem" ref="914116063"/>
|
||||||
|
<int key="firstAttribute">5</int>
|
||||||
|
<int key="relation">1</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">9</int>
|
||||||
|
<float key="scoringTypeFloat">40</float>
|
||||||
|
<int key="contentType">3</int>
|
||||||
|
</object>
|
||||||
|
<reference ref="914116063"/>
|
||||||
|
</array>
|
||||||
|
<reference key="parent" ref="0"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">2</int>
|
||||||
|
<reference key="object" ref="724782086"/>
|
||||||
|
<array class="NSMutableArray" key="children">
|
||||||
|
<reference ref="470987877"/>
|
||||||
|
</array>
|
||||||
|
<reference key="parent" ref="1005"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">4</int>
|
||||||
|
<reference key="object" ref="108837154"/>
|
||||||
|
<reference key="parent" ref="1005"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">3</int>
|
||||||
|
<reference key="object" ref="470987877"/>
|
||||||
|
<reference key="parent" ref="724782086"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">25</int>
|
||||||
|
<reference key="object" ref="914116063"/>
|
||||||
|
<array class="NSMutableArray" key="children">
|
||||||
|
<reference ref="869029655"/>
|
||||||
|
<object class="IBNSLayoutConstraint" id="622632481">
|
||||||
|
<reference key="firstItem" ref="914116063"/>
|
||||||
|
<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">32</double>
|
||||||
|
</object>
|
||||||
|
<float key="priority">1000</float>
|
||||||
|
<reference key="containingView" ref="914116063"/>
|
||||||
|
<int key="scoringType">3</int>
|
||||||
|
<float key="scoringTypeFloat">9</float>
|
||||||
|
<int key="contentType">1</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBNSLayoutConstraint" id="939990693">
|
||||||
|
<reference key="firstItem" ref="914116063"/>
|
||||||
|
<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">32</double>
|
||||||
|
</object>
|
||||||
|
<float key="priority">1000</float>
|
||||||
|
<reference key="containingView" ref="914116063"/>
|
||||||
|
<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">26</int>
|
||||||
|
<reference key="object" ref="869029655"/>
|
||||||
|
<reference key="parent" ref="914116063"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">35</int>
|
||||||
|
<reference key="object" ref="425703234"/>
|
||||||
|
<reference key="parent" ref="1005"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">38</int>
|
||||||
|
<reference key="object" ref="939990693"/>
|
||||||
|
<reference key="parent" ref="914116063"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">39</int>
|
||||||
|
<reference key="object" ref="622632481"/>
|
||||||
|
<reference key="parent" ref="914116063"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">41</int>
|
||||||
|
<reference key="object" ref="560291886"/>
|
||||||
|
<reference key="parent" ref="1005"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">42</int>
|
||||||
|
<reference key="object" ref="165398105"/>
|
||||||
|
<reference key="parent" ref="1005"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">43</int>
|
||||||
|
<reference key="object" ref="723389949"/>
|
||||||
|
<reference key="parent" ref="1005"/>
|
||||||
|
</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="425703234"/>
|
||||||
|
<reference ref="560291886"/>
|
||||||
|
<reference ref="165398105"/>
|
||||||
|
<reference ref="108837154"/>
|
||||||
|
<reference ref="723389949"/>
|
||||||
|
</array>
|
||||||
|
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<boolean value="NO" key="2.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
||||||
|
<string key="2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<array class="NSMutableArray" key="25.IBNSViewMetadataConstraints">
|
||||||
|
<reference ref="939990693"/>
|
||||||
|
<reference ref="622632481"/>
|
||||||
|
</array>
|
||||||
|
<boolean value="NO" key="25.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
||||||
|
<string key="25.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="26.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="35.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="38.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="39.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="4.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="41.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="42.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="43.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">43</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||||
|
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">MPDocument</string>
|
||||||
|
<string key="superclassName">NSDocument</string>
|
||||||
|
<dictionary class="NSMutableDictionary" key="outlets">
|
||||||
|
<string key="warningView">NSView</string>
|
||||||
|
<string key="warningViewImage">NSImageView</string>
|
||||||
|
</dictionary>
|
||||||
|
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||||
|
<object class="IBToOneOutletInfo" key="warningView">
|
||||||
|
<string key="name">warningView</string>
|
||||||
|
<string key="candidateClassName">NSView</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBToOneOutletInfo" key="warningViewImage">
|
||||||
|
<string key="name">warningViewImage</string>
|
||||||
|
<string key="candidateClassName">NSImageView</string>
|
||||||
|
</object>
|
||||||
|
</dictionary>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBProjectSource</string>
|
||||||
|
<string key="minorKey">./Classes/MPDocument.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">02_MessageBoxWarningTemplate</string>
|
||||||
|
<string key="NS.object.0">{128, 128}</string>
|
||||||
|
</object>
|
||||||
|
<bool key="IBDocument.UseAutolayout">YES</bool>
|
||||||
|
</data>
|
||||||
|
</archive>
|
||||||
@@ -1,30 +1,48 @@
|
|||||||
|
|
||||||
/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "421"; */
|
/* Class = "NSMenu"; title = "ClipboardClearInterval"; ObjectID = "421"; */
|
||||||
"421.title" = "OtherViews";
|
"421.title" = "ClipboardClearInterval";
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "10 Seconds"; ObjectID = "422"; */
|
/* Class = "NSMenuItem"; title = "after 10 Seconds"; ObjectID = "422"; */
|
||||||
"422.title" = "10 Sekunden";
|
"422.title" = "nach 10 Sekunden";
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "30 Seconds"; ObjectID = "423"; */
|
/* Class = "NSMenuItem"; title = "after 30 Seconds"; ObjectID = "423"; */
|
||||||
"423.title" = "30 Sekunden";
|
"423.title" = "nach 30 Sekunden";
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "1 Minute"; ObjectID = "424"; */
|
/* Class = "NSMenuItem"; title = "after 1 Minute"; ObjectID = "424"; */
|
||||||
"424.title" = "1 Minute";
|
"424.title" = "nach 1 Minute";
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "Never"; ObjectID = "429"; */
|
/* Class = "NSMenuItem"; title = "Never"; ObjectID = "429"; */
|
||||||
"429.title" = "Nie";
|
"429.title" = "Nie";
|
||||||
|
|
||||||
/* Class = "NSTextFieldCell"; title = "Clear Copied Items"; ObjectID = "432"; */
|
/* Class = "NSTextFieldCell"; title = "Clear Copied Items"; ObjectID = "432"; */
|
||||||
"432.title" = "Zwischenablage Leere";
|
"432.title" = "Leere Zwischenablage";
|
||||||
|
|
||||||
/* Class = "NSButtonCell"; title = "Clear Clipboard on Quit"; ObjectID = "448"; */
|
/* Class = "NSButtonCell"; title = "Clear Clipboard on Quit"; ObjectID = "448"; */
|
||||||
"448.title" = "Zwischenablage beim Beenden leeren";
|
"448.title" = "Zwischenablage beim Beenden leeren";
|
||||||
|
|
||||||
/* Class = "NSBox"; title = "Clipboard"; ObjectID = "465"; */
|
/* Class = "NSBox"; title = "Security"; ObjectID = "465"; */
|
||||||
"465.title" = "Zwischenablage";
|
"465.title" = "Sicherheit";
|
||||||
|
|
||||||
/* Class = "NSButtonCell"; title = "Open empty database on launch"; ObjectID = "527"; */
|
/* Class = "NSButtonCell"; title = "Reopen last Database after Launch"; ObjectID = "531"; */
|
||||||
"527.title" = "Leere Datenbank beim Programmstart öffnen";
|
"531.title" = "Letzte Datenbank beim Start wieder öffnen";
|
||||||
|
|
||||||
/* Class = "NSButtonCell"; title = "Open empty database on activate"; ObjectID = "531"; */
|
/* Class = "NSMenu"; title = "LockTimes"; ObjectID = "586"; */
|
||||||
"531.title" = "Lerre Datenbank beim Aktiveren öffnen";
|
"586.title" = "LockTimes";
|
||||||
|
|
||||||
|
/* Class = "NSMenuItem"; title = "for 1 Minute"; ObjectID = "588"; */
|
||||||
|
"588.title" = "für 1 Minute";
|
||||||
|
|
||||||
|
/* Class = "NSMenuItem"; title = "for 5 Minutes"; ObjectID = "589"; */
|
||||||
|
"589.title" = "für 5 Minuten";
|
||||||
|
|
||||||
|
/* Class = "NSMenuItem"; title = "for 15 Minutes"; ObjectID = "603"; */
|
||||||
|
"603.title" = "für 15 Minuten";
|
||||||
|
|
||||||
|
/* Class = "NSButtonCell"; title = "Lock after sleep"; ObjectID = "631"; */
|
||||||
|
"631.title" = "Datenbank im Ruhezustand sperren";
|
||||||
|
|
||||||
|
/* Class = "NSMenuItem"; title = "Never"; ObjectID = "804"; */
|
||||||
|
"804.title" = "Nie";
|
||||||
|
|
||||||
|
/* Class = "NSTextFieldCell"; title = "Lock while idle"; ObjectID = "806"; */
|
||||||
|
"806.title" = "Sperren nach Inaktivität";
|
||||||
|
|||||||
@@ -120,19 +120,22 @@
|
|||||||
"298.title" = "Customize Toolbar…";
|
"298.title" = "Customize Toolbar…";
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "Help"; ObjectID = "490"; */
|
/* Class = "NSMenuItem"; title = "Help"; ObjectID = "490"; */
|
||||||
"490.title" = "Help";
|
"490.title" = "Hilfe";
|
||||||
|
|
||||||
/* Class = "NSMenu"; title = "Help"; ObjectID = "491"; */
|
/* Class = "NSMenu"; title = "Help"; ObjectID = "491"; */
|
||||||
"491.title" = "Help";
|
"491.title" = "Hilfe";
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "MacPass Help"; ObjectID = "492"; */
|
/* Class = "NSMenuItem"; title = "MacPass Help"; ObjectID = "492"; */
|
||||||
"492.title" = "MacPass Help";
|
"492.title" = "MacPass Hilfe";
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "Toggle Inspector"; ObjectID = "1181"; */
|
/* Class = "NSMenuItem"; title = "Toggle Inspector"; ObjectID = "1181"; */
|
||||||
"1181.title" = "Toggle Inspector";
|
"1181.title" = "Inspector umschalten";
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "Show Password Creator"; ObjectID = "1200"; */
|
/* Class = "NSMenuItem"; title = "Show Password Creator"; ObjectID = "1200"; */
|
||||||
"1200.title" = "Passwortgenerator anzeigen…";
|
"1200.title" = "Passwortgenerator";
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "Change Password…"; ObjectID = "1203"; */
|
/* Class = "NSMenuItem"; title = "Change Master Password…"; ObjectID = "1203"; */
|
||||||
"1203.title" = "Hautpassword ändern…";
|
"1203.title" = "Hauptpassword ändern…";
|
||||||
|
|
||||||
|
/* Class = "NSMenuItem"; title = "Database Settings…"; ObjectID = "1231"; */
|
||||||
|
"1231.title" = "Datenbankeinstellungen…";
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
|
|
||||||
/* Class = "NSButtonCell"; title = "Change"; ObjectID = "32"; */
|
|
||||||
"32.title" = "Password ändern";
|
|
||||||
|
|
||||||
/* Class = "NSTextFieldCell"; title = "Password"; ObjectID = "33"; */
|
|
||||||
"33.title" = "Passwort";
|
|
||||||
|
|
||||||
/* Class = "NSTextFieldCell"; title = "Keyfile"; ObjectID = "37"; */
|
|
||||||
"37.title" = "Schlüsseldatei";
|
|
||||||
|
|
||||||
/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "38"; */
|
|
||||||
"38.title" = "Abbrechen";
|
|
||||||
|
|
||||||
/* Class = "NSTextFieldCell"; title = "Change Password/Keyfile"; ObjectID = "46"; */
|
|
||||||
"46.title" = "Password/Schlüssel ändern!";
|
|
||||||
@@ -2,14 +2,14 @@
|
|||||||
/* Class = "NSMenu"; title = "ClipboardClearInterval"; ObjectID = "421"; */
|
/* Class = "NSMenu"; title = "ClipboardClearInterval"; ObjectID = "421"; */
|
||||||
"421.title" = "ClipboardClearInterval";
|
"421.title" = "ClipboardClearInterval";
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "10 Seconds"; ObjectID = "422"; */
|
/* Class = "NSMenuItem"; title = "after 10 Seconds"; ObjectID = "422"; */
|
||||||
"422.title" = "10 Seconds";
|
"422.title" = "after 10 Seconds";
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "30 Seconds"; ObjectID = "423"; */
|
/* Class = "NSMenuItem"; title = "after 30 Seconds"; ObjectID = "423"; */
|
||||||
"423.title" = "30 Seconds";
|
"423.title" = "after 30 Seconds";
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "1 Minute"; ObjectID = "424"; */
|
/* Class = "NSMenuItem"; title = "after 1 Minute"; ObjectID = "424"; */
|
||||||
"424.title" = "1 Minute";
|
"424.title" = "after 1 Minute";
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "Never"; ObjectID = "429"; */
|
/* Class = "NSMenuItem"; title = "Never"; ObjectID = "429"; */
|
||||||
"429.title" = "Never";
|
"429.title" = "Never";
|
||||||
@@ -23,26 +23,26 @@
|
|||||||
/* Class = "NSBox"; title = "Security"; ObjectID = "465"; */
|
/* Class = "NSBox"; title = "Security"; ObjectID = "465"; */
|
||||||
"465.title" = "Security";
|
"465.title" = "Security";
|
||||||
|
|
||||||
/* Class = "NSButtonCell"; title = "Open empty database on launch"; ObjectID = "527"; */
|
/* Class = "NSButtonCell"; title = "Reopen last Database after Launch"; ObjectID = "531"; */
|
||||||
"527.title" = "Open empty database on launch";
|
"531.title" = "Reopen last Database after Launch";
|
||||||
|
|
||||||
/* Class = "NSButtonCell"; title = "Open empty database on activate"; ObjectID = "531"; */
|
|
||||||
"531.title" = "Open empty database on activate";
|
|
||||||
|
|
||||||
/* Class = "NSMenu"; title = "LockTimes"; ObjectID = "586"; */
|
/* Class = "NSMenu"; title = "LockTimes"; ObjectID = "586"; */
|
||||||
"586.title" = "LockTimes";
|
"586.title" = "LockTimes";
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "1 Minute"; ObjectID = "588"; */
|
/* Class = "NSMenuItem"; title = "for 1 Minute"; ObjectID = "588"; */
|
||||||
"588.title" = "1 Minute";
|
"588.title" = "for 1 Minute";
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "5 Minutes"; ObjectID = "589"; */
|
/* Class = "NSMenuItem"; title = "for 5 Minutes"; ObjectID = "589"; */
|
||||||
"589.title" = "5 Minutes";
|
"589.title" = "for 5 Minutes";
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "15 Minutes"; ObjectID = "603"; */
|
/* Class = "NSMenuItem"; title = "for 15 Minutes"; ObjectID = "603"; */
|
||||||
"603.title" = "15 Minutes";
|
"603.title" = "for 15 Minutes";
|
||||||
|
|
||||||
/* Class = "NSButtonCell"; title = "Lock while idle for"; ObjectID = "606"; */
|
|
||||||
"606.title" = "Lock while idle for";
|
|
||||||
|
|
||||||
/* Class = "NSButtonCell"; title = "Lock after sleep"; ObjectID = "631"; */
|
/* Class = "NSButtonCell"; title = "Lock after sleep"; ObjectID = "631"; */
|
||||||
"631.title" = "Lock after sleep";
|
"631.title" = "Lock after sleep";
|
||||||
|
|
||||||
|
/* Class = "NSMenuItem"; title = "Never"; ObjectID = "804"; */
|
||||||
|
"804.title" = "Never";
|
||||||
|
|
||||||
|
/* Class = "NSTextFieldCell"; title = "Lock while idle"; ObjectID = "806"; */
|
||||||
|
"806.title" = "Lock while idle";
|
||||||
|
|||||||
@@ -134,5 +134,8 @@
|
|||||||
/* Class = "NSMenuItem"; title = "Show Password Creator"; ObjectID = "1200"; */
|
/* Class = "NSMenuItem"; title = "Show Password Creator"; ObjectID = "1200"; */
|
||||||
"1200.title" = "Show Password Creator";
|
"1200.title" = "Show Password Creator";
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "Change Password…"; ObjectID = "1203"; */
|
/* Class = "NSMenuItem"; title = "Change Master Password…"; ObjectID = "1203"; */
|
||||||
"1203.title" = "Change Password…";
|
"1203.title" = "Change Master Password…";
|
||||||
|
|
||||||
|
/* Class = "NSMenuItem"; title = "Database Settings…"; ObjectID = "1231"; */
|
||||||
|
"1231.title" = "Database Settings…";
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
|
|
||||||
/* Class = "NSButtonCell"; title = "Change"; ObjectID = "32"; */
|
|
||||||
"32.title" = "Change";
|
|
||||||
|
|
||||||
/* Class = "NSTextFieldCell"; title = "Password"; ObjectID = "33"; */
|
|
||||||
"33.title" = "Password";
|
|
||||||
|
|
||||||
/* Class = "NSTextFieldCell"; title = "Keyfile"; ObjectID = "37"; */
|
|
||||||
"37.title" = "Keyfile";
|
|
||||||
|
|
||||||
/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "38"; */
|
|
||||||
"38.title" = "Cancel";
|
|
||||||
|
|
||||||
/* Class = "NSTextFieldCell"; title = "Change Password/Keyfile"; ObjectID = "46"; */
|
|
||||||
"46.title" = "Change Password/Keyfile";
|
|
||||||
150
MacPassTests/CustomIcon_Password_1234.xml
Normal file
@@ -0,0 +1,150 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<KeePassFile>
|
||||||
|
<Meta>
|
||||||
|
<Generator>KeePassX</Generator>
|
||||||
|
<DatabaseName/>
|
||||||
|
<DatabaseNameChanged>2013-07-15T19:35:54Z</DatabaseNameChanged>
|
||||||
|
<DatabaseDescription/>
|
||||||
|
<DatabaseDescriptionChanged>2013-07-15T19:35:54Z</DatabaseDescriptionChanged>
|
||||||
|
<DefaultUserName/>
|
||||||
|
<DefaultUserNameChanged>2013-07-15T19:35:54Z</DefaultUserNameChanged>
|
||||||
|
<MaintenanceHistoryDays>365</MaintenanceHistoryDays>
|
||||||
|
<Color/>
|
||||||
|
<MasterKeyChanged>2013-07-15T19:36:02Z</MasterKeyChanged>
|
||||||
|
<MasterKeyChangeRec>-1</MasterKeyChangeRec>
|
||||||
|
<MasterKeyChangeForce>-1</MasterKeyChangeForce>
|
||||||
|
<MemoryProtection>
|
||||||
|
<ProtectTitle>False</ProtectTitle>
|
||||||
|
<ProtectUserName>False</ProtectUserName>
|
||||||
|
<ProtectPassword>True</ProtectPassword>
|
||||||
|
<ProtectURL>False</ProtectURL>
|
||||||
|
<ProtectNotes>False</ProtectNotes>
|
||||||
|
</MemoryProtection>
|
||||||
|
<CustomIcons>
|
||||||
|
<Icon>
|
||||||
|
<UUID>RaP8u/B18ngIutqc2B5c9g==</UUID>
|
||||||
|
<Data>iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAAsSAAALEgHS3X78AAACHUlEQVQokV2SzUtUYRTGn/Pe915HZyIwJ0FDEsqCXORGaBFYLWoR7foDglZt+xuCFu76G9q0iFBKMgQhhUhIhIRM7EuHq+N8ODN37uf7ntNCR249q7P4wfOccx4SEfRkwY4oEIyVNAoLJVdZTxxD0KeMQk4OKxCSKF5893KgJEkkcAyJzjOQnJiZRSp7P01rh4Ot+devjFjLeUT+cQCJyez3zRVH2sTd+/euB60O0T+IEjAACAAWIwfNg5lrZ5HWkNZxtL24NEcCgCEnVM+BACjlYG9jFU5HzCFnR+Duw1vjQdTpAUyAolyqSqU2PbGPqLrwYXf+/VdYH40vywtz1vZiCTR6s8mi0eK21Npg7NZ9sQWElLC+MymNuj9UHiFSICgc7wA0age8u0CpWLt/6VzxwlCfZK2+NHTT/eWltxADAGB9vEoUhmVnh6KqQb+WdPpKod6o0e+P1loNmSmO+od3R86PQZQGFEm2tbU+5c9K/Ed321BUGrx4Rg1mnZZrGZbKvPFpfW749iPxigowzSCbLG2nvzak6SPu2m61k4zFXHQ7KQIgDhAXJiovmkGsJaHM8I+11YmVm/CAzAOlrPHm21U/bD2ZqoIsGcWKlcHm5dnxB08pC41ee24/P3NsZPVJbYgoX8rjF7e5nDze0bFSCjoZvmGUUr2LAaAcnyrX4ywxxX6XiVkobTbR77H5r7yncjnp6tIA2z6v8BeUfknGrtTw7gAAAABJRU5ErkJggg==</Data>
|
||||||
|
</Icon>
|
||||||
|
</CustomIcons>
|
||||||
|
<RecycleBinEnabled>True</RecycleBinEnabled>
|
||||||
|
<RecycleBinUUID>AAAAAAAAAAAAAAAAAAAAAA==</RecycleBinUUID>
|
||||||
|
<RecycleBinChanged>2013-07-15T19:35:54Z</RecycleBinChanged>
|
||||||
|
<EntryTemplatesGroup>AAAAAAAAAAAAAAAAAAAAAA==</EntryTemplatesGroup>
|
||||||
|
<EntryTemplatesGroupChanged>2013-07-15T19:35:54Z</EntryTemplatesGroupChanged>
|
||||||
|
<HistoryMaxItems>10</HistoryMaxItems>
|
||||||
|
<HistoryMaxSize>6291456</HistoryMaxSize>
|
||||||
|
<LastSelectedGroup>AAAAAAAAAAAAAAAAAAAAAA==</LastSelectedGroup>
|
||||||
|
<LastTopVisibleGroup>AAAAAAAAAAAAAAAAAAAAAA==</LastTopVisibleGroup>
|
||||||
|
<Binaries/>
|
||||||
|
<CustomData/>
|
||||||
|
</Meta>
|
||||||
|
<Root>
|
||||||
|
<Group>
|
||||||
|
<UUID>8XPXLHyIoM9KLqrjDHjsZQ==</UUID>
|
||||||
|
<Name>Root</Name>
|
||||||
|
<Notes/>
|
||||||
|
<IconID>48</IconID>
|
||||||
|
<Times>
|
||||||
|
<LastModificationTime>2013-07-15T19:35:54Z</LastModificationTime>
|
||||||
|
<CreationTime>2013-07-15T19:35:54Z</CreationTime>
|
||||||
|
<LastAccessTime>2013-07-15T19:35:54Z</LastAccessTime>
|
||||||
|
<ExpiryTime>2013-07-15T19:35:54Z</ExpiryTime>
|
||||||
|
<Expires>False</Expires>
|
||||||
|
<UsageCount>0</UsageCount>
|
||||||
|
<LocationChanged>2013-07-15T19:35:54Z</LocationChanged>
|
||||||
|
</Times>
|
||||||
|
<IsExpanded>True</IsExpanded>
|
||||||
|
<DefaultAutoTypeSequence/>
|
||||||
|
<EnableAutoType>null</EnableAutoType>
|
||||||
|
<EnableSearching>null</EnableSearching>
|
||||||
|
<LastTopVisibleEntry>AAAAAAAAAAAAAAAAAAAAAA==</LastTopVisibleEntry>
|
||||||
|
<Entry>
|
||||||
|
<UUID>XW1C9XAjxqVKt4bJsOpgRQ==</UUID>
|
||||||
|
<IconID>0</IconID>
|
||||||
|
<CustomIconUUID>RaP8u/B18ngIutqc2B5c9g==</CustomIconUUID>
|
||||||
|
<ForegroundColor/>
|
||||||
|
<BackgroundColor/>
|
||||||
|
<OverrideURL/>
|
||||||
|
<Tags/>
|
||||||
|
<Times>
|
||||||
|
<LastModificationTime>2013-07-15T19:37:38Z</LastModificationTime>
|
||||||
|
<CreationTime>2013-07-15T19:36:04Z</CreationTime>
|
||||||
|
<LastAccessTime>2013-07-15T19:37:38Z</LastAccessTime>
|
||||||
|
<ExpiryTime>2013-07-15T19:36:04Z</ExpiryTime>
|
||||||
|
<Expires>False</Expires>
|
||||||
|
<UsageCount>0</UsageCount>
|
||||||
|
<LocationChanged>2013-07-15T19:36:08Z</LocationChanged>
|
||||||
|
</Times>
|
||||||
|
<String>
|
||||||
|
<Key>Title</Key>
|
||||||
|
<Value>CustomIcon</Value>
|
||||||
|
</String>
|
||||||
|
<String>
|
||||||
|
<Key>UserName</Key>
|
||||||
|
<Value/>
|
||||||
|
</String>
|
||||||
|
<String>
|
||||||
|
<Key>Password</Key>
|
||||||
|
<Value Protected="True"/>
|
||||||
|
</String>
|
||||||
|
<String>
|
||||||
|
<Key>URL</Key>
|
||||||
|
<Value/>
|
||||||
|
</String>
|
||||||
|
<String>
|
||||||
|
<Key>Notes</Key>
|
||||||
|
<Value/>
|
||||||
|
</String>
|
||||||
|
<AutoType>
|
||||||
|
<Enabled>True</Enabled>
|
||||||
|
<DataTransferObfuscation>0</DataTransferObfuscation>
|
||||||
|
<DefaultSequence/>
|
||||||
|
</AutoType>
|
||||||
|
<History>
|
||||||
|
<Entry>
|
||||||
|
<UUID>XW1C9XAjxqVKt4bJsOpgRQ==</UUID>
|
||||||
|
<IconID>0</IconID>
|
||||||
|
<ForegroundColor/>
|
||||||
|
<BackgroundColor/>
|
||||||
|
<OverrideURL/>
|
||||||
|
<Tags/>
|
||||||
|
<Times>
|
||||||
|
<LastModificationTime>2013-07-15T19:36:08Z</LastModificationTime>
|
||||||
|
<CreationTime>2013-07-15T19:36:04Z</CreationTime>
|
||||||
|
<LastAccessTime>2013-07-15T19:36:08Z</LastAccessTime>
|
||||||
|
<ExpiryTime>2013-07-15T19:36:04Z</ExpiryTime>
|
||||||
|
<Expires>False</Expires>
|
||||||
|
<UsageCount>0</UsageCount>
|
||||||
|
<LocationChanged>2013-07-15T19:36:08Z</LocationChanged>
|
||||||
|
</Times>
|
||||||
|
<String>
|
||||||
|
<Key>Title</Key>
|
||||||
|
<Value>CustomIcon</Value>
|
||||||
|
</String>
|
||||||
|
<String>
|
||||||
|
<Key>UserName</Key>
|
||||||
|
<Value/>
|
||||||
|
</String>
|
||||||
|
<String>
|
||||||
|
<Key>Password</Key>
|
||||||
|
<Value Protected="True"/>
|
||||||
|
</String>
|
||||||
|
<String>
|
||||||
|
<Key>URL</Key>
|
||||||
|
<Value/>
|
||||||
|
</String>
|
||||||
|
<String>
|
||||||
|
<Key>Notes</Key>
|
||||||
|
<Value/>
|
||||||
|
</String>
|
||||||
|
<AutoType>
|
||||||
|
<Enabled>True</Enabled>
|
||||||
|
<DataTransferObfuscation>0</DataTransferObfuscation>
|
||||||
|
<DefaultSequence/>
|
||||||
|
</AutoType>
|
||||||
|
</Entry>
|
||||||
|
</History>
|
||||||
|
</Entry>
|
||||||
|
</Group>
|
||||||
|
</Root>
|
||||||
|
</KeePassFile>
|
||||||
BIN
MacPassTests/Databases/CustomIcon_Password_1234.kdbx
Normal file
BIN
MacPassTests/Databases/Test_Password_1234.kdb
Normal file
BIN
MacPassTests/Databases/Test_Password_1234.kdbx
Normal file
15
MacPassTests/MPDatabaseCreation.h
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
//
|
||||||
|
// MPDatabaseCreation.h
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 10.07.13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <SenTestingKit/SenTestingKit.h>
|
||||||
|
|
||||||
|
@interface MPDatabaseCreation : SenTestCase
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@end
|
||||||
34
MacPassTests/MPDatabaseCreation.m
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
//
|
||||||
|
// MPDatabaseCreation.m
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 10.07.13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "MPDatabaseCreation.h"
|
||||||
|
#import "MPDocument.h"
|
||||||
|
|
||||||
|
@implementation MPDatabaseCreation
|
||||||
|
|
||||||
|
- (void)testCreateDatabaseVersion1 {
|
||||||
|
MPDocument *document = [[MPDocument alloc] initWithVersion:MPDatabaseVersion3];
|
||||||
|
STAssertNotNil(document, @"Document should be created");
|
||||||
|
STAssertTrue(document.version == MPDatabaseVersion3, @"Database should be Version1");
|
||||||
|
STAssertNotNil(document.treeV3, @"Database Tree needs to be Kdb3Tree");
|
||||||
|
STAssertNil(document.treeV4, @"Database Tree cannot be Kdb4Tree");
|
||||||
|
STAssertTrue(document.decrypted, @"Document has to be decrypted new database is created");
|
||||||
|
STAssertFalse(document.hasPasswordOrKey, @"Document has no Password/Keyfile and thus is not secured");
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)testCreateDatabaseVersion2 {
|
||||||
|
MPDocument *document = [[MPDocument alloc] initWithVersion:MPDatabaseVersion4];
|
||||||
|
STAssertNotNil(document, @"Document should be created");
|
||||||
|
STAssertTrue(document.version == MPDatabaseVersion4, @"Database should be Version2");
|
||||||
|
STAssertNotNil(document.treeV4, @"Database Tree needs to be Kdb4Tree");
|
||||||
|
STAssertNil(document.treeV3, @"Database Tree cannot be Kdb3Tree");
|
||||||
|
STAssertTrue(document.decrypted, @"Document has to be decrypted new database is created");
|
||||||
|
STAssertFalse(document.hasPasswordOrKey, @"Document has no Password/Keyfile and thus is not secured");
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
13
MacPassTests/MPDatabaseLoading.h
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
//
|
||||||
|
// MPDatabaseLoadingTest.h
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 10.07.13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <SenTestingKit/SenTestingKit.h>
|
||||||
|
|
||||||
|
@interface MPDatabaseLoading : SenTestCase
|
||||||
|
|
||||||
|
@end
|
||||||
58
MacPassTests/MPDatabaseLoading.m
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
//
|
||||||
|
// MPDatabaseLoadingTest.m
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 10.07.13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "MPDatabaseLoading.h"
|
||||||
|
|
||||||
|
#import "MPDocument.h"
|
||||||
|
|
||||||
|
@implementation MPDatabaseLoading
|
||||||
|
|
||||||
|
|
||||||
|
- (void)testLoadVersion1 {
|
||||||
|
NSBundle *myBundle = [NSBundle bundleForClass:[self class]];
|
||||||
|
NSURL *url = [myBundle URLForResource:@"Test_Password_1234" withExtension:@"kdb"];
|
||||||
|
NSError *error = nil;
|
||||||
|
MPDocument *document = [[MPDocument alloc] initWithContentsOfURL:url ofType:@"kdb" error:&error];
|
||||||
|
STAssertNil(error, @"No Error should occur on loading");
|
||||||
|
STAssertNotNil(document, @"Document cannot be nil");
|
||||||
|
STAssertFalse(document.decrypted, @"Document is not decrypted after inital load");
|
||||||
|
STAssertTrue([document unlockWithPassword:@"1234" keyFileURL:nil], @"Should decrypt with password");
|
||||||
|
STAssertTrue(document.decrypted, @"Document is decrypted if decryptiong succeeds");
|
||||||
|
STAssertNotNil(document.treeV3, @"Tree shoudl be version1");
|
||||||
|
STAssertNil(document.treeV4, @"Tree should not be version2");
|
||||||
|
STAssertTrue(document.version == MPDatabaseVersion3, @"Internal databse version should be correct");
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)testVersion1WrongPassword {
|
||||||
|
NSBundle *myBundle = [NSBundle bundleForClass:[self class]];
|
||||||
|
NSURL *url = [myBundle URLForResource:@"Test_Password_1234" withExtension:@"kdb"];
|
||||||
|
NSError *error = nil;
|
||||||
|
MPDocument *document = [[MPDocument alloc] initWithContentsOfURL:url ofType:@"kdb" error:&error];
|
||||||
|
STAssertNil(error, @"No Error should occur on loading");
|
||||||
|
STAssertNotNil(document, @"Document should not be nil");
|
||||||
|
STAssertFalse(document.decrypted, @"Document is not decrypted after inital load");
|
||||||
|
STAssertFalse([document unlockWithPassword:@"123" keyFileURL:nil], @"Decryption should fail");
|
||||||
|
STAssertFalse(document.decrypted, @"Document is not decrypted with wrong password supplied");
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)testLoadDatabaseVerions2 {
|
||||||
|
NSBundle *myBundle = [NSBundle bundleForClass:[self class]];
|
||||||
|
NSURL *url = [myBundle URLForResource:@"Test_Password_1234" withExtension:@"kdbx"];
|
||||||
|
NSError *error = nil;
|
||||||
|
MPDocument *document = [[MPDocument alloc] initWithContentsOfURL:url ofType:@"kdbx" error:&error];
|
||||||
|
STAssertNil(error, @"No Error should occur on loading");
|
||||||
|
STAssertNotNil(document, @"Document cannot be nil");
|
||||||
|
STAssertFalse(document.decrypted, @"Document is not decrypted after inital load");
|
||||||
|
STAssertTrue([document unlockWithPassword:@"1234" keyFileURL:nil], @"Should decrypt with password");
|
||||||
|
STAssertTrue(document.decrypted, @"Document is decrypted if decryptiong succeeds");
|
||||||
|
STAssertNil(document.treeV3, @"Tree should not be version1");
|
||||||
|
STAssertNotNil(document.treeV4, @"Tree shoud be version2");
|
||||||
|
STAssertTrue(document.version == MPDatabaseVersion4, @"Internal database version should be correct");
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
18
MacPassTests/MPDatabasePasswordAndKeyfile.h
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
//
|
||||||
|
// MPDatabasePasswordAndKeyfile.h
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 11.07.13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <SenTestingKit/SenTestingKit.h>
|
||||||
|
|
||||||
|
@class MPDocument;
|
||||||
|
|
||||||
|
@interface MPDatabasePasswordAndKeyfile : SenTestCase {
|
||||||
|
MPDocument *_databaseV3;
|
||||||
|
MPDocument *_databaseV4;
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
47
MacPassTests/MPDatabasePasswordAndKeyfile.m
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
//
|
||||||
|
// MPDatabasePasswordAndKeyfile.m
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 11.07.13.
|
||||||
|
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "MPDatabasePasswordAndKeyfile.h"
|
||||||
|
|
||||||
|
#import "MPDocument.h"
|
||||||
|
|
||||||
|
@implementation MPDatabasePasswordAndKeyfile
|
||||||
|
|
||||||
|
- (void)setUp {
|
||||||
|
_databaseV3 = [[MPDocument alloc] initWithVersion:MPDatabaseVersion3];
|
||||||
|
_databaseV4 = [[MPDocument alloc] initWithVersion:MPDatabaseVersion4];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)tearDown {
|
||||||
|
_databaseV3 = nil;
|
||||||
|
_databaseV4 = nil;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)testSetPassword {
|
||||||
|
STAssertTrue([_databaseV3.password length] == 0, @"Password should not be set");
|
||||||
|
STAssertNil(_databaseV3.key, @"Keyfile should not be set");
|
||||||
|
STAssertFalse(_databaseV3.hasPasswordOrKey, @"Database without password is not secure");
|
||||||
|
_databaseV3.password = @"test";
|
||||||
|
STAssertTrue([_databaseV3.password isEqualToString:@"test"], @"Password should be set");
|
||||||
|
STAssertTrue(_databaseV3.hasPasswordOrKey, @"Database with password is secured");
|
||||||
|
_databaseV3.password = nil;
|
||||||
|
STAssertFalse(_databaseV3.hasPasswordOrKey, @"Database with removed password is not secure anymore");
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)testSetKeyfile {
|
||||||
|
STAssertTrue([_databaseV3.password length] == 0, @"Password should not be set");
|
||||||
|
STAssertNil(_databaseV3.key, @"Keyfile should not be set");
|
||||||
|
STAssertFalse(_databaseV3.hasPasswordOrKey, @"Database without keyfile is not secure");
|
||||||
|
_databaseV3.key = [NSURL URLWithString:@"noKeyFile"];
|
||||||
|
STAssertTrue(_databaseV3.hasPasswordOrKey, @"Database with keyfile is secured");
|
||||||
|
_databaseV3.key = nil;
|
||||||
|
STAssertFalse(_databaseV3.hasPasswordOrKey, @"Database with removed keyfile is not secure anymore");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@end
|
||||||
22
MacPassTests/MacPassTests-Info.plist
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>en</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>${EXECUTABLE_NAME}</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>com.hicknhacksoftware.${PRODUCT_NAME:rfc1034identifier}</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>BNDL</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>1.0</string>
|
||||||
|
<key>CFBundleSignature</key>
|
||||||
|
<string>????</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>1</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
7
MacPassTests/MacPassTests-Prefix.pch
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
//
|
||||||
|
// Prefix header for all source files of the 'MacPassTests' target in the 'MacPassTests' project
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifdef __OBJC__
|
||||||
|
#import <Cocoa/Cocoa.h>
|
||||||
|
#endif
|
||||||
2
MacPassTests/en.lproj/InfoPlist.strings
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
/* Localized versions of Info.plist keys */
|
||||||
|
|
||||||
57
README.md
@@ -3,48 +3,30 @@
|
|||||||
There a lot of iOS KeePass tools around but a distinct lack of a good OS X Version.
|
There a lot of iOS KeePass tools around but a distinct lack of a good OS X Version.
|
||||||
KeePass can be used via Mono on OS X but lacks vital functionality and feels sluggish.
|
KeePass can be used via Mono on OS X but lacks vital functionality and feels sluggish.
|
||||||
|
|
||||||
This is an attempt to create an OS X port that should at least be able to read KeePass files.
|
MacPass is an attempt to create an OS X port of KeePass.
|
||||||
|
|
||||||
##Disclaimer
|
##Disclaimer
|
||||||
|
The Project is in heavy development. Beware that I'm going to shift things around so stuff is going to break. A lot.
|
||||||
The Project is in heavy development and it's likely to take some time till it reaches a usable state.
|
|
||||||
Beware that I'm going to shift things around so stuff is going to break. A lot.
|
|
||||||
|
|
||||||
##Dowload
|
##Dowload
|
||||||
|
|
||||||
I'm trying to upload new builds along the way for all of you that just want to take a quick look.
|
Since github now provides a release feature, I'm trying to upload binaries on all the tags I create along the way.
|
||||||
As stated in the disclaimer, this software cannot be considered safe for work in it's current development status.
|
Use it with caution, it's unfinished. Really!
|
||||||
Use it with caution! Since I did start refactoring the KeePassLib there is even more potential broken code!
|
|
||||||
|
|
||||||
[Older Version of MacPass at Dropbox](https://www.dropbox.com/sh/yqgfwi7f8mnd747/NCQlJmg0f0) (build 1882 07/04/2013)
|
All releases can be found at [Github](https://github.com/mstarke/MacPass/releases).
|
||||||
|
|
||||||
All [new Release](https://github.com/mstarke/MacPass/releases) are server from Github.
|
##Known Major Issues
|
||||||
|
|
||||||
##Known Issues
|
* Databas V1 handling is dodgy. (e.g. attachments)
|
||||||
|
|
||||||
* Undo/Redo get's messed up when the Trash (=RecylcleBin in KeePass terms) is enabled/used
|
##System Requirement
|
||||||
* Drag and Drop in Outline/Entry View broken
|
|
||||||
|
|
||||||
##Help
|
The Minimum OS X Version for MacPass currently is 10.8 Mountain Lion.
|
||||||
|
With 10.9 Mavericks around the corner, I'm a bit hesitant to support 10.7 Lion.
|
||||||
I'm in constant need of a full set of Databases with all possible keyfile/password and format combinations.
|
|
||||||
If you are able to provide databases with keyfiles (Hashed, Binary, XML) I would love to hear from you!
|
|
||||||
|
|
||||||
##Requirement
|
|
||||||
|
|
||||||
MacPass needs OS X 10.8 as a minimum OS version since it takes advantage of some of the enhancements in Autolayout in 10.8.
|
|
||||||
It might be possible to target 10.7 but with the upcomming 10.9 release, I think 10.8 is a feasable minimum.
|
|
||||||
|
|
||||||
##Status
|
##Status
|
||||||
|
|
||||||
Take a look at the [Wiki](https://github.com/mstarke/MacPass/wiki/Status)
|
The Status can be found on the dedicated [Wiki page](https://github.com/mstarke/MacPass/wiki/Status).
|
||||||
|
|
||||||
##Alternatives
|
|
||||||
|
|
||||||
Currently there is an alpha Version available of [KeePassX](http://www.keepassx.org).
|
|
||||||
It's Qt based KeePass manager, than can handle KeePass 1 and 2 containers rather nicely.
|
|
||||||
Compared to running KeePass with Mono it very fast and remarkably stable for an alpha relaese.
|
|
||||||
Feel free to give it a try. The biggest draw-back is it's inablity to create passwords via a wizzard.
|
|
||||||
|
|
||||||
##What does it look like?
|
##What does it look like?
|
||||||
|
|
||||||
@@ -52,6 +34,21 @@ Feel free to give it a try. The biggest draw-back is it's inablity to create pas
|
|||||||
|
|
||||||
More Screenshots in the [Wiki](https://github.com/mstarke/MacPass/wiki/Screenshots)
|
More Screenshots in the [Wiki](https://github.com/mstarke/MacPass/wiki/Screenshots)
|
||||||
|
|
||||||
|
##Alternatives
|
||||||
|
|
||||||
|
[KeePassX](http://www.keepassx.org) is a Qt based KeePass port, than can read Databases Version 1 and 2 and write Version 2 containers rather nicely.
|
||||||
|
It's in active development, open source. Sadly there's only an older alpha binary release. It fully supports all database features.
|
||||||
|
|
||||||
|
[KyPass Companion](http://www.kyuran.be/logiciels/kypass4mac/) is a native Cocoa port and offers KeePassHttp compatiblity.
|
||||||
|
Should be able to read and write version 1 and 2 database. Is closed source and in early development. Beta releases have an expiry date. Not all database features are fully supported.
|
||||||
|
|
||||||
|
[S3crets](http://s3crets.com/en/help/) native Cocoa Port with a different approach to displaying the database fully inside a tree.
|
||||||
|
Is able to read and write version 1 and 2 databases. Not all database features are fully supported.
|
||||||
|
|
||||||
|
## Help
|
||||||
|
|
||||||
|
You might get help in the IRC channel [#macpass](irc://irc.freenode.org/macpass) on [irc.freenode.org](irc://irc.freenode.org)
|
||||||
|
|
||||||
##License
|
##License
|
||||||
|
|
||||||
MacPass KeePass compatible client for OS X
|
MacPass KeePass compatible client for OS X
|
||||||
@@ -84,3 +81,5 @@ This Project is based upon the following work:
|
|||||||
[PXSourceList](https://github.com/Perspx/PXSourceList) Copyright 2011, Alex Rozanski. All rights reserved.
|
[PXSourceList](https://github.com/Perspx/PXSourceList) Copyright 2011, Alex Rozanski. All rights reserved.
|
||||||
|
|
||||||
[CocoaHTTPServer](https://github.com/robbiehanson/CocoaHTTPServer ) Copyright 2011, Deusty, LLC. All rights reserved.
|
[CocoaHTTPServer](https://github.com/robbiehanson/CocoaHTTPServer ) Copyright 2011, Deusty, LLC. All rights reserved.
|
||||||
|
|
||||||
|
[KSPasswordField](https://github.com/karelia/SecurityInterface) Copyright 2012 Mike Abdullah, Karelia Software. All rights reserved.
|
||||||
|
|||||||