Revision: 13983
          http://sourceforge.net/p/skim-app/code/13983
Author:   hofman
Date:     2023-12-24 22:51:08 +0000 (Sun, 24 Dec 2023)
Log Message:
-----------
Use array KVC methods directly. Implement only array KVC methods for downloads 
that are used.

Modified Paths:
--------------
    trunk/SKDownloadController.h
    trunk/SKDownloadController.m
    trunk/SKMainWindowController.m

Modified: trunk/SKDownloadController.h
===================================================================
--- trunk/SKDownloadController.h        2023-12-24 22:24:30 UTC (rev 13982)
+++ trunk/SKDownloadController.h        2023-12-24 22:51:08 UTC (rev 13983)
@@ -75,7 +75,7 @@
 @property (nonatomic, readonly) NSUInteger countOfDownloads;
 - (SKDownload *)objectInDownloadsAtIndex:(NSUInteger)anIndex;
 - (void)insertObject:(SKDownload *)download 
inDownloadsAtIndex:(NSUInteger)anIndex;
-- (void)removeObjectFromDownloadsAtIndex:(NSUInteger)anIndex;
+- (void)removeDownloadsAtIndexes:(NSIndexSet *)indexes;
 
 // these notify and animate, so should be used to add/remove downloads
 - (void)addObjectToDownloads:(SKDownload *)download;

Modified: trunk/SKDownloadController.m
===================================================================
--- trunk/SKDownloadController.m        2023-12-24 22:24:30 UTC (rev 13982)
+++ trunk/SKDownloadController.m        2023-12-24 22:51:08 UTC (rev 13983)
@@ -233,11 +233,11 @@
     [self updateClearButton];
 }
 
-- (void)removeObjectFromDownloadsAtIndex:(NSUInteger)anIndex {
-    SKDownload *download = [downloads objectAtIndex:anIndex];
-    [self endObservingDownloads:@[download]];
-    [download cancel];
-    [downloads removeObjectAtIndex:anIndex];
+- (void)removeDownloadsAtIndexes:(NSIndexSet *)indexes {
+    NSArray *oldDownloads = [downloads objectsAtIndexes:indexes];
+    [self endObservingDownloads:oldDownloads];
+    [downloads makeObjectsPerformSelector:@selector(cancel)];
+    [downloads removeObjectsAtIndexes:indexes];
     [self updateClearButton];
 }
 
@@ -260,7 +260,7 @@
         options = NSTableViewAnimationEffectNone;
     [tableView beginUpdates];
     [tableView removeRowsAtIndexes:indexes withAnimation:options];
-    [[self mutableArrayValueForKey:DOWNLOADS_KEY] 
removeObjectsAtIndexes:indexes];
+    [self removeDownloadsAtIndexes:indexes];
     [tableView endUpdates];
 }
 

Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m      2023-12-24 22:24:30 UTC (rev 13982)
+++ trunk/SKMainWindowController.m      2023-12-24 22:51:08 UTC (rev 13983)
@@ -2165,7 +2165,7 @@
         }
         if ([annotation isSkimNote] && mwcFlags.addOrRemoveNotesInBulk == 0) {
             mwcFlags.updatingNoteSelection = 1;
-            [[self mutableArrayValueForKey:NOTES_KEY] addObject:annotation];
+            [self insertObject:annotation inNotesAtIndex:[notes count]];
             [rightSideController.noteArrayController rearrangeObjects]; // 
doesn't seem to be done automatically
             mwcFlags.updatingNoteSelection = 0;
             [rightSideController.noteOutlineView reloadData];
@@ -2203,7 +2203,9 @@
             [[self windowControllerForNote:annotation] close];
             
             mwcFlags.updatingNoteSelection = 1;
-            [[self mutableArrayValueForKey:NOTES_KEY] removeObject:annotation];
+            NSUInteger i = [notes indexOfObject:annotation];
+            if (i != NSNotFound)
+                [self removeObjectFromNotesAtIndex:i];
             [rightSideController.noteArrayController rearrangeObjects]; // 
doesn't seem to be done automatically
             mwcFlags.updatingNoteSelection = 0;
             [rightSideController.noteOutlineView reloadData];
@@ -2318,12 +2320,12 @@
     [controller setThumbnail:image];
     
     if (openType == SKSnapshotOpenFromSetup) {
-        [[self mutableArrayValueForKey:SNAPSHOTS_KEY] addObject:controller];
+        [self insertObject:controller inSnapshotsAtIndex:[snapshots count]];
         [rightSideController.snapshotTableView reloadData];
     } else {
         if (openType == SKSnapshotOpenNormal) {
             [rightSideController.snapshotTableView beginUpdates];
-            [[self mutableArrayValueForKey:SNAPSHOTS_KEY] 
addObject:controller];
+            [self insertObject:controller inSnapshotsAtIndex:[snapshots 
count]];
             NSUInteger row = [[rightSideController.snapshotArrayController 
arrangedObjects] indexOfObject:controller];
             if (row != NSNotFound) {
                 NSTableViewAnimationOptions options = 
NSTableViewAnimationEffectGap | NSTableViewAnimationSlideDown;
@@ -2349,7 +2351,9 @@
                 options = NSTableViewAnimationEffectNone;
             [rightSideController.snapshotTableView 
removeRowsAtIndexes:[NSIndexSet indexSetWithIndex:row] withAnimation:options];
         }
-        [[self mutableArrayValueForKey:SNAPSHOTS_KEY] removeObject:controller];
+        NSUInteger i = [snapshots indexOfObject:controller];
+        if (i != NSNotFound)
+            [self removeObjectFromSnapshotsAtIndex:i];
         [rightSideController.snapshotTableView endUpdates];
         [self setRecentInfoNeedsUpdate:YES];
     }

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