samschott / maestral

Open-source Dropbox client for macOS and Linux
https://maestral.app
MIT License
3.06k stars 65 forks source link

Selective Sync is not sorted correctly #1012

Open stevetranby opened 6 months ago

stevetranby commented 6 months ago

Describe the bug When viewing the selective sync GUI where it shows the files and folders with checkboxes showing whether its being synced to this device or not (but does show all that available in the Dropbox online). I don't care if Capitalized letters sort together amongst the lowercase versions (ie: a,A,b,B,c,C) or sorted separately (ie: a,b,c,A,B,C), but my version looks somewhat unsorted.

Incorrectly sorted (these are folders in my dropbox as shown in the list for choosing selected sync files and folders) dev/ music/ Screenshots/ apps/ bin/ videos/ ebooks/ photos/ fonts/ wallpaper/

Both of these commands show the files and folders sorted correctly. maestral excluded list maestral ls

To Reproduce Open preferences/settings, Choose "Select files and folders...", see how files and folders are not all sorted correctly, assuming you have enough files and folders to test.

Expected behaviour I would expect it to match the sorting of either the Dropbox Online Website "All Files" view, or the native platform's file explorer (Finder, Window Explorer, ls, etc)

System:

Additional context This is separate from a feature enhancement to allow clicking on the heading for "Name" and "Included" to sort by Name as ascending or descending.

samschott commented 3 months ago

Thanks for the report! Items are indeed sorted alphabetically, ignoring case, but only if the number of items in a folder is not too large. Once the Dropbox API starts returning remote items in batches, each new batch will be appended to the list once retrieved. This makes the UI appear to react quicker in case of large remote folders.

Currently, instead of inserting the items individually in their correct alphabetical place, they are all just appended. This could potentially be improved, if performance does not suffer too much from that, or we could pre-fetch the entire content.