Skip to content

Commit 40249a7

Browse files
authored
Merge pull request #16498 from iterate-ch/bugfix/GH-12897
Fix #12897. Make sure to ignore file system events from monitored col…
2 parents 3845480 + 94cccca commit 40249a7

File tree

4 files changed

+17
-23
lines changed

4 files changed

+17
-23
lines changed

core/src/main/java/ch/cyberduck/core/Collection.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,17 @@ public void add(int row, E item) {
129129
this.collectionItemAdded(item);
130130
}
131131

132-
public void replace(int row, E item) {
133-
this.set(row, item);
132+
public E set(int row, E item) {
133+
final E previous = super.set(row, item);
134+
for(CollectionListener<E> listener : listeners) {
135+
listener.collectionItemChanged(item);
136+
}
137+
return previous;
138+
}
139+
140+
public void move(int from, int to) {
141+
final E item = super.remove(from);
142+
this.add(to, item);
134143
for(CollectionListener<E> listener : listeners) {
135144
listener.collectionItemChanged(item);
136145
}

core/src/main/java/ch/cyberduck/core/MonitorFolderHostCollection.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public void fileWritten(final Local file) {
6868
// Found bookmark with matching UUID
6969
if(new HostEditComparator().compare(bookmark, this.get(index)) != 0) {
7070
log.debug("Replace bookmark {} at index {}", bookmark, index);
71-
this.replace(index, bookmark);
71+
this.set(index, bookmark);
7272
}
7373
}
7474
}

osx/src/main/java/ch/cyberduck/ui/cocoa/datasource/BookmarkTableDataSource.java

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -424,20 +424,13 @@ else if(!pasteboard.isEmpty()) {
424424
else {
425425
int insert = row.intValue();
426426
for(Host bookmark : pasteboard) {
427-
int previous = source.indexOf(bookmark);
428-
if(previous == insert) {
427+
int sourceIndex = source.indexOf(bookmark);
428+
if(sourceIndex == insert) {
429429
// No need to move
430430
continue;
431431
}
432-
source.remove(previous);
433-
int moved;
434-
if(previous < insert) {
435-
moved = insert - 1;
436-
}
437-
else {
438-
moved = insert;
439-
}
440-
source.add(moved, bookmark);
432+
int destIndex = sourceIndex < insert ? insert - 1 : insert;
433+
source.move(sourceIndex, destIndex);
441434
}
442435
for(Host bookmark : pasteboard) {
443436
int index = source.indexOf(bookmark);

windows/src/main/csharp/ch/cyberduck/ui/controller/BrowserController.cs

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -751,15 +751,7 @@ private void View_HostModelDropped(ModelDropEventArgs dropargs)
751751
}
752752
foreach (Host promisedDragBookmark in dropargs.SourceModels)
753753
{
754-
_bookmarkModel.Source.remove(promisedDragBookmark);
755-
if (destIndex > _bookmarkModel.Source.size())
756-
{
757-
_bookmarkModel.Source.add(promisedDragBookmark);
758-
}
759-
else
760-
{
761-
_bookmarkModel.Source.add(destIndex, promisedDragBookmark);
762-
}
754+
_bookmarkModel.Source.move(sourceIndex, destIndex);
763755
//view.selectRowIndexes(NSIndexSet.indexSetWithIndex(row), false);
764756
//view.scrollRowToVisible(row);
765757
}

0 commit comments

Comments
 (0)