Foobar2000:Components/Queue Contents Editor (foo queuecontents): Difference between revisions

From Hydrogenaudio Knowledgebase
mNo edit summary
 
(59 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{fb2k}}
{{fb2k}}
[[Category:foobar2000 3rd-Party Components|Queue Contents Editor (foo queuecontents)]]
[[Category:Foobar2000 Legacy Default UI components|Legacy Default UI components]]
[[Image:xxx.png|thumb|right|405px|Queue Contents Editor]]
[[Category:Foobar2000 Legacy Columns UI components|Legacy Columns UI components]]
{{infobox foobar2000 component
| name                = Queue Contents Editor
| screenshot          = [[Image:general.png|256px]]
| caption              = Queue Contents Editor
| module_name          = foo_queuecontents
| developer            = Sami Salonen
| repository          = [https://github.com/ssalonen/foo_queuecontents github]
| released            =
| released_ref        =
| stable_release      = 0.5.1
| stable_release_date  = 2012-03-11
| preview_release      =
| preview_release_date =
| foobar2000_minimum  = 1.1
| foobar2000_maximum  =
| foobar2000_ui_module = Default UI, Columns UI
| use                  =
| license              = foobar2000 1.3 SDK
}}
 
 
=General=
=General=
'''foo_queuecontents''' enables the user to edit and view queue contents through an ui element. Both the Default User Interface (DUI) and Columns User Interface (CUI/uie) are supported. As a legacy option, queue contents can also be viewed and edited by a special queue playlist, which is updated automatically with queue contents.
'''foo_queuecontents''' enables the user to edit and view queue contents through an ui element. Both the Default User Interface (DUI) and Columns User Interface (CUI/uie) are supported. As a legacy option, queue contents can also be viewed and edited by a special queue playlist, which is updated automatically with queue contents.
Line 8: Line 29:


===Download link===
===Download link===
The component is available from [http://sites.google.com/site/salskisite/foo_queuecontents/foo_queuecontents.zip?attredirects=0&d=1 here]. Unzip '''foo_queuecontents.dll''' to foobar2000 components directory (typically '''c:\Program Files\foobar2000\components''').
The component is available from [https://www.foobar2000.org/getcomponent/46d3e5387850b59fe7fbfa674f29de4c/foo_queuecontents.fb2k-component here].
 
Source code for the component is available from [https://github.com/ssalonen/foo_queuecontents github]. Please see the license files.
Source code for the component is available from [http://sites.google.com/site/salskisite/foo_queuecontents/]. The licence is inside the zip file.


===Discussion===
===Discussion===
Please use [http://www.hydrogenaudio.org/forums/index.php?showtopic=73648 this thread] to provide feedback, or to report any bugs you might have found.
Please use [https://hydrogenaud.io/index.php/topic,73648 this thread] to provide feedback, or to report any bugs you might have found.


===Requirements===
===Requirements===
foobar2000 1.x and Column UI 0.3.8.x (Optional). The component will not work with previous versions of foobar.
foobar2000 1.1 (or later) and Column UI 0.3.8.x (Optional). The component will not work with previous versions of foobar.


===Getting started===
===Getting started===
Write something here
The recommended way to use foo_queuecontents is to use the UI element. Just add the panel as you would any other UI element. The element can be found under ''Utility'' category in DUI, or under ''Panels'' category in CUI with the name ''Queue Contents Editor''.
 
The component is ready to use :)


=Features and Usage=
=Features and Usage=
TODO:general description.
As stated before the component supports two kind of interfaces: UI element (CUI/DUI) and a special playlist for displaying/editing queue contents.


=== UI Element ===
=== UI Element ===
[[Image:item_context.png|thumb|right|275px|UI Element: Context menu for queue items]]
[[Image:header_context.png|thumb|right|275px|UI Element: Context menu for column header]]
UI element works with both popular user interfaces for foobar: Default UI and Columns UI.
UI element works with both popular user interfaces for foobar: Default UI and Columns UI.
Following features are supported in each:
Following features are supported in each:
* Views items currently in the queue using interface similar to foobar default playlist component.
* Views items currently in the queue using interface similar to foobar default playlist component.
* Reorder queue items by drag & drop, and by using keyboard shortcuts similar to foobar default playlist component.
* Reorder queue items by drag & drop, and by using keyboard shortcuts similar to foobar default playlist component.
* Delete queue items.
* Delete queue items through the context menu, or pressing the delete key.
* Add items to queue by drag & drop. Files can be dragged either outside or inside from foobar. Files that are dragged from a foobar playlist are queued in the same way they would have been if 'Add to Playback Queue' context menu option would have been used.
* Add items to queue by drag & drop. Files can be dragged either outside or inside from foobar. Files that are dragged from a foobar playlist are queued in the same way they would have been with the ''Add to Playback Queue'' command.
* Fully user-customizable columns in the UI element.
* Fully user-customizable columns in the UI element. You can add, delete and reorder columns however you like. User can define new columns with custom format strings from the preferences.
* Optionally auto-size of columns so that ''column width/element width'' ratio is kept constant.
* Optionally auto-size of columns so that ''column width/element width'' ratio is kept constant (''Auto-scale Columns with Window Size'').
* Optionally show or hide column header.
* Optionally show or hide the column header. You can always show the column header by clicking anywhere in the UI element and clicking ''Show Column Header''.
 
* Frame style of the component can be changed with Columns UI (CUI) by clicking anywhere in the UI element and choosing a style from the ''Frame style'' context menu.
TODO: pic.


=== Playlist (legacy) ===
=== Playlist (legacy) ===
Line 46: Line 69:
* Queue playlist functionality is disabled by default but it can be enabled from the preferences.
* Queue playlist functionality is disabled by default but it can be enabled from the preferences.


TODO: pic.
=Configuration=
[[Image:preferences.png|thumb|300px|Queue Contents Editor Preferences]]
Configuration of the columns is very straight-forward and should be familiar to anyone with foobar DUI experience. Each column has the following properties:
* Name, used for the column header in the UI element
* Pattern, format string for displaying information about the queue item. Click ''Syntax Help'' for more information on format strings.
* Alignment, alignment of the column.
 
In the pattern you can also use ''%queue_index%'' to reference item's position in the queue (first one has index 1), and ''%queue_total%'' to reference items currently in a queue. In addition you can use ''%playlist_name%'' to refer to the playlist name of the queued item. Similarly, ''%list_index%'' and ''%list_total%'' tell you the position and size of the playlist corresponding to the queued item.
 
For each queuecontents UI element you have, you can choose different columns to display by right-clicking the column header.
 


=Configuration=
As a legacy option, foo_queuecontents supports reflecting of playlist contents to a special playlist. You can enable/disable the functionality from the preferences using the checkbox ''Enable Queue Playlist Feature''.
TODO: pic. + explanation


=Change Log=
=Change Log=
* '''Upcoming version 0.3.2 / 2010-04-xx'''
* '''0.5.1 / 2012-03-11
** Improvements.
*** Frame style of the component can be changed with Columns UI (CUI) interface. DUI components use the same frame style as before, and with DUI the style cannot be changed.
* '''0.5 / 2012-01-07
** Improvements:
*** Addition of two new context menu options ("Move Up" and "Move Down"). [http://www.hydrogenaudio.org/forums/index.php?showtopic=73648&view=findpost&p=778481 Suggested] by auditorium.
** Bug fixes:
*** Drag & Drop of columns fixed (again!). Tested quite thoroughly this time.
*** Ctrl+Shift+Up/Down crashed when all the items were selected.
*** Minor UI fixes regarding item selection and focus when opening context menu.
* '''0.4.5 / 2011-09-13
** Improvements:
*** Standalone (pop-up) window can be closed with ESC or ALT+F4
** Bug fixes:
*** Selection behaves similarly to default playlist on item delete (focus & selection)
*** Item focus should be preserved on queue update
* '''0.4.4. / 2011-08-09
** Bug fixes:
*** Fields available in formatting strings (added by this component) are now case-insensitive as they should be, e.g. %QUEUE_INDEX% is same as %queue_index%.
** Improvements:
*** Additional fields available in formatting strings: %playlist_name% (name of the queued playlist corresponding to queued item), %list_index% (index of the queued item in the queued playlist), %list_total% (total number of items in the queued playlist).
*** Queue playlist functionality no longer identifies the ''queue playlist'' by name. This makes it safe to have other playlists with the same name as the ''queue playlist''.
* '''0.4.3. / 2011-06-08
** Bug fixes:
*** Fixed incorrect behaviour (addition of 'ghost rows') when adding the first column. Reported [http://www.hydrogenaudio.org/forums/index.php?showtopic=73648&view=findpost&p=755835 here].
* '''0.4.2 / 2011-05-20'''
** Bug fixes:
*** Column reordering should work correctly now.
* '''0.4.1 / 2011-05-04'''
** Rebuilt with foobar SDK 1.1. From now on requires at least foobar 1.1.
* '''0.4.0 / 2011-02-24'''
** Bug fixes:
*** Fixed bug with newest columns ui and foobar 1.1.3+. With autosize enabled, all the columns disappeared on foobar start.
*** Component about dialog now has correct wiki url (pointing to this page)
* '''0.3.9 / 2010-05-20'''
** Bug fixes:
*** Finally fixed the bug which broke completely the queuecontents playlist behaviour.
** Improvements:
*** More default columns. They will be visible only for new installations (or if you reset your settings).
*** Better component description.
* '''0.3.8 / 2010-05-19'''
** Bug fixes:
*** Drag & Drop from queue playlist to UI element works now as expected (it will queue the items again to the specified position in the queue).
*** Removed warning related to configuration on first UI element startup since it is always expected.
** Improvements:
*** Drag & Drop to UI element from a playlist queues items to correct position
* '''0.3.7 / 2010-05-18'''
** Bug fixes:
*** Erratic queue playlist behaviour fixed.
** Improvements:
*** Queue playlist supports drag & drop better.
* '''0.3.6 / 2010-05-15'''
** Bug fixes:
*** Queue playlist item reorder problems solved.
*** Fixed crash when removing queuecontents panel when using Columns UI.
* '''0.3.5 / 2010-05-07'''
** Bug fixes:
*** Column order is preserved correctly after drag & drop of columns.
* '''0.3.4 / 2010-05-07'''
** Bug fixes:
*** Left and Right cursor keys works correctly in preferences when editing columns.
* '''0.3.3 / 2010-04-22'''
** Bug fixes:
*** Alignment of columns is now correctly displayed in the settings.
* '''0.3.2 / 2010-04-20'''
** Bug fixes:
** Bug fixes:
*** Changes to column names are updated immediately in ui elements.
*** Changes to column names are updated immediately in ui elements.
Line 59: Line 155:
*** Fixed column size glitches when enabling/disabling auto-sizing of columns
*** Fixed column size glitches when enabling/disabling auto-sizing of columns
** Improvements:
** Improvements:
*** %queue_total% supported in format strings.
*** UI element automatically refreshes items when one of the queue items has a metadata change.
*** UI element has the same border style than the DUI playlist view.
*** Preferences dialog: When configuring columns, no need to press return key anymore, text is committed automatically. Also improved processing of ESC and other keys in the prerences.
*** Preferences dialog: When configuring columns, no need to press return key anymore, text is committed automatically. Also improved processing of ESC and other keys in the prerences.
*** Preferences dialog: Columns are sized reasonably by default
*** Preferences dialog: Columns are sized reasonably by default
*** Preferences dialog: ''Syntax Help'' button for HA Syntax Help.
*** Preferences dialog: ''Syntax Help'' button for HA Syntax Help.
*** Preferences dialog: Help button brings to this wiki page.
*** Drag from playlist to ui element now correctly queues the item preserving the "link" to the playlist (i.e. playlist items will have %queue_index%) for the dragged items in the playlist).  
*** Drag from playlist to ui element now correctly queues the item preserving the "link" to the playlist (i.e. playlist items will have %queue_index%) for the dragged items in the playlist).  
*** Preferences dialog: Help button brings to this wiki page.
**** Behaviour tested with DUI playlist and various playlist components for CUI.
**** Behaviour tested with DUI playlist and various playlist components for CUI.
**** NOTE: As far as I know there is no proper way to do this, and currently the program checks every drop against the active playlist selection. If they are the same (same items and in the same order), drop is interpreted as queuing from the playlist. In addition, I've implemented a check that matches the dropped items against ''currently selected items''. ''Currently selected items'' are the selected items of the currently focused UI element. This is not 100% fool proof but it should work in 99.9 % of the regular cases. (And in the 0.01 % of the cases it still doesn't explode the universe).
**** NOTE: As far as I know there is no proper way to do this, and currently the program checks every drop against the active playlist selection. If they are the same (same items and in the same order), drop is interpreted as queuing from the playlist. In addition, I've implemented a check that matches the dropped items against ''currently selected items''. ''Currently selected items'' are the selected items of the currently focused UI element. This is not 100% fool proof but it should work in 99.9 % of the regular cases. (And in the 0.01 % of the cases it still doesn't explode the universe).

Latest revision as of 17:30, 23 September 2022

Foobar2000_Logo.png
Queue Contents Editor

Queue Contents Editor
Developer(s) Sami Salonen
Repository github
Release information
Initial release
Stable release 0.5.1 (March 11, 2012)
Preview release
foobar2000 compatibility
Architecture {{{foobar2000_architecture}}}
Minimum version 1.1
Maximum version
UI module(s) Default UI, Columns UI
Additional information
Use
License foobar2000 1.3 SDK
Discussion thread {{{discussion_thread}}}
View all components


General

foo_queuecontents enables the user to edit and view queue contents through an ui element. Both the Default User Interface (DUI) and Columns User Interface (CUI/uie) are supported. As a legacy option, queue contents can also be viewed and edited by a special queue playlist, which is updated automatically with queue contents.

The component started as a modification of foo_locktest (by foosion) but since then it has developed much further.

Download link

The component is available from here. Source code for the component is available from github. Please see the license files.

Discussion

Please use this thread to provide feedback, or to report any bugs you might have found.

Requirements

foobar2000 1.1 (or later) and Column UI 0.3.8.x (Optional). The component will not work with previous versions of foobar.

Getting started

The recommended way to use foo_queuecontents is to use the UI element. Just add the panel as you would any other UI element. The element can be found under Utility category in DUI, or under Panels category in CUI with the name Queue Contents Editor.

The component is ready to use :)

Features and Usage

As stated before the component supports two kind of interfaces: UI element (CUI/DUI) and a special playlist for displaying/editing queue contents.

UI Element

UI Element: Context menu for queue items
UI Element: Context menu for column header

UI element works with both popular user interfaces for foobar: Default UI and Columns UI. Following features are supported in each:

  • Views items currently in the queue using interface similar to foobar default playlist component.
  • Reorder queue items by drag & drop, and by using keyboard shortcuts similar to foobar default playlist component.
  • Delete queue items through the context menu, or pressing the delete key.
  • Add items to queue by drag & drop. Files can be dragged either outside or inside from foobar. Files that are dragged from a foobar playlist are queued in the same way they would have been with the Add to Playback Queue command.
  • Fully user-customizable columns in the UI element. You can add, delete and reorder columns however you like. User can define new columns with custom format strings from the preferences.
  • Optionally auto-size of columns so that column width/element width ratio is kept constant (Auto-scale Columns with Window Size).
  • Optionally show or hide the column header. You can always show the column header by clicking anywhere in the UI element and clicking Show Column Header.
  • Frame style of the component can be changed with Columns UI (CUI) by clicking anywhere in the UI element and choosing a style from the Frame style context menu.

Playlist (legacy)

Queue playlist functionality has been from the start. It is now considered obsolete/legacy option since reflecting queue contents in a separate playlist is confusing to say the least. It also has strange behaviour (due to inherent features of a playlist) that might confuse people. However, the functionality is preserved for compatibility reasons. UI element is recommended over the playlist functionality.

Features:

  • Queue contents are reflected to a special playlist. The items are ordered according to their queue position, i.e. items on the top of the playlist are played first.
  • All changes (deletions, insertions and reordering) to playlist is reflected also to queue.
  • Queue playlist name can be changed by just renaming the playlist. It can also be changed from the foobar preferences.
  • Queue playlist functionality is disabled by default but it can be enabled from the preferences.

Configuration

Queue Contents Editor Preferences

Configuration of the columns is very straight-forward and should be familiar to anyone with foobar DUI experience. Each column has the following properties:

  • Name, used for the column header in the UI element
  • Pattern, format string for displaying information about the queue item. Click Syntax Help for more information on format strings.
  • Alignment, alignment of the column.

In the pattern you can also use %queue_index% to reference item's position in the queue (first one has index 1), and %queue_total% to reference items currently in a queue. In addition you can use %playlist_name% to refer to the playlist name of the queued item. Similarly, %list_index% and %list_total% tell you the position and size of the playlist corresponding to the queued item.

For each queuecontents UI element you have, you can choose different columns to display by right-clicking the column header.


As a legacy option, foo_queuecontents supports reflecting of playlist contents to a special playlist. You can enable/disable the functionality from the preferences using the checkbox Enable Queue Playlist Feature.

Change Log

  • 0.5.1 / 2012-03-11
    • Improvements.
      • Frame style of the component can be changed with Columns UI (CUI) interface. DUI components use the same frame style as before, and with DUI the style cannot be changed.
  • 0.5 / 2012-01-07
    • Improvements:
      • Addition of two new context menu options ("Move Up" and "Move Down"). Suggested by auditorium.
    • Bug fixes:
      • Drag & Drop of columns fixed (again!). Tested quite thoroughly this time.
      • Ctrl+Shift+Up/Down crashed when all the items were selected.
      • Minor UI fixes regarding item selection and focus when opening context menu.
  • 0.4.5 / 2011-09-13
    • Improvements:
      • Standalone (pop-up) window can be closed with ESC or ALT+F4
    • Bug fixes:
      • Selection behaves similarly to default playlist on item delete (focus & selection)
      • Item focus should be preserved on queue update
  • 0.4.4. / 2011-08-09
    • Bug fixes:
      • Fields available in formatting strings (added by this component) are now case-insensitive as they should be, e.g. %QUEUE_INDEX% is same as %queue_index%.
    • Improvements:
      • Additional fields available in formatting strings: %playlist_name% (name of the queued playlist corresponding to queued item), %list_index% (index of the queued item in the queued playlist), %list_total% (total number of items in the queued playlist).
      • Queue playlist functionality no longer identifies the queue playlist by name. This makes it safe to have other playlists with the same name as the queue playlist.
  • 0.4.3. / 2011-06-08
    • Bug fixes:
      • Fixed incorrect behaviour (addition of 'ghost rows') when adding the first column. Reported here.
  • 0.4.2 / 2011-05-20
    • Bug fixes:
      • Column reordering should work correctly now.
  • 0.4.1 / 2011-05-04
    • Rebuilt with foobar SDK 1.1. From now on requires at least foobar 1.1.
  • 0.4.0 / 2011-02-24
    • Bug fixes:
      • Fixed bug with newest columns ui and foobar 1.1.3+. With autosize enabled, all the columns disappeared on foobar start.
      • Component about dialog now has correct wiki url (pointing to this page)
  • 0.3.9 / 2010-05-20
    • Bug fixes:
      • Finally fixed the bug which broke completely the queuecontents playlist behaviour.
    • Improvements:
      • More default columns. They will be visible only for new installations (or if you reset your settings).
      • Better component description.
  • 0.3.8 / 2010-05-19
    • Bug fixes:
      • Drag & Drop from queue playlist to UI element works now as expected (it will queue the items again to the specified position in the queue).
      • Removed warning related to configuration on first UI element startup since it is always expected.
    • Improvements:
      • Drag & Drop to UI element from a playlist queues items to correct position
  • 0.3.7 / 2010-05-18
    • Bug fixes:
      • Erratic queue playlist behaviour fixed.
    • Improvements:
      • Queue playlist supports drag & drop better.
  • 0.3.6 / 2010-05-15
    • Bug fixes:
      • Queue playlist item reorder problems solved.
      • Fixed crash when removing queuecontents panel when using Columns UI.
  • 0.3.5 / 2010-05-07
    • Bug fixes:
      • Column order is preserved correctly after drag & drop of columns.
  • 0.3.4 / 2010-05-07
    • Bug fixes:
      • Left and Right cursor keys works correctly in preferences when editing columns.
  • 0.3.3 / 2010-04-22
    • Bug fixes:
      • Alignment of columns is now correctly displayed in the settings.
  • 0.3.2 / 2010-04-20
    • Bug fixes:
      • Changes to column names are updated immediately in ui elements.
      • "Show Column Header" setting is now correctly preserved over different foobar2000 sessions.
      • ESC button works as expected in the preferences dialog: it closes it.
      • Fixed column size glitches when enabling/disabling auto-sizing of columns
    • Improvements:
      • %queue_total% supported in format strings.
      • UI element automatically refreshes items when one of the queue items has a metadata change.
      • UI element has the same border style than the DUI playlist view.
      • Preferences dialog: When configuring columns, no need to press return key anymore, text is committed automatically. Also improved processing of ESC and other keys in the prerences.
      • Preferences dialog: Columns are sized reasonably by default
      • Preferences dialog: Syntax Help button for HA Syntax Help.
      • Preferences dialog: Help button brings to this wiki page.
      • Drag from playlist to ui element now correctly queues the item preserving the "link" to the playlist (i.e. playlist items will have %queue_index%) for the dragged items in the playlist).
        • Behaviour tested with DUI playlist and various playlist components for CUI.
        • NOTE: As far as I know there is no proper way to do this, and currently the program checks every drop against the active playlist selection. If they are the same (same items and in the same order), drop is interpreted as queuing from the playlist. In addition, I've implemented a check that matches the dropped items against currently selected items. Currently selected items are the selected items of the currently focused UI element. This is not 100% fool proof but it should work in 99.9 % of the regular cases. (And in the 0.01 % of the cases it still doesn't explode the universe).
    • Other:
      • Queue playlist functionality is now disabled by default for new installations.
  • 0.3.1 / 2010-04-13
    • Bug fixes:
      • Foobar2000 keyboard shortcuts now work even if the uie element has the focus
      • Fixed column autosizing logic when resizing or adding a column
  • 0.3 / 2010-04-13
    • Note that you will lose the format string you defined in version 0.2 when moving to a newer version. Please backup the format string before updating the component!
    • Bug fixes:
      • reordering of queue playlist might fail if the playlist corresponding to a queue item is removed.
      • Wrong colors with default ui element when using system colors
      • When disabling queue playlist functionality, the playlist lock wasn't removed
      • When drag & dropping items to queue playlist, they are added twice.
      • Different selection logic in ui element when compared to default ui playlist
    • Improvements:
      • Columns ui element support (CUI). Uses CUI font and color configuration facilities.
      • Added user-configurable columns support to ui elements. Columns can be configured from settings
      • Drag & Drop support for ui element outside and inside of foobar2000. Queue order can also be changed by drag & drop.
      • Added context menu to ui element with "Show Column Header", "Auto-Scale columns with Window Size", "Move To Top", "Move To Bottom" and "Delete" options.
      • selection of queue item(s) in the ui element is reflected in "Selection Properties" (and others like album art) UI element.
      • Focus and selection rectangle follows default ui playlist style (i.e. solid line)