Revision: 30104
          http://sourceforge.net/p/bibdesk/svn/30104
Author:   hofman
Date:     2026-03-04 16:19:02 +0000 (Wed, 04 Mar 2026)
Log Message:
-----------
Mark for reload in edit methods. Reload and reset indexes in convenience method.

Modified Paths:
--------------
    trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.m

Modified: trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.m
===================================================================
--- trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.m      2026-03-04 
15:28:20 UTC (rev 30103)
+++ trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.m      2026-03-04 
16:19:02 UTC (rev 30104)
@@ -2644,6 +2644,17 @@
 
 #pragma mark Modifying URLs
 
+- (void)_resetAfterChange:(BOOL)didChange
+{
+    if (didChange && _fvFlags.needsReload)
+        [self reloadIcons];
+    
+    if ([_progressIndicators count])
+        [[_progressIndicators allValues] setValue:[NSNumber 
numberWithUnsignedInteger:NSNotFound] forKey:@"movedIndexInView"];
+    if ([_downloads count])
+        [_downloads setValue:[NSNumber numberWithUnsignedInteger:NSNotFound] 
forKey:@"movedIndexInView"];
+}
+
 - (BOOL)_moveURLsAtIndexes:(NSIndexSet *)indexSet toIndex:(NSUInteger)anIndex 
forDrop:(id <NSDraggingInfo>)info dropOperation:(FVDropOperation)operation
 {
     if ([[self dataSource] 
respondsToSelector:@selector(fileView:moveURLsAtIndexes:toIndex:forDrop:dropOperation:)]
 == NO)
@@ -2677,12 +2688,11 @@
         }
     }
     
+    _fvFlags.needsReload = YES;
+    
     BOOL didMove = [[self dataSource] fileView:self moveURLsAtIndexes:indexSet 
toIndex:anIndex forDrop:info dropOperation:operation];
     
-    if ([_progressIndicators count])
-        [[_progressIndicators allValues] setValue:[NSNumber 
numberWithUnsignedInteger:NSNotFound] forKey:@"movedIndexInView"];
-    if ([_downloads count])
-        [_downloads setValue:[NSNumber numberWithUnsignedInteger:NSNotFound] 
forKey:@"movedIndexInView"];
+    [self _resetAfterChange:didMove];
     
     return didMove;
 }
@@ -2692,7 +2702,14 @@
     if ([[self dataSource] 
respondsToSelector:@selector(fileView:replaceURLAtIndex:withURL:forDrop:dropOperation:)]
 == NO)
         return NO;
     
-    return [[self dataSource] fileView:self replaceURLAtIndex:anIndex 
withURL:newURL forDrop:info dropOperation:operation];
+    _fvFlags.needsReload = YES;
+    
+    BOOL didReplace = [[self dataSource] fileView:self 
replaceURLAtIndex:anIndex withURL:newURL forDrop:info dropOperation:operation];
+    
+    if (didReplace && _fvFlags.needsReload)
+        [self reloadIcons];
+    
+    return didReplace;
 }
 
 - (BOOL)_insertURLs:(NSArray *)absoluteURLs atIndexes:(NSIndexSet *)indexSet 
forDrop:(id <NSDraggingInfo>)info dropOperation:(FVDropOperation)operation
@@ -2712,12 +2729,11 @@
             [download setMovedIndexInView:currentIndex + [absoluteURLs count]];
     }
     
+    _fvFlags.needsReload = YES;
+    
     [[self dataSource] fileView:self insertURLs:absoluteURLs 
atIndexes:indexSet forDrop:info dropOperation:operation];
     
-    if ([_progressIndicators count])
-        [[_progressIndicators allValues] setValue:[NSNumber 
numberWithUnsignedInteger:NSNotFound] forKey:@"movedIndexInView"];
-    if ([_downloads count])
-        [_downloads setValue:[NSNumber numberWithUnsignedInteger:NSNotFound] 
forKey:@"movedIndexInView"];
+    [self _resetAfterChange:YES];
     
     return YES;
 }
@@ -2739,13 +2755,17 @@
             [download setMovedIndexInView:currentIndex - [indexSet 
countOfIndexesInRange:NSMakeRange(0, currentIndex)]];
     }
     
+    BOOL deleteSelected = [indexSet isEqual:_selectionIndexes];
+    
+    _fvFlags.needsReload = YES;
+    
     BOOL didDelete = [[self dataSource] fileView:self 
deleteURLsAtIndexes:indexSet];
-              
-    if ([_progressIndicators count])
-        [[_progressIndicators allValues] setValue:[NSNumber 
numberWithUnsignedInteger:NSNotFound] forKey:@"movedIndexInView"];
-    if ([_downloads count])
-        [_downloads setValue:[NSNumber numberWithUnsignedInteger:NSNotFound] 
forKey:@"movedIndexInView"];
     
+    if (deleteSelected && didDelete)
+        [self _setSelectionIndexes:[NSIndexSet indexSet]];
+    
+    [self _resetAfterChange:didDelete];
+    
     return didDelete;
 }
 
@@ -2768,12 +2788,7 @@
 {
     // only called if we originated the drag, so the row/column must be valid
     if ((operation & NSDragOperationDelete) != 0 && operation != 
NSDragOperationEvery && [self isEditable]) {
-        _fvFlags.needsReload = YES;
-        if ([self _deleteURLsAtIndexes:_selectionIndexes]) {
-            [self _setSelectionIndexes:[NSIndexSet indexSet]];
-            if (_fvFlags.needsReload)
-                [self reloadIcons];
-        }
+        [self _deleteURLsAtIndexes:_selectionIndexes];
     }
 }
 
@@ -2854,12 +2869,7 @@
 {
     // only called if we originated the drag, so the row/column must be valid
     if ((operation & NSDragOperationDelete) != 0 && operation != 
NSDragOperationEvery && [self isEditable]) {
-        _fvFlags.needsReload = YES;
-        if ([self _deleteURLsAtIndexes:_selectionIndexes]) {
-            [self _setSelectionIndexes:[NSIndexSet indexSet]];
-            if (_fvFlags.needsReload)
-                [self reloadIcons];
-        }
+        [self _deleteURLsAtIndexes:_selectionIndexes];
     }
 }
 
@@ -3034,8 +3044,6 @@
 {
     [_dropHighlightView removeFromSuperview];
     _dropHighlightView = nil;
-    if (_fvFlags.needsReload)
-        [self reloadIcons];
 }
 
 static NSURL *makeCopyOfFileAtURL(NSURL *fileURL) {
@@ -3083,8 +3091,6 @@
             allURLs = [NSArray arrayWithObject:[allURLs objectAtIndex:0]];
     }
     
-    _fvFlags.needsReload = YES;
-    
     if (isCopy) {
         NSMutableArray *copiedURLs = [NSMutableArray array];
         NSUInteger i = insertIndex;
@@ -3947,15 +3953,8 @@
 
 - (IBAction)delete:(id)sender;
 {
-    if (NO == [self isEditable]) {
+    if (NO == [self isEditable] || NO == [self 
_deleteURLsAtIndexes:_selectionIndexes])
         NSBeep();
-    } else {
-        _fvFlags.needsReload = YES;
-        if (NO == [self _deleteURLsAtIndexes:_selectionIndexes])
-            NSBeep();
-        else if (_fvFlags.needsReload)
-            [self reloadIcons];
-    }
 }
 
 - (IBAction)selectAll:(id)sender;

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



_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit

Reply via email to