Review Request: Consistent file name sorting in the file browser

Todd toddrme2178 at
Thu Feb 18 00:50:20 GMT 2010

This is an automatically generated e-mail. To reply, visit:

(Updated 2010-02-18 00:50:19.819685)

Review request for Dolphin and kdelibs.


Alright, I've moved the non-natural sorting stuff to its own part and gotten rid of the QStringLists.  This basically required completely re-writing the function, so hopefully this is a faster approach.  I'm honestly not clear about the relative speed of different approaches in C++, so for all I know I might have made things worse.  If there is anything else I can do to speed it up I would be happy to do it.  As for speed profiling, do you have either an explanation (if it is easy) or a link I can read (if it is more complicated)?  I am not familiar with it for C++ but would be happy to do it.


In the KDE file manager, there is an inconsistency when sorting by file names when the files have extensions and when they don't.  So, for example, when there is no extension test1 < test1a < test2 < test 10 < test10a < test20.  But when there is an extension you get something like test1a.txt < test1.txt < test2.txt < test10a.txt < test10.txt < test20.txt.  According to the guide that KDE is using for sorting,, the case without extensions is the correct one.  So what this patch does is first compares the filenames without the extension.  If those don't match, it uses that.  If they do match, it compare the extension.  If there are multiple extensions, it compares each extension in sequence.  If the number of extensions do not match, it treats the file with the fewer extensions as having enough empty extensions to make the two files equal.  This fixes the problem without needing any change to the underlying sorting algorithm.s

This addresses bug 201101.

Diffs (updated)

  /trunk/KDE/kdelibs/kfile/kdirsortfilterproxymodel.cpp 1091061 



Tried sorting different combinations of names, extensions, and extension numbers.



More information about the kde-core-devel mailing list