Skip to content

Latest commit

 

History

History
438 lines (262 loc) · 17.2 KB

File metadata and controls

438 lines (262 loc) · 17.2 KB

foo_uie_playlist_tree User Guide

Welcome to foo_uie_playlist_tree. This guide will help you understand how to use the component effectively and get the most out of its features.


Table of Contents

  1. Introduction
  2. Features
  3. Getting Started
  4. Context Menu
  5. Drag & Drop
  6. Configuring
  7. Troubleshooting
  8. FAQs
  9. Reference Material
  10. History
  11. Acknowledgements and Credits
  12. Support

Introduction

foo_uie_playlist_tree is a foobar2000 component to organize playlists in a tree view.

It attempts to recreate the functionality of foo_plorg.


System Requirements

  • foobar2000 v2.0 or later (Intel 32-bit/64-bit and ARM64EC version). foobar2000
  • Tested on Microsoft Windows 10 and later.

Download foo_uie_playlist_tree

You can download the component from the foobar2000 Components repository or from the GitHub Releases page.

Installation

  • Double-click foo_uie_playlist_tree.fbk2-component or import foo_uie_playlist_tree.fbk2-component using the foobar2000 Preferences dialog. Select the File / Preferences / Components menu item, select the Components page and click the Install... button.
  • Follow the foobar2000 instructions.

Tip

To verify if the installation was successful open the foobar2000 Preferences using the File / Preferences / Components menu item and look for Playlist Tree in the Installed components list.

You can experiment with the component without modifying your layout by selecting Playlist Tree from the View menu.


Features

  • Supports the Default User Interface (DUI) and the Columns User Interface (CUI).
  • Supports dark mode.
  • Supports foobar2000 2.0 and later (Intel 32-bit/64-bit and ARM64EC version).
  • Custom Title Formatting fields
  • Configurable tree node images
  • Drag & drop from foobar2000, Explorer and other applications.
  • Supports the foobar2000 playlist recycle bin.
  • Supports foobar2000 playlist locks.

Getting Started

The first time the component opens it loads all the playlists that are currently open and adds them to the root of the tree.

The idea is to create a tree structure using folders to group your playlists any way you see fit.

Navigate the tree just like you would any other Windows tree view.

Note

Hold the Ctrl key when you click the chevron of a folder to collapse or expand the complete branch.

At the bottom of the panel there's a Quick Search text box. Typing the name of a folder or playlist will highlight its node in the tree. The text box has an Auto Complete feature that contains all the nodes names of the tree.

Note

Press the Escape key to close the drop down.


Context Menu

Right-click on the component window to display the context menu. The following items are available:

New

Creates a new folder or playlist item.

By default the new item gets created as a child of a folder item or below a playlist item over which the mouse pointer hovers.

If no item is highlighted the new item gets created at the bottom of the tree.

Note

You can specify an icon image to recognize a folder or a playlist.

Rename

Allows you to rename the highlighted item. You can not rename a playlist that is locked for renaming. The menu item will be disabled.

Remove

Allows you to remove the highlighted item. You can not remove a playlist that is locked for removal. The menu item will be disabled.

A folder that contains at least one playlist that is locked for removal can not be removed.

Note

Removing a folder also removes all the items it contains. A click with the middle mouse button will also remove the highlighed item.

Frozen

Sometimes you don't want the collapsed or expanded state of a folder to change. The Frozenmenu item is enabled only for a folder and allows you to freeze the current state of a folder.

Note

You can specify an icon image to recognize a frozen folder.

Sort

Sorts the contents of the highlighed folder or the siblings of the selected playlist.

Preferences

Opens the foobar2000 preferences dialog with the component page selected.

Save playlist...

Saves the playlist the mouse pointer is hovering over.

Save all playlists...

Saves all the playlists.

Load playlist...

Loads a playlist.

Autoplaylist...

This menu item allows you to call up a dialog to edit an autoplaylist.

Note

This menu item only appears when the highlighted playlist is an autoplaylist. You can specify an icon image to recognize autoplaylists.

Restore Submenu

Allows you to restore a playlist that has been removed during the current session from the foobar2000 playlist recycle bin.

Note

This submenu only appears when one ore more playlists were removed. The Clear history menu item empties the playlist recycle bin.

Lock Submenu

The Lock submenu allows you to lock a playlist or inspect an existing lock from another component.

Note

This submenu only appears when the highlighted playlist is locked. You can specify an icon image to recognize a locked folder or playlist.

The name of the component that locked the playlist is displayed at the bottom of the submenu. If another component has applied the lock the menu items will be disabled. You'll have to use the lock owner component to modify the locks.

Screenshot

Add items

Prevents items from being added to the playlist when enabled.

Remove items

Prevents items from being removed from the playlist when enabled.

Reorder items

Prevents items from being reordered in the playlist when enabled.

Replace items

Prevents items from being replaced in the playlist when enabled.

Rename playlist

Prevents the playlist from being renamed when enabled.

Remove playlist

Prevents the playlist from being removed when enabled.

Default action

Prevents the playlist from executing its default item action (usually starting playback) when enabled.

All

Enables all restrictions.

None

Disables all restrictions.

Playlist Submenu

The Playlist menu allows you to access the menu items that would appear in a normal playlist context menu.

Note

This submenu only appears when the highlighted item is a playlist.


Drag & Drop

Within the control

You can reorder the items of the tree using drag and drop.

When dropping a folder or playlist node think about how the drop target is divided into three zones:

  • A top zone that occupies the top quarter of a node
  • A bottom zone that occupies the bottom quarter of a node
  • A center zone that is double as high as the top or the bottom zone.

Drop an item (folder or playlist) on the center zone of a folder to add it to that folder. Dropping an item on a playlist is ignored.

Drop an item (folder or playlist) on the top zone of an item to insert it before that item.

Drop an item (folder or playlist) on the bottom zone of an item to insert it after that item.

From foobar2000

You can drag items from any playlist or from the media library.

When you drop one or more tracks on a playlist item the tracks get added to the playlist unless the playlist has been locked for modification.

Drop one or more tracks on a folder item or anywhere on the panel and a new playlist gets created with the dragged tracks.

From other applications

You can drag items from Windows Explorer or other applications that process foobar2000 supported files on the tree.


Configuring

A preferences page is used to change all parameters used by the component. You can find it by selecting the File / Preferences menu item and then selecting Display / Playlist Tree in the dialog.

Screenshot

You can configure the colors and fonts on the Colors and Fonts page for DUI (Default User Interface) or CUI (Columns User Interface),

Apply

Applies the configuration to the component.

OK

Closes the dialog box and preserves the changes to the configuration during the current session.

Note

The settings will only be saved to your profile when foobar2000 is closed.

Cancel

Closes the dialog box and undoes any changes to the configuration.

Title Formatting Support

Where noted you can use the foobar2000 Title Formatting.

The component provides the following custom formatting fields:

Name Description
%node_name% The name of the item, either a playlist or a folder.
%node_is_folder% Boolean value for use in $if( ...) expressions and is true when the item is a folder.
%node_item_count% The number of nodes in a folder or the number of items in a playlist.
%node_item_count_locale% The number of nodes in a folder or the number of items in a playlist, formatted.
%node_is_locked% Boolean value for use in $if( ...) expressions and is true when the item is locked.
%node_lock_name% The name of the lock if the item is locked.
%playlist_duration% The duration of the playlist (in seconds).
%playlist_duration_locale% The duration of the playlist (in seconds), formatted.
%playlist_duration_natural% The duration of the playlist in weeks, days, hours, minutes and seconds.
%playlist_size% The size of the playlist (in bytes).
%playlist_size_locale% The size of the playlist (in bytes), formatted.
%playlist_size_natural% The size of the playlist in TB, GB, MB, KB or bytes.
%fb2k_path% The directory path of the foobar2000 installation.
%fb2k_component_path% The directory path of the component.
%fb2k_profile_path% The directory path of the foobar2000 profile.
Any Windows environment variable For example %UserProfile% or %WinDir% (See Full List of Environment Variables)

Note

%node_item_count_locale%, %playlist_duration_locale% and %playlist_size_locale% are formatted using your Windows Regional Number format settings.

Text Format

This setting determines how the text of a tree node gets formatted using foobar2000 Title Formatting.

Here are some examples:

%node_name%$if(%node_is_folder%,,' ('%node_item_count_locale%')')

%node_name%$if(%node_is_folder%,,' ('%node_item_count_locale%') '%playlist_size_locale%' bytes')

Note

This setting supports foobar2000 Title Formatting.

Tooltip

This setting specifies foobar2000 Title Formatting for the tooltip displayed in the tree view.

The default is:

$if(%node_is_folder%,,$if(%playlist_size_natural%,%playlist_size_natural%$crlf()$if2(%playlist_duration_natural%,', N/A'),'N/A'))

Leave the text empty to disable the tooltips.

Note

This setting supports foobar2000 Title Formatting. $crlf() is a foobar2000 function that inserts a line break in the text.

Node Image

You can configure the image that is used for each node type.

Node Type

This setting determines for which node type the image will be selected.

  • Folder: A folder in the tree
  • Folder (Locked): A folder in the tree that contains one or more playlists that are locked for removal.
  • Playlist: A playlist in the tree
  • Playlist (Playing): The playlist from which foobar2000 is playing audio. This can be different from the currently displayed playlist.
  • Playlist (Locked): The playlist has one or more restrictions applied to it.

Image Size

This setting specififies the size of the image in the tree view in pixels. The default is 16 for a 16x16 image. The valid range is 16 to 256 pixels.

File Path

This setting determines which file will be used to create node images. Many Windows executables (.exe) and libraries (.dll) contain icons. The component can extract those icons and create node images from them.

You can also use any image in a format supported by the Windows Imaging Component (WIC) such as ICO, PNG, GIF, TIFF, JPEG, WebP, etc...

Here are some examples:

  • imageres.dll Default
  • shell32.dll
  • foobar2000.exe
  • %fb2k_component_path%\SomeIconLibrary.icl

Note

This setting supports foobar2000 Title Formatting.

Image List

Select the image for the selected node type from this list.

Quick Search

Enable this setting to display the Quick Search text box at the bottom of the panel (Default: on).

Horizontal scrollbar

Enable this setting to display the horizontal scrollbar in the tree view (Default: on).


Troubleshooting

🔧 Work in Progress


FAQs

  • Q: When I open a second instance of the component the tree structure becomes unstable.
  • A: The current version of the component does not support multiple instances.

Reference Material

This chapter contains some reference material I consulted during the development of foo_uie_playlist_tree.

foobar2000

Windows User Interface

Various


History

The history of foo_uie_playlist_tree development is available in a separate document.


Acknowledgements and Credits


Support

For further assistance:

🌐 Home page: https://github.com/stuerp/foo_uie_playlist_tree
🌐 Repository: https://github.com/stuerp/foo_uie_playlist_tree.git
🌐 Issue tracker: https://github.com/stuerp/foo_uie_playlist_tree/issues
🌐 Support: Hydrogen Audio foobar2000 forum