Bug 208349

Summary: [PATCH] Incorrect Track Selection behaviour when using Dynamic Playlists
Product: [Applications] amarok Reporter: John Atkinson <john>
Component: PlaylistAssignee: Amarok Developers <amarok-bugs-dist>
Severity: minor CC: kuba.serafinowski, langstr, nhn
Priority: NOR    
Version: 2.3-GIT   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:

Description John Atkinson 2009-09-24 05:14:00 UTC
Version:           2.2-GIT (using KDE 4.3.1)
OS:                Linux
Installed from:    Ubuntu Packages

When using Dynamic Playlists, when previous tracks are automatically removed from the playlist the currently selected track[s] changes. This is particularly obvious when double clicking to play a specific track.

To Reproduce:
- Enable dynamic playlist.
- Set the number of "previous" allowed in the dynamic playlist to 5 (This is arbitrary but useful to illustrate this example).
- Play (or skip) through the playlist until you are playing track 5.
- Double click track 6.

- Track 4 (previously 5) is now selected.

Expected behaviour:
- Track selection is persistent when automatically removing tracks, although the position of the tracks within the list will change.

Further Info:
- Similar effects occur when the end of the currently playing track is reached. This does not just occur when double clicking.
- The position jumped to behind the newly playing track is equal to the number of tracks removed from the start of the playlist.
Comment 1 John Atkinson 2009-09-24 05:23:21 UTC
Proposed patch:
Comment 2 Kuba Serafinowski 2009-09-24 08:24:47 UTC
confirmed as of rev cd7ba53927c8777384043d85e44918aba64f17f3
Comment 3 Mark Kretschmann 2009-09-30 14:20:48 UTC
Thanks John, I've merged the patch into mainline. Seems to work nicely here :)

(further testing from others welcome)
Comment 4 langstr 2010-03-23 13:07:45 UTC
FYI: I just committed 21935f35a604ae1883633d11e9001c1df70ccb87

Playlist view cleanup: remove workaround for BUG 208349 (retaining selection during playlist item remove).
  - Don't call 'reset()' on signal 'layoutChanged' from the source model.
    I can not see any reason to do that, and the current maintainers don't remember a
    clear reason.
  - Remove '(save|restore)TrackSelection()'.
    These were added for BUG 208349, but it's something that QListView should be handling
    automatically. I don't see any point to them now that there are fewer junk signals
    flying through the ModelStack.
    I checked that I could reproduce the problem in v2.2.0, and also that I can not
    reproduce it in this commit where I've removed the workaround.

This removes your workaround, because I believe it is no longer needed.

In case I am wrong and the problem reappears for you, please re-open this bug report.