This is a light-weight replacement for foo_queuecontents made for fb2k 2.0 with dark mode and 64bit support.
It has no preferences and no custom columns like the original component. I may consider offering custom title formatting if anyone grumbles about the currently hardcoded %artist% - %title% display.
Currently, it's not possible to drag playlist/library items on to the window - you have to stick with the old fashioned way of using the context menu. But once items are added, they can be re-arranged by drag/drop and you can multi-select to remove, etc.
https://github.com/marc2k3/foo_queue_viewer/releases
1.0.3 released just now adds a popup window to the main View menu.
Thanks for making this! I haven't tried it yet, but I don't believe it would suit my needs in its current state. I have embedded a screenshot showing my foobar layout, with the old foo_queuecontents area just below the playlist view. For a suitable replacement, I would need feature parity as far as customizable columns goes. A perfect solution for me would be to have it somehow built-in to ColumnsUI so it could share all the current column options in the playlist view, but I don't expect such a thing to happen. My only actual problem with foo_queuecontents right now is the scrollbar not following dark mode preferences, but it's only a minor issue.
The second screenshot shows the columns I'm using in my queue contents editor.
Thank you again for making a replacement, and thank you for reading.
1.0.4 adds support for drag/dropping from playlist/library viewer selections.
I also knocked up a quick readme...
https://marc2k3.github.io/component/queue-viewer/
https://github.com/marc2k3/foo_queue_viewer/releases
popup window display dark like this (https://i.imgur.com/ob8JoyK.gif) to me while using default colors. I'm using old Windows 10 if that matter :)
That's weird. Thanks for spotting. :o
I obviously tested all built in DUI colour themes but I'm so used to running dark mode all the time, I didn't think to check with light mode/expect different behaviour.
1.0.5 should fix this.
https://github.com/marc2k3/foo_queue_viewer/releases
Thanks, it looks good now.
1.0.6 adds an option to save the queue when fb2k is closed. It will then be restored on the next start. It's off by default so toggle it by right clicking any viewer instance.
https://github.com/marc2k3/foo_queue_viewer/releases
Check the notes for how it works - it need to create a playlist file in your foobar2000 profile folder.
1.0.6 adds an option to save the queue when fb2k is closed. It will then be restored on the next start. It's off by default so toggle it by right clicking any viewer instance.
https://github.com/marc2k3/foo_queue_viewer/releases
Check the notes for how it works - it need to create a playlist file in your foobar2000 profile folder.
Thanks. :)
1.0.7
https://github.com/marc2k3/foo_queue_viewer/releases
- Fixes a bug where the selection state of moved items was not preserved.
1.0.8 adds custom title formatting for the Item column...
https://github.com/marc2k3/foo_queue_viewer/releases
I think I'm done now. I don't think multiple columns are ever happening. :))
Thank you!
Argh.... another bug fix. :o
1.0.9 https://github.com/marc2k3/foo_queue_viewer/releases
- Fixes a bug where the column header font was not set correctly.
1.0.10
https://github.com/marc2k3/foo_queue_viewer/releases
- Adds context menu options for sending playlist/library viewer selections to the queue. As
opposed to the existing add command, this flushes existing queue items first. There is also
an option to play immediately.
1.0.11
https://github.com/marc2k3/foo_queue_viewer/releases
- Fixes an issue where using the context menu to send active playlist items to the queue
wasn't handled in the special way needed for the `%queue_index%` to be available.
1.0.12
https://github.com/marc2k3/foo_queue_viewer/releases
- Improve UI colour handling.
1.0.13
https://github.com/marc2k3/foo_queue_viewer/releases
- Implement auto-scrolling when drag/dropping over the top/bottom of the list.
I should have noticed this wasn't functional earlier but never mind. :P
1.0.14
https://github.com/marc2k3/foo_queue_viewer/releases
- Add support for themed style to match `Default UI` and `Columns UI` playlists.
Hi Marc, whats the difference between context menu | Queue Viewer | Send to playback queue and build-in context menu | Add to playback queue?
The whole thread describes the fixed bugs/new features for each release. This is from 1.0.10 a few posts up: https://hydrogenaud.io/index.php/topic,123942.msg1024875.html#msg1024875
- Adds context menu options for sending playlist/library viewer selections to the queue. As
opposed to the existing add command, this flushes existing queue items first. There is also
an option to play immediately
A link to the full changelog is also available on the download page.
Also, I would have thought most long term fb2k users would be used to the terminology. Sending to playlists from album list/other library viewers has been around for ages and clears the target playlist contents first. This does the same for the queue.
Thanks, I didn't read the whole thread. Does a command Add to playback queue an play make sense?
Nope, that doesn't make sense to me. Adding as opposed to using the new send commands means you want to preserve existing queue items. Executing the play command plays the first queue item which is totally unrelated to the action that has just been performed.
edit: I suppose adding to the front of queue and playing immediately while keep existing items could make sense??
Just experimented with queue. The context menu of album list shows all three queue commands. Using Add to playback queue triggers indicator in "playing" column of the playlist (see screenshot, red circle). Your commands don't do that.
edit: I suppose adding to the front of queue and playing immediately while keep existing items could make sense??
I think this is confusing.
My component would populate that field (%queue_index%) if you were to use the context menu on a playlist selection.
AFAIK, there is no clean way to do the same for library viewer selections other than iterating every item and searching for it in the active playlist and using the playlist/item index to add instead of the handle. It's seems rather hacky to me but I don't see how else it can be done.
rightclick on an item or node in album view triggers Send to "Library viewer selection" playlist. Could you use %queue_index% for that playlist?
EDIT: Upps, Library viewer selection playlist has to be enabled in Preferences | Media Library.
I've just released 1.0.15
https://github.com/marc2k3/foo_queue_viewer/releases
-Make %queue_index% available when using the context menu Send options on Library
selections that are also present in the active playlist.
- Remove auto-scroll workarounds and use the latest foobar2000 SDK which fixes previously
reported issues.
Thanks, works now like build-in command.
Another stupid question, for QV as window: context menu of window title has entry Import Settings. Is this functional, if yes, how do I Export settings?
Heh, I'd genuinely never seen that context menu before. I guess it's common for all components that utilise ui_element_impl_withpopup from the SDK.
So it appears you can Copy which would be the same as copying an embedded UI element instance in layout editing mode. The clipboard contents can then be Pasted in Window Explorer as an .fth file. I guess you can import it / Paste it back in from explorer later.
In the case of this particular component, the only per instance setting is the Item column title formatting. The Keep queue on close option is a global setting stored in config.sqlite and would not be included.
edit: I suppose adding to the front of queue and playing immediately while keep existing items could make sense??
I would say adding after the current playing item would make sense. i.e. keeping existing queue items, and just inserting the selected one(s) at front, instead of adding them at the end. The 'play immediately' part is not needed at all (and it would override the current playing item, being confusing).
That way you would have full control about the order, being able to queue items to play asap or after the current list.
That's one things I find bothering about queue implementations (here or at Spotify), not being able to send a track to play right now without clearing the entire queue.
Please consider making title format string %tracknumber% %artist% - %title% default, because tracknumber gives orientation during reordering queue.
edit: I suppose adding to the front of queue and playing immediately while keep existing items could make sense??
I would say adding after the current playing item would make sense. i.e. keeping existing queue items, and just inserting the selected one(s) at front, instead of adding them at the end. The 'play immediately' part is not needed at all (and it would override the current playing item, being confusing).
That way you would have full control about the order, being able to queue items to play asap or after the current list.
That's one things I find bothering about queue implementations (here or at Spotify), not being able to send a track to play right now without clearing the entire queue.
IMHO append is sufficient, as you can mark added/appended tracks in QV and move them to the top of queue.
I've never used it but it seems like Play Next by Case can insert single items to the front of the queue....
https://www.foobar2000.org/components/view/foo_play_next
With the original foo_queuecontents and this, you can drag/drop multiple items straight to the front of the queue but I have no issue adding context menu items for those who want bindings to buttons/keyboard shortcuts. I would follow the convention of my existing Send commands - with and without play.
Case could extend his "Play next" with "selected tracks" (multiple) instead of "selected track" (one). Its not your cup of tea, Marc.
1.0.16
https://github.com/marc2k3/foo_queue_viewer/releases
You can guess what has been added.
1.0.16
https://github.com/marc2k3/foo_queue_viewer/releases
You can guess what has been added.
Great, thanks ;) Much better to not require another dependency and also being able to do it with a single menu entry which can be linked to a button, yep.
What do I care about the rubbish I said earlier? Good addition! Thanks.
Just realised I have a silly bug in it. The original send to option checked the selected item count did not exceed the queue limit (256). It would hide the menu items / refuse to execute if it did. Because I was flushing the queue, I didn't have to care about existing queue count. But with this new add feature, I have to check the combined total of existing queue items AND new item count otherwise existing queue items can get truncated if you select too many items. I'll have a fix out soon.
1.0.17 fixes the bug described in the previous post.
https://github.com/marc2k3/foo_queue_viewer/releases
The playlist viewer has the sort options "Reverse" and "Randomize" for tracks. What do you think about the same sort options for Queue?
Randomise is a good suggestion. Reverse is a bit weird but I guess it would be trivial to add at the same time.
Sometimes I like to hear my tracks in reverse order. Reverse in playlist has the problem, that the previous sort order might be destroyed unintentional. Its better to do that in a special "temporary" playlist, called Queue.
I've ran in to a stumbling block.... :-X
(https://i.imgur.com/WdpCezi.png)
foobar2000 core uses Randomize with z. British or US English? I don't know.
EDIT: The missing Dark Mode in submenu? This is only a cosmetic problem.
Menu issue is fixed.
And I'm British English so I will not be following core conventions of US English. I already use Randomise in JScript Panel 3. I also use colour extensively and I actually got the idea some years ago when I noticed musicmusic does the same in his Columns UI preferences.
As long-time JScript Panel 3 user, I remember "colour". Caused a lot of rewriting of old scripts. ;D
1.0.18
https://github.com/marc2k3/foo_queue_viewer/releases
Thanks.
Menu issue is fixed.
And I'm British English so I will not be following core conventions of US English. I already use Randomise in JScript Panel 3. I also use colour extensively and I actually got the idea some years ago when I noticed musicmusic does the same in his Columns UI preferences.
You can be neither from US, nor from UK, and mix both conventions everywhere since you couldn't care less hahahaha
Was gonna ask about the randomize thing, great to see it.
1.0.19 hopefully fixes a redraw glitch when toggling dark/light mode in Default UI.
https://github.com/marc2k3/foo_queue_viewer/releases
Strictly speaking, the context menu is for manipulating a selection of tracks. Sort commands apply to whole queue, so they should be placed in a main menu of foobar2000 (View | Queue Viewer > Sort > Sort by)?
Yeah, the current situation does stink. I did mention it in the changelog/docs but it's very counter-intuitive.
Main menu commands are easy to implement.
Should be:
View | Queue Viewer > Queue Viewer
View | Queue Viewer > Sort by...
View | Queue Viewer > Randomise
View | Queue Viewer > Reverse
I'm not going with main menu commands.
Settings/sort are now only available by right clicking the column header...
1.0.20: https://github.com/marc2k3/foo_queue_viewer/releases
Updated docs: https://marc2k3.github.io/component/queue-viewer/
Good solution! Satis.
EDIT: One minor thing: Sort context menu item is not visible, if no track or one track is in Queue. It could be visible, but greyed out.
It was obviously a deliberate choice to hide the sort menu if the queue contains less than 2 items. If you really want to see it greyed out instead, I'll consider it for the next release.
The advantage of greyed out is, that the full range of functions under all circumstances is shown. Novice user could benefit. (Don't want to use the argument, that it is a foobar2000 core convention (DUI playlist viewer). :-X )
Drag/drop from playlist to queue panel: "Playing" column indicator in playlist is not updated.
Well dropped handles are of unknown origin so I guess I need hacks like my context menu commands that try and find each one in the active playlist.
Next release will support it...
(https://i.imgur.com/UCiH2lK.gif)
1.0.21
https://github.com/marc2k3/foo_queue_viewer/releases
- Check dropped items and restored items against the active playlist to make %queue_index% available if possible.
Thanks. There is something wrong: The panel autoscrolls, like clicking middle mousebutton in a Browser.
More info please. I have no idea what you're talking about/how I could reproduce???
edit: incidentally, the holding down the middle mouse button to scroll is supported but of course that's all built in code provided by Peter's excellent SDK. I did nothing to make that happen. :P
Yes I pressed middle button. Don't get that undone. See video
Suggestion. Add a Remove All / Clear Queue option under the Sort item on the popup menu.
Removed panel and Tab. Added Tab and queue panel. Problem gone.
Suggestion. Add a Remove All / Clear Queue option under the Sort item on the popup menu.
Build-in is the main menu command Playback | Flush playback queue
EDIT: Try to reproduce the issue. Tried with open context menu and middle click. No success.
Grimes, I just discovered that you have uploaded the Queue Viewer component that marc2k3 removed to the repository.
This is great news.
I would like to know if you are going to maintain it and if you plan to upload the rest of the component that marc2k3 removed.
I would like you to upload the Qsearch that although it is a simple component it fulfills the function that Quick Search did (for 32-bit) and that its author has not updated it for a long time.
Thank you very much.
Of course, I can upload QSearch, but I don't have the (latest) fb2k-component file. Please attach it. Can't maintain the components, because I don't have the skills and the source code.
Thing is source code is missing, but here are some components. V2
V1.6
(I don't have the rest)
@grimes , could you make sure your uploads retain the original name.
Using Quick Search here is highly misleading...
https://www.foobar2000.org/components/view/foo_qsearch
It should be QSearch.edit: I see this is fixed now, thanks.
Of course, I can upload QSearch, but I don't have the (latest) fb2k-component file. Please attach it. Can't maintain the components, because I don't have the skills and the source code.
Message to Grimes:
Here I leave you 2 more components of those removed by marc2k3 so you can upload them to the repository.
Do you have a description for the two components?
I've found these links - perhaps it helps:
foobar2000:Components/Cover Resizer (foo_cover_resizer) (https://wiki.hydrogenaud.io/index.php?title=Foobar2000:Components/Cover_Resizer_(foo_cover_resizer))
foobar2000:Components/Cover Info (foo_cover_info) (https://wiki.hydrogenaud.io/index.php?title=Foobar2000:Components/Cover_Info_(foo_cover_info))
for foo_cover_info
Usage
Because it's not possible to query files for embedded album art within foobar2000, this component scans a selection of files and stores the results in a database. Updating of data is not automatic so if you add/remove art at a later date, it's up to you to run the scan again. Data is available in the following fields which are available wherever title formatting is supported.
%front_cover_width%
%front_cover_height%
%front_cover_size% (nicely formatted image size in KB/MB)
%front_cover_format%
%front_cover_bytes% (raw image size)
Note that database records are attached to the %path% of each file so if files are renamed or moved, associated data will be orphaned and the files will need re-scanning.
That last sentence is outdated. Data is preserved if files are renamed/moved with File Operations. Only external renaming/moving would cause records to be orphaned.
I would like you to upload the Qsearch that although it is a simple component it fulfills the function that Quick Search did (for 32-bit) and that its author has not updated it for a long time.
You were not addressing me with the request but here is Marc2k3's QSearch 1.0.5, the most recently uploaded version (includes the sources).
I hate myself for this but I've attached QSearch 1.0.6.
The latest SDK has this note....
SDK: Updated search_index & library_index documentation. Please do not use library_index, no longer works as intended, call search_index methods instead.
The previous versions used library_index. :/
I take it this has been abandoned? I only just found out that this has a function I've been wanting for a long time - Keep Queue contents after closing. This would be just about perfect for me if it could also show the queue as its own playlist. Drat.
I apologize for repeating myself before. I was perhaps overly excited.
I always thought the playlist thing was nonsensical which is why I never added it during its very short life. If you want a playlist, use a playlist.
Aha! It looks like I can enable the Keep Queue feature of your component while using the other features I need from the other one I use! Best of both worlds for my use case. Thank you so much for this component, marc2k3!
A new SDK release made me realise I wasn't handling UI colours in the proper way. What I did worked but it wasn't displaying inactive selection colours when other panels had focus. This release fixes that bug.
Documentation has been restored here: https://jscript-panel.github.io/other/
This was supposed to be abandoned but I fixed a silly bug where fb2k keyboard shortcuts were suppressed if this panel had focus in Columns UI. DUI was unaffected.