Revision: 23974
http://sourceforge.net/p/bibdesk/svn/23974
Author: hofman
Date: 2019-07-09 17:14:13 +0000 (Tue, 09 Jul 2019)
Log Message:
-----------
Add an authentication panel for downloads, more or less copied from webkit
Modified Paths:
--------------
trunk/bibdesk/Bibdesk.xcodeproj/project.pbxproj
Added Paths:
-----------
trunk/bibdesk/BDSKAuthenticationController.h
trunk/bibdesk/BDSKAuthenticationController.m
trunk/bibdesk/BDSKAuthenticationHandler.h
trunk/bibdesk/BDSKAuthenticationHandler.m
trunk/bibdesk/English.lproj/AuthenticationPanel.xib
trunk/bibdesk/French.lproj/AuthenticationPanel.xib
trunk/bibdesk/German.lproj/AuthenticationPanel.xib
Added: trunk/bibdesk/BDSKAuthenticationController.h
===================================================================
--- trunk/bibdesk/BDSKAuthenticationController.h
(rev 0)
+++ trunk/bibdesk/BDSKAuthenticationController.h 2019-07-09 17:14:13 UTC
(rev 23974)
@@ -0,0 +1,58 @@
+//
+// BDSKAuthenticationController.h
+// BibDesk
+//
+// Created by Christiaan Hofman on 09/07/2019.
+/*
+ This software is Copyright (c) 2019
+ Christiaan Hofman. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ - Neither the name of Christiaan Hofman nor the names of any
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <Cocoa/Cocoa.h>
+#import "BDSKDownloader.h"
+
+
+@interface BDSKAuthenticationController : NSWindowController {
+ IBOutlet NSTextField *mainLabelField;
+ IBOutlet NSTextField *smallLabelField;
+ IBOutlet NSTextField *passwordField;
+ IBOutlet NSTextField *userField;
+ IBOutlet NSButton *rememberButton;
+ BOOL usingSheet;
+}
+
+- (void)runAuthentication:(NSURLAuthenticationChallenge *)challenge
window:(NSWindow *)window completionHandler:(void
(^)(BDSKDownloaderAuthChallengeDisposition disposition, NSURLCredential
*credential))completionHandler;
+
+@end
+
+@interface BDSKNonBlockingPanel : NSPanel
+@end
+
Added: trunk/bibdesk/BDSKAuthenticationController.m
===================================================================
--- trunk/bibdesk/BDSKAuthenticationController.m
(rev 0)
+++ trunk/bibdesk/BDSKAuthenticationController.m 2019-07-09 17:14:13 UTC
(rev 23974)
@@ -0,0 +1,149 @@
+//
+// BDSKAuthenticationController.m
+// BibDesk
+//
+// Created by Christiaan Hofman on 09/07/2019.
+/*
+ This software is Copyright (c) 2019
+ Christiaan Hofman. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ - Neither the name of Christiaan Hofman nor the names of any
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "BDSKAuthenticationController.h"
+#import "NSWindowController_BDSKExtensions.h"
+
+
+@implementation BDSKAuthenticationController
+
+- (NSString *)windowNibName { return @"AuthenticationPanel"; }
+
+- (void)setUpForChallenge:(NSURLAuthenticationChallenge *)challenge {
+ NSWindow *window = [self window];
+ NSURLProtectionSpace *space = [challenge protectionSpace];
+ NSString *host = [space host];
+ NSString *realm = [space realm];
+ NSString *message;
+
+ if ([space port] != 0)
+ host = [host stringByAppendingFormat:@":%ld", (long)[space port]];
+
+ if ([challenge previousFailureCount] == 0) {
+ if ([space isProxy])
+ message = [NSString stringWithFormat:NSLocalizedString(@"To view
this page, you need to log in to the %@ proxy server %@.", @"prompt string in
authentication panel"), [space proxyType], host];
+ else
+ message = [NSString stringWithFormat:NSLocalizedString(@"To view
this page, you need to log in to area “%@” on %@.", @"prompt string in
authentication panel"), realm, host];
+ } else {
+ if ([space isProxy])
+ message = [NSString stringWithFormat:NSLocalizedString(@"The name
or password entered for the %@ proxy server %@ was incorrect. Please try
again.", @"prompt string in authentication panel"), [space proxyType], host];
+ else
+ message = [NSString stringWithFormat:NSLocalizedString(@"The name
or password entered for area “%@” on %@ was incorrect. Please try again.",
@"prompt string in authentication panel"), realm, host];
+ }
+
+ [mainLabelField setStringValue:message];
+
+ NSRect windowFrame = [window frame];
+ NSRect frame = [mainLabelField frame];
+ NSSize bestSize = [mainLabelField intrinsicContentSize];
+ float heightDelta = bestSize.height - NSHeight(frame);
+ frame.size.height += heightDelta;
+ frame.origin.y -= heightDelta;
+ [mainLabelField setFrame:frame];
+ windowFrame.size.height += heightDelta;
+ [window setFrame:windowFrame display:NO];
+
+ if ([space receivesCredentialSecurely])
+ [smallLabelField setStringValue:
+ NSLocalizedString(@"Your login information will be sent securely.",
@"message in authentication panel")];
+ else
+ [smallLabelField setStringValue:
+ NSLocalizedString(@"Your password will be sent in the clear.",
@"message in authentication panel")];
+
+ if ([[challenge proposedCredential] user] != nil) {
+ [userField setStringValue:[[challenge proposedCredential] user]];
+ [window setInitialFirstResponder:passwordField];
+ } else {
+ [userField setStringValue:@""];
+ [window setInitialFirstResponder:userField];
+ }
+}
+
+- (NSURLCredential *)credential {
+ return [NSURLCredential credentialWithUser:[userField stringValue]
password:[passwordField stringValue] persistence:([rememberButton state] ==
NSOnState) ? NSURLCredentialPersistencePermanent :
NSURLCredentialPersistenceForSession];
+}
+
+- (void)runAuthentication:(NSURLAuthenticationChallenge *)challenge
window:(NSWindow *)window completionHandler:(void
(^)(BDSKDownloaderAuthChallengeDisposition disposition, NSURLCredential
*credential))completionHandler {
+ [self setUpForChallenge:challenge];
+
+ if (window) {
+ usingSheet = YES;
+ [self beginSheetModalForWindow:window completionHandler:^(NSInteger
result){
+ if (result == NSOKButton)
+
completionHandler(BDSKDownloaderAuthChallengeCancelAuthenticationChallenge,
[self credential]);
+ else
+
completionHandler(BDSKDownloaderAuthChallengeCancelAuthenticationChallenge,
nil);
+ }];
+ } else {
+ usingSheet = NO;
+ if ([NSApp runModalForWindow:[self window]] == NSOKButton)
+
completionHandler(BDSKDownloaderAuthChallengeCancelAuthenticationChallenge,
[self credential]);
+ else
+
completionHandler(BDSKDownloaderAuthChallengeCancelAuthenticationChallenge,
nil);
+ }
+}
+
+- (IBAction)dismiss:(id)sender {
+ if (usingSheet) {
+ [super dismiss:sender];
+ } else {
+ [NSApp stopModalWithCode:[sender tag]];
+ [[self window] orderOut:self];
+ }
+}
+
+@end
+
+@implementation BDSKNonBlockingPanel
+
+- (BOOL)_blocksActionWhenModal:(SEL)theAction
+{
+ // This override of a private AppKit method allows the user to quit when a
login dialog
+ // is onscreen, which is nice in general but in particular prevents
pathological cases
+ // like 3744583 from requiring a Force Quit.
+ //
+ // It would be nice to allow closing the individual window as well as
quitting the app when
+ // a login sheet is up, but this _blocksActionWhenModal: mechanism doesn't
support that.
+ // This override matches those in NSOpenPanel and NSToolbarConfigPanel.
+ if (theAction == @selector(terminate:)) {
+ return NO;
+ }
+ return YES;
+}
+
+@end
Added: trunk/bibdesk/BDSKAuthenticationHandler.h
===================================================================
--- trunk/bibdesk/BDSKAuthenticationHandler.h (rev 0)
+++ trunk/bibdesk/BDSKAuthenticationHandler.h 2019-07-09 17:14:13 UTC (rev
23974)
@@ -0,0 +1,52 @@
+//
+// BDSKAuthenticationHandler.h
+// BibDesk
+//
+// Created by Christiaan Hofman on 09/07/2019.
+/*
+ This software is Copyright (c) 2019
+ Christiaan Hofman. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ - Neither the name of Christiaan Hofman nor the names of any
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <Cocoa/Cocoa.h>
+#import "BDSKDownloader.h"
+
+
+@interface BDSKAuthenticationHandler : NSObject {
+ NSMapTable *controllers;
+ NSMapTable *queues;
+}
+
++ (id)sharedHandler;
+
+- (void)startAuthentication:(NSURLAuthenticationChallenge *)challenge
window:(NSWindow *)window completionHandler:(void
(^)(BDSKDownloaderAuthChallengeDisposition disposition, NSURLCredential
*credential))completionHandler;
+
+@end
Added: trunk/bibdesk/BDSKAuthenticationHandler.m
===================================================================
--- trunk/bibdesk/BDSKAuthenticationHandler.m (rev 0)
+++ trunk/bibdesk/BDSKAuthenticationHandler.m 2019-07-09 17:14:13 UTC (rev
23974)
@@ -0,0 +1,130 @@
+//
+// BDSKAuthenticationHandler.m
+// BibDesk
+//
+// Created by Christiaan Hofman on 09/07/2019.
+/*
+ This software is Copyright (c) 2019
+ Christiaan Hofman. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ - Neither the name of Christiaan Hofman nor the names of any
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "BDSKAuthenticationHandler.h"
+#import "BDSKAuthenticationController.h"
+
+#define CHALLENGE_KEY @"challenge"
+#define COMPLETIONHANDLER_KEY @"completionHandler"
+
+@implementation BDSKAuthenticationHandler
+
++ (id)sharedHandler {
+ static BDSKAuthenticationHandler *sharedHandler = nil;
+ if (sharedHandler == nil)
+ sharedHandler = [[self alloc] init];
+ return sharedHandler;
+}
+
+- (id)init {
+ self = [super init];
+ if (self) {
+ NSPointerFunctionsOptions options = NSPointerFunctionsStrongMemory |
NSPointerFunctionsObjectPersonality;
+ controllers = [[NSMapTable alloc] initWithKeyOptions:options
valueOptions:options capacity:0];
+ queues = [[NSMapTable alloc] initWithKeyOptions:options
valueOptions:options capacity:0];
+ }
+ return self;
+}
+
+
+- (void)dealloc {
+ BDSKDESTROY(controllers);
+ BDSKDESTROY(queues);
+ [super dealloc];
+}
+
+- (void)enqueueChallenge:(NSURLAuthenticationChallenge *)challenge
forWindow:(NSWindow *)window completionHandler:(void
(^)(BDSKDownloaderAuthChallengeDisposition disposition, NSURLCredential
*credential))completionHandler {
+ id key = window ?: (id)[NSNull null];
+ NSMutableArray *queue = [queues objectForKey:key];
+ if (queue == nil) {
+ queue = [[NSMutableArray alloc] init];
+ [queues setObject:queue forKey:key];
+ [queue release];
+ }
+ [queue addObject:[NSDictionary dictionaryWithObjectsAndKeys:challenge,
CHALLENGE_KEY, [[(id)completionHandler copy] autorelease],
COMPLETIONHANDLER_KEY, nil]];
+}
+
+- (void)tryNextChallengeForWindow:(NSWindow *)window {
+ id key = window ?: (id)[NSNull null];
+ NSMutableArray *queue = [queues objectForKey:key];
+ if (queue == nil)
+ return;
+
+ NSDictionary *challengeAndHandler = [[queue firstObject] retain];
+ [queue removeObjectAtIndex:0];
+ if ([queue count] == 0)
+ [queues removeObjectForKey:key];
+
+ NSURLAuthenticationChallenge *challenge = [challengeAndHandler
objectForKey:CHALLENGE_KEY];
+ void (^completionHandler)(BDSKDownloaderAuthChallengeDisposition
disposition, NSURLCredential *credential) = [challengeAndHandler
objectForKey:COMPLETIONHANDLER_KEY];
+
+ NSURLCredential *latestCredential = [[NSURLCredentialStorage
sharedCredentialStorage] defaultCredentialForProtectionSpace:[challenge
protectionSpace]];
+
+ if ([latestCredential hasPassword])
+ completionHandler(BDSKDownloaderAuthChallengeUseCredential,
latestCredential);
+ else
+ [self startAuthentication:challenge window:window
completionHandler:completionHandler];
+
+ [challengeAndHandler release];
+}
+
+- (void)startAuthentication:(NSURLAuthenticationChallenge *)challenge
window:(NSWindow *)window completionHandler:(void
(^)(BDSKDownloaderAuthChallengeDisposition disposition, NSURLCredential
*credential))completionHandler {
+
+ if ([controllers objectForKey:window] != nil) {
+ [self enqueueChallenge:challenge forWindow:window
completionHandler:completionHandler];
+ return;
+ }
+
+ if ([window attachedSheet] != nil) {
+
completionHandler(BDSKDownloaderAuthChallengeCancelAuthenticationChallenge,
nil);
+ return;
+ }
+
+ BDSKAuthenticationController *controller = [[BDSKAuthenticationController
alloc] init];
+ id key = window ?: (id)[NSNull null];
+ [controllers setObject:controller forKey:key];
+
+ [controller runAuthentication:challenge window:window
completionHandler:^(BDSKDownloaderAuthChallengeDisposition disposition,
NSURLCredential *credential){
+ [controllers removeObjectForKey:key];
+ completionHandler(disposition, credential);
+ [self tryNextChallengeForWindow:window];
+ }];
+ [controller release];
+}
+
+@end
Modified: trunk/bibdesk/Bibdesk.xcodeproj/project.pbxproj
===================================================================
--- trunk/bibdesk/Bibdesk.xcodeproj/project.pbxproj 2019-07-09 06:30:44 UTC
(rev 23973)
+++ trunk/bibdesk/Bibdesk.xcodeproj/project.pbxproj 2019-07-09 17:14:13 UTC
(rev 23974)
@@ -480,6 +480,11 @@
CE51616D22CD4E7D00832F3E /* BDSKDownloadCommand.m in Sources */
= {isa = PBXBuildFile; fileRef = CE51616B22CD4E7D00832F3E /*
BDSKDownloadCommand.m */; };
CE51922109E5755600E97C3A /* BDSKFindFieldEditor.m in Sources */
= {isa = PBXBuildFile; fileRef = CE51921F09E5755600E97C3A /*
BDSKFindFieldEditor.m */; };
CE522F761D5CA7FE00348D7D /* BDSKDOIParser.m in Sources */ =
{isa = PBXBuildFile; fileRef = CE522F741D5CA7FE00348D7D /* BDSKDOIParser.m */;
};
+ CE5417CA22D4DA7700867189 /* BDSKAuthenticationHandler.h in
Headers */ = {isa = PBXBuildFile; fileRef = CE5417C822D4DA7700867189 /*
BDSKAuthenticationHandler.h */; };
+ CE5417CB22D4DA7700867189 /* BDSKAuthenticationHandler.m in
Sources */ = {isa = PBXBuildFile; fileRef = CE5417C922D4DA7700867189 /*
BDSKAuthenticationHandler.m */; };
+ CE5417E322D4DA9500867189 /* BDSKAuthenticationController.h in
Headers */ = {isa = PBXBuildFile; fileRef = CE5417E122D4DA9500867189 /*
BDSKAuthenticationController.h */; };
+ CE5417E422D4DA9500867189 /* BDSKAuthenticationController.m in
Sources */ = {isa = PBXBuildFile; fileRef = CE5417E222D4DA9500867189 /*
BDSKAuthenticationController.m */; };
+ CE5417E722D5020400867189 /* AuthenticationPanel.xib in
Resources */ = {isa = PBXBuildFile; fileRef = CE5417E922D5020400867189 /*
AuthenticationPanel.xib */; };
CE564D260AECBA5B002F0A24 /* NSScanner_BDSKExtensions.m in
Sources */ = {isa = PBXBuildFile; fileRef = CE564D240AECBA5B002F0A24 /*
NSScanner_BDSKExtensions.m */; };
CE565BC00AEF848B002F0A24 /* BDSKPublicationsArray.m in Sources
*/ = {isa = PBXBuildFile; fileRef = CE565BBE0AEF848B002F0A24 /*
BDSKPublicationsArray.m */; };
CE56D6510A2DAB55003CE000 /* BDSKDocumentController.m in Sources
*/ = {isa = PBXBuildFile; fileRef = CE56D6500A2DAB55003CE000 /*
BDSKDocumentController.m */; };
@@ -1443,6 +1448,13 @@
CE51921F09E5755600E97C3A /* BDSKFindFieldEditor.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path
= BDSKFindFieldEditor.m; sourceTree = "<group>"; };
CE522F731D5CA7FD00348D7D /* BDSKDOIParser.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path =
BDSKDOIParser.h; sourceTree = "<group>"; };
CE522F741D5CA7FE00348D7D /* BDSKDOIParser.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path
= BDSKDOIParser.m; sourceTree = "<group>"; };
+ CE5417C822D4DA7700867189 /* BDSKAuthenticationHandler.h */ =
{isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path =
BDSKAuthenticationHandler.h; sourceTree = "<group>"; };
+ CE5417C922D4DA7700867189 /* BDSKAuthenticationHandler.m */ =
{isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path =
BDSKAuthenticationHandler.m; sourceTree = "<group>"; };
+ CE5417E122D4DA9500867189 /* BDSKAuthenticationController.h */ =
{isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path =
BDSKAuthenticationController.h; sourceTree = "<group>"; };
+ CE5417E222D4DA9500867189 /* BDSKAuthenticationController.m */ =
{isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path =
BDSKAuthenticationController.m; sourceTree = "<group>"; };
+ CE5417E822D5020400867189 /* English */ = {isa =
PBXFileReference; lastKnownFileType = file.xib; name = English; path =
English.lproj/AuthenticationPanel.xib; sourceTree = "<group>"; };
+ CE5417EA22D5022E00867189 /* French */ = {isa =
PBXFileReference; lastKnownFileType = file.xib; name = French; path =
French.lproj/AuthenticationPanel.xib; sourceTree = "<group>"; };
+ CE5417EB22D5023100867189 /* German */ = {isa =
PBXFileReference; lastKnownFileType = file.xib; name = German; path =
German.lproj/AuthenticationPanel.xib; sourceTree = "<group>"; };
CE564D230AECBA5B002F0A24 /* NSScanner_BDSKExtensions.h */ =
{isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
path = NSScanner_BDSKExtensions.h; sourceTree = "<group>"; };
CE564D240AECBA5B002F0A24 /* NSScanner_BDSKExtensions.m */ =
{isa = PBXFileReference; fileEncoding = 4; lastKnownFileType =
sourcecode.c.objc; path = NSScanner_BDSKExtensions.m; sourceTree = "<group>"; };
CE565BBD0AEF848B002F0A24 /* BDSKPublicationsArray.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path =
BDSKPublicationsArray.h; sourceTree = "<group>"; };
@@ -2268,6 +2280,7 @@
F9BF481E0BD69F6F0071094F /* MODS2MARC21slim.xsl
*/,
F9022DDA0758089500C3F701 /* Images */,
CEB2A6E316401085001A9D6A /* BibDesk.help */,
+ CE5417E922D5020400867189 /*
AuthenticationPanel.xib */,
CEB5D5901072AE350001C135 /* AutoFile.xib */,
CEB5D5921072AE350001C135 /*
AutoFileProgress.xib */,
CEB5D5961072AE350001C135 /*
BDSKCharacterConversion.xib */,
@@ -2802,6 +2815,10 @@
3B91DD46162225850088206D /*
WOKMWSAuthenticateService.m */,
CEBF7AE618F2EB6300012ECD /*
WokSearchLiteService.m */,
3B91DD48162225850088206D /* WokSearchService.m
*/,
+ CE5417C822D4DA7700867189 /*
BDSKAuthenticationHandler.h */,
+ CE5417C922D4DA7700867189 /*
BDSKAuthenticationHandler.m */,
+ CE5417E122D4DA9500867189 /*
BDSKAuthenticationController.h */,
+ CE5417E222D4DA9500867189 /*
BDSKAuthenticationController.m */,
);
name = Networking;
sourceTree = "<group>";
@@ -3380,6 +3397,7 @@
CE2A0AC222459A4B00A8F31C /* html2tex.h in
Headers */,
CE2A09D8224599B300A8F31C /*
BDSKCondition+Scripting.h in Headers */,
CE2A0A1D224599EF00A8F31C /*
BDSKISIGroupServer.h in Headers */,
+ CE5417CA22D4DA7700867189 /*
BDSKAuthenticationHandler.h in Headers */,
CE2A0AE822459A5100A8F31C /*
NSWindowController_BDSKExtensions.h in Headers */,
CE2A0A44224599F600A8F31C /*
BDSKPreferencePane.h in Headers */,
CE2A0AED22459A5100A8F31C /*
WOKMWSAuthenticateService.h in Headers */,
@@ -3584,6 +3602,7 @@
CE2A0ABB22459A4500A8F31C /* BibPref_Files.h in
Headers */,
CE2A09FD224599E100A8F31C /* BDSKFilePathCell.h
in Headers */,
CE2A0A52224599F600A8F31C /* BDSKReferParser.h
in Headers */,
+ CE5417E322D4DA9500867189 /*
BDSKAuthenticationController.h in Headers */,
CE2A0A03224599E900A8F31C /* BDSKFilter.h in
Headers */,
CE2A0A9622459A3600A8F31C /*
BDSKTypeSelectHelper.h in Headers */,
CE2A09D6224599B300A8F31C /*
BDSKComplexStringFormatter.h in Headers */,
@@ -4068,6 +4087,7 @@
CEB5D62B1072AE360001C135 /* BibPref_Sharing.xib
in Resources */,
CEB5D62C1072AE360001C135 /* BibPref_TeX.xib in
Resources */,
CEB5D62F1072AE360001C135 /* BookmarksWindow.xib
in Resources */,
+ CE5417E722D5020400867189 /*
AuthenticationPanel.xib in Resources */,
CEB5D6321072AE360001C135 /*
ComplexStringEditor.xib in Resources */,
CEB5D6331072AE360001C135 /*
DocumentInfoWindow.xib in Resources */,
CEB5D6341072AE360001C135 /* FileMatcher.xib in
Resources */,
@@ -4279,6 +4299,7 @@
3D7406940849F5430081EC6F /*
BDSKTypeNameFormatter.m in Sources */,
F97965F2086909EA00050427 /*
BDSKFindController.m in Sources */,
CEEA1C1D2279947900323BB6 /* BDSKAppleScript.m
in Sources */,
+ CE5417E422D4DA9500867189 /*
BDSKAuthenticationController.m in Sources */,
F95CC0C3087F5378002C5694 /*
NSFileManager_BDSKExtensions.m in Sources */,
F9E0BCB40895ACC9005E5FAA /* BibPref_Display.m
in Sources */,
F923501A089A813E00EFEB06 /*
NSDate_BDSKExtensions.m in Sources */,
@@ -4343,6 +4364,7 @@
F92ECBF509DF09DA00A244D0 /*
BDSKPasswordController.m in Sources */,
CE6FB32309DFFCB5005E3E14 /*
BDSKSharingBrowser.m in Sources */,
F92ED7CD09E0A93400A244D0 /* BDSKSharingServer.m
in Sources */,
+ CE5417CB22D4DA7700867189 /*
BDSKAuthenticationHandler.m in Sources */,
CE51922109E5755600E97C3A /*
BDSKFindFieldEditor.m in Sources */,
CE4476DC2128907100DF38E1 /*
DOMNode_BDSKExtensions.m in Sources */,
F92EF32309E6242200A244D0 /* BDSKSharedGroup.m
in Sources */,
@@ -4681,6 +4703,16 @@
name = BDSKOpenAccessoryView.xib;
sourceTree = "<group>";
};
+ CE5417E922D5020400867189 /* AuthenticationPanel.xib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ CE5417E822D5020400867189 /* English */,
+ CE5417EA22D5022E00867189 /* French */,
+ CE5417EB22D5023100867189 /* German */,
+ );
+ name = AuthenticationPanel.xib;
+ sourceTree = "<group>";
+ };
CE8962C40CBEC0C500EA2D98 /* TemplateOptions.strings */ = {
isa = PBXVariantGroup;
children = (
Added: trunk/bibdesk/English.lproj/AuthenticationPanel.xib
===================================================================
--- trunk/bibdesk/English.lproj/AuthenticationPanel.xib
(rev 0)
+++ trunk/bibdesk/English.lproj/AuthenticationPanel.xib 2019-07-09 17:14:13 UTC
(rev 23974)
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0"
toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa"
propertyAccessControl="none" customObjectInstantitationMethod="direct">
+ <dependencies>
+ <deployment identifier="macosx"/>
+ <development version="8000" identifier="xcode"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin"
version="14490.70"/>
+ <capability name="documents saved in the Xcode 8 format"
minToolsVersion="8.0"/>
+ </dependencies>
+ <objects>
+ <customObject id="-2" userLabel="File's Owner"
customClass="BDSKAuthenticationController">
+ <connections>
+ <outlet property="passwordField" destination="Om9-Im-2TW"
id="pG8-uY-Mx7"/>
+ <outlet property="rememberButton" destination="2eC-R6-U73"
id="90L-9M-pGg"/>
+ <outlet property="smallLabelField" destination="R3d-dh-gcc"
id="2DR-Xc-Fpg"/>
+ <outlet property="userField" destination="Ioj-IC-CtL"
id="ImA-cf-RiG"/>
+ </connections>
+ </customObject>
+ <customObject id="-1" userLabel="First Responder"
customClass="FirstResponder"/>
+ <customObject id="-3" userLabel="Application" customClass="NSObject"/>
+ <window title="Log In" allowsToolTipsWhenApplicationIsInactive="NO"
autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO"
frameAutosaveName="" animationBehavior="default" id="34K-tn-3nf"
customClass="BDSKNonBlockingPanel">
+ <windowStyleMask key="styleMask" titled="YES"/>
+ <windowPositionMask key="initialPositionMask" leftStrut="YES"
rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
+ <rect key="contentRect" x="93" y="112" width="423" height="231"/>
+ <rect key="screenRect" x="0.0" y="0.0" width="1280" height="777"/>
+ <view key="contentView" id="6Qo-QZ-gQo">
+ <rect key="frame" x="0.0" y="0.0" width="423" height="231"/>
+ <autoresizingMask key="autoresizingMask"/>
+ <subviews>
+ <textField verticalHuggingPriority="750" tag="1"
id="Z62-kH-PWf">
+ <rect key="frame" x="103" y="177" width="303"
height="34"/>
+ <autoresizingMask key="autoresizingMask"
widthSizable="YES" flexibleMinY="YES"/>
+ <textFieldCell key="cell" selectable="YES"
sendsActionOnEndEditing="YES" alignment="left" tag="1" id="0hw-ga-Kc9">
+ <font key="font" metaFont="system"/>
+ <string key="title">To view this page, you need to
log in to area “Some Realm” on www.server.com.
+..</string>
+ <color key="textColor" name="controlTextColor"
catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor"
catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <textField verticalHuggingPriority="750" tag="2"
id="R3d-dh-gcc">
+ <rect key="frame" x="102" y="155" width="301"
height="14"/>
+ <autoresizingMask key="autoresizingMask"
widthSizable="YES" flexibleMaxY="YES"/>
+ <textFieldCell key="cell" selectable="YES"
sendsActionOnEndEditing="YES" alignment="left" tag="2" title="Your password
will be sent in the clear." id="81I-Nc-uVR">
+ <font key="font" metaFont="smallSystem"/>
+ <color key="textColor" name="controlTextColor"
catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor"
catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <button verticalHuggingPriority="750" tag="1"
imageHugsTitle="YES" id="Qvu-ig-u2f">
+ <rect key="frame" x="327" y="13" width="82"
height="32"/>
+ <autoresizingMask key="autoresizingMask"
flexibleMinX="YES" flexibleMaxY="YES"/>
+ <buttonCell key="cell" type="push" title="Log In"
bezelStyle="rounded" alignment="center" borderStyle="border" inset="2"
id="WG6-ms-PkY">
+ <behavior key="behavior" pushIn="YES"
lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ <string key="keyEquivalent" base64-UTF8="YES">
+DQ
+</string>
+ </buttonCell>
+ <connections>
+ <action selector="dismiss:" target="-2"
id="4nU-2m-4Z0"/>
+ <outlet property="nextKeyView"
destination="Ioj-IC-CtL" id="Y8I-mu-3HM"/>
+ </connections>
+ </button>
+ <textField verticalHuggingPriority="750" tag="3"
id="Ioj-IC-CtL">
+ <rect key="frame" x="176" y="125" width="227"
height="22"/>
+ <autoresizingMask key="autoresizingMask"
widthSizable="YES" flexibleMaxY="YES"/>
+ <textFieldCell key="cell" scrollable="YES"
lineBreakMode="clipping" selectable="YES" editable="YES"
sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="left"
tag="3" drawsBackground="YES" id="7ef-3v-MIR">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="controlTextColor"
catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor"
name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ <connections>
+ <outlet property="nextKeyView"
destination="Om9-Im-2TW" id="bJf-u9-m6y"/>
+ </connections>
+ </textField>
+ <textField verticalHuggingPriority="750" tag="4"
id="Om9-Im-2TW" customClass="NSSecureTextField">
+ <rect key="frame" x="176" y="95" width="227"
height="22"/>
+ <autoresizingMask key="autoresizingMask"
widthSizable="YES" flexibleMaxY="YES"/>
+ <textFieldCell key="cell" scrollable="YES"
lineBreakMode="clipping" selectable="YES" editable="YES"
sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="left"
tag="4" drawsBackground="YES" id="u0B-cr-Qpt">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="controlTextColor"
catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor"
name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ <connections>
+ <outlet property="nextKeyView"
destination="2eC-R6-U73" id="Cke-tF-JZu"/>
+ </connections>
+ </textField>
+ <textField verticalHuggingPriority="750" id="GI1-1a-b2o">
+ <rect key="frame" x="125" y="128" width="45"
height="17"/>
+ <autoresizingMask key="autoresizingMask"
flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <textFieldCell key="cell"
sendsActionOnEndEditing="YES" alignment="right" title="Name:" id="pHU-K5-AZk">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="controlTextColor"
catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor"
catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <textField verticalHuggingPriority="750" id="YEw-eC-7Qe">
+ <rect key="frame" x="102" y="98" width="68"
height="17"/>
+ <autoresizingMask key="autoresizingMask"
flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <textFieldCell key="cell"
sendsActionOnEndEditing="YES" alignment="right" title="Password:"
id="4UH-eB-l4J">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="controlTextColor"
catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor"
catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <imageView id="E1I-PS-KYN">
+ <rect key="frame" x="20" y="147" width="64"
height="64"/>
+ <autoresizingMask key="autoresizingMask"
flexibleMaxX="YES" flexibleMinY="YES"/>
+ <imageCell key="cell" refusesFirstResponder="YES"
alignment="left" imageScaling="proportionallyDown" image="NSApplicationIcon"
id="7n0-nd-T2u"/>
+ </imageView>
+ <button imageHugsTitle="YES" id="2eC-R6-U73">
+ <rect key="frame" x="100" y="59" width="280"
height="18"/>
+ <autoresizingMask key="autoresizingMask"
flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <buttonCell key="cell" type="check" title="Remember
this password in my keychain" bezelStyle="regularSquare" imagePosition="left"
alignment="left" inset="2" id="m6e-0n-lXR">
+ <behavior key="behavior" changeContents="YES"
doesNotDimImage="YES" lightByContents="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <outlet property="nextKeyView"
destination="hsa-v5-1WN" id="P6r-lk-sHn"/>
+ </connections>
+ </button>
+ <button verticalHuggingPriority="750" imageHugsTitle="YES"
id="hsa-v5-1WN">
+ <rect key="frame" x="245" y="13" width="82"
height="32"/>
+ <autoresizingMask key="autoresizingMask"
flexibleMinX="YES" flexibleMaxY="YES"/>
+ <buttonCell key="cell" type="push" title="Cancel"
bezelStyle="rounded" alignment="center" borderStyle="border" inset="2"
id="I2L-Go-Ine">
+ <behavior key="behavior" pushIn="YES"
lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ <string key="keyEquivalent" base64-UTF8="YES">
+Gw
+</string>
+ </buttonCell>
+ <connections>
+ <action selector="dismiss:" target="-2"
id="PGM-KA-CaJ"/>
+ <outlet property="nextKeyView"
destination="Qvu-ig-u2f" id="QEn-89-K2U"/>
+ </connections>
+ </button>
+ </subviews>
+ </view>
+ <point key="canvasLocation" x="322.5" y="-224.5"/>
+ </window>
+ </objects>
+ <resources>
+ <image name="NSApplicationIcon" width="32" height="32"/>
+ </resources>
+</document>
Added: trunk/bibdesk/French.lproj/AuthenticationPanel.xib
===================================================================
--- trunk/bibdesk/French.lproj/AuthenticationPanel.xib
(rev 0)
+++ trunk/bibdesk/French.lproj/AuthenticationPanel.xib 2019-07-09 17:14:13 UTC
(rev 23974)
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0"
toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa"
propertyAccessControl="none" customObjectInstantitationMethod="direct">
+ <dependencies>
+ <deployment identifier="macosx"/>
+ <development version="8000" identifier="xcode"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin"
version="14490.70"/>
+ <capability name="documents saved in the Xcode 8 format"
minToolsVersion="8.0"/>
+ </dependencies>
+ <objects>
+ <customObject id="-2" userLabel="File's Owner"
customClass="BDSKAuthenticationController">
+ <connections>
+ <outlet property="passwordField" destination="Om9-Im-2TW"
id="pG8-uY-Mx7"/>
+ <outlet property="rememberButton" destination="2eC-R6-U73"
id="90L-9M-pGg"/>
+ <outlet property="smallLabelField" destination="R3d-dh-gcc"
id="2DR-Xc-Fpg"/>
+ <outlet property="userField" destination="Ioj-IC-CtL"
id="ImA-cf-RiG"/>
+ </connections>
+ </customObject>
+ <customObject id="-1" userLabel="First Responder"
customClass="FirstResponder"/>
+ <customObject id="-3" userLabel="Application" customClass="NSObject"/>
+ <window title="Log In" allowsToolTipsWhenApplicationIsInactive="NO"
autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO"
frameAutosaveName="" animationBehavior="default" id="34K-tn-3nf"
customClass="BDSKNonBlockingPanel">
+ <windowStyleMask key="styleMask" titled="YES"/>
+ <windowPositionMask key="initialPositionMask" leftStrut="YES"
rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
+ <rect key="contentRect" x="93" y="112" width="423" height="231"/>
+ <rect key="screenRect" x="0.0" y="0.0" width="1280" height="777"/>
+ <view key="contentView" id="6Qo-QZ-gQo">
+ <rect key="frame" x="0.0" y="0.0" width="423" height="231"/>
+ <autoresizingMask key="autoresizingMask"/>
+ <subviews>
+ <textField verticalHuggingPriority="750" tag="1"
id="Z62-kH-PWf">
+ <rect key="frame" x="103" y="177" width="303"
height="34"/>
+ <autoresizingMask key="autoresizingMask"
widthSizable="YES" flexibleMinY="YES"/>
+ <textFieldCell key="cell" selectable="YES"
sendsActionOnEndEditing="YES" alignment="left" tag="1" id="0hw-ga-Kc9">
+ <font key="font" metaFont="system"/>
+ <string key="title">To view this page, you need to
log in to area “Some Realm” on www.server.com.
+..</string>
+ <color key="textColor" name="controlTextColor"
catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor"
catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <textField verticalHuggingPriority="750" tag="2"
id="R3d-dh-gcc">
+ <rect key="frame" x="102" y="155" width="301"
height="14"/>
+ <autoresizingMask key="autoresizingMask"
widthSizable="YES" flexibleMaxY="YES"/>
+ <textFieldCell key="cell" selectable="YES"
sendsActionOnEndEditing="YES" alignment="left" tag="2" title="Your password
will be sent in the clear." id="81I-Nc-uVR">
+ <font key="font" metaFont="smallSystem"/>
+ <color key="textColor" name="controlTextColor"
catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor"
catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <button verticalHuggingPriority="750" tag="1"
imageHugsTitle="YES" id="Qvu-ig-u2f">
+ <rect key="frame" x="327" y="13" width="82"
height="32"/>
+ <autoresizingMask key="autoresizingMask"
flexibleMinX="YES" flexibleMaxY="YES"/>
+ <buttonCell key="cell" type="push" title="Log In"
bezelStyle="rounded" alignment="center" borderStyle="border" inset="2"
id="WG6-ms-PkY">
+ <behavior key="behavior" pushIn="YES"
lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ <string key="keyEquivalent" base64-UTF8="YES">
+DQ
+</string>
+ </buttonCell>
+ <connections>
+ <action selector="dismiss:" target="-2"
id="4nU-2m-4Z0"/>
+ <outlet property="nextKeyView"
destination="Ioj-IC-CtL" id="Y8I-mu-3HM"/>
+ </connections>
+ </button>
+ <textField verticalHuggingPriority="750" tag="3"
id="Ioj-IC-CtL">
+ <rect key="frame" x="176" y="125" width="227"
height="22"/>
+ <autoresizingMask key="autoresizingMask"
widthSizable="YES" flexibleMaxY="YES"/>
+ <textFieldCell key="cell" scrollable="YES"
lineBreakMode="clipping" selectable="YES" editable="YES"
sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="left"
tag="3" drawsBackground="YES" id="7ef-3v-MIR">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="controlTextColor"
catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor"
name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ <connections>
+ <outlet property="nextKeyView"
destination="Om9-Im-2TW" id="bJf-u9-m6y"/>
+ </connections>
+ </textField>
+ <textField verticalHuggingPriority="750" tag="4"
id="Om9-Im-2TW" customClass="NSSecureTextField">
+ <rect key="frame" x="176" y="95" width="227"
height="22"/>
+ <autoresizingMask key="autoresizingMask"
widthSizable="YES" flexibleMaxY="YES"/>
+ <textFieldCell key="cell" scrollable="YES"
lineBreakMode="clipping" selectable="YES" editable="YES"
sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="left"
tag="4" drawsBackground="YES" id="u0B-cr-Qpt">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="controlTextColor"
catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor"
name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ <connections>
+ <outlet property="nextKeyView"
destination="2eC-R6-U73" id="Cke-tF-JZu"/>
+ </connections>
+ </textField>
+ <textField verticalHuggingPriority="750" id="GI1-1a-b2o">
+ <rect key="frame" x="125" y="128" width="45"
height="17"/>
+ <autoresizingMask key="autoresizingMask"
flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <textFieldCell key="cell"
sendsActionOnEndEditing="YES" alignment="right" title="Name:" id="pHU-K5-AZk">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="controlTextColor"
catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor"
catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <textField verticalHuggingPriority="750" id="YEw-eC-7Qe">
+ <rect key="frame" x="102" y="98" width="68"
height="17"/>
+ <autoresizingMask key="autoresizingMask"
flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <textFieldCell key="cell"
sendsActionOnEndEditing="YES" alignment="right" title="Password:"
id="4UH-eB-l4J">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="controlTextColor"
catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor"
catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <imageView id="E1I-PS-KYN">
+ <rect key="frame" x="20" y="147" width="64"
height="64"/>
+ <autoresizingMask key="autoresizingMask"
flexibleMaxX="YES" flexibleMinY="YES"/>
+ <imageCell key="cell" refusesFirstResponder="YES"
alignment="left" imageScaling="proportionallyDown" image="NSApplicationIcon"
id="7n0-nd-T2u"/>
+ </imageView>
+ <button imageHugsTitle="YES" id="2eC-R6-U73">
+ <rect key="frame" x="100" y="59" width="280"
height="18"/>
+ <autoresizingMask key="autoresizingMask"
flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <buttonCell key="cell" type="check" title="Remember
this password in my keychain" bezelStyle="regularSquare" imagePosition="left"
alignment="left" inset="2" id="m6e-0n-lXR">
+ <behavior key="behavior" changeContents="YES"
doesNotDimImage="YES" lightByContents="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <outlet property="nextKeyView"
destination="hsa-v5-1WN" id="P6r-lk-sHn"/>
+ </connections>
+ </button>
+ <button verticalHuggingPriority="750" imageHugsTitle="YES"
id="hsa-v5-1WN">
+ <rect key="frame" x="245" y="13" width="82"
height="32"/>
+ <autoresizingMask key="autoresizingMask"
flexibleMinX="YES" flexibleMaxY="YES"/>
+ <buttonCell key="cell" type="push" title="Cancel"
bezelStyle="rounded" alignment="center" borderStyle="border" inset="2"
id="I2L-Go-Ine">
+ <behavior key="behavior" pushIn="YES"
lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ <string key="keyEquivalent" base64-UTF8="YES">
+Gw
+</string>
+ </buttonCell>
+ <connections>
+ <action selector="dismiss:" target="-2"
id="PGM-KA-CaJ"/>
+ <outlet property="nextKeyView"
destination="Qvu-ig-u2f" id="QEn-89-K2U"/>
+ </connections>
+ </button>
+ </subviews>
+ </view>
+ <point key="canvasLocation" x="322.5" y="-224.5"/>
+ </window>
+ </objects>
+ <resources>
+ <image name="NSApplicationIcon" width="32" height="32"/>
+ </resources>
+</document>
Added: trunk/bibdesk/German.lproj/AuthenticationPanel.xib
===================================================================
--- trunk/bibdesk/German.lproj/AuthenticationPanel.xib
(rev 0)
+++ trunk/bibdesk/German.lproj/AuthenticationPanel.xib 2019-07-09 17:14:13 UTC
(rev 23974)
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0"
toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa"
propertyAccessControl="none" customObjectInstantitationMethod="direct">
+ <dependencies>
+ <deployment identifier="macosx"/>
+ <development version="8000" identifier="xcode"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin"
version="14490.70"/>
+ <capability name="documents saved in the Xcode 8 format"
minToolsVersion="8.0"/>
+ </dependencies>
+ <objects>
+ <customObject id="-2" userLabel="File's Owner"
customClass="BDSKAuthenticationController">
+ <connections>
+ <outlet property="passwordField" destination="Om9-Im-2TW"
id="pG8-uY-Mx7"/>
+ <outlet property="rememberButton" destination="2eC-R6-U73"
id="90L-9M-pGg"/>
+ <outlet property="smallLabelField" destination="R3d-dh-gcc"
id="2DR-Xc-Fpg"/>
+ <outlet property="userField" destination="Ioj-IC-CtL"
id="ImA-cf-RiG"/>
+ </connections>
+ </customObject>
+ <customObject id="-1" userLabel="First Responder"
customClass="FirstResponder"/>
+ <customObject id="-3" userLabel="Application" customClass="NSObject"/>
+ <window title="Log In" allowsToolTipsWhenApplicationIsInactive="NO"
autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO"
frameAutosaveName="" animationBehavior="default" id="34K-tn-3nf"
customClass="BDSKNonBlockingPanel">
+ <windowStyleMask key="styleMask" titled="YES"/>
+ <windowPositionMask key="initialPositionMask" leftStrut="YES"
rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
+ <rect key="contentRect" x="93" y="112" width="423" height="231"/>
+ <rect key="screenRect" x="0.0" y="0.0" width="1280" height="777"/>
+ <view key="contentView" id="6Qo-QZ-gQo">
+ <rect key="frame" x="0.0" y="0.0" width="423" height="231"/>
+ <autoresizingMask key="autoresizingMask"/>
+ <subviews>
+ <textField verticalHuggingPriority="750" tag="1"
id="Z62-kH-PWf">
+ <rect key="frame" x="103" y="177" width="303"
height="34"/>
+ <autoresizingMask key="autoresizingMask"
widthSizable="YES" flexibleMinY="YES"/>
+ <textFieldCell key="cell" selectable="YES"
sendsActionOnEndEditing="YES" alignment="left" tag="1" id="0hw-ga-Kc9">
+ <font key="font" metaFont="system"/>
+ <string key="title">To view this page, you need to
log in to area “Some Realm” on www.server.com.
+..</string>
+ <color key="textColor" name="controlTextColor"
catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor"
catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <textField verticalHuggingPriority="750" tag="2"
id="R3d-dh-gcc">
+ <rect key="frame" x="102" y="155" width="301"
height="14"/>
+ <autoresizingMask key="autoresizingMask"
widthSizable="YES" flexibleMaxY="YES"/>
+ <textFieldCell key="cell" selectable="YES"
sendsActionOnEndEditing="YES" alignment="left" tag="2" title="Your password
will be sent in the clear." id="81I-Nc-uVR">
+ <font key="font" metaFont="smallSystem"/>
+ <color key="textColor" name="controlTextColor"
catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor"
catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <button verticalHuggingPriority="750" tag="1"
imageHugsTitle="YES" id="Qvu-ig-u2f">
+ <rect key="frame" x="327" y="13" width="82"
height="32"/>
+ <autoresizingMask key="autoresizingMask"
flexibleMinX="YES" flexibleMaxY="YES"/>
+ <buttonCell key="cell" type="push" title="Log In"
bezelStyle="rounded" alignment="center" borderStyle="border" inset="2"
id="WG6-ms-PkY">
+ <behavior key="behavior" pushIn="YES"
lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ <string key="keyEquivalent" base64-UTF8="YES">
+DQ
+</string>
+ </buttonCell>
+ <connections>
+ <action selector="dismiss:" target="-2"
id="4nU-2m-4Z0"/>
+ <outlet property="nextKeyView"
destination="Ioj-IC-CtL" id="Y8I-mu-3HM"/>
+ </connections>
+ </button>
+ <textField verticalHuggingPriority="750" tag="3"
id="Ioj-IC-CtL">
+ <rect key="frame" x="176" y="125" width="227"
height="22"/>
+ <autoresizingMask key="autoresizingMask"
widthSizable="YES" flexibleMaxY="YES"/>
+ <textFieldCell key="cell" scrollable="YES"
lineBreakMode="clipping" selectable="YES" editable="YES"
sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="left"
tag="3" drawsBackground="YES" id="7ef-3v-MIR">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="controlTextColor"
catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor"
name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ <connections>
+ <outlet property="nextKeyView"
destination="Om9-Im-2TW" id="bJf-u9-m6y"/>
+ </connections>
+ </textField>
+ <textField verticalHuggingPriority="750" tag="4"
id="Om9-Im-2TW" customClass="NSSecureTextField">
+ <rect key="frame" x="176" y="95" width="227"
height="22"/>
+ <autoresizingMask key="autoresizingMask"
widthSizable="YES" flexibleMaxY="YES"/>
+ <textFieldCell key="cell" scrollable="YES"
lineBreakMode="clipping" selectable="YES" editable="YES"
sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="left"
tag="4" drawsBackground="YES" id="u0B-cr-Qpt">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="controlTextColor"
catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor"
name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ <connections>
+ <outlet property="nextKeyView"
destination="2eC-R6-U73" id="Cke-tF-JZu"/>
+ </connections>
+ </textField>
+ <textField verticalHuggingPriority="750" id="GI1-1a-b2o">
+ <rect key="frame" x="125" y="128" width="45"
height="17"/>
+ <autoresizingMask key="autoresizingMask"
flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <textFieldCell key="cell"
sendsActionOnEndEditing="YES" alignment="right" title="Name:" id="pHU-K5-AZk">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="controlTextColor"
catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor"
catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <textField verticalHuggingPriority="750" id="YEw-eC-7Qe">
+ <rect key="frame" x="102" y="98" width="68"
height="17"/>
+ <autoresizingMask key="autoresizingMask"
flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <textFieldCell key="cell"
sendsActionOnEndEditing="YES" alignment="right" title="Password:"
id="4UH-eB-l4J">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="controlTextColor"
catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor"
catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <imageView id="E1I-PS-KYN">
+ <rect key="frame" x="20" y="147" width="64"
height="64"/>
+ <autoresizingMask key="autoresizingMask"
flexibleMaxX="YES" flexibleMinY="YES"/>
+ <imageCell key="cell" refusesFirstResponder="YES"
alignment="left" imageScaling="proportionallyDown" image="NSApplicationIcon"
id="7n0-nd-T2u"/>
+ </imageView>
+ <button imageHugsTitle="YES" id="2eC-R6-U73">
+ <rect key="frame" x="100" y="59" width="280"
height="18"/>
+ <autoresizingMask key="autoresizingMask"
flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <buttonCell key="cell" type="check" title="Remember
this password in my keychain" bezelStyle="regularSquare" imagePosition="left"
alignment="left" inset="2" id="m6e-0n-lXR">
+ <behavior key="behavior" changeContents="YES"
doesNotDimImage="YES" lightByContents="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <outlet property="nextKeyView"
destination="hsa-v5-1WN" id="P6r-lk-sHn"/>
+ </connections>
+ </button>
+ <button verticalHuggingPriority="750" imageHugsTitle="YES"
id="hsa-v5-1WN">
+ <rect key="frame" x="245" y="13" width="82"
height="32"/>
+ <autoresizingMask key="autoresizingMask"
flexibleMinX="YES" flexibleMaxY="YES"/>
+ <buttonCell key="cell" type="push" title="Cancel"
bezelStyle="rounded" alignment="center" borderStyle="border" inset="2"
id="I2L-Go-Ine">
+ <behavior key="behavior" pushIn="YES"
lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ <string key="keyEquivalent" base64-UTF8="YES">
+Gw
+</string>
+ </buttonCell>
+ <connections>
+ <action selector="dismiss:" target="-2"
id="PGM-KA-CaJ"/>
+ <outlet property="nextKeyView"
destination="Qvu-ig-u2f" id="QEn-89-K2U"/>
+ </connections>
+ </button>
+ </subviews>
+ </view>
+ <point key="canvasLocation" x="322.5" y="-224.5"/>
+ </window>
+ </objects>
+ <resources>
+ <image name="NSApplicationIcon" width="32" height="32"/>
+ </resources>
+</document>
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit