Bugzilla – Bug 1790
Enter search query, press PLAY, should play all matches
Last modified: 2009-09-08 09:29:30 UTC
Navigate into search, enter the search query (but don't press right twice to execute the search), then press PLAY. The search should be executed and all results should be placed on the now playing playlist. (same with ADD).
If I am reading this corretly, then you want PLAY and ADD to function from within INPUT.Text to activate the search and play all results. Both of these buttons trigger passback, which in this case would feed back to 'home' mode (since search is just a home menu addon instead of a mode). This likely means that we need to expand the api to allow modules to add function to the home mode, or we're going to have to keep hardwiring functions. OR, perhaps a functionRef can be sent to INPUT.Text to handle direction button functions?
That's right. This was the old behavior. Not sure what the right way to implement this is. Wouldn't it be great if button modes were objects that you could subclass and add behavior to?
heh...patches welcome ;)
Created attachment 841 [details] on play, go right into playing all search results. As it turns out, there is a way to do this. Input.Text does an exit on play instead of passback. In Browse DB, we only deal with the search terms if the 'all' item is selected. So, when we detect the PLAY exittype, we can set the 'all' param going into browseDB and it traps the play function there.
Play goes RIGHT? Hm, it shouldn't change your location... Is there a way to trap that?
no, play does an exit_play from INPUT.Text, which triggers a call to startSearch, which pushes into browseDB, which in turn would normally go into INPUT.List, where we get a passback and finally the 'play' function in browsedb. I could trap the play all the way back at startSearch, but then I'd have to duplicate much of the code that is already in the play function of browsedb that we are currently getting (thus the play of item one when we play after entering search term). Using INPUT.* modes often results in changes of mode due to the exit_* and passback functions. These rely on external handlers to complete the actual mode change according to the passback or exit params.
Ok, so is this hard? :)
it isn't THAT hard, but its unnecessary. This simply does a specific check for PLAY in the exit type and skips over the rest to get to the task at hand. Maybe my title should have said "on PLAY, go directly into playing all search results", since it uses a special param to jump through a few steps (very similar to how we do a play all for the MMM mixed playlists)
Is this still an issue for 6.5?