EngineController: don't do serious work in slotAboutToFinish()
...because slotAboutToFinish() may be called twice (or not at all) per track by some Phonon backends (hi, vlc) - increase play count rather in slotNewTrackPlaying() or in slotFinished(). This also needs to change how m_currentTrack is handled, because slotNewTrackPlaying() needs to have the old one in m_currentTrack. Also, PlaylistActions::requestNextTrack() is changed to be a read-only method that shouldn't change playlist state especially when there is no next track. PlaylistActions::reflectPlaybackFinished() is introduced to do the thing and is called from EngineController::slotFinished(), which is a much better place for it than slotAboutToFinish(). Reporters of CCed bugs, please re-test your bug with this commit applied, it is possible it has been resolved by this patch. BUG: 299890 CCBUG: 268892 CCBUG: 277197 CCBUG: 302652 CCBUG: 303580 CCBUG: 302240 FIXED-IN: 2.6
Showing
- ChangeLog 1 addition, 0 deletionsChangeLog
- src/EngineController.cpp 44 additions, 35 deletionssrc/EngineController.cpp
- src/playlist/PlaylistActions.cpp 17 additions, 16 deletionssrc/playlist/PlaylistActions.cpp
- src/playlist/PlaylistActions.h 8 additions, 0 deletionssrc/playlist/PlaylistActions.h
Loading
Please register or sign in to comment