Bug 302299

Summary: Autoscrolling Lyrics are scrolling down if a song is rated via Context Browser's Current Track
Product: [Applications] amarok Reporter: Mathias Dietrich <dietrichmathias>
Component: Context View/Current TrackAssignee: Amarok Developers <amarok-bugs-dist>
Status: RESOLVED FIXED    
Severity: normal CC: bigyellowcactus, e.m.a.t.i.r.o.v, lfranchi, maddiemadan, mscho527, simon.esneault, vianasw, yashladia1
Priority: NOR    
Version: 2.8.0   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Attachments: Debug Output
Shorter output of previous attachment

Description Mathias Dietrich 2012-06-21 13:43:22 UTC
Autoscrolling Lyrics are scrolling down if a song is rated via Context Browser's Current Track

Reproducible: Always

Steps to Reproduce:
1. Play a song
2. Wait till autoscrolling starts
3. Rate the playing song via Context Browser Current Track
Actual Results:  
Lyrics are scrolled down by a fixed value. If you rate often enough the lyrics are scrolled down before the track ends.

Expected Results:  
Autoscrolling should not get interrupted
Comment 1 Myriam Schweingruber 2012-06-22 18:43:45 UTC
Actually you wish that the scrolling stops when you rate the song? 
But the scrolling follows the playback so why should it stop? And why would you "rate often"? I fail to see the usecase of that wish. But anyway, this is not a bug but a wish.
Comment 2 Mathias Dietrich 2012-06-25 09:44:01 UTC
I think you missunderstood me. It's obviously a bug, just reproduce it and then you understand it.

If I have a playing songs, and the lyrics are auto-scrolling during the playback.
Start to rate you playing song via Context Browser Current Track.
In the same moment you rate the song, your auto-scrolling lyrics scroll a very large step down.
If a user would re-rate the song again, the lyrics jump again a large step down and so on.

Normally if the user would rate the song, nothing would happen to the lyrics, they would just scrolling down via auto-scrolling. It seems that the Current's Track rating inflicts the lyrics plugin somehow, which is a bug.
Comment 3 Myriam Schweingruber 2012-06-25 11:00:11 UTC
Right, that explanation makes more sense then :) You initial description didn't talk about a jump to the bottom. I think this is more likely a bug in the Current Track applet, changing component.

Could you please start amarok from a Konsole with

amarok -d --nofork 2>> output.txt

do only the steps above and then quit and attach the output.txt to this report.
Comment 4 Mathias Dietrich 2012-06-25 11:26:13 UTC
Created attachment 72119 [details]
Debug Output

One addition, it's important to wait until the auto scrolling starts. 
You can not trigger the jumps when the lyrics do not auto-scroll.
Comment 5 Myriam Schweingruber 2012-06-28 13:10:57 UTC
Created attachment 72194 [details]
Shorter output of previous attachment

Thank you for the fast feedback. I attached a shorter output when the playing starts.
Comment 6 Myriam Schweingruber 2012-06-28 13:11:24 UTC
Setting status correctly.
Comment 7 Dominic Kexel 2012-11-12 21:24:46 UTC
I also noticed this bug (Amarok 2.5.0 on KDE 4.8.5)
Comment 8 MinSik CHO 2012-12-02 11:51:41 UTC
reproducible with amarok 2.6
Comment 9 Mayank Madan 2012-12-19 11:33:17 UTC
Rating using  Current track on context menu interrupts autoscrolling and the lyrics are scrolled down. Using v2.6.90-26-gbcdd84c
Comment 10 Myriam Schweingruber 2012-12-20 23:28:18 UTC
Confirmed by comment #9
Comment 11 Mikhail Ivchenko 2013-12-04 08:53:49 UTC
Reproducible with v2.8.0
Comment 12 yash ladia 2014-03-06 21:29:49 UTC
Patch created at https://git.reviewboard.kde.org/r/116641/

Please review
Comment 13 Albert Astals Cid 2017-02-04 10:35:00 UTC
Git commit 2a8cb3785e50ccb0d551442e3133ac1cc6c2e8f7 by Albert Astals Cid, on behalf of Yash Ladia.
Committed on 04/02/2017 at 10:33.
Pushed by aacid into branch 'master'.

Fix Bug 302299 - Autoscrolling Lyrics are scrolling down if a song is rated via Context Browser's Current Track

The bug was occuring since 'userAutoScrollOffset' and 'oldSliderPosition' were being reset when track metadata was changed. This should not happen.

I split the function: 'void _trackDataChanged( Meta::TrackPtr )' into 'void _trackChanged( Meta::TrackPtr )' and 'void _trackMetadataChanged( Meta::TrackPtr )'

REVIEW: 116641

M  +13   -5    src/context/applets/lyrics/LyricsApplet.cpp
M  +3    -1    src/context/applets/lyrics/LyricsApplet.h

https://commits.kde.org/amarok/2a8cb3785e50ccb0d551442e3133ac1cc6c2e8f7