-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix library selection, save header configuration per crate/playlist #3063
Conversation
I'm not sure abou this. Sure with |
Oh, I see this only affects the |
..which don't require the table to be |
For further improving the library navigation (in another PR): |
currentIndex is not necesarry in sync with the selected rows the user sees. Query the selectionModel and using it results fixes those problems. Also implement wrap-around behaviour. Example: Go to Library Tracks, select track. Go to AutoDJ select track, go back to library. Now use moveSelection controlls will always jump back to the first row because currentIndex returns invalid index. The new implementation fixes this bug.
Use a signal in Library or LibraryFeature objects to save the scroll position of the trackmodel currently shown. The key to store the scroll position is no longer defined by the model pointer but a value provided by the model itself. This way, the same model can be reused for different views like the crates feature does.
* Allow LibraryViews to save/restore their state like scroll position, selection and currentIndex. * Add state cache to baseplaylist * Add special modelKey implementations for Playlists, Crates, Computer, Proxy * Selection is now search aware and saved different pointers for different searches * Clear Cache regularly
@ronso0 would like you give this version a test ? Unfortunately the small changes from the beginning got a bit larger but otherwise I could not implement it in a generic and working way for all the features. Now the selection of tracks, scrollposition and current Index is popery conserved between switches of different subsystems. Each playlist/crate/folder + search query has it's own state and will be garbage collected after LRU schema. (combined with the search combobox this is top). |
Did you rebase on 2.3? I don't see the recently added GitHub Actions checks. |
I guess I can test that in a few days with my controller, latest by the end of the week. |
Analyze/Recordings/Missing Tracks now work as well. |
library views store states in a QCache in WTrackTableView incl. * track selection * current index (focused track) * scroll positions, horizontal + vertical with a unique key composed of * feature (playlist/crate/browse ...) * child item (playlistId/crateId/directory ...) * current search term Credits for this and the required commits go to https://github.com/poelzi <git@poelzi.org> I just boiled down some picks from stalled mixxxdj#3063
library views store states in a QCache in WTrackTableView incl. * track selection * current index (focused track) * scroll positions, horizontal + vertical with a unique key composed of * feature (playlist/crate/browse ...) * child item (playlistId/crateId/directory ...) * current search term Credits for this and the required commits go to https://github.com/poelzi <git@poelzi.org> I just boiled down some picks from stalled mixxxdj#3063
library views store states in a QCache in WTrackTableView incl. * track selection * current index (focused track) * scroll positions, horizontal + vertical with a unique key composed of * feature (playlist/crate/browse ...) * child item (playlistId/crateId/directory ...) * current search term Credits for this and the required commits go to https://github.com/poelzi <git@poelzi.org> I just boiled down some picks from stalled mixxxdj#3063
library views store states in a QCache in WTrackTableView incl. * track selection * current index (focused track) * scroll positions, horizontal + vertical with a unique key composed of * feature (playlist/crate/browse ...) * child item (playlistId/crateId/directory ...) * current search term Credits for this and the required commits go to https://github.com/poelzi <git@poelzi.org> I just boiled down some picks from stalled mixxxdj#3063
library views store states in a QCache in WTrackTableView incl. * track selection * current index (focused track) * scroll positions, horizontal + vertical with a unique key composed of * feature (playlist/crate/browse ...) * child item (playlistId/crateId/directory ...) * current search term Credits for this and the required commits go to https://github.com/poelzi <git@poelzi.org> I just boiled down some picks from stalled mixxxdj#3063
library views store states in a QCache in WTrackTableView incl. * track selection * current index (focused track) * scroll positions, horizontal + vertical with a unique key composed of * feature (playlist/crate/browse ...) * child item (playlistId/crateId/directory ...) * current search term Credits for this and the required commits go to https://github.com/poelzi <git@poelzi.org> I just boiled down some picks from stalled mixxxdj#3063
library views store states in a QCache in WTrackTableView incl. * track selection * current index (focused track) * scroll positions, horizontal + vertical with a unique key composed of * feature (playlist/crate/browse ...) * child item (playlistId/crateId/directory ...) * current search term Credits for this and the required commits go to https://github.com/poelzi <git@poelzi.org> I just boiled down some picks from stalled mixxxdj#3063
library views store states in a QCache in WTrackTableView incl. * track selection * current index (focused track) * scroll positions, horizontal + vertical with a unique key composed of * feature (playlist/crate/browse ...) * child item (playlistId/crateId/directory ...) * current search term Credits for this and the required commits go to https://github.com/poelzi <git@poelzi.org> I just boiled down some picks from stalled mixxxdj#3063
library views store states in a QCache in WTrackTableView incl. * track selection * current index (focused track) * scroll positions, horizontal + vertical with a unique key composed of * feature (playlist/crate/browse ...) * child item (playlistId/crateId/directory ...) * current search term Credits for this and the required commits go to https://github.com/poelzi <git@poelzi.org> I just boiled down some picks from stalled mixxxdj#3063
library views store states in a QCache in WTrackTableView incl. * track selection * current index (focused track) * scroll positions, horizontal + vertical with a unique key composed of * feature (playlist/crate/browse ...) * child item (playlistId/crateId/directory ...) * current search term Credits for this and the required commits go to https://github.com/poelzi <git@poelzi.org> I just boiled down some picks from stalled mixxxdj#3063
library views store states in a QCache in WTrackTableView incl. * track selection * current index (focused track) * scroll positions, horizontal + vertical with a unique key composed of * feature (playlist/crate/browse ...) * child item (playlistId/crateId/directory ...) * current search term Credits for this and the required commits go to https://github.com/poelzi <git@poelzi.org> I just boiled down some picks from stalled mixxxdj#3063
marking this as draft. |
yeah I'll take a look |
This PR is marked as stale because it has been open 90 days with no activity. |
Closing this stale PR now since the track view changes have been adopted by now, due to the enormous amount of conflicts and to clean up the list of open PRs. |
This branch fixes multiple selection issues in the library.
edit (ronso0) fixes https://bugs.launchpad.net/mixxx/+bug/1808472
https://bugs.launchpad.net/mixxx/+bug/1448400