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