diff --git a/MacPass/MPGeneralDatabaseSettingsViewController.m b/MacPass/MPGeneralDatabaseSettingsViewController.m index 6fbbbe27..4cacd20c 100644 --- a/MacPass/MPGeneralDatabaseSettingsViewController.m +++ b/MacPass/MPGeneralDatabaseSettingsViewController.m @@ -8,15 +8,59 @@ #import "MPGeneralDatabaseSettingsViewController.h" +#import "MPDocument.h" + +#import + @interface MPGeneralDatabaseSettingsViewController () +@property (weak) IBOutlet NSTextField *databaseNameTextField; +@property (weak) IBOutlet NSPopUpButton *databaseCompressionPopupButton; +@property (weak) IBOutlet NSTextView *databaseDescriptionTextView; +@property (weak) IBOutlet NSColorWell *databaseColorColorWell; +@property (weak) IBOutlet NSTextField *fileVersionTextField; + @end @implementation MPGeneralDatabaseSettingsViewController - (void)viewDidLoad { - [super viewDidLoad]; - // Do view setup here. + [super viewDidLoad]; +} + +#pragma mark Private Helper +- (void)_setupView { + MPDocument *document = (MPDocument *)self.view.window.windowController.document; + + KPKTree *tree = document.tree; + + if(!tree) { + return; // nothing to read from + } + + 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; + + + NSData *fileData = [NSData dataWithContentsOfURL:document.fileURL]; + if(!fileData) { + self.fileVersionTextField.stringValue = NSLocalizedString(@"UNKNOWN_FORMAT_FILE_NOT_SAVED_YET", "Database format is unknown since the file is not saved yet"); + } + else { + KPKFileVersion version = [[KPKFormat sharedFormat] fileVersionForData:fileData]; + NSDictionary *nameMappings = @{ + @(KPKDatabaseFormatKdb): @"Kdb", + @(KPKDatabaseFormatKdbx): @"Kdbx", + @(KPKDatabaseFormatUnknown): NSLocalizedString(@"UNKNOWN_FORMAT", "Unknown database format.") + }; + + NSUInteger mayor = (version.version >> 16); + NSUInteger minor = (version.version & 0xFFFF); + + self.fileVersionTextField.stringValue = [NSString stringWithFormat:@"%@ (Version %ld.%ld)", nameMappings[@(version.format)], mayor, minor]; + } } @end diff --git a/MacPass/MPGeneralDatabaseSettingsViewController.xib b/MacPass/MPGeneralDatabaseSettingsViewController.xib index 2ede0ee3..0424e5aa 100644 --- a/MacPass/MPGeneralDatabaseSettingsViewController.xib +++ b/MacPass/MPGeneralDatabaseSettingsViewController.xib @@ -8,6 +8,11 @@ + + + + + @@ -33,7 +38,7 @@ - + @@ -43,7 +48,7 @@ - + @@ -56,7 +61,7 @@ - + @@ -66,7 +71,7 @@ - + @@ -98,7 +103,7 @@ - + @@ -108,13 +113,13 @@ - - + + - + @@ -123,7 +128,7 @@ - + @@ -133,13 +138,13 @@ - + - + @@ -149,7 +154,7 @@ - +