Sort Crates and Playlists using localeAwareCompare

Bug #1637889 reported by Daniel Schürmann
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mixxx
Fix Released
Wishlist
Unassigned

Bug Description

Ä should sort near A for German users.
This is already implemented for Track sorting and should be used for every user data sorting.

The issue was discussed here:
https://github.com/mixxxdj/mixxx/pull/1034

Changed in mixxx:
status: New → Confirmed
importance: Undecided → Wishlist
Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

...and the sorting should be case-insensitive ;)

Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

I will implement this for crates after I'm done with the refactoring of the DAO.

Changed in mixxx:
assignee: nobody → Uwe Klotz (uklotzde)
Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

Very easy to implement when reusing and extending the custom "localeAwareCompare" collation for SQLite that is already registered by Mixxx. But we also need to check if all table models/views are sorting correctly, i.e. case insensitive and locale aware. Maybe we need to introduce QSortFilterProxyModel.

Revision history for this message
Daniel Schürmann (daschuer) wrote :

Interesting, I was not aware of this QSortFilterProxyModel class. It looks like using it moves the sorting and filtering from SQLite to the Qt domain. That sounds like a big refactoring :-/

Do you have an idea if this has a performance impact?

The current caching/sorting solution is hard to maintain and understand anyway. It took me quite long to realise that the displayed data is a mixture of three sources, direct sqlite calls, BaseTrackCache cache and recentTracksCache.

Without knowing it exactly, I have the feeling that it should be possible to rely on the performance features of SQLite without all our extra caching. Unfortunately we cannot have test data to verify this without a working solution.

Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

I would be cautious with using QSortFilterProxyModel. We used to use this in Mixxx in the 2008 time-frame and it introduced a big performance penalty over using SQLite to do sorting.

Changed in mixxx:
status: Confirmed → In Progress
Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :
Changed in mixxx:
status: In Progress → Fix Committed
Changed in mixxx:
milestone: none → 2.1.0
Changed in mixxx:
status: Fix Committed → Fix Released
Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/8675

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.