Revision: 15819
          http://sourceforge.net/p/skim-app/code/15819
Author:   hofman
Date:     2025-11-23 17:34:31 +0000 (Sun, 23 Nov 2025)
Log Message:
-----------
move note type shet controller to note outline view so we don't duplicate 
initialization

Modified Paths:
--------------
    trunk/SKMainWindowController.h
    trunk/SKMainWindowController.m
    trunk/SKMainWindowController_Actions.m
    trunk/SKMainWindowController_UI.m
    trunk/SKNoteOutlineView.h
    trunk/SKNoteOutlineView.m
    trunk/SKNotesDocument.h
    trunk/SKNotesDocument.m
    trunk/SKRightSideViewController.h
    trunk/SKRightSideViewController.m

Modified: trunk/SKMainWindowController.h
===================================================================
--- trunk/SKMainWindowController.h      2025-11-23 15:19:11 UTC (rev 15818)
+++ trunk/SKMainWindowController.h      2025-11-23 17:34:31 UTC (rev 15819)
@@ -40,7 +40,6 @@
 #import "SKSnapshotWindowController.h"
 #import "SKThumbnail.h"
 #import "SKFindController.h"
-#import "NSDocument_SKExtensions.h"
 #import "SKPDFView.h"
 #import "PDFView_SKExtensions.h"
 #import "SKPDFDocument.h"
@@ -70,7 +69,7 @@
 
 @class PDFAnnotation, PDFSelection, SKGroupedSearchResult;
 @class SKPDFView, SKSecondaryPDFView, SKPresentationView, SKStatusBar, 
SKFindController, SKSplitView, SKFieldEditor, SKOverviewView, SKSideWindow;
-@class SKLeftSideViewController, SKRightSideViewController, 
SKMainToolbarController, SKMainTouchBarController, SKNoteToolbarController, 
SKProgressController, SKNoteTypeSheetController, SKSnapshotWindowController, 
SKTransitionController;
+@class SKLeftSideViewController, SKRightSideViewController, 
SKMainToolbarController, SKMainTouchBarController, SKNoteToolbarController, 
SKProgressController, SKSnapshotWindowController, SKTransitionController;
 @class SKPresentationNotesAuxiliary;
 
 @interface SKMainWindowController : NSWindowController 
<SKSnapshotWindowControllerDelegate, SKThumbnailDelegate, 
SKFindControllerDelegate, SKPDFViewDelegate, SKPDFDocumentDelegate, 
NSTouchBarDelegate> {
@@ -116,7 +115,6 @@
     
     NSMutableArray<SKGroupedSearchResult *> *groupedSearchResults;
     
-    SKNoteTypeSheetController           *noteTypeSheetController;
     NSMutableArray<PDFAnnotation *>     *notes;
     
     NSMutableArray<PDFAnnotation *>     *widgets;

Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m      2025-11-23 15:19:11 UTC (rev 15818)
+++ trunk/SKMainWindowController.m      2025-11-23 17:34:31 UTC (rev 15819)
@@ -298,7 +298,7 @@
     [findController setDelegate:nil];
     [pdfView setDelegate:nil]; // this cleans up the pdfview
     [[pdfView document] setDelegate:nil];
-    [noteTypeSheetController setDelegate:nil];
+    [[rightSideController.noteOutlineView noteTypeSheetController] 
setDelegate:nil];
     [[pdfView document] setContainingDocument:nil];
     [self setPresentationNotesDocument:nil];
 }
@@ -510,13 +510,8 @@
             [self showSnapshotsWithSetups:snapshotSetups];
     }
     
-    noteTypeSheetController = [[SKNoteTypeSheetController alloc] init];
-    [noteTypeSheetController setDelegate:self];
+    [[rightSideController.noteOutlineView noteTypeSheetController] 
setDelegate:self];
     
-    menu = [[rightSideController.noteOutlineView headerView] menu];
-    [menu addItem:[NSMenuItem separatorItem]];
-    [[menu addItemWithTitle:NSLocalizedString(@"Note Type", @"Menu item 
title") action:NULL keyEquivalent:@""] setSubmenu:[noteTypeSheetController 
noteTypeMenu]];
-    
     [pdfView setTypeSelectHelper:[leftSideController.thumbnailTableView 
typeSelectHelper]];
     
     [window recalculateKeyViewLoop];
@@ -3124,11 +3119,6 @@
     }
 }
 
-- (void)updateNoteFilterPredicate {
-    [rightSideController.noteArrayController 
setFilterPredicate:[noteTypeSheetController 
filterPredicateForSearchString:[rightSideController.searchField stringValue] 
caseInsensitive:mwcFlags.caseInsensitiveFilter]];
-    [rightSideController.noteOutlineView reloadData];
-}
-
 #pragma mark Snapshots
 
 - (void)resetSnapshotSizeIfNeeded {

Modified: trunk/SKMainWindowController_Actions.m
===================================================================
--- trunk/SKMainWindowController_Actions.m      2025-11-23 15:19:11 UTC (rev 
15818)
+++ trunk/SKMainWindowController_Actions.m      2025-11-23 17:34:31 UTC (rev 
15819)
@@ -93,7 +93,6 @@
 
 @interface SKMainWindowController (SKPrivateUI)
 - (void)updateLineInspector;
-- (void)updateNoteFilterPredicate;
 - (void)updateSnapshotFilterPredicate;
 - (void)resetNoteRowHeights;
 @end
@@ -865,7 +864,7 @@
 
 - (IBAction)searchNotes:(id)sender {
     if (mwcFlags.rightSidePaneState == SKSidePaneStateNote)
-        [self updateNoteFilterPredicate];
+        [rightSideController 
updateNoteFilterPredicateCaseInsensitive:mwcFlags.caseInsensitiveFilter];
     else
         [self updateSnapshotFilterPredicate];
     NSString *searchString = [sender stringValue];

Modified: trunk/SKMainWindowController_UI.m
===================================================================
--- trunk/SKMainWindowController_UI.m   2025-11-23 15:19:11 UTC (rev 15818)
+++ trunk/SKMainWindowController_UI.m   2025-11-23 17:34:31 UTC (rev 15819)
@@ -129,8 +129,6 @@
 - (void)updatePageLabels;
 - (void)updatePageLabel;
 
-- (void)updateNoteFilterPredicate;
-
 - (void)rotatePageAtIndex:(NSUInteger)idx by:(NSInteger)rotation;
 
 @end
@@ -1443,7 +1441,7 @@
 #pragma mark SKNoteTypeSheetController delegate protocol
 
 - (void)noteTypeSheetControllerNoteTypesDidChange {
-    [self updateNoteFilterPredicate];
+    [rightSideController 
updateNoteFilterPredicateCaseInsensitive:mwcFlags.caseInsensitiveFilter];
 }
 
 - (NSWindow *)windowForNoteTypeSheetController {

Modified: trunk/SKNoteOutlineView.h
===================================================================
--- trunk/SKNoteOutlineView.h   2025-11-23 15:19:11 UTC (rev 15818)
+++ trunk/SKNoteOutlineView.h   2025-11-23 17:34:31 UTC (rev 15819)
@@ -41,8 +41,11 @@
 
 NS_ASSUME_NONNULL_BEGIN
 
+@class SKNoteTypeSheetController;
+
 @interface SKNoteOutlineView : SKOutlineView {
     NSMapTable *rowHeights;
+    SKNoteTypeSheetController *noteTypeSheetController;
 }
 
 - (void)toggleTableColumn:(nullable id)sender;
@@ -54,6 +57,8 @@
 - (void)setRowHeight:(CGFloat)rowHeight forItem:(id)item;
 - (void)resetRowHeights;
 
+@property (nonatomic, readonly) SKNoteTypeSheetController 
*noteTypeSheetController;
+
 @end
 
 NS_ASSUME_NONNULL_END

Modified: trunk/SKNoteOutlineView.m
===================================================================
--- trunk/SKNoteOutlineView.m   2025-11-23 15:19:11 UTC (rev 15818)
+++ trunk/SKNoteOutlineView.m   2025-11-23 17:34:31 UTC (rev 15819)
@@ -42,6 +42,7 @@
 #import "SKApplication.h"
 #import "NSGeometry_SKExtensions.h"
 #import "NSMenu_SKExtensions.h"
+#import "SKNoteTypeSheetController.h"
 
 #define NUMBER_OF_TYPES 9
 
@@ -61,6 +62,7 @@
 
 @implementation SKNoteOutlineView
 
+@synthesize noteTypeSheetController;
 @dynamic fullWidthCellWidth, outlineIndentation, delegate;
 
 static inline NSString *titleForTableColumnIdentifier(NSString *identifier) {
@@ -83,12 +85,15 @@
 - (instancetype)initWithCoder:(NSCoder *)decoder {
     self = [super initWithCoder:decoder];
     if (self) {
+        noteTypeSheetController = [[SKNoteTypeSheetController alloc] init];
+        
         NSMenu *menu = [NSMenu menu];
+        NSMenuItem *menuItem;
         
         for (NSTableColumn *tc in [self tableColumns]) {
             NSString *identifier = [tc identifier];
             NSString *title = titleForTableColumnIdentifier(identifier);
-            NSMenuItem *menuItem = [menu addItemWithTitle:title 
action:@selector(toggleTableColumn:) target:self];
+            menuItem = [menu addItemWithTitle:title 
action:@selector(toggleTableColumn:) target:self];
             [menuItem setRepresentedObject:identifier];
             if ([tc maxWidth] >= SMALL_COLUMN_WIDTH)
                 [[tc headerCell] setTitle:title];
@@ -95,6 +100,9 @@
             else
                 [tc setHeaderToolTip:title];
         }
+        [menu addItem:[NSMenuItem separatorItem]];
+        menuItem = [menu addItemWithTitle:NSLocalizedString(@"Note Type", 
@"Menu item title") action:NULL keyEquivalent:@""];
+        [menuItem setSubmenu:[noteTypeSheetController noteTypeMenu]];
         
         [[self headerView] setMenu:menu];
         

Modified: trunk/SKNotesDocument.h
===================================================================
--- trunk/SKNotesDocument.h     2025-11-23 15:19:11 UTC (rev 15818)
+++ trunk/SKNotesDocument.h     2025-11-23 17:34:31 UTC (rev 15819)
@@ -38,9 +38,7 @@
 
 #import <Cocoa/Cocoa.h>
 #import <Quartz/Quartz.h>
-#import "SKNoteOutlineView.h"
 #import "SKNoteTypeSheetController.h"
-#import "NSDocument_SKExtensions.h"
 
 NS_ASSUME_NONNULL_BEGIN
 
@@ -56,7 +54,6 @@
     NSArray<NSDictionary<NSString *, id> *> *unsupportedNotes;
     PDFDocument *pdfDocument;
     NSURL *sourceFileURL;
-    SKNoteTypeSheetController *noteTypeSheetController;
     NSRect windowRect;
     struct _ndFlags {
         unsigned int exportUsingPanel:1;

Modified: trunk/SKNotesDocument.m
===================================================================
--- trunk/SKNotesDocument.m     2025-11-23 15:19:11 UTC (rev 15818)
+++ trunk/SKNotesDocument.m     2025-11-23 17:34:31 UTC (rev 15819)
@@ -174,13 +174,8 @@
     
     [outlineView setTypeSelectHelper:[SKTypeSelectHelper 
typeSelectHelperWithMatchOption:SKSubstringMatch]];
     
-    noteTypeSheetController = [[SKNoteTypeSheetController alloc] 
initIncludingWidgets:YES];
-    [noteTypeSheetController setDelegate:self];
+    [[outlineView noteTypeSheetController] setDelegate:self];
     
-    menu = [[outlineView headerView] menu];
-    [menu addItem:[NSMenuItem separatorItem]];
-    [[menu addItemWithTitle:NSLocalizedString(@"Note Type", @"Menu item 
title") action:NULL keyEquivalent:@""] setSubmenu:[noteTypeSheetController 
noteTypeMenu]];
-    
     [self setRecentInfoNeedsUpdate:YES];
     
     ndFlags.settingUpWindow = NO;
@@ -396,7 +391,7 @@
 }
 
 - (void)updateNoteFilterPredicate {
-    [arrayController setFilterPredicate:[noteTypeSheetController 
filterPredicateForSearchString:[searchField stringValue] 
caseInsensitive:ndFlags.caseInsensitiveSearch]];
+    [arrayController setFilterPredicate:[[outlineView noteTypeSheetController] 
filterPredicateForSearchString:[searchField stringValue] 
caseInsensitive:ndFlags.caseInsensitiveSearch]];
     [outlineView reloadData];
 }
 

Modified: trunk/SKRightSideViewController.h
===================================================================
--- trunk/SKRightSideViewController.h   2025-11-23 15:19:11 UTC (rev 15818)
+++ trunk/SKRightSideViewController.h   2025-11-23 17:34:31 UTC (rev 15819)
@@ -55,6 +55,8 @@
 @property (nonatomic, nullable, strong) IBOutlet SKNoteOutlineView 
*noteOutlineView;
 @property (nonatomic, nullable, strong) IBOutlet SKTableView 
*snapshotTableView;
 
+- (void)updateNoteFilterPredicateCaseInsensitive:(BOOL)caseInsensitive;
+
 @end
 
 NS_ASSUME_NONNULL_END

Modified: trunk/SKRightSideViewController.m
===================================================================
--- trunk/SKRightSideViewController.m   2025-11-23 15:19:11 UTC (rev 15818)
+++ trunk/SKRightSideViewController.m   2025-11-23 17:34:31 UTC (rev 15819)
@@ -131,4 +131,9 @@
     return [NSArray arrayWithObjects:noteOutlineView, snapshotTableView, nil];
 }
 
+- (void)updateNoteFilterPredicateCaseInsensitive:(BOOL)caseInsensitive {
+    [noteArrayController setFilterPredicate:[[noteOutlineView 
noteTypeSheetController] filterPredicateForSearchString:[searchField 
stringValue] caseInsensitive:caseInsensitive]];
+    [noteOutlineView reloadData];
+}
+
 @end

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