Revision: 7283
          http://skim-app.svn.sourceforge.net/skim-app/?rev=7283&view=rev
Author:   hofman
Date:     2011-06-18 11:33:09 +0000 (Sat, 18 Jun 2011)

Log Message:
-----------
delegate protocol for findcontroller callback

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

Modified: trunk/SKFindController.h
===================================================================
--- trunk/SKFindController.h    2011-06-18 11:10:05 UTC (rev 7282)
+++ trunk/SKFindController.h    2011-06-18 11:33:09 UTC (rev 7283)
@@ -39,25 +39,25 @@
 #import <Cocoa/Cocoa.h>
 #import "SKViewController.h"
 
-@class SKMainWindowController;
+@protocol SKFindControllerDelegate;
 
 @interface SKFindController : SKViewController {
+    id <SKFindControllerDelegate> delegate;
     NSSearchField *findField;
     NSButton *doneButton;
     NSObjectController *ownerController;
     NSString *findString;
     NSInteger lastChangeCount;
     NSTextView *fieldEditor;
-    SKMainWindowController *mainController;
     BOOL animating;
 }
 
 @property (nonatomic, retain) IBOutlet NSSearchField *findField;
 @property (nonatomic, retain) IBOutlet NSButton *doneButton;
 @property (nonatomic, retain) IBOutlet NSObjectController *ownerController;
+@property (nonatomic, assign) id <SKFindControllerDelegate> delegate;
 @property (nonatomic, retain) NSString *findString;
 @property (nonatomic, readonly) NSInteger findOptions;
-@property (nonatomic, assign) SKMainWindowController *mainController;
 @property (nonatomic, readonly) NSTextView *fieldEditor;
 
 - (void)toggleAboveView:(NSView *)view animate:(BOOL)animate;
@@ -70,3 +70,8 @@
 - (IBAction)toggleCaseInsensitiveFind:(id)sender;
 
 @end
+
+
+@protocol SKFindControllerDelegate <NSObject>
+- (void)findString:(NSString *)string options:(NSInteger)options;
+@end

Modified: trunk/SKFindController.m
===================================================================
--- trunk/SKFindController.m    2011-06-18 11:10:05 UTC (rev 7282)
+++ trunk/SKFindController.m    2011-06-18 11:33:09 UTC (rev 7283)
@@ -43,12 +43,11 @@
 #import "NSGeometry_SKExtensions.h"
 #import "NSSegmentedControl_SKExtensions.h"
 #import "NSMenu_SKExtensions.h"
-#import "SKMainWindowController.h"
 
 
 @implementation SKFindController
 
-@synthesize findField, doneButton, ownerController, findString, mainController;
+@synthesize delegate, findField, doneButton, ownerController, findString;
 @dynamic findOptions, fieldEditor;
 
 - (void)dealloc {
@@ -182,10 +181,10 @@
     }
 }
 
-- (void)setMainController:(SKMainWindowController *)newMainController {
-    if (mainController && newMainController == nil)
+- (void)setDelegate:(id <SKFindControllerDelegate>)newDelegate {
+    if (delegate && newDelegate == nil)
         [ownerController setContent:nil];
-    mainController = newMainController;
+    delegate = newDelegate;
 }
 
 - (NSTextView *)fieldEditor {
@@ -200,7 +199,7 @@
     [ownerController commitEditing];
     if ([findString length]) {
         NSInteger findOptions = [[NSUserDefaults standardUserDefaults] 
boolForKey:SKCaseInsensitiveFindKey] ? NSCaseInsensitiveSearch : 0;
-        [mainController findString:findString options:findOptions | 
backForwardOption];
+        [delegate findString:findString options:findOptions | 
backForwardOption];
         [self updateFindPboard];
     }
 }

Modified: trunk/SKMainWindowController.h
===================================================================
--- trunk/SKMainWindowController.h      2011-06-18 11:10:05 UTC (rev 7282)
+++ trunk/SKMainWindowController.h      2011-06-18 11:33:09 UTC (rev 7283)
@@ -39,6 +39,7 @@
 #import <Cocoa/Cocoa.h>
 #import "SKSnapshotWindowController.h"
 #import "SKThumbnail.h"
+#import "SKFindController.h"
 #import "NSDocument_SKExtensions.h"
 #import <IOKit/pwr_mgt/IOPMLib.h>
 
@@ -70,7 +71,7 @@
 @class SKPDFView, SKSecondaryPDFView, SKStatusBar, SKFindController, 
SKSplitView, SKSideWindow;
 @class SKLeftSideViewController, SKRightSideViewController, 
SKMainToolbarController, SKProgressController, 
SKPresentationOptionsSheetController, SKNoteTypeSheetController;
 
-@interface SKMainWindowController : NSWindowController 
<SKSnapshotWindowControllerDelegate, SKThumbnailDelegate> {
+@interface SKMainWindowController : NSWindowController 
<SKSnapshotWindowControllerDelegate, SKThumbnailDelegate, 
SKFindControllerDelegate> {
     SKSplitView                         *splitView;
     
     NSView                              *centerContentView;
@@ -286,7 +287,6 @@
 - (void)displaySnapshotViewAnimating:(BOOL)animate;
 
 - (PDFSelection *)findString:(NSString *)string fromSelection:(PDFSelection 
*)selection withOptions:(NSInteger)options;
-- (void)findString:(NSString *)string options:(NSInteger)options;
 - (void)showFindBar;
 
 - (NSInteger)outlineRowForPageIndex:(NSUInteger)pageIndex;

Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m      2011-06-18 11:10:05 UTC (rev 7282)
+++ trunk/SKMainWindowController.m      2011-06-18 11:33:09 UTC (rev 7283)
@@ -101,7 +101,6 @@
 #import "PDFDocument_SKExtensions.h"
 #import "SKPDFPage.h"
 #import "NSScreen_SKExtensions.h"
-#import "SKFindController.h"
 
 #define MULTIPLICATION_SIGN_CHARACTER 0x00d7
 
@@ -1717,7 +1716,7 @@
 - (void)showFindBar {
     if (findController == nil) {
         findController = [[SKFindController alloc] init];
-        [findController setMainController:self];
+        [findController setDelegate:self];
     }
     if ([[findController view] window] == nil)
         [findController toggleAboveView:(interactionMode == SKFullScreenMode ? 
pdfSplitView : splitView) animate:YES];

Modified: trunk/SKMainWindowController_UI.m
===================================================================
--- trunk/SKMainWindowController_UI.m   2011-06-18 11:10:05 UTC (rev 7282)
+++ trunk/SKMainWindowController_UI.m   2011-06-18 11:33:09 UTC (rev 7283)
@@ -240,7 +240,7 @@
         [leftSideController setMainController:nil];
         [rightSideController setMainController:nil];
         [toolbarController setMainController:nil];
-        [findController setMainController:nil];
+        [findController setDelegate:nil]; // this breaks the retain loop from 
binding
     }
 }
 


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

------------------------------------------------------------------------------
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to