(ev)
| 3618 | } |
| 3619 | |
| 3620 | function onLibFilterKeyDown(ev) { |
| 3621 | ev.stopPropagation(); |
| 3622 | switch (ev.which) { |
| 3623 | case 27: // Escape |
| 3624 | ev.preventDefault(); |
| 3625 | if (libFilterDom.value.length === 0) { |
| 3626 | libFilterDom.blur(); |
| 3627 | } else { |
| 3628 | // queue up a search refresh now, because if the user holds Escape, |
| 3629 | // it will blur the search box, and we won't get a keyup for Escape. |
| 3630 | setTimeout(clearBoxAndSearch, 0); |
| 3631 | } |
| 3632 | return; |
| 3633 | case 13: // Enter |
| 3634 | ev.preventDefault(); |
| 3635 | var keys = []; |
| 3636 | for (var i = 0; i < player.searchResults.artistList.length; i += 1) { |
| 3637 | var artist = player.searchResults.artistList[i]; |
| 3638 | for (var j = 0; j < artist.albumList.length; j += 1) { |
| 3639 | var album = artist.albumList[j]; |
| 3640 | for (var k = 0; k < album.trackList.length; k += 1) { |
| 3641 | var track = album.trackList[k]; |
| 3642 | keys.push(track.key); |
| 3643 | } |
| 3644 | } |
| 3645 | } |
| 3646 | if (ev.altKey) shuffle(keys); |
| 3647 | if (keys.length > 2000) { |
| 3648 | if (!confirm("You are about to queue " + keys.length + " songs.")) { |
| 3649 | return; |
| 3650 | } |
| 3651 | } |
| 3652 | if (ev.shiftKey) { |
| 3653 | player.queueTracksNext(keys); |
| 3654 | } else { |
| 3655 | player.queueOnQueue(keys); |
| 3656 | } |
| 3657 | return; |
| 3658 | case 40: |
| 3659 | ev.preventDefault(); |
| 3660 | selection.selectOnlyFirstPos('library'); |
| 3661 | selection.scrollToCursor(); |
| 3662 | refreshSelection(); |
| 3663 | libFilterDom.blur(); |
| 3664 | return; |
| 3665 | case 38: |
| 3666 | ev.preventDefault(); |
| 3667 | selection.selectOnlyLastPos('library'); |
| 3668 | selection.scrollToCursor(); |
| 3669 | refreshSelection(); |
| 3670 | libFilterDom.blur(); |
| 3671 | return; |
| 3672 | } |
| 3673 | |
| 3674 | function clearBoxAndSearch() { |
| 3675 | libFilterDom.value = ""; |
| 3676 | ensureSearchHappensSoon(); |
| 3677 | } |
nothing calls this directly
no test coverage detected