diff --git a/HNHUi b/HNHUi
index 7bf39a4b..435f37c2 160000
--- a/HNHUi
+++ b/HNHUi
@@ -1 +1 @@
-Subproject commit 7bf39a4be92cef2a9d4076ccd1612c92a8a0c01b
+Subproject commit 435f37c2540bf66698eb66b6990343c35937eafb
diff --git a/KeePassKit b/KeePassKit
index 4ab74119..a232bbd6 160000
--- a/KeePassKit
+++ b/KeePassKit
@@ -1 +1 @@
-Subproject commit 4ab74119260df7ad62696d90939c46edd95eefa2
+Subproject commit a232bbd6017d0e7d5c6f1034c1001d4bc64bcc9e
diff --git a/MacPass/DatabaseSettingsWindow.xib b/MacPass/DatabaseSettingsWindow.xib
index bf1b227d..526a8944 100644
--- a/MacPass/DatabaseSettingsWindow.xib
+++ b/MacPass/DatabaseSettingsWindow.xib
@@ -1,4183 +1,503 @@
-
-
-
- 1080
- 12E55
- 3084
- 1187.39
- 626.00
-
-
- IBNSLayoutConstraint
- NSButton
- NSButtonCell
- NSColorWell
- NSCustomObject
- NSMenu
- NSMenuItem
- NSPopUpButton
- NSPopUpButtonCell
- NSScrollView
- NSScroller
- NSStepper
- NSStepperCell
- NSTabView
- NSTabViewItem
- NSTextField
- NSTextFieldCell
- NSTextView
- NSView
- NSWindowTemplate
-
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
-
-
-
-
-
-
-
-
-
-
-
- window
-
-
-
- 265
-
-
-
- databaseNameTextField
-
-
-
- 655
-
-
-
- protectTitleCheckButton
-
-
-
- 660
-
-
-
- protectUserNameCheckButton
-
-
-
- 661
-
-
-
- protectPasswortCheckButton
-
-
-
- 662
-
-
-
- protectURLCheckButton
-
-
-
- 663
-
-
-
- protectNotesCheckButton
-
-
-
- 677
-
-
-
- emptyRecycleBinOnQuitCheckButton
-
-
-
- 689
-
-
-
- selectRecycleBinGroupPopUpButton
-
-
-
- 690
-
-
-
- sectionTabView
-
-
-
- 699
-
-
-
- enableRecycleBinCheckButton
-
-
-
- 815
-
-
-
- save:
-
-
-
- 962
-
-
-
- saveButton
-
-
-
- 1183
-
-
-
- close:
-
-
-
- 1454
-
-
-
- databaseDescriptionTextView
-
-
-
- 1553
-
-
-
- encryptionRoundsTextField
-
-
-
- 1773
-
-
-
- templateGroupPopUpButton
-
-
-
- 1796
-
-
-
- defaultUsernameTextField
-
-
-
- 1819
-
-
-
- benchmarkRounds:
-
-
-
- 1827
-
-
-
- benchmarkButton
-
-
-
- 1828
-
-
-
-
-
- 0
-
-
-
-
-
- -2
-
-
- File's Owner
-
-
- -1
-
-
- First Responder
-
-
- -3
-
-
- Application
-
-
- 1
-
-
-
-
-
-
-
- 2
-
-
-
-
- 5
- 0
-
- 6
- 1
-
- 12
-
- 1000
-
- 6
- 24
- 3
-
-
-
- 4
- 0
-
- 4
- 1
-
- 20
-
- 1000
-
- 8
- 29
- 3
-
-
-
- 6
- 0
-
- 6
- 1
-
- 20
-
- 1000
-
- 8
- 29
- 3
-
-
-
- 3
- 0
-
- 4
- 1
-
- 10
-
- 1000
-
- 6
- 24
- 3
-
-
-
- 4
- 0
-
- 4
- 1
-
- 20
-
- 1000
-
- 8
- 29
- 3
-
-
-
- 3
- 0
-
- 3
- 1
-
- 12
-
- 1000
-
- 9
- 40
- 3
-
-
-
- 6
- 0
-
- 6
- 1
-
- 20
-
- 1000
-
- 9
- 40
- 3
-
-
-
- 5
- 0
-
- 5
- 1
-
- 20
-
- 1000
-
- 9
- 40
- 3
-
-
-
-
-
-
-
-
- 288
-
-
-
-
-
-
-
- 289
-
-
-
-
- 290
-
-
-
-
- 357
-
-
-
-
-
-
-
-
-
- 358
-
-
-
-
-
-
-
- 361
-
-
-
-
- 3
- 0
-
- 4
- 1
-
- 20
-
- 1000
-
- 6
- 24
- 3
-
-
-
- 5
- 0
-
- 6
- 1
-
- 8
-
- 1000
-
- 6
- 24
- 3
-
-
-
- 5
- 0
-
- 5
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 4
- 0
-
- 4
- 1
-
- 31
-
- 1000
-
- 9
- 40
- 3
-
-
-
- 10
- 0
-
- 10
- 1
-
- 0.0
-
- 1000
-
- 9
- 40
- 2
-
-
-
- 3
- 0
-
- 4
- 1
-
- 8
-
- 1000
-
- 6
- 24
- 3
-
-
-
- 5
- 0
-
- 5
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 5
- 0
-
- 6
- 1
-
- 8
-
- 1000
-
- 6
- 24
- 3
-
-
-
- 10
- 0
-
- 10
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 3
- 0
-
- 4
- 1
-
- 8
-
- 1000
-
- 6
- 24
- 3
-
-
-
- 5
- 0
-
- 6
- 1
-
- 8
-
- 1000
-
- 6
- 24
- 3
-
-
-
- 5
- 0
-
- 5
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 6
- 0
-
- 6
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 3
- 0
-
- 3
- 1
-
- 30
-
- 1000
-
- 3
- 9
- 3
-
-
-
- 10
- 0
-
- 10
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 5
- 0
-
- 6
- 1
-
- 8
-
- 1000
-
- 6
- 24
- 3
-
-
-
- 3
- 0
-
- 3
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 5
- 0
-
- 5
- 1
-
- 28
-
- 1000
-
- 3
- 9
- 3
-
-
-
-
-
-
-
-
-
-
-
-
-
- 368
-
-
-
-
-
-
-
- 369
-
-
-
-
- 5
- 0
-
- 6
- 1
-
- 8
-
- 1000
-
- 6
- 24
- 3
-
-
-
- 5
- 0
-
- 5
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 5
- 0
-
- 6
- 1
-
- 8
-
- 1000
-
- 6
- 24
- 3
-
-
-
- 3
- 0
-
- 3
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 4
- 0
-
- 4
- 1
-
- 34
-
- 1000
-
- 3
- 9
- 3
-
-
-
- 11
- 0
-
- 11
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 3
- 0
-
- 4
- 1
-
- 7
-
- 1000
-
- 9
- 40
- 3
-
-
-
- 5
- 0
-
- 6
- 1
-
- 8
-
- 1000
-
- 6
- 24
- 3
-
-
-
- 5
- 0
-
- 5
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 4
- 1
-
- 4
- 1
-
- 20
-
- 1000
-
- 9
- 40
- 3
-
-
-
- 3
- 0
-
- 4
- 1
-
- 20
-
- 1000
-
- 9
- 40
- 3
-
-
-
- 6
- 0
-
- 6
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 5
- 0
-
- 6
- 1
-
- 8
-
- 1000
-
- 6
- 24
- 3
-
-
-
- 5
- 0
-
- 5
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 10
- 0
-
- 10
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 6
- 0
-
- 6
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 3
- 0
-
- 3
- 1
-
- 115
-
- 1000
-
- 3
- 9
- 3
-
-
-
- 5
- 0
-
- 6
- 1
-
- 8
-
- 1000
-
- 6
- 24
- 3
-
-
-
- 10
- 0
-
- 10
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 3
- 0
-
- 3
- 1
-
- 72
-
- 1000
-
- 3
- 9
- 3
-
-
-
- 5
- 0
-
- 6
- 1
-
- 8
-
- 1000
-
- 6
- 24
- 3
-
-
-
- 3
- 0
-
- 3
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 5
- 0
-
- 5
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 5
- 0
-
- 6
- 1
-
- 8
-
- 1000
-
- 6
- 24
- 3
-
-
-
- 5
- 0
-
- 5
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 11
- 0
-
- 11
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 5
- 0
-
- 5
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 10
- 0
-
- 10
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 11
- 0
-
- 11
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 3
- 0
-
- 4
- 1
-
- 8
-
- 1000
-
- 6
- 24
- 3
-
-
-
- 5
- 0
-
- 5
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 3
- 0
-
- 3
- 1
-
- 20
-
- 1000
-
- 3
- 9
- 3
-
-
-
- 5
- 0
-
- 5
- 1
-
- 72
-
- 1000
-
- 3
- 9
- 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 370
-
-
-
-
-
-
-
- 371
-
-
-
-
- 4
- 0
-
- 4
- 1
-
- 34
-
- 1000
-
- 3
- 9
- 3
-
-
-
- 3
- 0
-
- 4
- 1
-
- 8
-
- 1000
-
- 6
- 24
- 3
-
-
-
- 5
- 0
-
- 5
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 6
- 0
-
- 6
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 5
- 0
-
- 6
- 1
-
- 8
-
- 1000
-
- 6
- 24
- 3
-
-
-
- 3
- 0
-
- 4
- 1
-
- 15
-
- 1000
-
- 9
- 40
- 3
-
-
-
- 5
- 0
-
- 5
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 3
- 0
-
- 4
- 1
-
- 15
-
- 1000
-
- 9
- 40
- 3
-
-
-
- 5
- 0
-
- 5
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 9
- 0
-
- 9
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 3
- 0
-
- 3
- 1
-
- 87
-
- 1000
-
- 3
- 9
- 3
-
-
-
- 5
- 0
-
- 5
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 9
- 0
-
- 9
- 1
-
- 0.0
-
- 1000
-
- 5
- 22
- 2
-
-
-
- 3
- 0
-
- 3
- 1
-
- 58
-
- 1000
-
- 3
- 9
- 3
-
-
-
- 3
- 0
-
- 3
- 1
-
- 29
-
- 1000
-
- 3
- 9
- 3
-
-
-
- 5
- 0
-
- 5
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 11
- 0
-
- 11
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
-
-
-
-
-
-
-
-
-
-
- 231
-
-
-
-
-
- 7
- 0
-
- 0
- 1
-
- 280
-
- 1000
-
- 3
- 9
- 1
-
-
-
-
-
- 232
-
-
-
-
- 256
-
-
-
-
-
-
-
- 257
-
-
-
-
- 189
-
-
-
-
-
-
-
- 190
-
-
-
-
- 457
-
-
-
-
- 462
-
-
-
-
- 463
-
-
-
-
-
-
-
- 464
-
-
-
-
- 476
-
-
-
-
-
-
-
- 477
-
-
-
-
- 504
-
-
-
-
-
-
-
- 505
-
-
-
-
- 509
-
-
-
-
-
-
-
- 510
-
-
-
-
- 511
-
-
-
-
- 513
-
-
-
-
-
-
-
- 514
-
-
-
-
- 516
-
-
-
-
- 525
-
-
-
-
- 529
-
-
-
-
- 531
-
-
-
-
-
- 7
- 0
-
- 0
- 1
-
- 303
-
- 1000
-
- 3
- 9
- 1
-
-
-
-
-
- 532
-
-
-
-
- 535
-
-
-
-
-
-
-
- 536
-
-
-
-
- 539
-
-
-
-
-
- 8
- 0
-
- 0
- 1
-
- 14
-
- 1000
-
- 9
- 40
- 1
-
-
-
-
-
- 540
-
-
-
-
- 291
-
-
-
-
- 557
-
-
-
-
-
-
-
- 558
-
-
-
-
- 593
-
-
-
-
-
- 7
- 0
-
- 0
- 1
-
- 96
-
- 1000
-
- 3
- 9
- 1
-
-
-
-
-
- 594
-
-
-
-
- 595
-
-
-
-
- 599
-
-
-
-
-
-
-
- 600
-
-
-
-
- 678
-
-
-
-
-
- 7
- 0
-
- 0
- 1
-
- 215
-
- 1000
-
- 9
- 40
- 1
-
-
-
-
-
- 679
-
-
-
-
-
-
-
- 680
-
-
-
-
-
- 374
-
-
-
-
- 365
-
-
-
-
- 390
-
-
-
-
- 844
-
-
-
-
- 956
-
-
-
-
-
-
-
- 957
-
-
-
-
- 958
-
-
-
-
- 959
-
-
-
-
- 1056
-
-
-
-
- 1078
-
-
-
-
- 1096
-
-
-
-
- 1075
-
-
-
-
- 1074
-
-
-
-
- 1113
-
-
-
-
- 1268
-
-
-
-
-
-
-
- 1269
-
-
-
-
- 1273
-
-
-
-
-
-
-
- 1275
-
-
-
-
- 1294
-
-
-
-
-
-
-
- 1295
-
-
-
-
- 1302
-
-
-
-
- 1304
-
-
-
-
- 1307
-
-
-
-
- 1309
-
-
-
-
- 1311
-
-
-
-
- 1321
-
-
-
-
- 1327
-
-
-
-
- 1328
-
-
-
-
- 1329
-
-
-
-
- 1330
-
-
-
-
- 1331
-
-
-
-
- 1343
-
-
-
-
- 1344
-
-
-
-
- 1387
-
-
-
-
- 1394
-
-
-
-
-
- 7
- 0
-
- 0
- 1
-
- 115
-
- 1000
-
- 3
- 9
- 1
-
-
-
-
-
- 1395
-
-
-
-
-
-
-
- 1396
-
-
-
-
-
-
-
-
- 1397
-
-
-
-
- 1398
-
-
-
-
- 1404
-
-
-
-
-
-
-
- 1405
-
-
-
-
- 1408
-
-
-
-
- 1409
-
-
-
-
- 1433
-
-
-
-
- 1434
-
-
-
-
-
-
-
- 1435
-
-
-
-
- 1439
-
-
-
-
- 8
- 0
-
- 0
- 1
-
- 23
-
- 1000
-
- 3
- 9
- 1
-
-
-
- 7
- 0
-
- 0
- 1
-
- 44
-
- 1000
-
- 3
- 9
- 1
-
-
-
-
-
- 1441
-
-
-
-
- 1447
-
-
-
-
- 1450
-
-
-
-
- 1451
-
-
-
-
- 1452
-
-
-
-
- 1460
-
-
-
-
- 1475
-
-
-
-
- 1476
-
-
-
-
- 1529
-
-
-
-
- 1530
-
-
-
-
-
-
-
-
-
- 1531
-
-
-
-
- 1532
-
-
-
-
- 1533
-
-
-
-
- 1539
-
-
-
-
- 1541
-
-
-
-
- 1542
-
-
-
-
- 1543
-
-
-
-
- 1550
-
-
-
-
- 1551
-
-
-
-
- 1552
-
-
-
-
- 1637
-
-
-
-
- 1638
-
-
-
-
- 1641
-
-
-
-
- 1643
-
-
-
-
-
-
-
- 1644
-
-
-
-
- 1647
-
-
-
-
-
- 7
- 0
-
- 0
- 1
-
- 129
-
- 1000
-
- 3
- 9
- 1
-
-
-
-
-
- 1648
-
-
-
-
-
- 1730
-
-
-
-
-
- 8
- 0
-
- 0
- 1
-
- 22
-
- 1000
-
- 9
- 40
- 1
-
-
-
-
-
- 1731
-
-
-
-
- 1734
-
-
-
-
- 1754
-
-
-
-
- 1771
-
-
-
-
- 1772
-
-
-
-
- 1774
-
-
-
-
-
-
-
- 1775
-
-
-
-
- 506
-
-
-
-
- 490
-
-
-
-
- 1563
-
-
-
-
- 1750
-
-
-
-
- 1565
-
-
-
-
- 1564
-
-
-
-
- 1584
-
-
-
-
-
- 8
- 0
-
- 0
- 1
-
- 17
-
- 1000
-
- 3
- 9
- 1
-
-
-
-
-
- 1588
-
-
-
-
- 1582
-
-
-
-
-
-
-
- 1736
-
-
-
-
- 1732
-
-
-
-
- 1591
-
-
-
-
- 1738
-
-
-
-
-
-
-
- 1799
-
-
-
-
- 1747
-
-
-
-
- 1746
-
-
-
-
- 1745
-
-
-
-
- 1739
-
-
-
-
-
-
-
- 1740
-
-
-
-
-
-
-
-
-
- 1743
-
-
-
-
- 1742
-
-
-
-
- 1741
-
-
-
-
- 1810
-
-
-
-
- 1811
-
-
-
-
- 1812
-
-
-
-
- 1814
-
-
-
-
- 1815
-
-
-
-
- 1816
-
-
-
-
- 1817
-
-
-
-
- 1818
-
-
-
-
- 1820
-
-
-
-
- 1755
-
-
-
-
- 1776
-
-
-
-
- 1779
-
-
-
-
- 1777
-
-
-
-
- 1778
-
-
-
-
-
-
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- 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
- 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
-
-
-
-
- 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
- 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
-
-
-
-
-
- 1828
-
-
-
-
- MPDatabaseSettingsWindowController
- MPSheetWindowController
-
- id
- id
- id
-
-
-
- benchmarkRounds:
- id
-
-
- close:
- id
-
-
- save:
- id
-
-
-
- NSTextView
- NSTextField
- NSTextField
- NSButton
- NSButton
- NSTextField
- NSButton
- NSButton
- NSButton
- NSButton
- NSButton
- NSTabView
- NSPopUpButton
- NSPopUpButton
-
-
-
- databaseDescriptionTextView
- NSTextView
-
-
- databaseNameTextField
- NSTextField
-
-
- defaultUsernameTextField
- NSTextField
-
-
- emptyRecycleBinOnQuitCheckButton
- NSButton
-
-
- enableRecycleBinCheckButton
- NSButton
-
-
- encryptionRoundsTextField
- NSTextField
-
-
- protectNotesCheckButton
- NSButton
-
-
- protectPasswortCheckButton
- NSButton
-
-
- protectTitleCheckButton
- NSButton
-
-
- protectURLCheckButton
- NSButton
-
-
- protectUserNameCheckButton
- NSButton
-
-
- sectionTabView
- NSTabView
-
-
- selectRecycleBinGroupPopUpButton
- NSPopUpButton
-
-
- templateGroupPopUpButton
- NSPopUpButton
-
-
-
- IBProjectSource
- ./Classes/MPDatabaseSettingsWindowController.h
-
-
-
- MPSheetWindowController
- NSWindowController
-
- IBProjectSource
- ./Classes/MPSheetWindowController.h
-
-
-
- NSLayoutConstraint
- NSObject
-
- IBProjectSource
- ./Classes/NSLayoutConstraint.h
-
-
-
-
- 0
- IBCocoaFramework
- YES
- 3
-
- {11, 11}
- {10, 3}
- {15, 15}
-
- YES
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MacPass/MPAttachmentTableDataSource.m b/MacPass/MPAttachmentTableDataSource.m
index 49e86964..6e17db77 100644
--- a/MacPass/MPAttachmentTableDataSource.m
+++ b/MacPass/MPAttachmentTableDataSource.m
@@ -11,11 +11,7 @@
@implementation MPAttachmentTableDataSource
-- (NSDragOperation)tableView:(NSTableView *)tableView
- validateDrop:(id)info
- proposedRow:(NSInteger)row
- proposedDropOperation:(NSTableViewDropOperation)dropOperation {
-
+- (NSDragOperation)tableView:(NSTableView *)tableView validateDrop:(id)info proposedRow:(NSInteger)row proposedDropOperation:(NSTableViewDropOperation)dropOperation {
NSPasteboard *draggingPasteBoard = [info draggingPasteboard];
NSArray *classArray = [NSArray arrayWithObject:[NSURL class]];
NSArray *arrayOfURLs = [draggingPasteBoard readObjectsForClasses:classArray options:nil];
@@ -37,11 +33,7 @@
return NSDragOperationCopy;
}
-- (BOOL)tableView:(NSTableView *)tableView
- acceptDrop:(id)info
- row:(NSInteger)row
- dropOperation:(NSTableViewDropOperation)dropOperation {
-
+- (BOOL)tableView:(NSTableView *)tableView acceptDrop:(id)info row:(NSInteger)row dropOperation:(NSTableViewDropOperation)dropOperation {
MPDocument *document = [[[tableView window] windowController] document];
id entry = document.selectedEntry;
@@ -54,8 +46,10 @@
}
return YES;
}
-/*
- (BOOL)tableView:(NSTableView *)tableView writeRowsWithIndexes:(NSIndexSet *)rowIndexes toPasteboard:(NSPasteboard *)pboard {
+ return NO;
+
+ /*
NSString *extension;
if([rowIndexes count] != 1) {
@@ -77,42 +71,7 @@
[pboard setPropertyList:@[uti] forType:(NSString *)kPasteboardTypeFilePromiseContent];
[pboard setPropertyList:@[uti] forType:(NSString *)kPasteboardTypeFileURLPromise ];
- return YES;
+ return YES;*/
}
-- (NSArray *)tableView:(NSTableView *)tableView namesOfPromisedFilesDroppedAtDestination:(NSURL *)dropDestination forDraggedRowsWithIndexes:(NSIndexSet *)indexSet {
- if([indexSet count] != 1) {
- return nil; // We only work with one file at a time
- }
-
- if(![dropDestination isFileURL]) {
- return nil;
- }
-
- NSUInteger row = [indexSet lastIndex];
- NSData *fileData;
- NSString *filename;
-
- MPDocument *document = [[[tableView window] windowController] document];
- id entry = document.selectedEntry;
-
- if([entry isKindOfClass:[Kdb3Entry class]]) {
- Kdb3Entry *entryV3 = (Kdb3Entry *)entry;
- filename = entryV3.binaryDesc;
- fileData = entryV3.binary;
- }
- else if([entry isKindOfClass:[Kdb4Entry class]]) {
- Kdb4Entry *entryV4 = (Kdb4Entry *)entry;
- BinaryRef *binaryRef = entryV4.binaries[row];
- filename = binaryRef.key;
- fileData = [document attachmentDataForItem:binaryRef];
- }
- dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
- NSURL *writeURL = [dropDestination URLByAppendingPathComponent:filename];
- // Create unique filename if already present
- [fileData writeToURL:writeURL atomically:YES];
- });
- return @[filename];
-}
- */
@end
diff --git a/MacPass/MPDatabaseSettingsWindowController.h b/MacPass/MPDatabaseSettingsWindowController.h
index 9f3251d5..3f7a43c9 100644
--- a/MacPass/MPDatabaseSettingsWindowController.h
+++ b/MacPass/MPDatabaseSettingsWindowController.h
@@ -24,7 +24,9 @@ typedef NS_ENUM(NSUInteger, MPDatabaseSettingsTab) {
/* General Tab */
@property (weak) IBOutlet NSTextField *databaseNameTextField;
+@property (weak) IBOutlet NSPopUpButton *databaseCompressionPopupButton;
@property (unsafe_unretained) IBOutlet NSTextView *databaseDescriptionTextView;
+@property (weak) IBOutlet NSColorWell *databaseColorColorWell;
/* Security Tab */
@property (weak) IBOutlet NSButton *protectTitleCheckButton;
diff --git a/MacPass/MPDatabaseSettingsWindowController.m b/MacPass/MPDatabaseSettingsWindowController.m
index 32cea240..5d95d8e8 100644
--- a/MacPass/MPDatabaseSettingsWindowController.m
+++ b/MacPass/MPDatabaseSettingsWindowController.m
@@ -14,6 +14,7 @@
#import "MPSettingsHelper.h"
#import "MPNumericalInputFormatter.h"
+#import "KPKXmlFormat.h"
#import "KPKGroup.h"
#import "KPKTree.h"
#import "KPKMetaData.h"
@@ -66,9 +67,19 @@
KPKMetaData *metaData = _document.tree.metaData;
metaData.databaseDescription = [self.databaseDescriptionTextView string];
metaData.databaseName = [self.databaseNameTextField stringValue];
-
- /* Display */
-
+
+ NSInteger compressionIndex = [self.databaseCompressionPopupButton indexOfSelectedItem];
+ if(compressionIndex >= KPKCompressionNone && compressionIndex < KPKCompressionCount) {
+ metaData.compressionAlgorithm = compressionIndex;
+ }
+ NSColor *databaseColor = [self.databaseColorColorWell color];
+ if([databaseColor isEqual:[NSColor clearColor]]) {
+ metaData.color = nil;
+ }
+ else {
+ metaData.color = databaseColor;
+ }
+
/* Advanced */
metaData.recycleBinEnabled = self.trashEnabled;
NSMenuItem *trashMenuItem = [self.selectRecycleBinGroupPopUpButton selectedItem];
@@ -122,7 +133,7 @@
}
/* Update all stuff that might have changed */
KPKMetaData *metaData = _document.tree.metaData;
- [self _setupDatabase:metaData];
+ [self _setupDatabaseTab:metaData];
[self _setupProtectionTab:metaData];
[self _setupAdvancedTab:_document.tree];
self.isDirty = NO;
@@ -154,9 +165,12 @@
}
#pragma mark Private Helper
-- (void)_setupDatabase:(KPKMetaData *)metaData {
+- (void)_setupDatabaseTab:(KPKMetaData *)metaData {
[self.databaseNameTextField setStringValue:metaData.databaseName];
[self.databaseDescriptionTextView setString:metaData.databaseDescription];
+ [self.databaseCompressionPopupButton selectItemAtIndex:metaData.compressionAlgorithm];
+ NSColor *databaseColor = metaData.color ? metaData.color : [NSColor clearColor];
+ [self.databaseColorColorWell setColor:databaseColor];
}
- (void)_setupProtectionTab:(KPKMetaData *)metaData {
diff --git a/MacPass/MPEntryViewController.m b/MacPass/MPEntryViewController.m
index 04993de2..f2133cf8 100644
--- a/MacPass/MPEntryViewController.m
+++ b/MacPass/MPEntryViewController.m
@@ -166,7 +166,7 @@ NSString *const _MPTAbleSecurCellView = @"PasswordCell";
NSSortDescriptor *userNameSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"username" ascending:YES selector:@selector(compare:)];
NSSortDescriptor *urlSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"url" ascending:YES selector:@selector(compare:)];
NSSortDescriptor *groupnameSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"parent.name" ascending:YES selector:@selector(compare:)];
- NSSortDescriptor *dateSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"lastModificationTime" ascending:YES selector:@selector(compare:)];
+ NSSortDescriptor *dateSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"timeInfo.lastModificationTime" ascending:YES selector:@selector(compare:)];
[titleColumn setSortDescriptorPrototype:titleColumSortDescriptor];
[userNameColumn setSortDescriptorPrototype:userNameSortDescriptor];