diff --git a/KeePassKit b/KeePassKit index b333ee0f..05b59b46 160000 --- a/KeePassKit +++ b/KeePassKit @@ -1 +1 @@ -Subproject commit b333ee0fb4d3563c5a011982be219ac10649d1b9 +Subproject commit 05b59b464eb8c52e5ce4047ce1e6311f7d8f7c30 diff --git a/MacPass.xcodeproj/xcshareddata/xcschemes/MacPass.xcscheme b/MacPass.xcodeproj/xcshareddata/xcschemes/MacPass.xcscheme index 82d6dd66..e6329ac5 100644 --- a/MacPass.xcodeproj/xcshareddata/xcschemes/MacPass.xcscheme +++ b/MacPass.xcodeproj/xcshareddata/xcschemes/MacPass.xcscheme @@ -70,7 +70,7 @@ + isEnabled = "YES"> diff --git a/MacPass/DatabaseSettingsWindow.xib b/MacPass/DatabaseSettingsWindow.xib index 1260411b..3b1797e6 100644 --- a/MacPass/DatabaseSettingsWindow.xib +++ b/MacPass/DatabaseSettingsWindow.xib @@ -52,7 +52,7 @@ 7 2 - {{196, 240}, {546, 365}} + {{196, 240}, {546, 354}} 1618477056 Window NSWindow @@ -68,6 +68,7 @@ {{473, 13}, {59, 32}} + _NS:9 YES @@ -92,8 +93,8 @@ - 12 - {{13, 41}, {520, 318}} + 268 + {{13, 41}, {520, 307}} @@ -108,7 +109,7 @@ 268 - {{136, 220}, {280, 22}} + {{136, 209}, {280, 22}} @@ -146,10 +147,10 @@ 268 - {{50, 195}, {81, 17}} + {{50, 184}, {81, 17}} - + _NS:1535 YES @@ -180,7 +181,7 @@ 268 - {{25, 223}, {106, 17}} + {{25, 212}, {106, 17}} @@ -198,169 +199,6 @@ NO - - - 256 - - - - 2304 - - - - 2322 - - Apple HTML pasteboard type - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - Apple URL pasteboard type - CorePasteboardFlavorType 0x6D6F6F76 - NSColor pasteboard type - NSFilenamesPboardType - NSStringPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT RTFD pasteboard type - NeXT Rich Text Format v1.0 pasteboard type - NeXT TIFF v4.0 pasteboard type - NeXT font pasteboard type - NeXT ruler pasteboard type - WebURLsWithTitlesPboardType - public.url - - {278, 98} - - - - _NS:13 - - - - - - - - - - - - 166 - - - - 278 - 1 - - - 67112835 - 0 - - - - - 6 - System - selectedTextBackgroundColor - - - - 6 - System - selectedTextColor - - - - - - - 1 - MCAwIDEAA - - - {8, -8} - 13 - - - - - - 0 - - 6 - {463, 10000000} - - - - {{1, 1}, {278, 98}} - - - - _NS:11 - - - - {4, 5} - - 79691776 - - - - - - file://localhost/Applications/Xcode.app/Contents/SharedFrameworks/DVTKit.framework/Resources/DVTIbeamCursor.tiff - - - - - 3 - MCAwAA - - - - 4 - - - - 256 - {{263, 1}, {16, 98}} - - - - _NS:83 - NO - - _doScroller: - 0.82352941176470584 - - - - -2147483392 - {{-100, -100}, {87, 18}} - - - - _NS:33 - NO - 1 - - _doScroller: - 1 - 0.94565218687057495 - - - {{136, 112}, {280, 100}} - - - - _NS:9 - 133138 - - - - 0.25 - 4 - 1 - 268 @@ -479,7 +317,7 @@ {{136, 28}, {44, 23}} - + _NS:1116 YES NO @@ -489,8 +327,171 @@ MC4wNTgxMzA0OTg5OCAwLjA1NTU0MTg5OTA2IDEAA + + + 256 + + + + 2304 + + + + 2322 + + Apple HTML pasteboard type + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + Apple URL pasteboard type + CorePasteboardFlavorType 0x6D6F6F76 + NSColor pasteboard type + NSFilenamesPboardType + NSStringPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT RTFD pasteboard type + NeXT Rich Text Format v1.0 pasteboard type + NeXT TIFF v4.0 pasteboard type + NeXT font pasteboard type + NeXT ruler pasteboard type + WebURLsWithTitlesPboardType + public.url + + {278, 99} + + + + _NS:13 + + + + + + + + + + + + 166 + + + + 278 + 1 + + + 67121127 + 0 + + + + + 6 + System + selectedTextBackgroundColor + + + + 6 + System + selectedTextColor + + + + + + + 1 + MCAwIDEAA + + + {8, -8} + 13 + + + + + + 1 + + 6 + {463, 10000000} + + + + {{1, 1}, {278, 99}} + + + + _NS:11 + + + + {4, 5} + + 79691776 + + + + + + file://localhost/Applications/Xcode.app/Contents/SharedFrameworks/DVTKit.framework/Resources/DVTIbeamCursor.tiff + + + + + 3 + MCAwAA + + + + 4 + + + + 256 + {{263, 1}, {16, 99}} + + + + _NS:83 + NO + + _doScroller: + 0.99137931034482762 + + + + -2147483392 + {{-100, -100}, {87, 18}} + + + + _NS:33 + NO + 1 + + _doScroller: + 1 + 0.94565218687057495 + + + {{136, 100}, {280, 101}} + + + + _NS:9 + 133138 + + + + 0.25 + 4 + 1 + - {{10, 33}, {500, 272}} + {{10, 33}, {500, 261}} @@ -508,7 +509,7 @@ 268 - {{184, 228}, {98, 18}} + {{184, 181}, {98, 18}} _NS:9 @@ -539,7 +540,7 @@ 268 - {{184, 199}, {133, 18}} + {{184, 152}, {133, 18}} _NS:9 @@ -565,7 +566,7 @@ 268 - {{184, 170}, {130, 18}} + {{184, 123}, {130, 18}} _NS:9 @@ -591,7 +592,7 @@ 268 - {{184, 141}, {95, 18}} + {{184, 94}, {95, 18}} _NS:9 @@ -617,9 +618,9 @@ 268 - {{184, 112}, {107, 18}} + {{184, 65}, {107, 18}} - + _NS:9 YES @@ -641,7 +642,7 @@ NO - {{10, 33}, {500, 272}} + {{10, 33}, {500, 261}} Protection @@ -656,7 +657,7 @@ 268 - {{70, 231}, {307, 18}} + {{70, 184}, {307, 18}} _NS:9 @@ -682,7 +683,7 @@ 268 - {{70, 132}, {138, 18}} + {{70, 85}, {138, 18}} _NS:9 @@ -708,7 +709,7 @@ 268 - {{112, 109}, {187, 18}} + {{112, 62}, {187, 18}} _NS:9 @@ -734,7 +735,7 @@ 268 - {{111, 208}, {98, 17}} + {{111, 161}, {98, 17}} _NS:1535 @@ -754,7 +755,7 @@ 268 - {{214, 206}, {96, 22}} + {{214, 159}, {96, 22}} _NS:9 @@ -775,7 +776,7 @@ 268 - {{315, 203}, {19, 27}} + {{315, 156}, {19, 27}} _NS:1099 @@ -794,7 +795,7 @@ 268 - {{212, 128}, {220, 26}} + {{212, 81}, {220, 26}} _NS:9 @@ -830,7 +831,7 @@ 268 - {{121, 175}, {88, 17}} + {{121, 128}, {88, 17}} _NS:1535 @@ -850,7 +851,7 @@ 268 - {{214, 173}, {96, 22}} + {{214, 126}, {96, 22}} _NS:9 @@ -871,7 +872,7 @@ 268 - {{315, 170}, {19, 27}} + {{315, 123}, {19, 27}} _NS:1099 @@ -888,7 +889,7 @@ NO - {{10, 33}, {500, 272}} + {{10, 33}, {500, 261}} Advanced @@ -903,9 +904,9 @@ 268 - {{97, 186}, {121, 17}} + {{96, 138}, {121, 17}} - + _NS:1535 YES @@ -920,33 +921,12 @@ NO - - - 268 - {{223, 183}, {178, 22}} - - - _NS:9 - YES - - -1804599231 - 272630784 - - - _NS:9 - - YES - - - - NO - 268 - {{220, 151}, {184, 26}} + {{220, 104}, {184, 26}} - + _NS:9 YES @@ -979,7 +959,7 @@ 268 - {{107, 156}, {110, 17}} + {{107, 109}, {110, 17}} _NS:1535 @@ -996,8 +976,29 @@ NO + + + 268 + {{222, 136}, {179, 22}} + + + _NS:9 + YES + + -1804599231 + 272630784 + + + _NS:9 + + YES + + + + NO + - {{10, 33}, {500, 272}} + {{10, 33}, {500, 261}} Templates @@ -1040,7 +1041,7 @@ NO - {546, 365} + {546, 354} @@ -1100,14 +1101,6 @@ 663 - - - databaseDescriptionTextView - - - - 676 - protectNotesCheckButton @@ -1164,14 +1157,6 @@ 1183 - - - defaultUsernameTextField - - - - 1261 - templateGroupPopUpButton @@ -1188,6 +1173,14 @@ 1454 + + + databaseDescriptionTextView + + + + 1553 + @@ -1356,8 +1349,8 @@ 3 - + @@ -1402,38 +1395,6 @@ 361 - - - 5 - 0 - - 6 - 1 - - 8 - - 1000 - - 6 - 24 - 3 - - - - 4 - 0 - - 4 - 1 - - 28 - - 1000 - - 3 - 9 - 3 - 3 @@ -1450,6 +1411,22 @@ 24 3 + + + 5 + 0 + + 6 + 1 + + 8 + + 1000 + + 6 + 24 + 3 + 5 @@ -1478,8 +1455,8 @@ 1000 - 3 - 9 + 9 + 40 3 @@ -1494,6 +1471,38 @@ 1000 + 9 + 40 + 2 + + + + 3 + 0 + + 4 + 1 + + 8 + + 1000 + + 6 + 24 + 3 + + + + 5 + 0 + + 5 + 1 + + 0.0 + + 1000 + 6 24 2 @@ -1514,22 +1523,6 @@ 24 3 - - - 5 - 0 - - 5 - 1 - - 0.0 - - 1000 - - 6 - 24 - 2 - 10 @@ -1546,24 +1539,24 @@ 24 2 - - - 4 + + + 3 0 - + 4 1 - - 112 + + 8 1000 - 3 - 9 + 6 + 24 3 - + 5 0 @@ -1578,43 +1571,11 @@ 24 3 - - - 3 - 0 - - 3 - 1 - - 0.0 - - 1000 - - 6 - 24 - 2 - - - - 3 - 0 - - 4 - 1 - - 8 - - 1000 - - 9 - 40 - 3 - - - + + 5 0 - + 5 1 @@ -1626,6 +1587,38 @@ 24 2 + + + 6 + 0 + + 6 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 3 + 0 + + 3 + 1 + + 30 + + 1000 + + 3 + 9 + 3 + 10 @@ -1642,38 +1635,6 @@ 24 2 - - - 6 - 0 - - 6 - 1 - - 0.0 - - 1000 - - 6 - 24 - 2 - - - - 3 - 0 - - 3 - 1 - - 30 - - 1000 - - 9 - 40 - 3 - 5 @@ -1690,6 +1651,22 @@ 24 3 + + + 3 + 0 + + 3 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + 5 @@ -1708,12 +1685,12 @@ - + @@ -1793,15 +1770,15 @@ 24 2 - - - 3 + + + 4 0 - - 3 + + 4 1 - 120 + 84 1000 @@ -1825,6 +1802,22 @@ 24 3 + + + 3 + 0 + + 3 + 1 + + 113 + + 1000 + + 3 + 9 + 3 + 5 @@ -1841,22 +1834,6 @@ 24 3 - - - 3 - 0 - - 3 - 1 - - 77 - - 1000 - - 3 - 9 - 3 - 3 @@ -1921,7 +1898,7 @@ 24 2 - + 4 0 @@ -1929,39 +1906,7 @@ 4 1 - 111 - - 1000 - - 3 - 9 - 3 - - - - 11 - 0 - - 11 - 1 - - 0.0 - - 1000 - - 6 - 24 - 2 - - - - 5 - 0 - - 5 - 1 - - 72 + 64 1000 @@ -2001,6 +1946,22 @@ 24 2 + + + 11 + 0 + + 11 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + 11 @@ -2049,7 +2010,23 @@ 24 2 - + + + 5 + 0 + + 5 + 1 + + 72 + + 1000 + + 3 + 9 + 3 + + 3 0 @@ -2057,7 +2034,7 @@ 3 1 - 25 + 61 1000 @@ -2068,13 +2045,13 @@ - - + - - + + + @@ -2154,7 +2131,7 @@ 24 2 - + 3 0 @@ -2162,7 +2139,7 @@ 3 1 - 86 + 122 1000 @@ -2186,6 +2163,22 @@ 24 2 + + + 3 + 0 + + 3 + 1 + + 93 + + 1000 + + 3 + 9 + 3 + 9 @@ -2202,23 +2195,7 @@ 22 2 - - - 3 - 0 - - 3 - 1 - - 57 - - 1000 - - 3 - 9 - 3 - - + 3 0 @@ -2226,7 +2203,7 @@ 3 1 - 28 + 64 1000 @@ -2576,36 +2553,6 @@ - - 665 - - - - - - - - - - 673 - - - - - 668 - - - - - 667 - - - - - 666 - - - 374 @@ -2649,11 +2596,6 @@ - - 1055 - - - 1056 @@ -2684,11 +2626,6 @@ - - 1115 - - - 1210 @@ -2701,7 +2638,23 @@ 1211 - + + + 3 + 0 + + 4 + 1 + + 8 + + 1000 + + 6 + 24 + 3 + + 5 0 @@ -2717,56 +2670,8 @@ 24 3 - - - 6 - 0 - - 6 - 1 - - 0.0 - - 1000 - - 6 - 24 - 2 - - - - 3 - 0 - - 4 - 1 - - 8 - - 1000 - - 6 - 24 - 3 - - - - 3 - 0 - - 3 - 1 - - 67 - - 1000 - - 3 - 9 - 3 - - - + + 5 0 @@ -2781,12 +2686,12 @@ 24 3 - - - 10 + + + 6 0 - - 10 + + 6 1 0.0 @@ -2797,7 +2702,39 @@ 24 2 - + + + 3 + 0 + + 3 + 1 + + 103 + + 1000 + + 3 + 9 + 3 + + + + 5 + 0 + + 5 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + 10 0 @@ -2813,7 +2750,23 @@ 24 2 - + + + 11 + 0 + + 11 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + 5 0 @@ -2821,7 +2774,7 @@ 5 1 - 100 + 99 1000 @@ -2829,10 +2782,10 @@ 9 3 - - + + @@ -2849,71 +2802,11 @@ - - 1216 - - - - - - 7 - 0 - - 0 - 1 - - 178 - - 1000 - - 3 - 9 - 1 - - - - - - 1217 - - - - - 1225 - - - - - 1227 - - - - - 1228 - - - 1230 - - - 7 - 0 - - 0 - 1 - - 179 - - 1000 - - 3 - 9 - 1 - @@ -2944,41 +2837,6 @@ - - 1253 - - - - - 1255 - - - - - 1256 - - - - - 1257 - - - - - 1258 - - - - - 1259 - - - - - 1260 - - - 1268 @@ -3033,11 +2891,6 @@ - - 1308 - - - 1309 @@ -3078,11 +2931,6 @@ - - 1333 - - - 1343 @@ -3093,46 +2941,16 @@ - - 1374 - - - 1376 - - 1377 - - - - - 710 - - - 1387 - - 1388 - - - - - 1391 - - - - - 1393 - - - 1394 @@ -3184,11 +3002,6 @@ - - 1401 - - - 1404 @@ -3212,21 +3025,6 @@ - - 1410 - - - - - 1412 - - - - - 1421 - - - 1433 @@ -3249,6 +3047,22 @@ 1439 + + + 8 + 0 + + 0 + 1 + + 23 + + 1000 + + 3 + 9 + 1 + 7 @@ -3278,16 +3092,6 @@ - - 1448 - - - - - 1449 - - - 1450 @@ -3304,10 +3108,199 @@ - 1411 - + 1456 + + + + + 1458 + + + + + 1459 + + + 1460 + + + + + 1463 + + + + + 1475 + + + + + 1476 + + + + + 1474 + + + + + 1473 + + + + + 1501 + + + + + + 7 + 0 + + 0 + 1 + + 179 + + 1000 + + 3 + 9 + 1 + + + + + + 1502 + + + + + 1506 + + + + + 1509 + + + + + 1511 + + + + + 1512 + + + + + 1513 + + + + + 1514 + + + + + 1515 + + + + + 1516 + + + + + 1529 + + + + + 1530 + + + + + + + + + + 1531 + + + + + 1532 + + + + + 1533 + + + + + 1539 + + + + + 1541 + + + + + 1542 + + + + + 1543 + + + + + 1547 + + + + + 1548 + + + + + 1549 + + + + + 1550 + + + + + 1551 + + + + + 1552 + + + @@ -3317,42 +3310,28 @@ com.apple.InterfaceBuilder.CocoaPlugin {{357, 418}, {480, 270}} - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - - + + - - - - - + + + + + + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - HNHRoundedTextField - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -3360,13 +3339,6 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -3379,7 +3351,6 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -3388,16 +3359,10 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin @@ -3407,32 +3372,65 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - + + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -3466,46 +3464,45 @@ com.apple.InterfaceBuilder.CocoaPlugin - - - - - - + + + + + - + - + + - - + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - + + + - - - + - + - + @@ -3515,11 +3512,11 @@ com.apple.InterfaceBuilder.CocoaPlugin - - + + - + @@ -3576,12 +3573,6 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin @@ -3589,7 +3580,6 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -3601,7 +3591,7 @@ - 1454 + 1553 @@ -3615,7 +3605,7 @@ MPDatabaseSettingsWindowController - NSWindowController + MPSheetWindowController NSTextView NSTextField @@ -3690,6 +3680,14 @@ ./Classes/MPDatabaseSettingsWindowController.h + + MPSheetWindowController + NSWindowController + + IBProjectSource + ./Classes/MPSheetWindowController.h + + NSLayoutConstraint NSObject diff --git a/MacPass/FilterBar.xib b/MacPass/FilterBar.xib index b3d853f0..96fb26be 100644 --- a/MacPass/FilterBar.xib +++ b/MacPass/FilterBar.xib @@ -42,10 +42,39 @@ 268 + + + 268 + {{234, 6}, {74, 17}} + + + + _NS:9 + YES + + -2080374784 + 134348800 + Password + + LucidaGrande-Bold + 12 + 16 + + _NS:9 + + -1232846848 + 173 + + + 400 + 75 + + NO + 268 - {{242, 6}, {100, 19}} + {{316, 6}, {100, 19}} @@ -121,7 +150,7 @@ 268 - {{350, 6}, {42, 17}} + {{424, 6}, {42, 17}} _NS:9 @@ -148,18 +177,14 @@ {{188, 6}, {38, 17}} - + _NS:9 YES -2080374784 134348800 URL - - LucidaGrande-Bold - 12 - 16 - + _NS:9 -1232846848 @@ -263,7 +288,7 @@ NO - {400, 30} + {474, 30} @@ -360,6 +385,22 @@ 95 + + + filterPasswordButton + + + + 101 + + + + _toggleFilterSpace: + + + + 102 + @@ -443,7 +484,7 @@ 5 1 - + 6 1 @@ -471,6 +512,38 @@ 40 2 + + + 5 + 0 + + 6 + 1 + + 8 + + 1000 + + 9 + 40 + 3 + + + + 11 + 0 + + 11 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + 10 @@ -637,6 +710,7 @@ + @@ -777,8 +851,8 @@ 1000 - 3 - 9 + 9 + 40 1 @@ -794,11 +868,6 @@ - - 87 - - - 83 @@ -814,13 +883,41 @@ + + 96 + + + + + + + + 97 + + + + + 98 + + + + + 99 + + + + + 100 + + + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - + @@ -831,6 +928,8 @@ + + @@ -840,6 +939,7 @@ com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -875,14 +975,18 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin - 95 + 102 @@ -897,6 +1001,17 @@ MPEntryViewController MPViewController + + _toggleFilterSpace: + id + + + _toggleFilterSpace: + + _toggleFilterSpace: + id + + NSButton HNHGradientView @@ -905,11 +1020,12 @@ NSView NSButton NSTextField + NSButton NSSearchField NSButton NSButton NSButton - NSLayoutConstraint + NSLayoutConstraint HNHGradientView @@ -941,6 +1057,10 @@ filterLabelTextField NSTextField + + filterPasswordButton + NSButton + filterSearchField NSSearchField @@ -957,8 +1077,8 @@ filterUsernameButton NSButton - - tableToTop + + tableToTopConstraint NSLayoutConstraint diff --git a/MacPass/MPDatabaseSettingsWindowController.m b/MacPass/MPDatabaseSettingsWindowController.m index 95f02c67..8f202a25 100644 --- a/MacPass/MPDatabaseSettingsWindowController.m +++ b/MacPass/MPDatabaseSettingsWindowController.m @@ -100,8 +100,7 @@ } - (IBAction)close:(id)sender { - [NSApp endSheet:[self window]]; - [[self window] orderOut:nil]; + [self dismissSheet:0]; } - (void)updateView { @@ -237,22 +236,26 @@ - (NSMenu *)_buildTreeMenu:(KPKTree *)tree preselect:(NSUUID *)uuid { NSMenu *menu = [[NSMenu alloc] init]; [menu setAutoenablesItems:NO]; - /* - Trash and Templates can be nested, so wee need to adhere to this :( - */ - for(KPKGroup *group in tree.root.groups) { - NSMenuItem *groupItem = [[NSMenuItem alloc] init]; - [groupItem setImage:group.iconImage]; - [groupItem setTitle:group.name]; - [groupItem setRepresentedObject:group]; - [groupItem setEnabled:YES]; - if(uuid && [group.uuid isEqual:uuid]) { - [groupItem setState:NSOnState]; - } - [menu addItem:groupItem]; + [self _insertMenuItemsForGroup:group atLevel:0 inMenu:menu preselect:uuid]; } return menu; } +- (void)_insertMenuItemsForGroup:(KPKGroup *)group atLevel:(NSUInteger)level inMenu:(NSMenu *)menu preselect:(NSUUID *)uuid{ + NSMenuItem *groupItem = [[NSMenuItem alloc] init]; + [groupItem setImage:group.iconImage]; + [groupItem setTitle:group.name]; + [groupItem setRepresentedObject:group]; + [groupItem setEnabled:YES]; + if(uuid && [group.uuid isEqual:uuid]) { + [groupItem setState:NSOnState]; + } + [groupItem setIndentationLevel:level]; + [menu addItem:groupItem]; + for(KPKGroup *childGroup in group.groups) { + [self _insertMenuItemsForGroup:childGroup atLevel:level + 1 inMenu:menu preselect:uuid]; + } +} + @end diff --git a/MacPass/MPDocument.m b/MacPass/MPDocument.m index 10114877..41a92c94 100644 --- a/MacPass/MPDocument.m +++ b/MacPass/MPDocument.m @@ -76,10 +76,10 @@ typedef NS_ENUM(NSUInteger, MPAlertType) { switch(version) { case KPKLegacyVersion: return MPLegacyDocumentUTI; - + case KPKXmlVersion: return MPXMLDocumentUTI; - + default: return @"Unknown"; } @@ -194,7 +194,7 @@ typedef NS_ENUM(NSUInteger, MPAlertType) { [savePanel setAccessoryView:[self.savePanelViewController view]]; [self.savePanelViewController updateView]; - + return YES; } @@ -219,7 +219,7 @@ typedef NS_ENUM(NSUInteger, MPAlertType) { self.password = [password length] > 0 ? password : nil; self.tree = [[KPKTree alloc] initWithData:_encryptedData password:passwordData error:error]; - + return (self.tree != nil); } @@ -405,12 +405,12 @@ typedef NS_ENUM(NSUInteger, MPAlertType) { - (void)deleteEntry:(KPKEntry *)entry { if(self.useTrash) { - if(!self.trash) { - [self _createTrashGroup]; - } if([self isItemTrashed:entry]) { return; // Entry is already trashed } + if(!self.trash) { + [self _createTrashGroup]; + } [entry moveToGroup:self.trash atIndex:[self.trash.entries count]]; [[self undoManager] setActionName:NSLocalizedString(@"TRASH_ENTRY", "Move Entry to Trash")]; } @@ -496,17 +496,14 @@ typedef NS_ENUM(NSUInteger, MPAlertType) { - (KPKGroup *)_createTrashGroup { /* Maybe push the stuff to the Tree? */ KPKGroup *trash = [self.tree createGroup:self.tree.root]; + BOOL wasEnabled = [self.undoManager isUndoRegistrationEnabled]; + [self.undoManager disableUndoRegistration]; trash.name = NSLocalizedString(@"TRASH", @"Name for the trash group"); trash.icon = MPIconTrash; - BOOL registrationEnable = [[self undoManager] isUndoRegistrationEnabled]; - if(registrationEnable) { - [[self undoManager] disableUndoRegistration]; - } [self.tree.root addGroup:trash]; - if(registrationEnable) { - [[self undoManager] enableUndoRegistration]; + if(wasEnabled) { + [self.undoManager enableUndoRegistration]; } - self.tree.metaData.recycleBinUuid = trash.uuid; return trash; } diff --git a/MacPass/MPEntryViewController.m b/MacPass/MPEntryViewController.m index a37ad6f6..b6a82afa 100644 --- a/MacPass/MPEntryViewController.m +++ b/MacPass/MPEntryViewController.m @@ -42,6 +42,7 @@ typedef NS_OPTIONS(NSUInteger, MPFilterModeType) { MPFilterUrls = (1<<0), MPFilterUsernames = (1<<1), MPFilterTitles = (1<<2), + MPFilterPasswords = (1<<3), }; typedef NS_ENUM(NSUInteger,MPOVerlayInfoType) { @@ -64,10 +65,6 @@ NSString *const _MPTableImageCellView = @"ImageCell"; NSString *const _MPTableStringCellView = @"StringCell"; NSString *const _MPTAbleSecurCellView = @"PasswordCell"; -NSString *const _toggleFilterURLButton = @"SearchURL"; -NSString *const _toggleFilterTitleButton = @"SearchTitle"; -NSString *const _toggleFilterUsernameButton = @"SearchUsername"; - @interface MPEntryViewController () { MPEntryContextMenuDelegate *_menuDelegate; } @@ -84,6 +81,7 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername"; @property (weak) IBOutlet NSButton *filterTitleButton; @property (weak) IBOutlet NSButton *filterUsernameButton; @property (weak) IBOutlet NSButton *filterURLButton; +@property (weak) IBOutlet NSButton *filterPasswordButton; @property (weak) IBOutlet NSTextField *filterLabelTextField; @property (weak) IBOutlet NSSearchField *filterSearchField; @property (weak) IBOutlet HNHGradientView *bottomBar; @@ -96,7 +94,6 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername"; @property (nonatomic, strong) MPEntryTableDataSource *dataSource; @property (assign, nonatomic) MPFilterModeType filterMode; -@property (strong, nonatomic) NSDictionary *filterButtonToMode; @end @@ -111,10 +108,6 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername"; self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if(self) { _filterMode = MPFilterTitles; - _filterButtonToMode = @{ _toggleFilterUsernameButton : @(MPFilterUsernames), - _toggleFilterTitleButton : @(MPFilterTitles), - _toggleFilterURLButton : @(MPFilterUrls) - }; _entryArrayController = [[NSArrayController alloc] init]; _dataSource = [[MPEntryTableDataSource alloc] init]; _dataSource.viewController = self; @@ -235,7 +228,7 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername"; } else { assert(entry.parent); - [[view textField] bind:NSValueBinding toObject:entry.parent withKeyPath:entry.parent.name options:nil]; + [[view textField] bind:NSValueBinding toObject:entry.parent withKeyPath:@"parent.name" options:nil]; [[view imageView] setImage:entry.iconImage]; } } @@ -353,7 +346,7 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername"; } - (void)updateFilter { - //[self _showFilterBarAnimated]; + [self _showFilterBarAnimated]; if(![self hasFilter]) { return; } @@ -362,16 +355,19 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername"; dispatch_async(backgroundQueue, ^{ MPDocument *document = [[self windowController] document]; if([self hasFilter]) { - NSMutableArray *prediactes = [NSMutableArray arrayWithCapacity:3]; - if( [self _shouldFilterTitles] ) { + NSMutableArray *prediactes = [NSMutableArray arrayWithCapacity:4]; + if([self _shouldFilterTitles]) { [prediactes addObject:[NSPredicate predicateWithFormat:@"SELF.title CONTAINS[cd] %@", self.filter]]; } - if( [self _shouldFilterUsernames] ) { + if([self _shouldFilterUsernames]) { [prediactes addObject:[NSPredicate predicateWithFormat:@"SELF.username CONTAINS[cd] %@", self.filter]]; } - if( [self _shouldFilterURLs] ) { + if([self _shouldFilterURLs]) { [prediactes addObject:[NSPredicate predicateWithFormat:@"SELF.url CONTAINS[cd] %@", self.filter]]; } + if([self _shouldFilterPasswords]) { + [prediactes addObject:[NSPredicate predicateWithFormat:@"SELF.password CONTAINS[cd] %@", self.filter]]; + } NSPredicate *fullFilter = [NSCompoundPredicate orPredicateWithSubpredicates:prediactes]; self.filteredEntries = [[document.root childEntries] filteredArrayUsingPredicate:fullFilter]; } @@ -397,9 +393,10 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername"; - (void)setupFilterBar { if(!self.filterBar) { [[NSBundle mainBundle] loadNibNamed:@"FilterBar" owner:self topLevelObjects:nil]; - [self.filterURLButton setIdentifier:_toggleFilterURLButton]; - [self.filterUsernameButton setIdentifier:_toggleFilterUsernameButton]; - [self.filterTitleButton setIdentifier:_toggleFilterTitleButton]; + [self.filterURLButton setTag:MPFilterUrls]; + [self.filterUsernameButton setTag:MPFilterUsernames]; + [self.filterTitleButton setTag:MPFilterTitles]; + [self.filterPasswordButton setTag:MPFilterPasswords]; [[self.filterLabelTextField cell] setBackgroundStyle:NSBackgroundStyleRaised]; [self.filterDoneButton setAction:@selector(clearFilter:)]; [self.filterDoneButton setTarget:nil]; @@ -426,6 +423,7 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername"; [self.filterTitleButton setState:[self _shouldFilterTitles] ? NSOnState : NSOffState]; [self.filterURLButton setState:[self _shouldFilterURLs] ? NSOnState : NSOffState ]; [self.filterUsernameButton setState:[self _shouldFilterUsernames] ? NSOnState : NSOffState]; + [self.filterPasswordButton setState:[self _shouldFilterPasswords] ? NSOnState : NSOffState]; if([self _showsFilterBar]) { return; // nothing to to @@ -670,10 +668,12 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername"; return YES; } -- (void)_toggleFilterSpace:(id)sender { +- (IBAction)_toggleFilterSpace:(id)sender { + if(![sender isKindOfClass:[NSButton class]]) { + return; // Wrong sender + } NSButton *button = sender; - NSNumber *value = self.filterButtonToMode[[button identifier]]; - MPFilterModeType toggledMode = (MPFilterModeType)[value intValue]; + MPFilterModeType toggledMode = [button tag]; switch ([button state]) { case NSOnState: self.filterMode |= toggledMode; @@ -724,15 +724,19 @@ NSString *const _toggleFilterUsernameButton = @"SearchUsername"; } - (BOOL)_shouldFilterTitles { - return ( MPFilterNone != (self.filterMode & MPFilterTitles)); + return (MPFilterNone != (self.filterMode & MPFilterTitles)); } - (BOOL)_shouldFilterURLs { - return ( MPFilterNone != (self.filterMode & MPFilterUrls)); + return (MPFilterNone != (self.filterMode & MPFilterUrls)); } - (BOOL)_shouldFilterUsernames { - return ( MPFilterNone != (self.filterMode & MPFilterUsernames)); + return (MPFilterNone != (self.filterMode & MPFilterUsernames)); +} + +- (BOOL)_shouldFilterPasswords { + return (MPFilterNone != (self.filterMode & MPFilterPasswords)); } @end diff --git a/MacPass/MPOutlineDataSource.m b/MacPass/MPOutlineDataSource.m index b858800c..67c77440 100644 --- a/MacPass/MPOutlineDataSource.m +++ b/MacPass/MPOutlineDataSource.m @@ -117,10 +117,12 @@ NSString *draggedType = [types lastObject]; if([draggedType isEqualToString:KPKGroupUTI]) { [self.draggedGroup moveToGroup:targetGroup atIndex:index]; + [self.draggedGroup.undoManager setActionName:NSLocalizedString(@"MOVE_GROUP", "")]; return YES; } else if([draggedType isEqualToString:KPKUUIDUTI]) { [self.draggedEntry moveToGroup:targetGroup atIndex:index]; + [self.draggedEntry.undoManager setActionName:NSLocalizedString(@"MOVE_ENTRY", "")]; return YES; } return NO;