KDB files now get saved without telling the user he looses data. Extended info display in save dialog

This commit is contained in:
michael starke
2017-09-26 17:29:27 +02:00
parent fb49a4ac23
commit 61826229c8
4 changed files with 11 additions and 14 deletions

View File

@@ -1177,7 +1177,6 @@
4C6AEF041A0441F800CA2420 /* AccessoryViews */ = { 4C6AEF041A0441F800CA2420 /* AccessoryViews */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
4C0728BE17B68ED0005A7DD9 /* SavePanelAccessoryView.xib */,
4C6AEF021A04400E00CA2420 /* OpenPanelAccessoryView.xib */, 4C6AEF021A04400E00CA2420 /* OpenPanelAccessoryView.xib */,
); );
name = AccessoryViews; name = AccessoryViews;
@@ -1357,6 +1356,7 @@
6021FE7918E15FF300C3BC51 /* DatePickingView.xib */, 6021FE7918E15FF300C3BC51 /* DatePickingView.xib */,
4C0F647917B6BC9C00D9522A /* MPSavePanelAccessoryViewController.h */, 4C0F647917B6BC9C00D9522A /* MPSavePanelAccessoryViewController.h */,
4C0F647A17B6BC9C00D9522A /* MPSavePanelAccessoryViewController.m */, 4C0F647A17B6BC9C00D9522A /* MPSavePanelAccessoryViewController.m */,
4C0728BE17B68ED0005A7DD9 /* SavePanelAccessoryView.xib */,
4C1E9883185F71A800943563 /* MPContextBarViewController.h */, 4C1E9883185F71A800943563 /* MPContextBarViewController.h */,
4C1E9884185F71A800943563 /* MPContextBarViewController.m */, 4C1E9884185F71A800943563 /* MPContextBarViewController.m */,
4C3FFD9D16DAF60600DF9186 /* ContextBar.xib */, 4C3FFD9D16DAF60600DF9186 /* ContextBar.xib */,

View File

@@ -258,7 +258,6 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGrou
} }
- (NSString *)fileTypeFromLastRunSavePanel { - (NSString *)fileTypeFromLastRunSavePanel {
/* TODO evaluate if this is still necessary! */
if(self.savePanelViewController) { if(self.savePanelViewController) {
return [self.class fileTypeForVersion:self.savePanelViewController.selectedVersion]; return [self.class fileTypeForVersion:self.savePanelViewController.selectedVersion];
} }

View File

@@ -210,9 +210,10 @@ typedef void (^MPPasswordChangedBlock)(BOOL didChangePassword);
#pragma mark Actions #pragma mark Actions
- (void)saveDocument:(id)sender { - (void)saveDocument:(id)sender {
MPDocument *document = self.document; MPDocument *document = self.document;
/* did we open as legacy ?
NSString *fileType = document.fileType; NSString *fileType = document.fileType;
/* we did open as legacy */ if([fileType isEqualToString:MPKdbxDocumentUTI]) {
if([fileType isEqualToString:MPKdbDocumentUTI]) {
if(document.tree.minimumVersion.format != KPKDatabaseFormatKdb) { if(document.tree.minimumVersion.format != KPKDatabaseFormatKdb) {
NSAlert *alert = [[NSAlert alloc] init]; NSAlert *alert = [[NSAlert alloc] init];
alert.alertStyle = NSWarningAlertStyle; alert.alertStyle = NSWarningAlertStyle;
@@ -225,7 +226,7 @@ typedef void (^MPPasswordChangedBlock)(BOOL didChangePassword);
[alert beginSheetModalForWindow:((NSDocument *)self.document).windowForSheet completionHandler:^(NSModalResponse returnCode) { [alert beginSheetModalForWindow:((NSDocument *)self.document).windowForSheet completionHandler:^(NSModalResponse returnCode) {
switch(returnCode) { switch(returnCode) {
case NSAlertFirstButtonReturn: case NSAlertFirstButtonReturn:
/* Save lossy */ // save lossy
[self.document saveDocument:nil]; [self.document saveDocument:nil];
return; return;
@@ -242,21 +243,19 @@ typedef void (^MPPasswordChangedBlock)(BOOL didChangePassword);
return; return;
} }
} }
else if(!document.compositeKey) { else*/
__weak MPDocument *weakDocument = self.document; if(!document.compositeKey) {
[self editPasswordWithCompetionHandler:^(NSInteger result) { [self editPasswordWithCompetionHandler:^(NSInteger result) {
if(result == NSModalResponseOK) { if(result == NSModalResponseOK) {
[weakDocument saveDocument:sender]; [self saveDocument:sender];
} }
}]; }];
return; return;
} }
else if(document.shouldEnforcePasswordChange) { else if(document.shouldEnforcePasswordChange) {
__weak MPDocument *weakDocument = [self document];
[self editPasswordWithCompetionHandler:^(NSInteger result) { [self editPasswordWithCompetionHandler:^(NSInteger result) {
if(result == NSModalResponseOK) { if(result == NSModalResponseOK) {
[weakDocument saveDocument:sender]; [self saveDocument:sender];
} }
}]; }];
[self _presentPasswordIntervalAlerts]; [self _presentPasswordIntervalAlerts];
@@ -272,10 +271,9 @@ typedef void (^MPPasswordChangedBlock)(BOOL didChangePassword);
return; return;
} }
/* we need to make sure that a password is set */ /* we need to make sure that a password is set */
__weak MPDocument *weakDocument = self.document;
[self editPasswordWithCompetionHandler:^(NSInteger result) { [self editPasswordWithCompetionHandler:^(NSInteger result) {
if(result == NSModalResponseOK) { if(result == NSModalResponseOK) {
[weakDocument saveDocumentAs:sender]; [self saveDocumentAs:sender];
} }
}]; }];
} }

View File

@@ -96,7 +96,7 @@
- (void)_updateNote { - (void)_updateNote {
NSString *uti = self.fileTypePopupButton.selectedItem.representedObject; NSString *uti = self.fileTypePopupButton.selectedItem.representedObject;
BOOL showInfoText = (self.document.tree.minimumVersion.format == KPKDatabaseFormatKdbx && [uti isEqualToString:MPKdbDocumentUTI]); BOOL showInfoText = [uti isEqualToString:MPKdbDocumentUTI] && (self.document.tree.minimumVersion.format == KPKDatabaseFormatKdbx) && [self.document.fileType isEqualToString:MPKdbxDocumentUTI];
self.infoTextField.hidden = !showInfoText; self.infoTextField.hidden = !showInfoText;
} }