<div dir="ltr">Hi,<div><br></div><div>I was reading back an mailing list thread i started about half a year ago [1]. Later on in that thread Aaron suggested a cool idea of "slave side" sorting [2].</div><div><br></div><div>At that time i found it cool, but didn't really see a need for it. Dolphin is doing a fine job at sorting anyway, so why would we bother moving it to the KIO side. Well, a good reason for moving it to the KIO side just became apparent to me when looking at this RR [3]. Sorting is already quite complex in Dolphin. Adding in QCollator while also using threads makes it a bit more nasty since a QCollator object per thread is required (hence the RR).</div><div><br></div><div>Sure, the end result (and Dolphin is probably going to move there) is to use QCollatorSortKey which will make sorting quite a bit faster [4] and remove a QCollator requirement, but it won't be any cleaner. Quite the opposite, It will be more complicated due to the bookkeeping required to use QCollatorSortKey.</div><div><br></div><div>All this sorting stuff is quite complicated and only available in Dolphin. Other people would need to duplicate it's efforts for the same results. That and considering that KIO is a framework that can be used by external (non KDE) parties made me think that having slave side sorting might be a very good thing to have. It would allow for performance optimizations that everyone can use and allows every KIO user to easily add sorting. It would completely remove a need for Dolphin to have sorting and would greatly simplify code that uses KIO.</div><div><br></div><div>When sorting moves to KIO, then grouping should also move to KIO imho.</div><div><br></div><div>The goal with this mail is to see if there is a need for slave side sorting and how this should be used by applications wanting to use it. If there is a demand for this then i'd like to propose to make this a GSoC project where i volunteer to be a co-mentor.</div><div><br></div><div>I look forward to your opinions.</div><div><br></div><div>Best regards,</div><div>Mark</div><div><br></div><div>[1] <a href="http://mail.kde.org/pipermail/kde-frameworks-devel/2014-May/015782.html">http://mail.kde.org/pipermail/kde-frameworks-devel/2014-May/015782.html</a><br></div><div>[2] <a href="http://mail.kde.org/pipermail/kde-frameworks-devel/2014-June/016341.html">http://mail.kde.org/pipermail/kde-frameworks-devel/2014-June/016341.html</a></div><div>[3] <a href="https://git.reviewboard.kde.org/r/121817/">https://git.reviewboard.kde.org/r/121817/</a></div><div>[4] <a href="http://kdeblog.mageprojects.com/2014/07/06/natural-string-sorting-an-in-depth-analysis/">http://kdeblog.mageprojects.com/2014/07/06/natural-string-sorting-an-in-depth-analysis/</a></div></div>