Revision: 14762
http://sourceforge.net/p/skim-app/code/14762
Author: hofman
Date: 2024-11-28 18:08:41 +0000 (Thu, 28 Nov 2024)
Log Message:
-----------
ask user for saving password from document
Modified Paths:
--------------
trunk/SKMainDocument.m
trunk/SKMainWindowController.m
Modified: trunk/SKMainDocument.m
===================================================================
--- trunk/SKMainDocument.m 2024-11-28 17:50:22 UTC (rev 14761)
+++ trunk/SKMainDocument.m 2024-11-28 18:08:41 UTC (rev 14762)
@@ -1607,7 +1607,7 @@
#pragma mark Passwords
-- (void)savePasswordInKeychain:(NSString *)password {
+- (void)_savePasswordInKeychain:(NSString *)password {
NSString *fileID = [[[self pdfDocument] fileIDStrings] lastObject] ?:
[pdfData md5String];
if (fileID) {
NSString *label = [@"Skim: " stringByAppendingString:[self
displayName]];
@@ -1625,6 +1625,27 @@
}
}
+- (void)savePasswordInKeychain:(NSString *)password {
+ NSInteger saveOption = [[NSUserDefaults standardUserDefaults]
integerForKey:SKSavePasswordOptionKey];
+ if (saveOption == SKOptionAlways) {
+ [self _savePasswordInKeychain:password];
+ } else if (saveOption == SKOptionAsk) {
+ NSAlert *alert = [[NSAlert alloc] init];
+ [alert setMessageText:[NSString
stringWithFormat:NSLocalizedString(@"Remember Password?", @"Message in alert
dialog"), nil]];
+ [alert setInformativeText:NSLocalizedString(@"Do you want to save this
password in your Keychain?", @"Informative text in alert dialog")];
+ [alert addButtonWithTitle:NSLocalizedString(@"Yes", @"Button title")];
+ [alert addButtonWithTitle:NSLocalizedString(@"No", @"Button title")];
+ NSWindow *window = [self windowForSheet];
+ if (window && [window attachedSheet] == nil)
+ [alert beginSheetModalForWindow:window
completionHandler:^(NSModalResponse returnCode){
+ if (returnCode == NSAlertFirstButtonReturn)
+ [self _savePasswordInKeychain:password];
+ }];
+ else if (NSAlertFirstButtonReturn == [alert runModal])
+ [self _savePasswordInKeychain:password];
+ }
+}
+
- (void)tryToUnlockDocument:(PDFDocument *)document {
if ([document permissionsStatus] != kPDFDocumentPermissionsOwner) {
NSString *password = nil;
Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m 2024-11-28 17:50:22 UTC (rev 14761)
+++ trunk/SKMainWindowController.m 2024-11-28 18:08:41 UTC (rev 14762)
@@ -2077,30 +2077,9 @@
}
}
-enum { SKOptionAsk = -1, SKOptionNever = 0, SKOptionAlways = 1 };
-
- (void)document:(PDFDocument *)aDocument didUnlockWithPassword:(NSString
*)password {
- if ([aDocument isLocked])
- return;
-
- NSInteger saveOption = [[NSUserDefaults standardUserDefaults]
integerForKey:SKSavePasswordOptionKey];
- if (saveOption == SKOptionAlways) {
+ if ([aDocument isLocked] == NO)
[[self document] savePasswordInKeychain:password];
- } else if (saveOption == SKOptionAsk) {
- NSAlert *alert = [[NSAlert alloc] init];
- [alert setMessageText:[NSString
stringWithFormat:NSLocalizedString(@"Remember Password?", @"Message in alert
dialog"), nil]];
- [alert setInformativeText:NSLocalizedString(@"Do you want to save this
password in your Keychain?", @"Informative text in alert dialog")];
- [alert addButtonWithTitle:NSLocalizedString(@"Yes", @"Button title")];
- [alert addButtonWithTitle:NSLocalizedString(@"No", @"Button title")];
- NSWindow *window = [self window];
- if ([window attachedSheet] == nil)
- [alert beginSheetModalForWindow:window
completionHandler:^(NSModalResponse returnCode){
- if (returnCode == NSAlertFirstButtonReturn)
- [[self document] savePasswordInKeychain:password];
- }];
- else if (NSAlertFirstButtonReturn == [alert runModal])
- [[self document] savePasswordInKeychain:password];
- }
}
#pragma mark PDFDocument notifications
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit