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

Reply via email to