-Speed up loading of images in SubFolderExplorer contexts like Input and Output (up to 6x!)
-Separate logic for loading images and gathering subdirectories
-Update some code to reflect the move to a unified usage of "directory" rather than "folder" (WIP)
-Return more useful responses from python backend
-Added new batch selection and batch deletion features. All imageElements now have a checkbox and each selected element is tracked within a context or folder. When you've selected all you want to delete, click the recycle button on the toolbar, then again to confirm. All checked items will be recylced/deleted. You can also click on the selection widget next to the batch delete button to toggle select/deselect all.
-Renamed ImageDrawer.js to ImageDrawerMain.js
-Separated ImageListAndSearch out into separate scripts and classes named ImageDrawerList and ImageDrawerSearch
-Changed order of some initialized functions and variables in imageElements to better accommodate batch selection
-
-Moved some scripts over to a classy architecture. More scripts will be moved over time. This will eventually allow for multiple image drawer instances in the same window.
-Added a new module script that manages all class instances. See ImageDrawerModule.js for an explanation of the new architecture. Basically, it makes cyclical dependencies impossible.
-Updated imports
-Updated various scripts to use class instances where applicable
-Updated some outdated comments
-Added option to prepend or append labels to Labeled widgets
-Parameter optimizations
-
-Separate much of the logic for imageElements into imageElementsUtils for a more streamlined maintenance experience
-Add button to delete an image or video from the disk and list, preferring to move it to trash/recycling before deleting directly
-Simplify CSS
-Set layout CSS properties for flyouts from JS directly
-Apply layout rules to all flyouts
-Move imageElements flyout handle to top right rather than top left
-Fix automatic Upload Visual Media node sizing for videos
-Infer some display data from mediaElement when image or video doesn't originate from imageDrawer drag and drop
-Linter adherence
-Autosize node to media (still needs work)
-Center media and media info
-Be smarter about when Media info is displayed based on file type and whether or not they payload data is good
-Move some variables and calls around to minimize resource usage
-Apply existing callbacks
-Create media preview on configure so it appears when the user loads the workflow
-Update some names for linter
-Update VideoPreview import
-Pass JNodes Payload through so we can display information from metadata
-Show video metadata on Upload Visual Media node
-Show current time in seconds and current frame during playback
-Generify video loading nodes to work for many visual media types, still images, animated images, some video types, etc. 'Video' nodes and scripts and params have been renamed to 'media' to reflect the change.
-Added some accessors for MediaInfo
-Replaced OutVideoInfo with BreakMediaInfo
-Added some more information to MediaInfo
-Stashed renamed nodes into deprecated_nodes so they're still accessible for now
-Cleaned up some unnecessary variables and params in the media loading code, now runs a tiny bit faster
-Now possible to sample media by seconds or frames
-Added some filetype support in js, still need to just pull this directly from python
-Renamed some js variables to be less parsimonious and more clear
-Fix video preview in SaveVideo
-Encode text in video preview uri (so spaces in filenames work, et al)
-Add support for images and videos from the image drawer to be dragged onto UploadMedia node
-Formatting
-Create VideoControls script for agnostic control of video elements
-Update classes to use VideoControls where appropriate
-Create jnodes_image_drawer_payload payload for drag and drop from image drawer to upload nodes
-Add href to fileInfo on imageElement creation to facilitate payload
-Add option for playback rate (speed)
-Add hotkeys for changing playback rate ( , and . )
-Add labeled number input widget
-Inherit labeled widget types from base class
-Add option for onchange to above base class
-Clamp numbers when setting numeric values on videos
-Add some helper functions to video elements
-Remove bPropagateOnChange, roll functionality into forEachElement delegate
-Add widgetType parameter to inform the widget type to be created
-Removed unnecessary and incorrect comments
-Add ogg support
-Set video parameters before load (fixes autoplay)
-Remove unnecessary OR
-Rename preview widget
-Remove widget video typing (not necessary)