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