Revision: 14777 http://sourceforge.net/p/skim-app/code/14777 Author: hofman Date: 2024-12-02 15:29:21 +0000 (Mon, 02 Dec 2024) Log Message: ----------- Add informative text to password sheet
Modified Paths: -------------- trunk/Base.lproj/PasswordSheet.xib trunk/SKMainDocument.m trunk/SKMainWindowController_Actions.m trunk/SKTextFieldSheetController.h trunk/SKTextFieldSheetController.m trunk/de.lproj/Localizable.strings trunk/en.lproj/Localizable.strings trunk/es.lproj/Localizable.strings trunk/fr.lproj/Localizable.strings trunk/it.lproj/Localizable.strings trunk/ja.lproj/Localizable.strings trunk/nl.lproj/Localizable.strings trunk/pl.lproj/Localizable.strings trunk/ru.lproj/Localizable.strings trunk/zh_CN.lproj/Localizable.strings trunk/zh_TW.lproj/Localizable.strings Modified: trunk/Base.lproj/PasswordSheet.xib =================================================================== --- trunk/Base.lproj/PasswordSheet.xib 2024-12-01 15:41:04 UTC (rev 14776) +++ trunk/Base.lproj/PasswordSheet.xib 2024-12-02 15:29:21 UTC (rev 14777) @@ -9,6 +9,7 @@ <customObject id="-2" userLabel="File's Owner" customClass="SKTextFieldSheetController"> <connections> <outlet property="cancelButton" destination="9" id="UJA-IQ-cPr"/> + <outlet property="informativeTextField" destination="jj1-bT-Cz1" id="LrY-J2-wKL"/> <outlet property="okButton" destination="11" id="QR4-Tn-9aD"/> <outlet property="textField" destination="12" id="14"/> <outlet property="window" destination="7" id="13"/> @@ -23,7 +24,7 @@ <rect key="screenRect" x="0.0" y="0.0" width="1280" height="775"/> <value key="minSize" type="size" width="213" height="103"/> <view key="contentView" id="8"> - <rect key="frame" x="0.0" y="0.0" width="320" height="101"/> + <rect key="frame" x="0.0" y="0.0" width="320" height="123"/> <autoresizingMask key="autoresizingMask"/> <subviews> <textField autoresizesSubviews="NO" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="10" userLabel="Password:"> @@ -75,16 +76,28 @@ <accessibilityConnection property="title" destination="10" id="17"/> </connections> </textField> + <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="jj1-bT-Cz1"> + <rect key="frame" x="18" y="89" width="284" height="14"/> + <textFieldCell key="cell" controlSize="small" lineBreakMode="clipping" id="hnr-Wn-L7M"> + <font key="font" metaFont="smallSystem"/> + <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/> + <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/> + </textFieldCell> + </textField> </subviews> <constraints> <constraint firstItem="11" firstAttribute="leading" secondItem="9" secondAttribute="trailing" constant="12" symbolic="YES" id="3DR-5b-EhX"/> <constraint firstAttribute="trailing" secondItem="11" secondAttribute="trailing" constant="20" symbolic="YES" id="6xs-jI-lc9"/> + <constraint firstAttribute="trailing" secondItem="jj1-bT-Cz1" secondAttribute="trailing" constant="20" symbolic="YES" id="7QG-ca-JlN"/> <constraint firstItem="9" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="8" secondAttribute="leading" constant="20" symbolic="YES" id="8B5-4g-W9t"/> <constraint firstAttribute="bottom" secondItem="11" secondAttribute="bottom" constant="20" symbolic="YES" id="8Fn-jb-1ck"/> <constraint firstItem="9" firstAttribute="baseline" secondItem="11" secondAttribute="baseline" id="AXz-gB-H4G"/> + <constraint firstItem="10" firstAttribute="leading" secondItem="jj1-bT-Cz1" secondAttribute="leading" id="BWf-zd-qAV"/> <constraint firstItem="11" firstAttribute="top" secondItem="12" secondAttribute="bottom" constant="20" id="Ddc-LY-NcF"/> <constraint firstItem="11" firstAttribute="width" secondItem="9" secondAttribute="width" id="Dvb-rd-8Eq"/> - <constraint firstItem="12" firstAttribute="top" secondItem="8" secondAttribute="top" constant="20" symbolic="YES" id="EgD-Lm-GJ0"/> + <constraint firstItem="12" firstAttribute="top" secondItem="8" secondAttribute="top" priority="501" constant="50" id="EgD-Lm-GJ0"/> + <constraint firstItem="jj1-bT-Cz1" firstAttribute="top" secondItem="8" secondAttribute="top" constant="20" symbolic="YES" id="ME9-lP-AvO"/> + <constraint firstItem="12" firstAttribute="top" secondItem="jj1-bT-Cz1" secondAttribute="bottom" constant="8" symbolic="YES" id="O0D-89-WBh"/> <constraint firstItem="10" firstAttribute="leading" secondItem="8" secondAttribute="leading" constant="20" symbolic="YES" id="Tot-mF-i3n"/> <constraint firstItem="12" firstAttribute="leading" secondItem="10" secondAttribute="trailing" constant="8" symbolic="YES" id="cAU-qT-qqK"/> <constraint firstAttribute="trailing" secondItem="12" secondAttribute="trailing" constant="20" symbolic="YES" id="vlq-Tx-tTA"/> Modified: trunk/SKMainDocument.m =================================================================== --- trunk/SKMainDocument.m 2024-12-01 15:41:04 UTC (rev 14776) +++ trunk/SKMainDocument.m 2024-12-02 15:29:21 UTC (rev 14777) @@ -1188,6 +1188,7 @@ - (void)beginConvertNotesPasswordSheetForPDFDocument:(PDFDocument *)pdfDoc { SKTextFieldSheetController *passwordSheetController = [[SKTextFieldSheetController alloc] initWithWindowNibName:@"PasswordSheet"]; + [passwordSheetController setInformativeText:NSLocalizedString(@"The document requires a password to be converted", @"Informative text")]; [passwordSheetController beginSheetModalForWindow:[[self mainWindowController] window] completionHandler:^(NSModalResponse result) { if (result == NSModalResponseOK) { @@ -1386,6 +1387,8 @@ [super printDocument:sender]; } else { SKTextFieldSheetController *passwordSheetController = [[SKTextFieldSheetController alloc] initWithWindowNibName:@"PasswordSheet"]; + [passwordSheetController setInformativeText:NSLocalizedString(@"The document requires a password to be printed", @"Informative text")]; + [passwordSheetController beginSheetModalForWindow:[[self mainWindowController] window] completionHandler:^(NSModalResponse result) { if (result == NSModalResponseOK) { [[passwordSheetController window] orderOut:nil]; Modified: trunk/SKMainWindowController_Actions.m =================================================================== --- trunk/SKMainWindowController_Actions.m 2024-12-01 15:41:04 UTC (rev 14776) +++ trunk/SKMainWindowController_Actions.m 2024-12-02 15:29:21 UTC (rev 14777) @@ -928,6 +928,7 @@ - (IBAction)password:(id)sender { SKTextFieldSheetController *passwordSheetController = [[SKTextFieldSheetController alloc] initWithWindowNibName:@"PasswordSheet"]; + [passwordSheetController setInformativeText:[[pdfView document] isLocked] ? NSLocalizedString(@"The document is locked", @"Informative text") : NSLocalizedString(@"The document has access restrictions", @"Informative text")]; [passwordSheetController beginSheetModalForWindow:[self window] completionHandler:^(NSModalResponse result) { if (result == NSModalResponseOK) { Modified: trunk/SKTextFieldSheetController.h =================================================================== --- trunk/SKTextFieldSheetController.h 2024-12-01 15:41:04 UTC (rev 14776) +++ trunk/SKTextFieldSheetController.h 2024-12-02 15:29:21 UTC (rev 14777) @@ -44,11 +44,13 @@ NSTextField *textField; NSButton *okButton; NSButton *cancelButton; + NSTextField *informativeTextField; } -@property (nonatomic, nullable, strong) IBOutlet NSTextField *textField; +@property (nonatomic, nullable, strong) IBOutlet NSTextField *textField, *informativeTextField; @property (nonatomic, nullable, strong) IBOutlet NSButton *okButton, *cancelButton; @property (nonatomic, strong) NSString *stringValue; +@property (nonatomic, strong) NSString *informativeText; @end Modified: trunk/SKTextFieldSheetController.m =================================================================== --- trunk/SKTextFieldSheetController.m 2024-12-01 15:41:04 UTC (rev 14776) +++ trunk/SKTextFieldSheetController.m 2024-12-02 15:29:21 UTC (rev 14777) @@ -43,8 +43,8 @@ @implementation SKTextFieldSheetController -@synthesize textField, okButton, cancelButton; -@dynamic stringValue; +@synthesize textField, okButton, cancelButton, informativeTextField; +@dynamic stringValue, informativeText; - (NSTextField *)textField { [self window]; @@ -59,6 +59,15 @@ [[self textField] setStringValue:string]; } +- (NSString *)informativeText { + return [informativeTextField stringValue]; +} + +- (void)setInformativeText:(NSString *)string { + [self window]; + [[self informativeTextField] setStringValue:string]; +} + - (NSTouchBar *)makeTouchBar { NSTouchBar *touchBar = [[NSTouchBar alloc] init]; [touchBar setDelegate:self]; Modified: trunk/de.lproj/Localizable.strings =================================================================== (Binary files differ) Modified: trunk/en.lproj/Localizable.strings =================================================================== (Binary files differ) Modified: trunk/es.lproj/Localizable.strings =================================================================== (Binary files differ) Modified: trunk/fr.lproj/Localizable.strings =================================================================== (Binary files differ) Modified: trunk/it.lproj/Localizable.strings =================================================================== (Binary files differ) Modified: trunk/ja.lproj/Localizable.strings =================================================================== (Binary files differ) Modified: trunk/nl.lproj/Localizable.strings =================================================================== (Binary files differ) Modified: trunk/pl.lproj/Localizable.strings =================================================================== (Binary files differ) Modified: trunk/ru.lproj/Localizable.strings =================================================================== (Binary files differ) Modified: trunk/zh_CN.lproj/Localizable.strings =================================================================== (Binary files differ) Modified: trunk/zh_TW.lproj/Localizable.strings =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. _______________________________________________ Skim-app-commit mailing list Skim-app-commit@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/skim-app-commit