From a6afe0bcf457b58aa593903390bfe39ab1d1710a Mon Sep 17 00:00:00 2001 From: michael starke Date: Sun, 21 Jul 2013 14:14:05 +0200 Subject: [PATCH] Fixed #29 Application now stores the last open database by itself. If window restoration in OS X is disabled, the app also reopens the last db. --- KeePassKit | 2 +- MacPass.xcodeproj/project.pbxproj | 20 +- MacPass/Base.lproj/GeneralSettings.xib | 550 ++++++++++++++++++------- MacPass/MPAppDelegate.m | 20 +- MacPass/MPDocument.m | 8 + MacPass/MPGeneralSettingsController.h | 1 + MacPass/MPGeneralSettingsController.m | 2 + MacPass/MPSettingsHelper.h | 7 + MacPass/MPSettingsHelper.m | 1 + MiniKeePassLib | 2 +- 10 files changed, 449 insertions(+), 164 deletions(-) diff --git a/KeePassKit b/KeePassKit index 76a4e8ff..c0665e40 160000 --- a/KeePassKit +++ b/KeePassKit @@ -1 +1 @@ -Subproject commit 76a4e8fffa8c0f03282088e71616c7786e842fce +Subproject commit c0665e4052c2096e4f84f305b59c2315d5b6c9a2 diff --git a/MacPass.xcodeproj/project.pbxproj b/MacPass.xcodeproj/project.pbxproj index 3c9bcb58..08a81a92 100644 --- a/MacPass.xcodeproj/project.pbxproj +++ b/MacPass.xcodeproj/project.pbxproj @@ -18,9 +18,10 @@ 4C1842B2179B28C400E2F5BC /* KPKBinaryTreeReader.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C1842B1179B28C400E2F5BC /* KPKBinaryTreeReader.m */; }; 4C1842B5179B28D400E2F5BC /* KPKBinaryTreeWriter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C1842B4179B28D400E2F5BC /* KPKBinaryTreeWriter.m */; }; 4C1842B8179B348600E2F5BC /* KPKTreeLoadingTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C1842B7179B348600E2F5BC /* KPKTreeLoadingTest.m */; }; - 4C1842BC179B434C00E2F5BC /* KPKChipherInformation.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C1842BB179B434C00E2F5BC /* KPKChipherInformation.m */; }; + 4C1842BC179B434C00E2F5BC /* KPKXmlCipherInformation.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C1842BB179B434C00E2F5BC /* KPKXmlCipherInformation.m */; }; 4C1842C0179B5BFD00E2F5BC /* NSData+CommonCrypto.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C1842BF179B5BFD00E2F5BC /* NSData+CommonCrypto.m */; }; 4C1842C3179B69E700E2F5BC /* NSData+HashedData.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C1842C2179B69E700E2F5BC /* NSData+HashedData.m */; }; + 4C1842C6179BF52100E2F5BC /* KPKBinaryCipherInformation.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C1842C5179BF52000E2F5BC /* KPKBinaryCipherInformation.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 */; }; @@ -271,12 +272,15 @@ 4C1842B6179B348600E2F5BC /* KPKTreeLoadingTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KPKTreeLoadingTest.h; sourceTree = ""; }; 4C1842B7179B348600E2F5BC /* KPKTreeLoadingTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KPKTreeLoadingTest.m; sourceTree = ""; }; 4C1842B9179B3A1700E2F5BC /* KPKHeaderFields.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KPKHeaderFields.h; sourceTree = ""; }; - 4C1842BA179B434C00E2F5BC /* KPKChipherInformation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KPKChipherInformation.h; sourceTree = ""; }; - 4C1842BB179B434C00E2F5BC /* KPKChipherInformation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KPKChipherInformation.m; sourceTree = ""; }; + 4C1842BA179B434C00E2F5BC /* KPKXmlCipherInformation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KPKXmlCipherInformation.h; sourceTree = ""; }; + 4C1842BB179B434C00E2F5BC /* KPKXmlCipherInformation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KPKXmlCipherInformation.m; sourceTree = ""; }; 4C1842BE179B5BFD00E2F5BC /* NSData+CommonCrypto.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSData+CommonCrypto.h"; sourceTree = ""; }; 4C1842BF179B5BFD00E2F5BC /* NSData+CommonCrypto.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSData+CommonCrypto.m"; sourceTree = ""; }; 4C1842C1179B69E600E2F5BC /* NSData+HashedData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSData+HashedData.h"; sourceTree = ""; }; 4C1842C2179B69E700E2F5BC /* NSData+HashedData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSData+HashedData.m"; sourceTree = ""; }; + 4C1842C4179BF51F00E2F5BC /* KPKBinaryCipherInformation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KPKBinaryCipherInformation.h; sourceTree = ""; }; + 4C1842C5179BF52000E2F5BC /* KPKBinaryCipherInformation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KPKBinaryCipherInformation.m; sourceTree = ""; }; + 4C1842C7179BF6A100E2F5BC /* KPKKdbHeader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KPKKdbHeader.h; sourceTree = ""; }; 4C18F9AA178E122500890BCE /* Test_Password_1234.kdb */ = {isa = PBXFileReference; lastKnownFileType = file; name = Test_Password_1234.kdb; path = Databases/Test_Password_1234.kdb; sourceTree = ""; }; 4C19E4FF178E26EF002F2CD0 /* Test_Password_1234.kdbx */ = {isa = PBXFileReference; lastKnownFileType = file; name = Test_Password_1234.kdbx; path = Databases/Test_Password_1234.kdbx; sourceTree = ""; }; 4C19E501178E2871002F2CD0 /* MPDatabasePasswordAndKeyfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPDatabasePasswordAndKeyfile.h; sourceTree = ""; }; @@ -1481,6 +1485,7 @@ 4C305F35179A0BD70082334F /* KPKIcon.m */, 4C1842A9179B027700E2F5BC /* KPKDeletedNode.h */, 4C1842AA179B027800E2F5BC /* KPKDeletedNode.m */, + 4C1842C7179BF6A100E2F5BC /* KPKKdbHeader.h */, ); path = Core; sourceTree = ""; @@ -1501,8 +1506,10 @@ 4C1842B3179B28D400E2F5BC /* KPKBinaryTreeWriter.h */, 4C1842B4179B28D400E2F5BC /* KPKBinaryTreeWriter.m */, 4C1842B9179B3A1700E2F5BC /* KPKHeaderFields.h */, - 4C1842BA179B434C00E2F5BC /* KPKChipherInformation.h */, - 4C1842BB179B434C00E2F5BC /* KPKChipherInformation.m */, + 4C1842BA179B434C00E2F5BC /* KPKXmlCipherInformation.h */, + 4C1842BB179B434C00E2F5BC /* KPKXmlCipherInformation.m */, + 4C1842C4179BF51F00E2F5BC /* KPKBinaryCipherInformation.h */, + 4C1842C5179BF52000E2F5BC /* KPKBinaryCipherInformation.m */, ); path = IO; sourceTree = ""; @@ -1915,9 +1922,10 @@ 4C1842AF179B211C00E2F5BC /* KPKXmlTreeReader.m in Sources */, 4C1842B2179B28C400E2F5BC /* KPKBinaryTreeReader.m in Sources */, 4C1842B5179B28D400E2F5BC /* KPKBinaryTreeWriter.m in Sources */, - 4C1842BC179B434C00E2F5BC /* KPKChipherInformation.m in Sources */, + 4C1842BC179B434C00E2F5BC /* KPKXmlCipherInformation.m in Sources */, 4C1842C0179B5BFD00E2F5BC /* NSData+CommonCrypto.m in Sources */, 4C1842C3179B69E700E2F5BC /* NSData+HashedData.m in Sources */, + 4C1842C6179BF52100E2F5BC /* KPKBinaryCipherInformation.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/MacPass/Base.lproj/GeneralSettings.xib b/MacPass/Base.lproj/GeneralSettings.xib index c88545b0..e9ed94ac 100644 --- a/MacPass/Base.lproj/GeneralSettings.xib +++ b/MacPass/Base.lproj/GeneralSettings.xib @@ -45,42 +45,121 @@ 268 - + - 268 - {{18, 177}, {241, 18}} + 12 + + + + 274 + + + + 268 + {{16, 12}, {241, 18}} + + + + _NS:9 + {250, 252} + YES + + -2080374784 + 268435456 + Reopen last Database after Launch + + LucidaGrande + 13 + 1044 + + _NS:9 + + 1211912448 + 2 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + NO + + + + 268 + {{16, 32}, {228, 18}} + + + + _NS:9 + {250, 252} + YES + + -2080374784 + 268435456 + Create new Database if activated + + _NS:9 + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + {{1, 1}, {364, 58}} + + + + _NS:11 + + + {{17, 157}, {366, 74}} - + _NS:9 - {250, 252} - YES - - -2080374784 - 268435456 - Reopen last Database after Launch - + {0, 0} + + 67108864 + 0 + Startup + LucidaGrande - 13 - 1044 + 11 + 3100 - _NS:9 - - 1211912448 - 2 - - NSImage - NSSwitch + + 6 + System + textBackgroundColor + + 3 + MQA + - - NSSwitch + + 3 + MCAwLjgwMDAwMDAxMTkAA - - - 200 - 25 - NO + + 1 + 0 + 2 + NO @@ -93,7 +172,7 @@ 268 - {{15, 96}, {124, 17}} + {{15, 93}, {124, 17}} @@ -130,7 +209,7 @@ 268 - {{179, 92}, {170, 23}} + {{179, 90}, {170, 22}} @@ -220,7 +299,7 @@ 268 - {{31, 72}, {172, 18}} + {{31, 69}, {172, 18}} @@ -335,6 +414,7 @@ {{31, 12}, {122, 18}} + _NS:9 YES @@ -377,14 +457,14 @@ NO - {{1, 1}, {364, 124}} + {{1, 1}, {364, 121}} _NS:11 - {{17, 16}, {366, 140}} + {{17, 16}, {366, 137}} @@ -396,20 +476,8 @@ 67108864 0 Security - - LucidaGrande - 11 - 3100 - - - 6 - System - textBackgroundColor - - 3 - MQA - - + + 3 MCAwLjgwMDAwMDAxMTkAA @@ -422,10 +490,10 @@ NO - {400, 230} + {400, 251} - + NSView @@ -479,6 +547,14 @@ 878 + + + createUntitledOnActivation + + + + 920 + @@ -510,22 +586,6 @@ 1 - - - 3 - 0 - - 3 - 1 - - 74 - - 1000 - - 3 - 9 - 3 - 4 @@ -542,6 +602,22 @@ 29 3 + + + 3 + 0 + + 4 + 1 + + 8 + + 1000 + + 9 + 40 + 3 + 6 @@ -574,24 +650,40 @@ 40 3 - - + + 3 0 3 1 - - 37 + + 20 1000 - 3 - 9 + 9 + 40 + 3 + + + + 6 + 0 + + 6 + 1 + + 20 + + 1000 + + 8 + 29 3 - + 5 0 @@ -606,7 +698,7 @@ 29 3 - + 8 0 @@ -614,7 +706,7 @@ 0 1 - 230 + 251 1000 @@ -638,8 +730,8 @@ 40 1 + - @@ -679,6 +771,22 @@ 9 3 + + + 4 + 0 + + 4 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + 5 @@ -855,22 +963,6 @@ 9 3 - - - 10 - 0 - - 10 - 1 - - 0.0 - - 1000 - - 6 - 24 - 2 - 5 @@ -1027,24 +1119,6 @@ - - 530 - - - - - - - - 531 - - - - - 532 - - - 584 @@ -1105,11 +1179,6 @@ - - 784 - - - 789 @@ -1125,11 +1194,6 @@ - - 798 - - - 801 @@ -1163,26 +1227,6 @@ - - 840 - - - - - 845 - - - - - 846 - - - - - 847 - - - 861 @@ -1233,6 +1277,186 @@ + + 888 + + + + + 4 + 0 + + 4 + 1 + + 11 + + 1000 + + 9 + 40 + 3 + + + + 3 + 0 + + 4 + 1 + + 6 + + 1000 + + 9 + 40 + 3 + + + + 5 + 0 + + 5 + 1 + + 16 + + 1000 + + 8 + 29 + 3 + + + + 5 + 0 + + 5 + 1 + + 16 + + 1000 + + 8 + 29 + 3 + + + + 3 + 0 + + 3 + 1 + + 25 + + 1000 + + 9 + 40 + 3 + + + + + + + + 891 + + + + + 893 + + + + + 530 + + + + + + + + 531 + + + + + 894 + + + + + 879 + + + + + + + + 880 + + + + + 896 + + + + + 897 + + + + + 903 + + + + + 901 + + + + + 898 + + + + + 906 + + + + + 916 + + + + + 917 + + + + + 918 + + + + + 919 + + + @@ -1241,13 +1465,14 @@ com.apple.InterfaceBuilder.CocoaPlugin - + - + + + - @@ -1275,9 +1500,8 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - + - @@ -1289,6 +1513,7 @@ + @@ -1300,7 +1525,6 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -1312,21 +1536,15 @@ 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 @@ -1337,12 +1555,37 @@ 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 - 878 + 920 @@ -1352,6 +1595,7 @@ NSButton NSPopUpButton + NSButton NSPopUpButton NSButton NSButton @@ -1365,6 +1609,10 @@ clearPasteboardTimeoutPopup NSPopUpButton + + createUntitledOnActivation + NSButton + idleTimeOutPopup NSPopUpButton diff --git a/MacPass/MPAppDelegate.m b/MacPass/MPAppDelegate.m index 9ea5bc23..616f6ff0 100644 --- a/MacPass/MPAppDelegate.m +++ b/MacPass/MPAppDelegate.m @@ -112,11 +112,21 @@ 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 - }]; + if([documents count] > 0 ) { + return; // There's already a document restored + } + NSURL *documentUrl; + if([recentDocuments count] > 0) { + documentUrl = recentDocuments[0]; + } + else { + NSString *lastPath = [[NSUserDefaults standardUserDefaults] stringForKey:kMPSettingsKeyLastDatabasePath]; + documentUrl = [NSURL URLWithString:lastPath]; + } + if([documentUrl isFileURL]) { + [documentController openDocumentWithContentsOfURL:documentUrl display:YES + completionHandler:^(NSDocument *document, BOOL documentWasAlreadyOpen, NSError *error) {}]; + } } diff --git a/MacPass/MPDocument.m b/MacPass/MPDocument.m index 9d6814c6..317d2859 100644 --- a/MacPass/MPDocument.m +++ b/MacPass/MPDocument.m @@ -13,6 +13,7 @@ #import "MPRootAdapter.h" #import "MPIconHelper.h" #import "MPActionHelper.h" +#import "MPSettingsHelper.h" #import "KdbLib.h" #import "Kdb3Node.h" @@ -165,6 +166,13 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey"; - (void)close { [self _cleanupLock]; + /* + We store the last url. Restored windows are automatically handeld. + If closeAllDocuments is set, all docs get this messgae + */ + if([[self fileURL] isFileURL]) { + [[NSUserDefaults standardUserDefaults] setObject:[self.fileURL absoluteString] forKey:kMPSettingsKeyLastDatabasePath]; + } [super close]; } diff --git a/MacPass/MPGeneralSettingsController.h b/MacPass/MPGeneralSettingsController.h index 6eb7a50c..3c92b34e 100644 --- a/MacPass/MPGeneralSettingsController.h +++ b/MacPass/MPGeneralSettingsController.h @@ -17,5 +17,6 @@ @property (weak) IBOutlet NSPopUpButton *idleTimeOutPopup; @property (weak) IBOutlet NSButton *lockOnSleepCheckButton; @property (weak) IBOutlet NSButton *reopenLastDatabase; +@property (weak) IBOutlet NSButton *createUntitledOnActivation; @end diff --git a/MacPass/MPGeneralSettingsController.m b/MacPass/MPGeneralSettingsController.m index fd75d963..b7d45c3c 100644 --- a/MacPass/MPGeneralSettingsController.m +++ b/MacPass/MPGeneralSettingsController.m @@ -33,6 +33,7 @@ NSString *const MPGeneralSetingsIdentifier = @"GeneralSettingsTab"; - (void)didLoadView { NSUserDefaultsController *defaultsController = [NSUserDefaultsController sharedUserDefaultsController]; NSString *reopenLastFilePath = [NSString stringWithFormat:@"values.%@", kMPSettingsKeyReopenLastDatabaseOnLaunch]; + NSString *createUntitledOnActivatePaht = [NSString stringWithFormat:@"values.%@", kMPSettingsKeyOpenEmptyDatabaseOnLaunch]; NSString *clearPasteboardKeyPath = [NSString stringWithFormat:@"values.%@", kMPSettingsKeyClearPasteboardOnQuit]; NSString *clearPasteboardTimeOutKeyPath = [NSString stringWithFormat:@"values.%@", kMPSettingsKeyPasteboardClearTimeout]; NSString *idleTimeOutKeyPath = [NSString stringWithFormat:@"values.%@", kMPSettingsKeyIdleLockTimeOut]; @@ -42,5 +43,6 @@ NSString *const MPGeneralSetingsIdentifier = @"GeneralSettingsTab"; [self.lockOnSleepCheckButton bind:NSValueBinding toObject:defaultsController withKeyPath:lockOnSleepKeyPath options:nil]; [self.idleTimeOutPopup bind:NSSelectedTagBinding toObject:defaultsController withKeyPath:idleTimeOutKeyPath options:nil]; [self.reopenLastDatabase bind:NSValueBinding toObject:defaultsController withKeyPath:reopenLastFilePath options:nil]; + [self.createUntitledOnActivation bind:NSValueBinding toObject:defaultsController withKeyPath:createUntitledOnActivatePaht options:nil]; } @end diff --git a/MacPass/MPSettingsHelper.h b/MacPass/MPSettingsHelper.h index b0d2db9a..2bd5ee9c 100644 --- a/MacPass/MPSettingsHelper.h +++ b/MacPass/MPSettingsHelper.h @@ -36,6 +36,13 @@ APPKIT_EXTERN NSString *const kMPSettingsKeyLegacyHidePassword; APPKIT_EXTERN NSString *const kMPSettingsKeyLegacyHideNotes; APPKIT_EXTERN NSString *const kMPSettingsKeyLegacyHideURL; +/* Document/Key Location store */ +APPKIT_EXTERN NSString *const kMPSettingsKeyLastDatabasePath; +/* +APPKIT_EXTERN NSString *const kMPSettingsKeyLastKeyURL; +APPKIT_EXTERN NSString *const kMPSettingsKeyRememberLastKey; +*/ + typedef NS_ENUM(NSUInteger, MPPasswordEncoding) { MPPasswordEncodingUTF8, MPPasswordEncodingASCII, diff --git a/MacPass/MPSettingsHelper.m b/MacPass/MPSettingsHelper.m index 565a5cb1..5db6dcd8 100644 --- a/MacPass/MPSettingsHelper.m +++ b/MacPass/MPSettingsHelper.m @@ -25,6 +25,7 @@ NSString *const kMPSettingsKeyLegacyHidePassword = @"LegacyHidePassword"; NSString *const kMPSettingsKeyLegacyHideNotes = @"LegacyHideNotes"; NSString *const kMPSettingsKeyLegacyHideURL = @"LegacyHideURL"; +NSString *const kMPSettingsKeyLastDatabasePath = @"MPLastDatabasePath"; @implementation MPSettingsHelper diff --git a/MiniKeePassLib b/MiniKeePassLib index 0b7ebb9b..14a183af 160000 --- a/MiniKeePassLib +++ b/MiniKeePassLib @@ -1 +1 @@ -Subproject commit 0b7ebb9bb174bcc9a76310b929c123e51c4849a4 +Subproject commit 14a183afd1a7197197c1688190242158dcd077f7