Revision: 13613
          http://sourceforge.net/p/skim-app/code/13613
Author:   hofman
Date:     2023-08-26 22:34:08 +0000 (Sat, 26 Aug 2023)
Log Message:
-----------
rotate page from gesture through delegate method

Modified Paths:
--------------
    trunk/SKMainWindowController_UI.m
    trunk/SKPDFView.h
    trunk/SKPDFView.m

Modified: trunk/SKMainWindowController_UI.m
===================================================================
--- trunk/SKMainWindowController_UI.m   2023-08-26 22:12:27 UTC (rev 13612)
+++ trunk/SKMainWindowController_UI.m   2023-08-26 22:34:08 UTC (rev 13613)
@@ -134,6 +134,8 @@
 
 - (void)observeUndoManagerCheckpoint:(NSNotification *)notification;
 
+- (void)rotatePageAtIndex:(NSUInteger)idx by:(NSInteger)rotation;
+
 @end
 
 @interface SKMainWindowController (UIPrivate)
@@ -1519,6 +1521,10 @@
     return [self document];
 }
 
+- (void)PDFView:(PDFView *)sender rotatePageAtIndex:(NSUInteger)idx 
by:(NSInteger)rotation {
+    [self rotatePageAtIndex:idx by:rotation];
+}
+
 #pragma mark NSSplitView delegate protocol
 
 - (BOOL)splitView:(NSSplitView *)sender canCollapseSubview:(NSView *)subview {

Modified: trunk/SKPDFView.h
===================================================================
--- trunk/SKPDFView.h   2023-08-26 22:12:27 UTC (rev 13612)
+++ trunk/SKPDFView.h   2023-08-26 22:34:08 UTC (rev 13613)
@@ -288,4 +288,5 @@
 - (void)PDFViewPerformHideFind:(PDFView *)sender;
 - (BOOL)PDFViewIsFindVisible:(PDFView *)sender;
 - (NSDocument *)documentForPDFView:(PDFView *)sender;
+- (void)PDFView:(PDFView *)sender rotatePageAtIndex:(NSUInteger)idx 
by:(NSInteger)rotation;
 @end

Modified: trunk/SKPDFView.m
===================================================================
--- trunk/SKPDFView.m   2023-08-26 22:12:27 UTC (rev 13612)
+++ trunk/SKPDFView.m   2023-08-26 22:34:08 UTC (rev 13613)
@@ -2390,20 +2390,6 @@
     }
 }
 
-- (void)rotatePageAtIndex:(NSUInteger)idx by:(NSInteger)rotation {
-    NSDocument *doc = [[self delegate] 
respondsToSelector:@selector(documentForPDFView:)] ? [[self delegate] 
documentForPDFView:self] : [[[self window] windowController] document];
-    NSUndoManager *undoManager = [doc undoManager];
-    [[undoManager prepareWithInvocationTarget:self] rotatePageAtIndex:idx 
by:-rotation];
-    [undoManager setActionName:NSLocalizedString(@"Rotate Page", @"Undo action 
name")];
-    [doc undoableActionIsDiscardable];
-    
-    PDFPage *page = [[self document] pageAtIndex:idx];
-    [page setRotation:[page rotation] + rotation];
-    
-    [[NSNotificationCenter defaultCenter] 
postNotificationName:SKPDFPageBoundsDidChangeNotification 
-                                                        object:[self document] 
userInfo:@{SKPDFPageActionKey:SKPDFPageActionRotate, SKPDFPagePageKey:page}];
-}
-
 - (void)beginGestureWithEvent:(NSEvent *)theEvent {
     [super beginGestureWithEvent:theEvent];
     PDFPage *page = [self pageAndPoint:NULL forEvent:theEvent nearest:YES];
@@ -2428,7 +2414,12 @@
     gestureRotation -= [theEvent rotation];
     if (fabs(gestureRotation) > 45.0 && gesturePageIndex != NSNotFound) {
         CGFloat rotation = 90.0 * round(gestureRotation / 90.0);
-        [self rotatePageAtIndex:gesturePageIndex by:(NSInteger)rotation];
+        if ([[self delegate] 
respondsToSelector:@selector(PDFView:rotatePageAtIndex:by:)]) {
+            [[self delegate] PDFView:self rotatePageAtIndex:gesturePageIndex 
by:(NSInteger)rotation];
+        } else {
+            PDFPage *page = [[self document] pageAtIndex:gesturePageIndex];
+            [page setRotation:[page rotation] + (NSInteger)rotation];
+        }
         gestureRotation -= rotation;
     }
     if (([theEvent phase] == NSEventPhaseEnded || [theEvent phase] == 
NSEventPhaseCancelled)) {

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