- on_focus callback was not always being triggered
- A new
IGdiBitmapInvertColoursmethod has been added. - Minor sample fixes.
- Add
plman.GetPlaylistLockFilterMask. It's recommended that you replace any usage ofplman.IsPlaylistLockedwith this as you can now determine the type of locks in place. - Add
plman.GetPlaylistLockName. - Restore compatibility with
foo_popup_panelswhen used from within default UI. This was broken inv2.3.4. fb.CheckClipboardContentsandfb.GetClipboardContentsno longer require awindow_idparameter. If supplied, it will be silently ignored.- Minor sample fixes.
- The size and position of the
Properties Windowis now remembered. In addition, the size and position of theConfiguration Windowis now shared as a global setting rather than per panel instance like it was previously. on_sizecalls are now suppressed when the panel width or height is zero.- Improve behaviour of
Pseudo Transparentmode to be like older versions. Some changes were made during the2.2.xseries that made panels not configured with thePanel Stack SplitterForced layoutoption glitch more than they should. - The project is now MIT licensed.
- Add
utils.ReadUTF8. It's preferable to use this when you know the file isUTF8encoded... such as ones written byutils.WriteTextFile. Continue to useutils.ReadTextFileif the files areUCS2-LE,ANSIor unknown.
- Fix rare crash with
utils.ReadTextFile.
- Add
IMetadbHandleListOptimiseFileLayout. Also takes an optionalminimiseargument. Withminimiseset tofalse, provides the functionality ofUtilities>Optimize file layoutor ifminimiseistruethenUtilities>Optimize file layout + minimize file size. Unlike the context menu versions, there is no prompt. - Properly fix
Return/Tabkey usage in theFind/Replacedialog.
- Fix a nasty editor bug that caused the component to crash while typing. Versions
2.3.0-2.3.0.2were all affected so upgrading immediately is highly recommended!
Find/Replacedialog fixes.- Fix
Thumbssample so Last.fm artist art downloads work again. - Restore
Clearbutton to thePropertiesdialog.
- Make
utils.ColourPickerrememberCustom coloursfor the lifetime offoobar2000being open.
- Drop support for
foobar2000v1.3.x. Now requiresv1.4or later. - Add
utils.DateStringFromTimestampandutils.TimestampFromDateString. - The
Propertiesdialog has been rewritten and there is no longer anyClearorDeletebuttons. Now you can multi-select using your mouse and combinations ofCtrl/Shiftkeys. There is a right click menu toSelect All/Select None/Invert selectionandRemove.Ctrl+Aand theDeletekeyboard shortcuts are also supported. - The list view under
File>Preferences>Tools>JScript Panelnow supports inline editing from a single click on the value. You no longer double click items to open a new dialog. - The following methods no longer support the previously optional
forceparameter.
window.Repaint();
window.RepaintRect(x, y, w, h);
ITitleFormat Eval() // returns an empty string when not playing- The following methods no longer support the previously optional
flagsparameter. All commands are ran if they exist. It no longer matters if they are hidden or not.
fb.RunContextCommand(command);
fb.RunContextCommandWithMetadb(command, handle_or_handle_list);- These previously optional parameters have been removed:
IContextMenuManager BuildMenu "max_id"
IMainMenuManager BuildMenu "count"
utils.CheckComponent "is_dll"
utils.WriteTextFile "write_bom" (writing a BOM is no longer supported)
plman.PlayingPlaylistis now a read-only property.- The
IPlaylistRecyclerManagerinterface has been removed and replaced with fixedplmanmethods. All previous functionality remains. Look at the docs forplman.RecyclerCount. fb.GetLibraryRelativePathhas been removed. UseIMetadbHandleListGetLibraryRelativePathsinstead.utils.FileTesthas been removed and replaced with the following 4 new methods. There is no replacement forsplitmode.
utils.Chardet(filename)
utils.GetFileSize(filename)
utils.IsFile(filename)
utils.IsFolder(folder)- The
Grab focuscheckbox in the Configuration Window and thedragdropPREPROCESSORhave both been removed. Both features are disabled by default but are automatically enabled if relevant callbacks likeon_drag_droporon_key_upare present in the script.
- Fix bug introduced in
v2.2.2.1which prevented images loaded withgdi.Image/gdi.LoadImageAsyncbeing deleted/overwritten afterDispose()had been called.
- Fix
IMetadbHandleListMakeDifferencemethod.
- Fix broken descriptions for main menu items in the keyboard shortcut preferences. Thanks to TheQwertiest for spotting and providing the fix.
- Remove optional
forceargument fromfb.GetFocusItemas it had no effect. No errors will be thrown if present but it will be ignored. - Various sample fixes. Volume now scales at the same rate as the
Default UIvolume slider. Thumbs has been fixed to work with Last.fm site update. - Compiled with latest
foobar2000SDK.
- Fix broken colour handling in
IGdiBitmapGetColourSchemeJSON. The original code by MordredKLB was good but I broke it so apologies for that. IGdiBitmapGetColourSchemehas been removed. See this page for how to use the betterJSONmethod mentioned above.
https://kbuffington.github.io/foo_jscript_panel/foo_jscript_panel/Breaking-Changes.html
- Restore access to the Configuration Window via the
Columns UIPreferences layout tab. Although buggy, access needs to remain to recover from installing bad scripts. - Fix various sample problems reported on the
foobar2000forums such as main menuEdititems not always being available and someJS-Smoothoverflowerrors.
- Revert all timer related changes made in
v2.2.0.2-v2.2.0.3. Although tested and working fine on my main machine, it caused crashes onWindows XPandfoobar2000not to exit properly when running inside aWindows 7virtual machine. Apologies for any inconvenience!
- Fix potential freeze on shutdown caused by timer threads. Thanks to TheQwertiest.
- Access to the Configuration Window via the
Layouttab in theColumns UIPreferences has been blocked. TheConfigure Panel...button will now be grayed out. Always use the context menu on the panel itself. - Some minor sample bugs have been fixed.
- Revert some changes made in
v2.2.0which may have broken various scripts that made use ofplman(Playlist Manager) methods/properties. It would typically be noticeable if you had no playlists on startup or removed all playlists.
- Fix issue introduced in
v2.2.0where some colours with certain levels of alpha transparency were not handled properly.
- Remove
window.DlgCode. The docs were wrong, behaviour was inconsistent betweenDefault UIandColumns UIand it's just not needed. Support for all keys will be enabled if you checkGrab focusin the Configuration Window. All instances will need removing from scripts. If you want to support this and older components with the same script, do something like:
if ('DlgCode' in window) { window.DlgCode = 4; }fb.RunMainMenuCommand,fb.RunContextCommand,fb.RunContextCommandWithMetadbhave all been rewritten and must be supplied with the full path to their commands. Case is not important. You should use forward slashes with no spaces. eg:fb.RunMainMenuCommand("Library/Search").- All files imported to the Configuration Window, Preferences>Tools or included in a script via the
importPREPROCESSORdirective must beUTF8encoded (with or withoutBOM).utils.ReadTextFileis unaffected although it should have betterUTF8detection than before. - The default
write_bomargument forutils.WriteTextFilewhen omitted is nowfalse. - The code that parses the
PREPROCESSORsection has been rewritten from scratch. The only difference is that double quotes in the name/author no longer need to be escaped so they will be duplicated if you did this previously. window.GetColourCUIandwindow.GetFontCUIno longer accept the previously optionalclient_guidargument.- Add menu toolbar to Configuration Window which provides quick access to all included samples and docs. You can now Import/Export scripts via the
Filemenu. TheResetoption now properly resets all settings. - The preset colour schemes previously bundled inside the
Colour Schemesfolder can now be loaded directly from the main preferences underTools>JScript Panel. - Add
utils.ListFilesandutils.ListFolders. - Update
fb.CreateHandleListto take an optional handle argument to create a list containing a single item. - Add
IMetadbHandleGetAlbumArtmethod which returns the image and path without the need for usingutils.GetAlbumArtAsyncandon_get_album_art_done. utils.FileTestcan now query files over 4GB in size when insmode.- Various sample fixes.
- Lots of internal code refactoring and external dependency updates.
- If you browse the component folder and notice the
jscript.apiandinterface.apifiles are missing, it's intentional. The contents are now included inside the component.
- Add
IMetadbHandleListRemoveAttachedImagesmethod. - There are no longer any limitations managing attached images. Working with the playing file is now supported. Thanks to Peter for the new
SDKrelease and the help I needed!
- Fix various sample bugs.
- Compile component with latest
foobar2000SDK.
- Images loaded by
gdi.LoadImageAsyncare no longer locked by the process. - Correctly bump
utils.Version- it wasn't updated inv2.1.7.
- Add
IMetadbHandleListAttachImage/RemoveAttachedImagemethods. There are some limitations!!
- Add
IContextMenuManagerInitContextPlaylistmethod which shows playlist specific options not available when passing a handle list toInitContext. - Update
JSPlaylistandJS Smooth Playlistsamples with the above method.
utils.InputBoxis now centred when you open it plus you can now detect when the user pressesCancel.- Fix bug with
Autoplaylistssample which prevent existing queries from being edited. gr.GdiDrawTextno longer has any return value.
- Fix incorrect spelling on the
Cancelbutton inutils.InputBox.
- Add
utils.InputBoxmethod. - Update samples in
completefolder with above method - input is no longer truncated at 254 characters. - Remove
fromhookargument fromon_metadb_changedcallback. From now on, it will always beundefined. - Ensure
JSPlaylistdoesn't load the same font more than once. Previously it was usinggdi.Fontinsideon_paintwhich is bad practice.
- Add
on_dsp_preset_changedcallback. - Add
fb.GetDSPPresetsandfb.SetDSPPresetmethods. - Add
IMetadbHandleListGetLibraryRelativePathsmethod. - Add
IMetadbHandleListConvertmethod which converts a handle list to an array of handles.
- Add
fb.GetOutputDevicesandfb.SetOutputDevicemethods. - Add
on_output_device_changedcallback. JSPlaylist/JS Smooth Browser/Playlist, make right click behaviour consistent with other playlist/library viewers. HoldingShiftshould now show hidden context menu items.- Playback now restarts when changing replaygain mode with
fb.ReplaygainMode.
foobar2000v1.3.xis now supported.v1.3.xusers must make sure they have theVisual C++ 2017redist installed: https://aka.ms/vs/15/release/vc_redist.x86.exe
- A new
IGdiBitmapGetColourSchemeJSONmethod has been added. Thanks to MordredKLB for the contribution. - Fix script error when dragging items on to
JSPlaylist/JS Smooth Playlistwith no active playlist.
- Fix crash when supplying
plman.IsAutoPlaylist/plman.IsPlaylistLockedwith an invalidplaylistIndex.
- Add
plman.RemovePlaylistSwitchmethod. Unlikeplman.RemovePlaylist, this automatically sets another playlist as active if removing the active playlist. - Update
JS Smooth Playlist ManagerandJSPlaylistto make use of the above method which should fix some previous buggy behaviour whem removing playlists.
- Requires
foobar2000v1.4Beta 8or later. - The drag/drop functionality has been completely rewritten by TheQwertiest. This will break all existing scripts which allow dragging in files from external sources. The ability to drag handle lists from
JScript Panelto other panels has been added. The included playlist samples have been updated so they're compatible but they do not make use of the new functionality. - Add
on_replaygain_mode_changedcallback. - The behaviour of
plman.AddLocationswith theselectargument set totruehas been slightly modified.
https://kbuffington.github.io/foo_jscript_panel/foo_jscript_panel/Drag-and-Drop.html
https://kbuffington.github.io/foo_jscript_panel/foo_jscript_panel/Breaking-Changes.html
- Add
fb.CopyHandleListToClipboardmethod. Contents can then be pasted in other components or as files inWindows Explorer. - Add
fb.CheckClipboardContents/fb.GetClipboardContents. Contents can be handles copied to the clipboard in other components or a file selection fromWindows Explorer. JSPlaylisthas been updated for full clipboard functionality with updated context menu items and keyboard shortcut support (CTRL+C,CTRL+XandCTRL+V).
- Add
ITitleFormatEvalWithMetadbsmethod that takes a handle list as an argument. Returns a VBArray. - Add
plman.SortPlaylistsByName. - The
IMetadbHandleListOrderByRelativePathmethod now takes subsong index in to account. Thanks to WilB for reporting. plman.GetPlaybackQueueContentshas been restored after being removed in thev2cleanse. It's the only way to determine if a single playlist item has been queued more than once. Note that eachIPlaybackQueueItemis read-only.- The
Propertiesdialog size and layout have been tweaked.
- New
plman.FindPlaylistandplman.FindOrCreatePlaylistmethods have been addded. on_library_items_added,on_library_items_changed,on_library_items_removednow return a handle list of affected items.- Various doc tidy up/fixes. Some
plmanmethods have been updated to return-1on failure.
utils.WriteTextFilenow takes an optionalwrite_bomargument. It defaults totrueif omitted. Iffalse, then the resulting file should beUTF8withoutBOM.- Tidy up docs and
IMenuObjinterface. See the Breaking Changes page for details.
- Fix random component crash caused by
utils.WriteTextFile. - Fix
JS-Smoothscript image caching feature choking on some images. The breakage was introduced by me inv2.0.1.2as I attempted to update some old code. Thanks to always.beta for reporting.
- As part of the
v2update, I accidentally broke the ability to drag tracks withinJSPlaylist. This has now been fixed.
- Add usage notes to
RatingandLast.fm Loversamples.Ratingcan now tag files or use theJScript PanelPlayback Statsdatabase in addition to usingfoo_playcountlike it did before. - A
Queue Viewerscript has been added to thesamples\completefolder. It has a couple of basic options on the right click menu.
- Add
Last.fm Loversample. Imports all loved tracks from Last.fm in to the newJScript PanelPlayback Statsdatabase. All loved tracks will have the value of%JSP_LOVED%set to1which is available in all components/search. You can then love/unlove tracks by clicking the heart icon. Obviously this requires a Last.fm account. Use the right click menu to set your username and authorise the script. - The timer mechanism behind
window.SetIntervalandwindow.SetTimeouthas been completely rewritten by TheQwertiest. Previously, it was limited to 16 instances and then it would fail causing random buggy behaviour in some advanced scripts. - Fix
ListenBrainznot clearing its cache after a successful submission. Thanks to zeremy for reporting. - Fix
Thumbssample not deleting images.
- Requires
foobar2000v1.4. It will not load with anything earlier. fb.Tracehas been removed and replaced with a nativeconsole.logmethod. It takes multiple arguments as before.- All callbacks/methods with
Colorin the name have been renamed withColour. This will break most scripts!
on_colors_changed -> on_colours_changed
utils.ColorPicker -> utils.ColourPicker
utils.GetSysColor -> utils.GetSysColour
window.GetColorCUI -> window.GetColourCUI
window.GetColorDUI -> window.GetColourDUI
IGdiBitmap GetColorScheme -> GetColourScheme
- The
IPlaybackQueueIteminterface andplman.CreatePlaybackQueueItemmethod have been removed. plman.GetPlaybackQueueContentshas been replaced withplman.GetPlaybackQueueHandleswhich returns a handle list. You can check theCountproperty so there is no longer any need forplman.GetPlaybackQueueCountandplman.IsPlaybackQueueActivewhich have been removed.on_refresh_background_doneandwindow.GetBackgroundImagehave both been removed.- The
IGdiBitmapBoxBlurmethod has been removed. UseStackBlurinstead. IContextMenuManagerInitContextonly accepts a handle list as an argument.- Anyone who has a
js_settingsfolder in theirfoobar2000profile folder from using my previous samples should move the contents in to thejs_datafolder. Typically, this would beautoplaylists.json,thumbs.ini,listenbrainz.ini. - Enable
Windows XPsupport. Also, support forWindows Vista,Windows 7andWINEwithIE7/IE8has been restored.ES5features are still supported for those withIE9or later. If your scripts crash after upgrading and making the changes outlined above, make sure to check theScript Enginesetting in the Configuration Window. - Add
utils.WriteTextFile. Always creates aUTF8-BOMfile. - Add
window.Nameproperty. - Add a custom
Playback Statsbackend andhandlemethods for writing values.
https://kbuffington.github.io/foo_jscript_panel/foo_jscript_panel/Breaking-Changes.html
https://kbuffington.github.io/foo_jscript_panel/foo_jscript_panel/Configuration-Window.html
https://kbuffington.github.io/foo_jscript_panel/foo_jscript_panel/WINE.html
https://kbuffington.github.io/foo_jscript_panel/foo_jscript_panel/Playback-Stats.html
https://github.com/marc2k3/foo_jscript_panel/tree/master/foo_jscript_panel/samples
- Component now reports version on script error.
JSPlaylistandJS Smooth Playlisthave been unable to tag files sincev1.3.0whenfoo_playcountwas missing.
- Add
fb.AlwaysOnTopproperty. Can be used to read or write the setting. A newon_always_on_top_changedcallback has been added to detect when it changes via any other means such as using the menu, keyboard shortcuts, etc.
- Improved handling of
UTF8files withoutBOM. This affects files loaded via thePREPROCESSORsection and theConfiguration Window>Tools>Importbutton. They should now be treated the same as files withBOM.
- Fixed a bug where
plman.IsPlaylistItemSelecteddidn't return a properbooleanvalue. Thanks to TheQwertiest for reporting. - Fixed a bug where
plman.ShowAutoPlaylistUIdidn't always return the correctbooleanvalue. plman.MovePlaylistSelectionnow returns abooleanvalue to indicate success or failure.- Update docs for consistency with actual component behaviour. Some methods which returned useless values have been updated to return nothing.
- On failure, these now return
-1.
IFileInfo InfoFind
IFileInfo MetaFind
IMetadbHandleList BSearch
IMetadbHandleList Find
plman.ActivePlaylist
plman.CreateAutoPlaylist
plman.PlayingPlaylist
- Remove the whole
IStyleTextRenderinterface. Anything that usesgdi.CreateStyleTextRenderor was based onglow text sample.txtwill no longer work - Remove these
IPlaylistRecyclerManagerproperties/methods:
Id
FindById
RestoreById
- Support for
IE7,IE8andWINEusers has been dropped. Your computer must haveIE9or later installed. - The
UpdateFileInfoSimplehandle and handle list methods are now gone. - A new
UpdateFileInfoFromJSONmethod has been added. If anyone needs help with this, just ask. - Add
fb.CreateHandleListmethod for creating empty handle lists.
- Add
utils.ColorPickerwhich is a popup dialog for selecting colours. - Fix various bugs in
samples\completefolder. ListenBrainzsample now has an on/off toggle on the menu.
- Fix typo in
MusicBrainzsample. Thanks to zeremy for spotting. ListenBrainznow has caching/retry support. It's my first attempt at this so please report any issues! I also need reports of any code 400 errors from the server as the script will need updating before these tracks can be submitted successfully.- Br3tt's
JS Smoothscripts are now bundled with the component and the separate repository has been nuked.
ListenBrainzsample - fixmusicbrainz track idnot being submitted fromm4afiles.
- Add
Last.fm Bio,AllmusicandListenBrainzsamples.Thumbscan download images from Last.fm again but only manually. - Most samples are now DPI aware so text/tooltips should increase inline with other desktop elements. For existing users, each panel script should be re-imported from the
samples\completefolder.
- Add
fb.ReplaygainMode. Can be used to retrieve or set the value. - Hide
JScript Panelmain menu items. Given they're meant for binding to to keyboard shortcuts/standard buttons, there is no need for them to be visible. HoldShiftif you really want to access them from the menu. - Fix
IMetadbHandleListMakeUnionmethod and update docs with examples forMakeUnion,MakeDifferenceandMakeIntersectionmethods.
- Add new
on_main_menucallback. 10 main menu items have been created meaning you can now bind them to global keyboard shortcuts, standard toolbar buttons, etc and have them run your own custom code.
- Fix bug where the playing item handle was never sent to the
on_playback_editedcallback even though the docs said it would. - Tidy up docs and auto-complete hints for
on_metadb_changedandon_selection_changed.
- Minor code cleanups but no new component features for now.
- Add
Last.fm Similar Artists / ChartsandMusicBrainzsamples.
- If your computer has
IE9or later installed, newerECMAScript5features are now available. Many thanks to TheQwertiest for discovering how to do this. - The
Script engineoption has been removed from the Configuration Window. The newerChakraengine is always used if available but will fall back toJScriptif not. - Add
utils.Versionwhich reports the component version. - Minor tweaks to Configuration Window.
- Update
JSPlaylistso it works withChakraengine. Thanks to zeremy for reporting - A previous
window.RepaintRectbug reported by Wilb has now been fixed. - Zap a few more compiler warnings.
- Remove trailing space in
Consolewhen usingfb.Trace. Text Readersample fix. EnsureOpen containing folderworks when specifiying a folder rather than a full path to a file.Thumbssample fix. Addresses an issue where using%profile%in theCustom foldersetting would fail if the profile path contained special title formatting characters like%()[]'.- Remove
Delay loadfrom Configuration Window.
- Fix bug with
plman.AddLocationswhere the original order of the suppliedarraywasn't maintained. Also, the progress dialog should be hidden for short operations.
- Minor changes to
Consolelogging on startup. - The
completesamples folder has 2 new scripts:ThumbsandText reader.Thumbsallows the display/cycling of multiple images in a given folder.Text readerdisplays the contents of any plain text file. Title formatting can be used to specify the folder/file paths.
- Add
IGdiBitmapStackBlurmethod. - Update
ApplyMasksample.
- Add
Open component folderto default right click menu. This provides quick access to the docs and samples.
plman.IsPlaylistLocked(playlistIndex).on_playlists_changedis now called when a playlist's lock status changes through the use of components such asfoo_utilsorfoo_playlist_attributes.- Existing samples moved in to new
basicsubfolder. - Add new
completesamples folder containing some more feature complete samples. - Add updated
JSPlaylistforJScript Panel.
- Prevent old tooltips lingering after script error.
- Fix bug where keyboard shortcuts from the main
Preferenceswere never processed inColumns UIwhenJScript Panelhad focus.
- Add
IGdiBitmapSaveAsmethod.
- Fix
on_mouse_wheelnot being called with certain trackpads.
- New
on_mouse_wheel_hcallback for left/right scrolling.
GetQueryItemsshould be afbmethod, notplman.- Fix crash when using
GetQueryItemswith dates as part of the query. - Update
Columns UISDK.
- Add
fb.GetLibraryRelativePath(handle).
- Add
IMetadbHandleList UpdateFileInfoSimplemethod.
- Update
Columns UISDK. - Tidy up docs/samples.
- Add
utils.MapString(text, lcid, flags).
- Revert previous
Columns UISDKupdate.
- Update
Columns UISDK. - Hopefully removed all traces of
WSH Panel Modfrom sources and documentation!
- Update default script so you know a blank panel is
JScript Panelas opposed toWSH Panel Mod.
- Given the name, it obviously doesn't support
VBScript. - Due to using updated library files, support for
Windows XPhas been dropped. - Compiled with new
foobar2000SDK. Requiresfoobar2000v1.3or above. - Remove functions marked as obsolete 3+ years ago. Obviously there are replacements that been around even longer.
window.WatchMetadb
window.UnWatchMetadb
window.CreateTimerTimeout
window.CreateTimerInterval
window.KillTimer
UpdateFileInfo
- Remove all these
fbmethods becauseplman(Playlist Manager) methods also exist.
fb.CreatePlaylist
fb.RemovePlaylist
fb.RenamePlaylist
fb.DuplicatePlaylist
fb.MovePlaylist
fb.ActivePlaylist
fb.PlayingPlaylist
fb.PlaylistCount
fb.PlaylistItemCount
fb.GetPlaylistName
fb.PlaybackOrder
- Even though
plmanalternatives of thesefbmethods did not exist, I've removed them for consistency.
fb.CreateAutoPlaylist
fb.IsAutoPlaylist
fb.ShowAutoPlaylistUI
- Because of the above change,
plman.CreateAutoPlaylist,plman.IsAutoPlaylistandplman.ShowAutoPlaylistUIhave been created to replace them. plman.GetPlaylistFocusItemHandlehas been removed because it's identical tofb.GetFocusItemwhich is more commonly used.utils.GetAlbumArtremoved as the corresponding function has been removed from thefoobar2000SDK.utils.GetAlbumArtAsync,utils.GetAlbumArtEmbeddedandutils.GetAlbumArtV2are still present.AppendMenuItemno longer acceptsMF_POPUPas a flag. UseAppendToinstead.- Remove
on_tooltip_custom_paintcallback.window.CreateTooltiphas been updated to accept custom font paramters. Propertiesdialog has a larger default size.Safe modeis no longer an option.- Tidy up samples.
- Tidy up
PREPROCESSORhandling. You no longer have to specify these when using theon_metadb_changedcallback.
// @feature "v1.4"
// @feature "watch-metadb"- Due to the above change,
on_metadb_changedwill only receive ahandle listand never ahandleas the first argument. Also,on_selection_changedwon't receive ahandleargument. - Add
fb.GetLibraryItems()method. Returns a handle list of all items in library. - Add
fb.IsLibraryEnabled(). - Add
fb.ShowLibrarySearchUI(query)opens theLibrary>Searchwindow populated with the query you set. - Add
on_library_items_addedcallback. - Add
on_library_items_removedcallback. - Add
on_library_items_changedcallback. - Add
plman.AddLocations(playlistIndex, paths[, select]). - Add
plman.ClearPlaylist(playlistIndex). Use to clear a specified playlist.fb.ClearPlayliststill exists because it is just a shortcut to theEditmenu command which clears the active playlist. - Add
plman.GetQueryItems(source_handlelist, query)returns an unsorted handle list. Consider usingOrderByFormat, etc on the result. - Add
plman.UndoBackup(playlistIndex). If you call this before adding/removing/reordering playlist items, you will be able to use the undo/redo commands on theEditmenu. - Add
CalcTotalDuration()handle list method. returns the total in seconds. - Add
CalcTotalSize()handle list method. returns the total in bytes. - Add
utils.FormatDuration(seconds). Returns astringlike3wk 2d 1:30:21. - Add
utils.FormatFileSize(bytes). Returns astringlike7.9 GB. window.CreateToolTipnow takes optional fontname,font size (px)andstylearguments. egwindow.CreateToolTip("Segoe UI", 32, 1). Defaults ofSegoe UI,12and0are used if omitted.- Default right click menu now has a
Reloadscript option. This saves opening/closing the dialog when working on external files. In addition, a newwindow.Reloadmethod has been added so you can force a panel reload with your own menus, buttons, etc. - Script errors are now displayed in a popup window in addition to the
Consolelike it was previously. EstimateLineWrapno longer leaves stray punctuation when wrapping text at end of line.IMetadbHandleFileSizenow works withJScriptengine. Previously, it only worked withJScript9.