Project Updated to Version 8.3 R2
Fixed bug in sort order:
Not sure how this was overlooked for so long, but there was a bug in the sorting algorithm for extended columns. If an item didn't have any value for the current column, it would trigger a break in the sorting. Everything above it would be sorted correct, and everything below it sorted correct--- but like it was two different lists, e.g. CEG __ ABDF.
Also, Type/DateCreated/DateAccessed/DateModified should be sorted using the IShellFolder sort, so that it's a little faster and folders are listed separately from files, but instead were sorted as extended columns.
Finally, now all columns have folders kept separate when sorted. Previously only the default columns (Name, Size, Type, Date Created/Accessed/Modified), or supported columns where AlwaysSortWithISF was enabled, were shown this way, but now all columns are without any significant performance impact.
Code:'New in v8.3 R2 (Released 09 Sep 2020) ' '-Implemented folder separation for extended columns. Previously, besides the ' default columns (Name,Size,Type,DateC-A-M), folders would be mixed in with ' all the items instead of appearing before or after. Now, like the defaults, ' all columns will show folders separately. ' This was tested in folders of several thousand items and did not add any ' significant performance hit; under a second for 3,000 items. But if this was ' causing problems, the block that checks folder status in LVSortProc->stdsort ' is easily removed. ' '-(Bug fix) Sorting for Type and the three default Dates was not being done with ' IShellFolder.CompareIDs. ' '-(Bug fix) Sorting order for extended columns could be incorrect if any items ' in the folder had no value for the given column.




Reply With Quote
