Releases of Spider Monkey Panel

1.4.1 current version, released on: 2021-02-13

Hotfix for 1.4.0.
  • Changed casing of `window.JsMemoryStats` fields for consistency with the rest of API.
  • Added indicator when panel name is overriden by the script in `Configure` dialog.
  • Improved package manager behaviour in various scenarios.

  • Fixed various bugs in `Package` tab of `Configure` dialog.
  • Fixed sorting of package files.
  • Fixed conflict with `foo_wave_seekbar`.
  • Fixed `foo_acfu` integration.
  • Fixed data not refreshing on `Apply` in `Configure` dialog.

1.4.0 released on: 2021-02-11

  • Added a brand new `Configure` dialog!
  • Added more ways to consume scripts:
    • Quick access to built-in script samples.
    • Load scripts by path.
    • Use script packages (see below for more info).
  • Implemented script package support:
    • Can contain multiple scripts and assets.
    • Can be easily exported and imported as a single file.
    • Has a package manager to view and manage all installed packages.
  • Panel name can be changed now via `Configure` dialog.
  • Default script editor can be changed now via drop-down menu of `Edit` button in `Configure` dialog.
  • Added a link to component docs to foobar2000 `Help` main menu.
  • API changes:
    • Added iterator protocol support to `FbMetadbHandleList`.
    • Added `type` argument to `FbUiSelectionHolder.SetSelection()`.
    • Added `fb.Version` property.
    • Added `utils.DetectCharset()` method.
    • Added `utils.EditTextFile()` method.
    • Added `utils.FileExists()` method.
    • Added `utils.GetFileSize()` method.
    • Added `utils.GetPackagePath()` method.
    • Added `utils.IsDirectory()` method.
    • Added `utils.IsFile()` method.
    • Added `utils.SplitFilePath()` method.
    • Added `window.DefineScript()` method.
    • Added `window.EditScript()` method.
    • Added `window.ShowConfigureV2()` method.
    • Added `window.JsMemoryStats` property.
    • Added `window.ScriptInfo` property.

  • Moved `Properties` dialog to a separate tab of `Configure` dialog.
  • `Grab focus` is now a script property and is defined via `window.DefineScript()`.
  • Extracted `Edge style` and `Pseudo-transparency` options to a separate tab of `Configure` dialog.
  • API changes:
    • `utils.FileTest()` is marked as [Deprecated]. Use new corresponding methods instead.
    • `window.ID` is now optional and unused in all methods that required it.
    • `window.DefinePanel()` is marked as [Deprecated]. Use `window.DefineScript()` instead.
    • `window.MemoryLimit`, `window.PanelMemoryUsage` and `window.TotalMemoryUsage` are marked as [Deprecated]. Use `window.JsMemoryStats` instead.
    • `window.Name` now returns panel name instead of script name. Use `window.ScriptInfo.Name` to retrieve script name.
    • `window.ShowConfigure()` is marked as [Deprecated]. Use `window.ShowConfigureV2()` to configure panel and `window.EditScript` to edit script.

  • Fixed component crash when passing objects to `console.log()`.
  • Fixed component crash when there is a stack overflow in JS.
  • Fixed the weird image offset when using `fb.DoDragDrop()` with custom image and theming disabled.
  • Fixed `utils.ShowHtmlDialog()` not applying IE mode, when HTML code is passed directly to the method.
  • Various `ActiveXObject` fixes:
    • Errors in callbacks passed to `ActiveXObject` objects and methods are now properly propagated to the script.
    • Fixed inability to use subscripts with some `ActiveXObject` objects.
    • Added iterator protocol support to enumerable `ActiveXObject` objects.
  • Fixed various errors in `complete` samples (by marc2003).

1.3.1 released on: 2020-07-18

Hotfix for 1.3.0.
  • Fixed `FbTooltip.SetFont()` not working.
  • Fixed a memory leak when using `window.Tooltip`.
  • Fixed task id collision in `gdi.LoadImageAsync()`.

1.3.0 released on: 2020-07-10

  • Re-added ability to automatically download thumbnail images to `thumbs.js` sample (by @marc2k3).
  • Added missing documentation for `fb.GetDSPPresets()` and `fb.SetDSPPreset()`.
  • API changes:
    • Added `GdiBitmap.InvertColours()` method (by @kbuffington).
    • Added `ActiveXObject.ActiveX_CreateArray()` method.
    • Added `window.Tooltip` property.
    • Added `FbTooltip.SetFont()` method.
    • Deprecated `window.CreateTooltip()` method.

  • Updated SpiderMonkey JavaScript engine to 68.8.0 ESR:
    • ECMAScript 2019 conformant JavaScript.
    • Various performance improvements and bug fixes.
  • Adjusted a "Function failed successfully" error message (e.g. when running out of GDI handles).
  • Updated `Tooltip` sample.

  • Fixed incorrect sorting in `FbMetadbHandleList.OrderByRelativePath()`.
  • Fixed `fb.GetDSPPresets()`: now it returns a proper value.
  • Fixed `fb.IsMainMenuCommandChecked()` not working with hidden by default menu items.
  • Fixed garbled error messages on systems with non-English locale.
  • Fixed `Replace All` action and RegExp handling in `Find/Replace` dialog.
  • Fixed crash in some of `.js` samples when deleting a file via context menu.

1.2.3 released on: 2020-02-04

  • Moved documentation from Wiki to a new homepage: <>:
    • Contains JS documentation for the latest release.
    • Contains script showcase with basic information about sample scripts and user-made scripts.
  • Updated `FindReplace` dialog in `Configure`:
    • Added wrap-around support.
    • Dialog is transparent when unfocused.
  • Made `Go to` dialog in `Configure` modeless.

  • Reimplemented `FbMetadbHandleList::OrderByRelativePath`:
    • Uses MUCH less memory.
    • Faster by 10% (on sorted list) to 500% (on unsorted list).
  • Adjusted codepage detection with various file handling methods.
  • Adjusted playlist lock check during drag-n-drop and `plman.AddLocations`: now only `playlist_lock::filter_add` flag is checked.
  • Removed unneeded `on_size` call.
  • Adjusted component initialization time reported in console to be more accurate.
  • Updated marc2003 scripts:
    • Note: `ListenBrainz` sample was removed - use <> instead.

  • Fixed rare crash when using `utils.RunMainMenuCommand` and `utils.IsMainMenuCommandChecked`.
  • Fixed crash when working with COM on systems with non English locale.
  • Fixed `window.GetProperty` not working when name contained whistespace at the beggining.
  • Fixed other various crashes.
  • Fixed occasional double error report in console.
  • Fixed crashes in `jsplaylist-mod` and other complete samples (by marc2003).