Revision: 12914
          http://sourceforge.net/p/skim-app/code/12914
Author:   hofman
Date:     2022-05-10 18:18:35 +0000 (Tue, 10 May 2022)
Log Message:
-----------
Implement applyOptions in mainWindowController,obviates need of pageNumber 
accessors and method to set the search string

Modified Paths:
--------------
    trunk/SKMainDocument.m
    trunk/SKMainWindowController.h
    trunk/SKMainWindowController.m
    trunk/SKMainWindowController_UI.m

Modified: trunk/SKMainDocument.m
===================================================================
--- trunk/SKMainDocument.m      2022-05-10 17:45:29 UTC (rev 12913)
+++ trunk/SKMainDocument.m      2022-05-10 18:18:35 UTC (rev 12914)
@@ -272,13 +272,7 @@
 }
 
 - (void)applyOptions:(NSDictionary *)options {
-    NSInteger page = [[options objectForKey:@"page"] integerValue];
-    NSString *searchString = [options objectForKey:@"search"];
-    if (page > 0)
-        [[self mainWindowController] setPageNumber:page];
-    if ([searchString length] > 0)
-        [[self mainWindowController] 
displaySearchResultsForString:searchString];
-    [[self mainWindowController] applyPDFSettings:options rewind:NO];
+    [[self mainWindowController] applyOptions:options];
 }
 
 #pragma mark Writing

Modified: trunk/SKMainWindowController.h
===================================================================
--- trunk/SKMainWindowController.h      2022-05-10 17:45:29 UTC (rev 12913)
+++ trunk/SKMainWindowController.h      2022-05-10 18:18:35 UTC (rev 12914)
@@ -216,8 +216,6 @@
     
 @property (nonatomic, retain) IBOutlet NSView *leftSideContentView, 
*rightSideContentView;
 
-- (void)displaySearchResultsForString:(NSString *)string;
-
 @property (nonatomic, readonly) NSString *searchString;
 
 - (void)showSnapshotAtPageNumber:(NSInteger)pageNum forRect:(NSRect)rect 
scaleFactor:(CGFloat)scaleFactor autoFits:(BOOL)autoFits;
@@ -276,7 +274,6 @@
 
 @property (nonatomic, copy) NSArray *selectedNotes;
 
-@property (nonatomic) NSUInteger pageNumber;
 @property (nonatomic, copy) NSString *pageLabel;
 
 @property (nonatomic, readonly) SKInteractionMode interactionMode;
@@ -339,6 +336,7 @@
 - (NSDictionary *)currentSetup;
 - (void)applyPDFSettings:(NSDictionary *)setup rewind:(BOOL)rewind;
 - (NSDictionary *)currentPDFSettings;
+- (void)applyOptions:(NSDictionary *)options;
 
 - (void)updateLeftStatus;
 - (void)updateRightStatus;

Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m      2022-05-10 17:45:29 UTC (rev 12913)
+++ trunk/SKMainWindowController.m      2022-05-10 18:18:35 UTC (rev 12914)
@@ -229,7 +229,7 @@
 @implementation SKMainWindowController
 
 @synthesize mainWindow, splitView, centerContentView, pdfSplitView, 
pdfContentView, statusBar, pdfView, secondaryPdfView, leftSideController, 
rightSideController, toolbarController, leftSideContentView, 
rightSideContentView, presentationNotesDocument, presentationNotesOffset, tags, 
rating, pageLabel, interactionMode, placeholderPdfDocument;
-@dynamic pdfDocument, presentationOptions, selectedNotes, pageNumber, 
widgetProperties, autoScales, leftSidePaneState, rightSidePaneState, 
findPaneState, leftSidePaneIsOpen, rightSidePaneIsOpen, recentInfoNeedsUpdate, 
searchString, hasOverview, notesMenu;
+@dynamic pdfDocument, presentationOptions, selectedNotes, widgetProperties, 
autoScales, leftSidePaneState, rightSidePaneState, findPaneState, 
leftSidePaneIsOpen, rightSidePaneIsOpen, recentInfoNeedsUpdate, searchString, 
hasOverview, notesMenu;
 
 + (void)initialize {
     SKINITIALIZE;
@@ -710,10 +710,33 @@
     return setup;
 }
 
+- (void)applyOptions:(NSDictionary *)options {
+    NSInteger page = [[options objectForKey:@"page"] integerValue];
+    NSString *searchString = [options objectForKey:@"search"];
+    if (page > 0) {
+        page = MIN(page, (NSInteger)[[pdfView document] pageCount]);
+        NSString *pointString = [options objectForKey:@"point"];
+        if ([pointString length] > 0) {
+            if ([pointString hasPrefix:@"{"] == NO)
+                pointString = [NSString stringWithFormat:@"{%@}", pointString];
+            [pdfView goToPageAtIndex:page - 1 
point:NSPointFromString(pointString)];
+        } else if ((NSInteger)[[pdfView currentPage] pageIndex] != page) {
+            [pdfView goToPage:[[pdfView document] pageAtIndex:page - 1]];
+        }
+    }
+    if ([searchString length] > 0) {
+        if ([self leftSidePaneIsOpen] == NO)
+            [self toggleLeftSidePane:nil];
+        [leftSideController.searchField setStringValue:searchString];
+        [self performSelector:@selector(search:) 
withObject:leftSideController.searchField afterDelay:0.0];
+    }
+    [self applyPDFSettings:options rewind:NO];
+}
+
 #pragma mark UI updating
 
 - (void)updateLeftStatus {
-    NSString *message = [NSString stringWithFormat:NSLocalizedString(@"Page 
%ld of %ld", @"Status message"), (long)[self pageNumber], (long)[[pdfView 
document] pageCount]];
+    NSString *message = [NSString stringWithFormat:NSLocalizedString(@"Page 
%ld of %ld", @"Status message"), (long)([[[self pdfView] currentPage] 
pageIndex] + 1), (long)[[pdfView document] pageCount]];
     [statusBar setLeftStringValue:message];
 }
 
@@ -1204,19 +1227,6 @@
     }
 }
 
-- (NSUInteger)pageNumber {
-    return [[pdfView currentPage] pageIndex] + 1;
-}
-
-- (void)setPageNumber:(NSUInteger)number {
-    // Check that the page number exists
-    NSUInteger pageCount = [[pdfView document] pageCount];
-    if (number > pageCount)
-        number = pageCount;
-    if (number > 0 && [[pdfView currentPage] pageIndex] != number - 1)
-        [pdfView goToPage:[[pdfView document] pageAtIndex:number - 1]];
-}
-
 - (void)updatePageLabel {
     NSString *label = [[pdfView currentPage] displayLabel];
     if (label != pageLabel) {
@@ -1757,13 +1767,6 @@
 
 #pragma mark Searching
 
-- (void)displaySearchResultsForString:(NSString *)string {
-    if ([self leftSidePaneIsOpen] == NO)
-        [self toggleLeftSidePane:nil];
-    [leftSideController.searchField setStringValue:string];
-    [self performSelector:@selector(search:) 
withObject:leftSideController.searchField afterDelay:0.0];
-}
-
 - (NSString *)searchString {
     return [leftSideController.searchField stringValue];
 }

Modified: trunk/SKMainWindowController_UI.m
===================================================================
--- trunk/SKMainWindowController_UI.m   2022-05-10 17:45:29 UTC (rev 12913)
+++ trunk/SKMainWindowController_UI.m   2022-05-10 18:18:35 UTC (rev 12914)
@@ -230,7 +230,7 @@
 
 - (NSString *)windowTitleForDocumentDisplayName:(NSString *)displayName {
     if ([pdfView document])
-        return [NSString stringWithFormat:NSLocalizedString(@"%@ (page %ld of 
%ld)", @"Window title format"), displayName, (long)[self pageNumber], 
(long)[[pdfView document] pageCount]];
+        return [NSString stringWithFormat:NSLocalizedString(@"%@ (page %ld of 
%ld)", @"Window title format"), displayName, (long)([[[self pdfView] 
currentPage] pageIndex] + 1), (long)[[pdfView document] pageCount]];
     else
         return displayName;
 }

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

Reply via email to