[Slim-Checkins] r12489 - in /trunk/server: Slim/Control/Queries.pm strings.txt
fred at svn.slimdevices.com
fred at svn.slimdevices.com
Sun Aug 5 10:51:21 PDT 2007
Author: fred
Date: Sun Aug 5 10:51:20 2007
New Revision: 12489
URL: http://svn.slimdevices.com?rev=12489&view=rev
Log:
Bug: N/A
Description: Add "Play this song" in Jive songinfo
Modified:
trunk/server/Slim/Control/Queries.pm
trunk/server/strings.txt
Modified: trunk/server/Slim/Control/Queries.pm
URL: http://svn.slimdevices.com/trunk/server/Slim/Control/Queries.pm?rev=12489&r1=12488&r2=12489&view=diff
==============================================================================
--- trunk/server/Slim/Control/Queries.pm (original)
+++ trunk/server/Slim/Control/Queries.pm Sun Aug 5 10:51:20 2007
@@ -2769,10 +2769,13 @@
my $url = $request->getParam('url');
my $trackID = $request->getParam('track_id');
my $tagsprm = $request->getParam('tags');
+
my $menu = $request->getParam('menu');
-
+ my $insert = $request->getParam('menu_play');
+
# menu/jive mgmt
my $menuMode = defined $menu;
+ my $insertPlay = $menuMode && defined $insert;
if (!defined $trackID && !defined $url) {
$request->setStatusBadParams();
@@ -2803,14 +2806,15 @@
if (blessed($track) && $track->can('id')) {
+ my $trackId = $track->id();
+ $trackId += 0;
+
if ($menuMode) {
# decide what is the next step down
# generally, we go nowhere after songingo, so we get menu:nowhere...
# build the base element
- my $trackId = $track->id();
- $trackId += 0;
my $base = {
'actions' => {
# no go, we ain't going anywhere!
@@ -2841,6 +2845,9 @@
my $hashRef = _songData($track, $tags, $menuMode);
my $count = scalar (keys %{$hashRef});
+ # correct count if we insert "Play all songs"
+ $count++ if $insertPlay;
+
$count += 0;
$request->addResult("count", $count);
@@ -2852,6 +2859,40 @@
my $cnt = 0;
my $loopname = $menuMode?'item_loop':'songinfo_loop';
$request->addResult('offset', $start) if $menuMode;
+
+ # first PLAY item
+ if ($insertPlay) {
+
+ # insert first item if needed
+ if ($start == 0) {
+ $request->addResultLoop($loopname, $cnt, 'text', Slim::Utils::Strings::string('JIVE_PLAY_THIS_SONGS'));
+
+ # override the actions, babe!
+ my $actions = {
+ 'do' => {
+ 'player' => 0,
+ 'cmd' => ['playlistcontrol'],
+ 'params' => {
+ 'cmd' => 'load',
+ 'track_id' => $trackId,
+ },
+ },
+ # play/add taken care of in base
+ };
+ $request->addResultLoop($loopname, $cnt, 'actions', $actions);
+ $cnt++;
+ }
+
+ # correct db slice!
+ else {
+ # we are not adding our item but it is counted in $start
+ # (a query for tracks 1 10 needs to start at db 0! -- and go to db 9 (instead of 10))
+ # (a query for tracks 0 10 ALSO needs to start at db 0! -- and go to db 8 (instead of 9))
+ $start--;
+ }
+ # always fix $end
+ $end--;
+ }
while (my ($key, $val) = each %{$hashRef}) {
@@ -3180,6 +3221,7 @@
'cmd' => [$actioncmd],
'params' => {
'menu' => $nextMenu,
+ 'menu_play' => '1',
},
'itemsParams' => 'params',
},
@@ -3281,7 +3323,6 @@
# always fix $end
$end--;
}
-
for my $item ($rs->slice($start, $end)) {
Modified: trunk/server/strings.txt
URL: http://svn.slimdevices.com/trunk/server/strings.txt?rev=12489&r1=12488&r2=12489&view=diff
==============================================================================
--- trunk/server/strings.txt (original)
+++ trunk/server/strings.txt Sun Aug 5 10:51:20 2007
@@ -13788,5 +13788,8 @@
JIVE_PLAY_ALL_SONGS
EN Play all songs
+JIVE_PLAY_THIS_SONGS
+ EN Play this song
+
SEARCHFOR_PLAYLISTS
EN Search for playlists
More information about the checkins
mailing list