Revision: 3026
          http://skim-app.svn.sourceforge.net/skim-app/?rev=3026&view=rev
Author:   hofman
Date:     2007-10-07 06:05:51 -0700 (Sun, 07 Oct 2007)

Log Message:
-----------
Interpret snapshot setup dictionary only within snapshot controller.

Modified Paths:
--------------
    trunk/SKMainWindowController.h
    trunk/SKMainWindowController.m
    trunk/SKPDFView.m
    trunk/SKSnapshotWindowController.h
    trunk/SKSnapshotWindowController.m

Modified: trunk/SKMainWindowController.h
===================================================================
--- trunk/SKMainWindowController.h      2007-10-07 12:48:49 UTC (rev 3025)
+++ trunk/SKMainWindowController.h      2007-10-07 13:05:51 UTC (rev 3026)
@@ -254,7 +254,8 @@
 - (IBAction)savePDFSettingToDefaults:(id)sender;
 - (IBAction)chooseTransition:(id)sender;
 
-- (void)showSnapshotAtPageNumber:(int)pageNum forRect:(NSRect)rect 
scaleFactor:(int)scaleFactor autoFits:(BOOL)autoFits display:(BOOL)display;
+- (void)showSnapshotAtPageNumber:(int)pageNum forRect:(NSRect)rect 
scaleFactor:(int)scaleFactor autoFits:(BOOL)autoFits;
+- (void)showSnapshotWithSetup:(NSDictionary *)setup;
 - (void)toggleSnapshots:(NSArray *)snapshotArray;
 - (void)showNote:(PDFAnnotation *)annotation;
 

Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m      2007-10-07 12:48:49 UTC (rev 3025)
+++ trunk/SKMainWindowController.m      2007-10-07 13:05:51 UTC (rev 3026)
@@ -100,10 +100,6 @@
 #define HAS_VERTICAL_SCROLLER_KEY   @"hasVerticalScroller"
 #define AUTO_HIDES_SCROLLERS_KEY    @"autoHidesScrollers"
 #define PAGE_INDEX_KEY              @"pageIndex"
-#define PAGE_KEY                    @"page"
-#define RECT_KEY                    @"rect"
-#define AUTO_FITS_KEY               @"autoFits"
-#define HAS_WINDOW_KEY              @"hasWindow"
 
 static NSString *SKMainWindowFrameAutosaveName = @"SKMainWindow";
 
@@ -444,7 +440,7 @@
         NSEnumerator *setupEnum = [[[SKBookmarkController 
sharedBookmarkController] snapshotsAtPath:[[[self document] fileURL] path]] 
objectEnumerator];
         NSDictionary *setup;
         while (setup = [setupEnum nextObject])
-            [self showSnapshotAtPageNumber:[[setup objectForKey:PAGE_KEY] 
unsignedIntValue] forRect:NSRectFromString([setup objectForKey:RECT_KEY]) 
scaleFactor:[[setup objectForKey:SCALE_FACTOR_KEY] floatValue] autoFits:[[setup 
objectForKey:AUTO_FITS_KEY] boolValue] display:[[setup 
objectForKey:HAS_WINDOW_KEY] boolValue]];
+            [self showSnapshotWithSetup:setup];
     }
     
     // typeSelectHelpers
@@ -953,7 +949,7 @@
         NSEnumerator *setupEnum = [snapshotDicts objectEnumerator];
         NSDictionary *setup;
         while (setup = [setupEnum nextObject])
-            [self showSnapshotAtPageNumber:[[setup objectForKey:PAGE_KEY] 
unsignedIntValue] forRect:NSRectFromString([setup objectForKey:RECT_KEY]) 
scaleFactor:[[setup objectForKey:SCALE_FACTOR_KEY] floatValue] autoFits:[[setup 
objectForKey:AUTO_FITS_KEY] boolValue] display:[[setup 
objectForKey:HAS_WINDOW_KEY] boolValue]];
+            [self showSnapshotWithSetup:setup];
         
         if (pageIndex != NSNotFound && [document pageCount]) {
             PDFPage *page = [document pageAtIndex:MIN(pageIndex, [document 
pageCount] - 1)];
@@ -2695,15 +2691,13 @@
 
 #pragma mark Sub- and note- windows
 
-- (void)showSnapshotAtPageNumber:(int)pageNum forRect:(NSRect)rect 
scaleFactor:(int)scaleFactor autoFits:(BOOL)autoFits display:(BOOL)display{
-    
+- (void)showSnapshotAtPageNumber:(int)pageNum forRect:(NSRect)rect 
scaleFactor:(int)scaleFactor autoFits:(BOOL)autoFits {
     SKSnapshotWindowController *swc = [[SKSnapshotWindowController alloc] 
init];
     BOOL snapshotsOnTop = [[NSUserDefaults standardUserDefaults] 
boolForKey:SKSnapshotsOnTopKey];
     
     [swc setDelegate:self];
     
-    PDFDocument *doc = [pdfView document];
-    [swc setPdfDocument:doc
+    [swc setPdfDocument:[pdfView document]
             scaleFactor:scaleFactor
          goToPageNumber:pageNum
                    rect:rect
@@ -2715,10 +2709,24 @@
     [[self document] addWindowController:swc];
     [swc release];
     
-    if (display)
-        [swc showWindow:self];
+    [swc showWindow:self];
 }
 
+- (void)showSnapshotWithSetup:(NSDictionary *)setup {
+    SKSnapshotWindowController *swc = [[SKSnapshotWindowController alloc] 
init];
+    BOOL snapshotsOnTop = [[NSUserDefaults standardUserDefaults] 
boolForKey:SKSnapshotsOnTopKey];
+    
+    [swc setDelegate:self];
+    
+    [swc setPdfDocument:[pdfView document] setup:setup];
+    
+    [swc setForceOnTop:[self isFullScreen] || [self isPresentation]];
+    [[swc window] setHidesOnDeactivate:snapshotsOnTop];
+    
+    [[self document] addWindowController:swc];
+    [swc release];
+}
+
 - (void)toggleSnapshots:(NSArray *)snapshotArray {
     // there should only be a single snapshot
     SKSnapshotWindowController *controller = [snapshotArray lastObject];
@@ -3653,7 +3661,7 @@
         
         rect.origin.y = NSMidY(rect) - 100.0;
         rect.size.height = 200.0;
-        [self showSnapshotAtPageNumber:row forRect:rect scaleFactor:[pdfView 
scaleFactor] autoFits:NO display:YES];
+        [self showSnapshotAtPageNumber:row forRect:rect scaleFactor:[pdfView 
scaleFactor] autoFits:NO];
         return YES;
     }
     return NO;

Modified: trunk/SKPDFView.m
===================================================================
--- trunk/SKPDFView.m   2007-10-07 12:48:49 UTC (rev 3025)
+++ trunk/SKPDFView.m   2007-10-07 13:05:51 UTC (rev 3026)
@@ -2119,7 +2119,7 @@
     
     SKMainWindowController *controller = [[self window] windowController];
     
-    [controller showSnapshotAtPageNumber:[page pageIndex] forRect:rect 
scaleFactor:[self scaleFactor] autoFits:autoFits display:YES];
+    [controller showSnapshotAtPageNumber:[page pageIndex] forRect:rect 
scaleFactor:[self scaleFactor] autoFits:autoFits];
 }
 
 #pragma mark Notification handling
@@ -3493,7 +3493,7 @@
     
     SKMainWindowController *controller = [[self window] windowController];
     
-    [controller showSnapshotAtPageNumber:[page pageIndex] forRect:[self 
convertRect:rect toPage:page] scaleFactor:[self scaleFactor] * factor 
autoFits:autoFits display:YES];
+    [controller showSnapshotAtPageNumber:[page pageIndex] forRect:[self 
convertRect:rect toPage:page] scaleFactor:[self scaleFactor] * factor 
autoFits:autoFits];
 }
 
 - (void)magnifyWithEvent:(NSEvent *)theEvent {

Modified: trunk/SKSnapshotWindowController.h
===================================================================
--- trunk/SKSnapshotWindowController.h  2007-10-07 12:48:49 UTC (rev 3025)
+++ trunk/SKSnapshotWindowController.h  2007-10-07 13:05:51 UTC (rev 3026)
@@ -50,6 +50,7 @@
 }
 
 - (void)setPdfDocument:(PDFDocument *)pdfDocument scaleFactor:(float)factor 
goToPageNumber:(int)pageNum rect:(NSRect)rect autoFits:(BOOL)autoFits;
+- (void)setPdfDocument:(PDFDocument *)pdfDocument setup:(NSDictionary *)setup;
 
 - (BOOL)isPageVisible:(PDFPage *)page;
 

Modified: trunk/SKSnapshotWindowController.m
===================================================================
--- trunk/SKSnapshotWindowController.m  2007-10-07 12:48:49 UTC (rev 3025)
+++ trunk/SKSnapshotWindowController.m  2007-10-07 13:05:51 UTC (rev 3026)
@@ -231,6 +231,17 @@
     [self performSelector:@selector(goToDestination:) withObject:dest 
afterDelay:0.1];
 }
 
+- (void)setPdfDocument:(PDFDocument *)pdfDocument setup:(NSDictionary *)setup {
+    [self setPdfDocument:pdfDocument
+             scaleFactor:[[setup objectForKey:SCALE_FACTOR_KEY] floatValue]
+          goToPageNumber:[[setup objectForKey:PAGE_KEY] unsignedIntValue]
+                    rect:NSRectFromString([setup objectForKey:RECT_KEY])
+                autoFits:[[setup objectForKey:AUTO_FITS_KEY] boolValue]];
+           
+    if ([[setup objectForKey:HAS_WINDOW_KEY] boolValue])
+        [self performSelector:@selector(showWindow:) withObject:self 
afterDelay:0.0];
+}
+
 - (BOOL)isPageVisible:(PDFPage *)page {
     if ([[page document] isEqual:[pdfView document]] == NO)
         return NO;


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to