Bug 320718

Summary: Streams do not auto-play on double click
Product: amarok Reporter: Mark Kretschmann <kretschmann>
Component: generalAssignee: Amarok Developers <amarok-bugs-dist>
Severity: normal CC: darthcodus, matej
Priority: NOR Keywords: release_blocker
Version: 2.7-git   
Target Milestone: 2.8   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In: 2.8

Description Mark Kretschmann 2013-06-04 13:41:08 UTC
When double-clicking a stream (-playlist) from Cool-Streams, the stream is added to the playlist, but it does not start playing.

Reproducible: Always
Comment 1 Matěj Laitl 2013-06-04 18:31:08 UTC
Righto, this is because the Playlists::canExpand() and related hacks in PlaylistController that work-around convoluted logic in ScriptableService. I have an idea how to fix the ScriptableService (which needs a *serious* refactor, but we won't do it for 2.8).
Comment 2 Matěj Laitl 2013-06-04 18:35:08 UTC
I wasn't clear, I think I can fix this problem in ScriptableService for 2.8, perhaps in a bit dirty way. Only the refactor must wait post-2.8 (and is lonely seeking his saviour, perhaps Anmol, but let's not put too much on his shoulders).
Comment 3 Matěj Laitl 2013-07-29 20:57:12 UTC
Git commit f3e894f9f1385c1c4f20ddf2adfb090e269914e4 by Matěj Laitl.
Committed on 29/07/2013 at 16:26.
Pushed by laitl into branch 'master'.

ScriptableService: change PlaylistController hack to something more decent

...or at least move the hack out of a very generic class
(PlaylistController) to where it belongs, the ScriptableService. Fixes
tracks not being instantly playable on click bug and removes use of a
deprecated Playlist::makeLoadingSync() from PlaylistController.

 * Radio streams from scripted services are now instantly playable.

M  +1    -0    ChangeLog
M  +1    -0    src/CMakeLists.txt
M  +2    -13   src/playlist/PlaylistController.cpp
M  +1    -1    src/services/ServiceMetaBase.h
M  +6    -5    src/services/scriptable/ScriptableService.cpp
A  +81   -0    src/services/scriptable/ScriptableServiceCollectionTreeModel.cpp     [License: GPL (v2+)]
A  +40   -0    src/services/scriptable/ScriptableServiceCollectionTreeModel.h     [License: GPL (v2+)]
M  +23   -3    src/services/scriptable/ScriptableServiceMeta.cpp
M  +10   -0    src/services/scriptable/ScriptableServiceMeta.h
M  +32   -16   src/services/scriptable/ScriptableServiceQueryMaker.cpp
M  +7    -1    src/services/scriptable/ScriptableServiceQueryMaker.h