From 68a4864051644edbef49d27a90ae7a6465a62be8 Mon Sep 17 00:00:00 2001 From: michael starke Date: Mon, 20 Nov 2017 19:36:54 +0100 Subject: [PATCH] Display minimum version information (which might not be the file version!) --- MacPass/Base.lproj/DatabaseSettingsWindow.xib | 53 +++++++++++++------ MacPass/MPDatabaseSettingsWindowController.h | 1 + MacPass/MPDatabaseSettingsWindowController.m | 33 ++++++++---- 3 files changed, 62 insertions(+), 25 deletions(-) diff --git a/MacPass/Base.lproj/DatabaseSettingsWindow.xib b/MacPass/Base.lproj/DatabaseSettingsWindow.xib index 00b85e53..a62fb99d 100644 --- a/MacPass/Base.lproj/DatabaseSettingsWindow.xib +++ b/MacPass/Base.lproj/DatabaseSettingsWindow.xib @@ -30,6 +30,7 @@ + @@ -50,10 +51,10 @@ - - + + - + - + - + - + @@ -103,7 +104,7 @@ Gw - + @@ -111,7 +112,7 @@ Gw - + @@ -119,7 +120,7 @@ Gw - + @@ -132,7 +133,7 @@ Gw - + @@ -140,7 +141,7 @@ Gw - + @@ -148,7 +149,7 @@ Gw - + @@ -156,7 +157,7 @@ Gw - + @@ -185,14 +186,34 @@ Gw + + + + + + + + + + + + + + + + + + + + @@ -204,11 +225,13 @@ Gw - + + + @@ -727,7 +750,7 @@ Gw - + diff --git a/MacPass/MPDatabaseSettingsWindowController.h b/MacPass/MPDatabaseSettingsWindowController.h index bbd85033..951175c5 100644 --- a/MacPass/MPDatabaseSettingsWindowController.h +++ b/MacPass/MPDatabaseSettingsWindowController.h @@ -41,6 +41,7 @@ typedef NS_ENUM(NSUInteger, MPDatabaseSettingsTab) { @property (weak) IBOutlet NSPopUpButton *databaseCompressionPopupButton; @property (unsafe_unretained) IBOutlet NSTextView *databaseDescriptionTextView; @property (weak) IBOutlet NSColorWell *databaseColorColorWell; +@property (weak) IBOutlet NSTextField *fileVersionTextField; /* Security Tab */ @property (weak) IBOutlet NSButton *createKeyDerivationParametersButton; diff --git a/MacPass/MPDatabaseSettingsWindowController.m b/MacPass/MPDatabaseSettingsWindowController.m index 71d39778..48a9bdba 100644 --- a/MacPass/MPDatabaseSettingsWindowController.m +++ b/MacPass/MPDatabaseSettingsWindowController.m @@ -204,10 +204,10 @@ return; // no document, just leave } /* Update all stuff that might have changed */ - KPKMetaData *metaData = ((MPDocument *)self.document).tree.metaData; - [self _setupDatabaseTab:metaData]; - [self _setupSecurityTab:metaData]; - [self _setupAdvancedTab:((MPDocument *)self.document).tree]; + KPKTree *tree = ((MPDocument *)self.document).tree; + [self _setupDatabaseTab:tree]; + [self _setupSecurityTab:tree.metaData]; + [self _setupAdvancedTab:tree]; self.isDirty = NO; } @@ -237,12 +237,25 @@ } #pragma mark Private Helper -- (void)_setupDatabaseTab:(KPKMetaData *)metaData { - self.databaseNameTextField.stringValue = metaData.databaseName; - self.databaseDescriptionTextView.string = metaData.databaseDescription; - [self.databaseCompressionPopupButton selectItemAtIndex:metaData.compressionAlgorithm]; - NSColor *databaseColor = metaData.color ? metaData.color : [NSColor clearColor]; - self.databaseColorColorWell.color = databaseColor; +- (void)_setupDatabaseTab:(KPKTree *)tree { + self.databaseNameTextField.stringValue = tree.metaData.databaseName; + self.databaseDescriptionTextView.string = tree.metaData.databaseDescription; + [self.databaseCompressionPopupButton selectItemAtIndex:tree.metaData.compressionAlgorithm]; + self.databaseColorColorWell.color = tree.metaData.color ? tree.metaData.color : NSColor.clearColor; + + + //MPDocument *document = self.document; + KPKFileVersion version = tree.minimumVersion; + NSDictionary *nameMappings = @{ + @(KPKDatabaseFormatKdb): @"Kdb", + @(KPKDatabaseFormatKdbx): @"Kdbx", + @(KPKDatabaseFormatUnknown): NSLocalizedString(@"UNKNOWN_FORMAT", "Unknown databas format.") + }; + + NSUInteger mayor = (version.version >> 16); + NSUInteger minor = (version.version & 0xFFFF); + + self.fileVersionTextField.stringValue = [NSString stringWithFormat:@"%@ (Version %ld.%ld)", nameMappings[@(version.format)], mayor, minor]; } - (void)_setupSecurityTab:(KPKMetaData *)metaData {